Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Projet oscillo/logique



  1. #1
    blinbling

    Projet oscillo/logique


    ------

    Bonjour,

    J'ai comme projet de réaliser un afficheur graphique d'état logique ( un genre d'oscilloscope ne prenant en entrée qu'une tension nulle ou positive, ce genre d'appareil existe déjà sûrement mais c'est plus éducatif et drôle de le faire soi-même non?) que je nommerai "AG" dans ce post pour faciliter la lecture.
    L'idée principale est de visualiser des signaux périodiques imperceptibles par l'oeil (genre commande PWM d'un servo moteur de période 20ms... ou ce genre de trucs rapides).
    Pourriez-vous donc me dire votre avis sur ce projet, après avoir lu ceci ^^ :


    - Pour le moment l'AG n'aura qu'une entrée.
    - L'AG fonctionnera autour d'un PIC (16F688)
    - L'affichage se fera sur un écran lcd.
    - La sonde de l'AG ne sera pour le moment utilisable sur +5V maximum uniquement.


    Pourquoi un 16F688 ?
    Parce que c'est le seul pic en ma possession qui me semble convenir le mieux.
    Horloge interne de 8MHz (possibilité d'aller jusqu'à 20Mhz si horloge externe), 7ko pour le programme, 256 de RAM, 12 I/O, 2 timers (8bits et 16bits).

    L'écran LCD :
    Je ne sais abosulument pas quel écran lcd choisir. L'on devra pouvoir y afficher au pixel près.
    Ses dimensions seront d'au moins 2 lignes (0V ou 5v), sur le plus de colone possibles.
    A l'aveugle je dirais 10px en hauteur minimum (pour pouvoir visualiser un minimum la différence entre me 0v et le +5v, pouvoir gérer plusieurs affichages et afficher le pas de temps mais ceci est un "plus"),
    en largeur toujours a l'aveugle 100px pour ne pas trop ratatiner/écraser le graphique.


    Les pattes du PIC :
    1 Input (min) pour la "sonde".
    2 Input pour l'horloge externe.
    2 Input pour la selection du pas de temps (+ et -) ou bien 1 seul input en analogique avec un potentiomètre pour régler le pas de temps.
    7 ou 8 output MAX pour l'écran lcd. (8 sorties du pic pour le LCD ? est-ce suffisant?)
    Si l'écran nécessite moins d'entrées alors les I/O restants seront réservés à d'autres sondes.

    Principe (naïf) du programme :

    Config :
    - basée sur une horloge de 20Mhz
    - TMR0 prévu pour déborder toutes les FOS4/4*255*prescaler = (1/20000000)*4*255*1 = 51 us


    Récupération de l'état logique de la sonde :
    - chaque débordement de TMR0 (51us)

    Rafraichissement du LCD :
    - toute les 40ms, soit 25 rafraichissment/secondes, donc tous les (40000us/51us=) 784 débordements de TMR0. 40ms pour traiter/calculer, formater puis envoyer/afficher les données sur le LCD ça me semble (à vu d'oeil toujours) suffisant.


    Avec ce principe le pas maximum entre chaque mesure est de 51us. C'est moyen, mais c'est suffisant.
    Si le LCD est de 100px de largeur, ça donnerait 51us*100 soit une période de signal minimum de 5,1ms. (En prennant 1px/pas de temps, soit le minimum poru ne pas perdre en précision).



    Autre principe (simple idée, c'est peut-être une connerie):

    Même config.

    Récupération de l'état logique de la sonde :
    La même, à ceci près :
    Dès le débordement du TRM0 remmettre le TRM0 à 0, ce qui consomerait ((1/20000000)*4) 0,2us. Et qui impliquerait un décalage de 0,2 us a chaque débordement de TRM0.
    Le signal sondé étant périodique le pas de temps minimum serait donc de 0,2us.
    En gros une mesure toutes les (51 + 0,2)us.
    Une fois la fin de la mesure sur la période totale du signal, on calcule le temp restant avant le début d'une nouvelle période. On consomme ce temps restant et on remet TRM0 à 0.



    Traitement de données :
    mx est une mesure, avec :
    m0..mn, avec n = periode/0,2us (0,2us étant le pas temps espaçant 2 mesures)


    Les données d'une période seront stockées dans un tableau de 100 cases, 1case=>1px.
     Cliquez pour afficher


    Raffraichissement du LCD :
    Le même on va dire. Sauf qu'il faudra prendre en compte les remise à zéro de TMR0.

    Avec ce principe on devrait pouvoir avoir un pas de temps pour la mesure de 0,2us minimum. Avec le LCD de 100px => période de 20us minimum. C'est plutôt cool.


    Mes questions :
    • Selon vous l'un des deux principes de fonctionnement pourrait fonctionner ?
    • Quel LCD me conseillerez vous?
    • Quel type de condensateur faut-il adjoindre à une horloge externe de type quartz de 20Mhz ? 22pF suffirait-il ?


    Pour finir, une importante précision :
    je n'ai que de maigres connaissances au monde des PIC et de l'électronique, donc ne m'en voulez pas pour les boulettes que j'ai pu écrire.

    Donner moi votre avis, vos réponses, remarques et précieux conseils.
    Merci

    -----

  2. Publicité
  3. #2
    louloute/Qc

    Re : Projet oscillo/logique

    男人不坏,女人不爱

  4. #3
    blinbling

    Re : Projet oscillo/logique

    Salut,
    merci pour le lien.
    Après avoir lu, alors oui quelque chose comme ça dans le principe de base.
    Mais je pense faire quelque chose de vraiment moins compliqué.

  5. #4
    F1TVB

    Re : Projet oscillo/logique

    Bonjour
    Ce projet est complexe surtout si vous ne maitrisez pas les microcontroleurs.
    Quelques infos:
    Pour un quartz 20 Mhz et un PIC 2 condensateurs de 10 pf sont suffisants.
    Pour l'affichage, le moins compliqué (quoique...) est un afficheur 128x64 de type alphanumérique. Je l'ai utilisé dans mon analyseur panoramique.
    Pour la mémoire, l'idéal est de réaliser un "double buffering" ou une mémoire circulaire.
    Une dernière précision, un pixel allumé reste allumé si on ne le change pas d'état, donc avec une bonne gestion des "timing" la zone mémoire doit pouvoir être réduite.
    Bon courage....

  6. #5
    blinbling

    Re : Projet oscillo/logique

    Salut F1TVB,
    Alors ouais pour le rafraichissement du lcd, je ferai du double buffering ça sera plus propre.
    Sinon j'ai du mal à trouver de la doc pour des écran lcd. Je pensais que les écran du type lcd alphanumérique ne pouvait afficher que des caractères prédéfinis ?? (et donc pas de courbe ou quoi que ce soit). Du coup j'ai exclu de mes recherches ce type d'écran...
    Peux tu me confirmer qu'il est possible de modifier l'affichage au pixel près sur les lcd alphanumériques? (je chercherai de la doc..)

    Sinon dans le pire de cas, l'affichage se fera avec des caractères (si il est possible de définir/dessiner ses propres caractères alors ça serait parfait, '-----','----_', '---__',... de ce style ^^ (120 à créer au total... pour 5px/char)).

    merci =)

  7. A voir en vidéo sur Futura
  8. #6
    F1TVB

    Re : Projet oscillo/logique

    Bonjour
    Les afficheurs alphanumérique sont adressables par pixel. Pour l'analyseur j'ai utilisé le ECM 12864 mais d'autre modèles existent (voir chez Elecdif), vérifier le câblage car il est diffèrent selon les types.

  9. Publicité

Sur le même thème :

Discussions similaires

  1. Oscillo
    Par crazyofcoaster dans le forum Électronique
    Réponses: 2
    Dernier message: 19/03/2009, 18h58
  2. oscillo
    Par paolo123 dans le forum Électronique
    Réponses: 10
    Dernier message: 08/07/2008, 15h10
  3. Logique Système - Logique Causale - Implications Cosmologiques
    Par Mumyo dans le forum Epistémologie et Logique
    Réponses: 6
    Dernier message: 06/11/2007, 12h57
  4. oscillo
    Par pyaar dans le forum Électronique
    Réponses: 1
    Dernier message: 04/02/2007, 13h39
  5. oscillo
    Par pyaar dans le forum Physique
    Réponses: 5
    Dernier message: 04/02/2007, 13h19