IMA4 2018/2019 EC2
Sommaire
Présentation du projet
Contexte
L'élève continue son semestre S8 à l'école.
Objectif
Le but est de concevoir une partie d'une platine de travaux pratiques pour l'ordonnancement. Il faut aussi programmer le micro-contrôleur intégré.
Description du projet
La platine sera constituée de 3 parties bien distinctes :
- la partie "contrôle" composée d'un ATMega328p, d'un FT232, d'un connecteur USB, de deux LED et de deux boutons, l'ordonnanceur doit être chargé sur ce micro-contrôleur ;
- la partie matrice de LED, il s'agit d'une matrice de 8x8 LED CMS monochromes contrôlées par un ATMega328p et 3 pilotes de LED TLC5947 ;
- la partie afficheur 7-segments, il s'agit de 6 afficheurs 7-segments implantés avec des LED CMS monochromes et contrôlés par un ATMega328p et 2 pilotes de LED TLC5947.
La communication entre la partie "contrôle" et les deux autres parties s'effectue via un bus SPI. Les trois parties sont conçues et réalisées séparément mais doivent s'interconnecter facilement. Les 3 PCB sont rectangulaires et doivent s'assembler aussi sous la forme d'un rectangle. Pour passer les lignes SPI et l'alimentation, des connecteurs doivent être prévus sur les 3 PCB. Vous commencerez par vous mettre d'accord sur les dimensions des PCB et sur l'emplacement des connecteurs. Une première phase de conception des PCB avec placement des composants peut être nécessaire pour cette étape.
Vous êtes chargé de réaliser la matrice de LED. Vous trouverez, sur les Wiki IMA, des exemples de cartes avec ATMega328p et TLC5947. Partez de l'un de ces exemples. Utilisez le logiciel Fritzing pour la conception de la carte. N'oubliez pas le connecteur ICSP pour la première programmation du micro-contrôleur.
Une fois la carte fonctionnelle vous programmerez le micro-contrôleur pour attendre l'état des LED par communication SPI. Votre ATMega328p doit donc être configuré dans le mode SPI esclave. Utilisez le même protocole de transmission des données que la matrice de LED RGB de SparkFun. Il y aura donc transfert de 64 octets de données. Pour votre matrice chaque octet ne codera pas la couleur de la LED correspondante mais son intensité lumineuse. Si la partie contrôle n'est pas opérationnelle, il sera possible de tester votre matrice avec un Arduino Uno et l'exemple de programme disponible sur le site de SparkFun.
Matériel nécessaire
Description | Fabricant | Référence Fabricant | Fournisseur | Quantité | Lien fournisseur |
---|
Planning prévisionnel
Travail effectué
Cette section est consacrée à la réalisation du PCB de la partie Matrice de LED. Afin de comprendre le travail à réaliser, voyons voir d'abord les composants nécessaires individuellement.
La matrice de LED
La matrice de LEDs utilisée ici est une matrice 8x8 composée de LEDs CMS unicolores. Elle dispose de 16 broches. Le schématique de la matrice utilisée est le suivant :Nous utiliserons le modèle AVB (anodes connectées aux rangées et cathodes aux colonnes). Les colonnes correspondant aux cathodes seront mises à la masse. Concernant les rangées, afin de respecter le cahier des charges, nous connecterons 8 pins des drivers TLC5947 à chaque rangée. Afin d'allumer les LED de la matrice, il faut faire attention à respecter les pins du module. Comme vous pouvez le constater en regardant la précédente image, les rangées sont connectées aux broches 9, 14, 8, 12, 1, 7, 2, 5 tandis que les colonnes sont connectées aux broches 13, 3, 4, 10, 6, 11, 15, 16. Si on désire, par exemple, allumer la LED située rangée 4 colonne 5, il faudrait donc mettre la broche 6 à la masse et injecter un courant sur la broche 12.
Le TLC5947
Il s'agit d'un driver de contrôle de LED composé de 24 pins de sorties. Son schématique est le suivant : [[|center|TLC5947]] En le connectant via le connecteur ICSP de l'Arduino, on peut contrôler l'allumage des LEDs par le biais de ce driver. Dans notre cas, on souhaite pouvoir allumer plusieurs LED en même temps or une pin du driver ne permet d'allumer qu'une LED à la fois. Il faut donc 8 pin du TLC5947 pour former un octet et les connecter sur une même rangée pour pouvoir contrôler les 8 LEDs de cette rangée. Sachant que la matrice est composée de 64 LEDs, il faut donc 3 drivers TLC5947 (3x24 = 72 pins disponibles donc 9 octets possibles).