Contrôleur d'affichage MAX 7219
Présentation
Les circuits intégrés MAX7219 et 7221 de chez MAXIM sont des contrôleurs d'affichage qui permettent de driver des afficheurs LED 7 segments, des matrices de
LEDs, des bargraphes... grâce à une interface série. On peut gérer jusqu'à 8 afficheurs ou 64 LEDs.
On peut piloter des afficheurs avec seulement un µC en faisant du multiplexage, mais au niveau du programme cela se complique rapidement, sachant que le µC à lui seul doit
pouvoir gérer et le multiplexage et le programme principale ! Le MAX7219 s'occupe de tout, il suffit de lui envoyer les données en série sur 3 fils (CLK + DATA + LOAD).
Communication avec le circuit
La communication avec le MAX7219 se fait à l'aide d'un mot de 16 bits.
Les 8 premiers bits de poids fort (MSB) servent à identifier l'adresse tandis que les 8 bits de poids faible (LSB) indiquent la valeur à donner au registre.
Dans le programme, il faudra d'abord envoyer les 8 bits de l'adresse du registre désiré, puis les 8 bits de la valeur à affecter à ce registre.
Les différents registres:
1) Nombre de digits
--> Scan Limit (adresse: 0x0B): Avec ce registre, on choisi le nombre d'afficheurs à contrôler, sachant que la valeur va de 0 à 8.
Ex: Pour utiliser seulement 4 afficheurs, on affectera la valeur 0x03 au registre Scan Limit.
2) Allumage / Extinction de l'afficheur
--> Shuntdown (adresse: 0x0C): Avec ce registre, on choisi d'allumer ou éteindre l'afficheur au complet.
Ex: Pour l'allumer, on affectera la valeur 0x01 au registre Shuntdown, et pour l'éteindre on lui affectera la valeur 0x00.
NOTE: On peut se servir de cette fonction pour faire clignoter l'afficheur.
3) Le mode décodage
--> Decode mode (adresse: 0x09): Avec ce registre, on choisi d'activer ou non le mode "décodage". Avec le mode sans décodage, on peut allumer n'importe quels segments,
et donc afficher un caractère
qui n'est pas défini d'origine.
Ex (avec décodage): Pour afficher le chiffre 5 sur le digit 1, on affectera la valeur "5" (0x05) au registre digit 1.
Ex (sans décodage): Cette fois ci pour afficher le chiffre 5, il faudra le faire en binaire : 0b01011011 car il faut allumer les segments A,C,D,F et G.
Le premier 0 c'est le point DP.
4) Test de l'affichage
--> Display Test (adresse: 0x0F): Ce registre permet de tester tous les segments ou LEDs en les allumant.
Ex: Pour activer le test, on affectera la valeur 0x01 au registre Display Test,et pour revenir au fonctionnement normal on lui affectera la valeur 0x00.
5) L'intensité lumineuse
--> Intensity (adresse: 0x0A): Grâce à ce registre, on peut régler la luminosité des afficheurs. Le circuit agit en fait sur le rapport cyclique pour faire varier la luminosité.
NOTE: Les valeurs vont de 0x00 (mini) à 0x0F (maxi).
Programme AVR
Voilà un programme qui permet d'afficher une "démo" sur 8 afficheurs et donc de tester le fonctionnement. Ce programme n'est absolument pas optimisé, mais écris de façon à comprendre
très facilement chaque ligne de code.
Ne pas oublier de bien brancher les différents signaux CLK, DATA et LOAD sur SCK, MOSI et PB4.
Code en C :
max7219demo.txt
Le PCB
Je propose le typon pour des afficheurs 20mm (taille du digit). La carte fait 240mm x 32mm, en double face et n'oubliez pas les 2 composants CMS
sous le circuit intégré : résistance de 10K et condensateur de 100nF au format 805.
Typon côté top:

Typon côté bottom: