http://www.didel.com/ [email protected] http://www.bricobot.ch/ [email protected] http://www.didel.com/pic/CircuitsLogiques.pdf Circuits logiques Les fabricants de microcontrôleur, Microchip, AVR, etc, documentent les interfaces de sortie avec des figures comme ci-contre. On trouves ailleurs de compteurs, des registres à décalage. Ce document introduit les notions importantes concernant les circuits logiques pour faciliter cette compréhension, sans aller dans les détails que l’on trouve dans des livres comme J.D. Nicoud ‘’Circuits numériques pour interfaces microprocesseur’’ (Masson). Ce livre n’est plus disponible en librairies. La plupart des figures sont reprises de ce livre. Electricité – ce que tout le monde sait (?) Tension U en Volts V Courant I en Ampères A mA Résistance R en Ohms Ω kΩ Capacité C en Farads F µF nF Loi d’Ohm U = R I Loi de Coulomb C U = Q = 1 A s Travail/énergie 1 J = 1 N m = 1 A s 1 W h = 3600 J Accu 1mAh à 3.6V = ~10J Puissance 1 W = 1 V A = 1 J / s Electronique Une résistance pull-up impose une tension proche de V+ et évite que la ligne soit flottante, donc avec une valeur logique mal définie. Une capacité de découplage réduit les pointes négatives de tension lors de la commutation des signaux. On évite d’utiliser des filtres passebas et passe-haut ; retarder ou dériver un signal se fait par programmations. Entrées et sorties logiques Une entrée d’un microcontrôleur ou d’un circuit CMOS a une impédance élevée. Les seuils qui définissent les états logiques 0 et 1 dépendent de la tension d’alimentation. Une sorties donne pour les états 0 et 1 une tension qui garantit une immunité au bruit. Si la sortie est surchargée, la résistance interne limite le courant et l’échauffement peut être destructeurs.Cette résistance est assez importante sur une sortie de microcontrôleur. Elle est plus élevée vers le +. On préfère donc câbler une diode lumineuse pour qu’un état 0 soit actif. Les valeurs de la figure dépendent de la tension d’alimentation. Pour augmenter le courant, on peut connecter plusieurs sorties en parallèles, et leur assigner naturellement le même état logique, Un moteur miniature de 30 Ohm peut ainsi être commandé par un port 8 bits sans amplis supplémentaires. Les 4 bits de poids faible et les 4 bits de poids fort sont utilisés pour une commande bidirectionelles. Amplificateur Pour amplifier le courant de sortie, on utilise un transistor MOS. Pour une commande bidirectionelle par 2 bits du processeur, un grand choix de driver moteurs existe. Pour un courant de 100 mA, une porte 74F04 commande 3 moteurs. Un 74F245 commande 4 moteurs (voir plus loin). Sortie à 3états Les sorties des PICs sont activées par la variable Tris. Un 0 sur l’entrée /OE active les transistors de sortie. Si /OE est à 1, la sortie est ‘’en l’air’’, représentées sur les diagrammes de temps par une tension moyenne, alors que toutes le tensions sont possibles. Sortie en collecteur ouvert Dans une sortie en collecteur ouvert, seul le transistor du bas est câblé. Une résistance ‘’pull-up’’ est nécessaire pour assurer l’état 1. Le collecteur ouvert, indispensable pour le bus I2C, peut se simuler avec du trois états. Bascule de Schmitt (Schmitt-trigger) La bascule de Schmitt présente une hystérèse qui fait que les petites fluctuations du signal ne passent pas. C’est l’idéal pour toute ligne connectée à un signal extérieur. Sur un PIC, seuls les timers ont une entrée en Schmitt trigger. Temps de propagation et métastables Tous les signaux en sortie sont synchronisés par l’horloge et les signaux d’entrée sont échantillonnés avec une probabilité d’états métastables négligeable. Reset et brown-out A la mise sous tension, un délai est programmé et le reset est activé. Si la tension baisse (brown-out) en dessous d’une valeur programmable dans un bit de configuration, il y a également reset. Portes logiques Les tables de vérité sont bien connues. Remarquez les deux schémas équivalents suite à la loi de De Morgan. Dans un schéma, il faudrait toujours utiliser la forme qui exprime exactement la fonction réalisée, indépendamment du fait que les signaux sont inversés ou non. Bascules Le bascules, et ce que l’on construit avec, changent d’état au front montant ou descendant de l’horloge. La convention du rond d’inversion n’est pas toujours respectée. Si le chargement est statique (pendant la durée de l’impulsion), on a un verrou (latch). Registres PIPO Parallel In Parallel Out PISO Parallel In Serial Out SIPO Parallel In Serial Out SISO Serial In Serial Out Multiplexeurs Les multiplexeurs sont utilisés pour séletionner une entrée parmis plusieurs, comme pour le choix d’un canal analogique. Microchip n’utilise pas le symbole traditionnel, mais dessine des interrupteurs ou des portes ET. Familles logique Utiliser des circuits logiques dans un montage microcontrôleur peur permettre d’utiliser un processeur plus petit, de simplifier le câblage vers l’application, de disposer d’entrées ou sorties à plus haute tension, de sorties à plus puissantes. La famille HC-MOS est intéressante pour ses registres à décalage. La famille 74F également, avec des courants plus important. Extension du nombre d’entrées ou sorties sur un microcontrôleur Les registres série 8 bits offrent des possibilités d’extension plus facile à mettre en œuvre qu’avec les circuits I2C. On peut cascader les registres, et n’utiliser que 2 lignes pour la commande. Pour commander des LEDs, des registres 8 et 16 bits avec source de courant facilitent la commande de LEDs. Une seule résistance fixe la valeur du courant pour toutes les sorties. Capteurs et circuits spécialisée pour réseaux, affichages, etc Le domaine est trop vaste pour être abordé ici. Internet donne accès aux spécification des fabricant, et parfois à des solutions utilisables. Citons les quelques documents (anciens) sur des capteurs robotique. www.didel.com/doc/sens/DocIr.pdf www.didel.com/doc/sens/DocIrt.pdf www.didel.com/doc/sens/DocIrLog.pdf www.didel.com/doc/sens/DocSharp.pdf jdn 100420/100510