IMA4 2018/2019 SEC123 : Différence entre versions
(→Réalisation du circuit) |
(→Configuration des micro-contrôleurs) |
||
Ligne 47 : | Ligne 47 : | ||
= Configuration des micro-contrôleurs = | = 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 = | = Programmation = | ||
Version du 18 août 2019 à 20:17
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.
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 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 :