IMA4 2018/2019 SEC123
Sommaire
Introduction
Trois épreuves complémentaires ont été lancé sur un projet de circuit électronique pour les TP d'ordonnancement en IMA4. Tous les objectifs n'ayant pas été atteints, un travail complémentaire a été réalisé pour tenter d'obtenir un circuit utilisable.
Conception du circuit
Pour les épreuves complémentaires le circuit a été découpé en trois parties :
- la partie contrôle faisant office de maître SPI avec deux boutons, deux LEDs et un convertisseur USB/série ;
- une partie afficheurs 7 segments en tant que périphérique SPI esclave ;
- une partie matrice de LED aussi en tant que périphérique SPI esclave.
Pour des raisons pratiques, il est plus simple de placer les trois parties sur le même circuit imprimé.
Circuit actuel
Les circuit des trois EC ont été regroupés dans ce document Fritzing : Media:EC123_2018_PCB_Fritzing.zip.
Le logiciel ne semble pas permettre de recopier proprement les trois vues dans un document unique. Dans ce document ce sont les vues PCB qui ont été privilégiées. Du coup les autres vues ont été destructurées. Il faudrait, au moins, reconstruire la vue schématique.
Erreurs résiduelles
Malgré quelques corrections des PCB des élèves, des erreurs ont été constatées lors des tests :
- partie 7 segments, la broche non(reset) de l'ATMega328p n'est pas forcée à l'état haut ;
- partie 7 segments, deux capacités sont doublées ;
- partie 7 segments, les deux sorties du régulateur 3,3 volts ne sont pas reliées entre elles (raison de la surchauffe du micro-contrôleur ?) ;
- partie matrice de LED, des via sous les TLC sont en collision avec les pad de refroidissement des composants.
Des corrections restent donc à porter au PCB joint à cette page.
Circuit après corrections
Les erreurs de la section précédente sont corrigées dans ce document Fritzing : Media:EC123_2019_PCB_Fritzing.zip.
Une vue du PCB :
La vue schéma a été reconstruite :
La liste des composants : Media:Ordonnancement_V7_bom.ods.
Réalisation du circuit
Le prototype a été réalisé en soudant une résistance de 10k Ohm entre le reset et les 5 volts du 328p de la partie 7 segments, en supprimant les condensateurs en double, en reliant par un strap les deux sorties du régulateur 3,3 volts de la partie 7 segments et les via se trouvant sous les pads des TLC ont été recouverts par une pâte isolante et supportant la température de soudure.
Voici une photographie du circuit avec la partie contrôle soudée ainsi que la partie afficheurs 7 segments. La partie matrice de LED n'est pas encore totalement soudée à cause des via sous les TLC.
La photographie ci-dessous montre l'utilisation d'une pâte isolante pour éviter les court-circuits avec les via sous les TLC. La pâte devient rose translucide en séchant.
Le circuit avec les pilotes de LED et les 64 LED soudés :
On note aussi le strap sur le régulateur et les emplacements vides des deux condensateurs redondants de la partie 7 segments.
Configuration des micro-contrôleurs
les deux ATMega328p des parties 7 segments et matrice de LED ne sont pas flashés avec un amorceur, leurs programmes sont directement chargés sur les micro-contrôleurs par un programmateur en utilisant les connecteurs ICSP.
Par contre l'ATMega328p de la partie contrôle doit pouvoir être programmé par une liaison USB/série. Il faut donc charger l'amorceur classique sur cet ATMega328p. Cela peut se faire simplement en utilisant l'IDE Arduino. Il suffit d'utiliser un Arduino Uno sur lequel est chargé l'exemple ArduinoISP, les connecteurs ICSP de l'Uno et de l'ATMega328p de la partie contrôle sont connectés broche à broche à l'exclusion du reset de l'ATMega328p qui est connecté à la broche 10 de l'Uno. Dans l'IDE sélectionner le programmateur "Arduino as ISP" puis lancer l'opération "Burn bootloader".
Programmation
La programmation des pilotes de LED se fait comme dans des projets des années passées. La seule difficulté consiste à établir un tableau d'indirection pour afficher les LED dans l'ordre souhaité. Ces tableaux donnent, pour chaque numéro de LED, le numéro de port de sortie d'un TLC commandant cette LED.
A posteriori la programmation SPI ne présente pas de difficulté particulière. Ne pas oublier de sélectionner la ligne de sélection du périphérique à adresser.
Le programme de la partie 7 segments : Media:EC_123_2018_7segSPI.zip.
Le programme de la partie matrice de LED : Media:EC_123_2018_MatriceSPI.zip.
Le programme de la partie contrôle : Media:EC_123_2018_OrdonneTests.zip.
La vidéo ci-dessous présente une petite démonstration de l'utilisation simultanée des afficheurs 7 segments et de la matrice de LED : Media:EC_123_2018_demo_droit.mp4
A noter que l'affichage de l'image de la matrice est parfois décalé. Deux pistes pour expliquer le décalage : un problème d'alimentation de l'ensemble de la carte par le port USB ou un transfert SPI trop rapide.