IMA4 2018/2019 SEC123

De Wiki d'activités IMA

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.

EC123 2018 PCB.png

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 :

EC123 2019 PCB.png

La vue schéma a été reconstruite :

EC123 2019 schema.png

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.

EC123 2018 PCB Ordonnancement.jpg

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.

EC123 2018 PCB Ordonnancement pate.jpg

Le circuit avec les pilotes de LED et les 64 LED soudés :

EC123 2018 PCB Ordonnancement total.jpg

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.