Table des matières:

Tutoriel Assembleur AVR 8 : 4 étapes
Tutoriel Assembleur AVR 8 : 4 étapes

Vidéo: Tutoriel Assembleur AVR 8 : 4 étapes

Vidéo: Tutoriel Assembleur AVR 8 : 4 étapes
Vidéo: EB_#359 Introduction - Le Langage Informatique Assembleur 2024, Juillet
Anonim
Tutoriel Assembleur AVR 8
Tutoriel Assembleur AVR 8

Bienvenue dans le didacticiel 8 !

Dans ce court didacticiel, nous allons nous éloigner un peu de l'introduction de nouveaux aspects de la programmation en langage assembleur pour montrer comment déplacer nos composants de prototypage vers une carte de circuit imprimé "imprimée" distincte. La raison en est qu'à ce stade, notre principale maquette de prototypage est remplie de tellement de puces, de fils, de boutons et de LED qu'il devient difficile de tester de nouvelles choses et puisque nous devons finalement déplacer les composants vers leurs propres cartes de toute façon, autant commencer maintenant. Beaucoup d'entre vous maîtrisent probablement déjà les choses que nous aborderons dans ce didacticiel et vous pouvez donc considérer ce didacticiel comme une simple pause relaxante dans le codage.

Aujourd'hui, nous allons donc déplacer notre rouleau de dés ATmega328P et la paire de dés qui l'accompagne vers une carte externe avec des connexions à notre carte principale pour la communication et l'alimentation. En dehors de cela, le câblage et le fonctionnement des dés seront autonomes dans ce composant.

Vous pouvez probablement prédire à partir de cela que notre objectif final est de le faire avec chacun des composants que nous construisons en cours de route afin que lorsque nous aurons terminé, nous puissions tous les cacher dans un joli package qui fonctionnera via des pressions sur les boutons sans tout voir des fils et des rouages internes.

Nous passerons la majeure partie de ce didacticiel à effectuer des tâches physiques telles que la conception d'un circuit, la cartographie d'une carte de prototypage et la soudure de composants, mais nous devons effectuer un peu de programmation à la fin après avoir déplacé les éléments. La raison en est que nous allons éventuellement utiliser l'interface série à 2 fils pour communiquer entre notre contrôleur principal "maître" et tous les contrôleurs "esclaves" qui constituent les composants de notre projet global dans cette série de tutoriels et, comme vous vous en souvenez, dans le Tutoriel 6 nous avons inventé une sorte de méthode de type Morse Code pour communiquer nos lancers de dés du lanceur de dés (Tutoriel 4) au Register Analyzer (Tutoriel 5) qui affichait le résultat du lancer de dés en binaire sur 8 LED. Eh bien, c'était juste une méthode de communication "roulez votre propre" que j'ai décidé d'utiliser car, à ce moment-là, il était trop tôt pour entrer dans la communication série à 2 fils. Nous sommes maintenant presque prêts à plonger dans les profondeurs de la communication série, et nous le ferons dans le didacticiel 10, mais pour l'instant, nous devons anticiper ce développement futur et recâbler nos LED de rouleaux de dés afin de libérer les deux broches dont nous avons besoin pour la communication série.

Ce sont les broches SCL et SDA de l'ATmega328P. Vous pouvez voir par le schéma de brochage qu'ils sont également appelés ADC5 et ADC4 lorsqu'ils sont utilisés dans les conversions analogique-numérique, ils sont appelés PCINT13 et PCINT12 lorsqu'ils sont utilisés comme broches "Pin Change Interrupt", et enfin nous les appelons généralement PC5 et PC4 lorsqu'ils sont simplement considérés comme des broches sur PortC. Étant donné que nous avons utilisé ces deux broches dans le cadre de notre rouleau de dés pour diverses raisons (les principales étant que cela facilitait le codage et le câblage vers les LED de la carte), nous devrons maintenant modifier notre code et le recâbler légèrement pour libérez ces broches pour une future communication.

Nous allons donc commencer par faire la conception, la découpe, le câblage et la soudure. Ensuite, nous allons réécrire le rouleau de dés pour qu'il fonctionne avec notre nouvelle configuration et enfin le tester pour nous assurer qu'il fonctionne toujours.

Pour terminer ce didacticiel, vous aurez besoin des éléments suivants:

  1. Les trucs standard dont vous avez toujours besoin et que je vais arrêter de répéter tout le temps: votre carte de prototypage, votre copie de la fiche technique et du jeu d'instructions, et votre cerveau.
  2. Une carte PCB de prototypage de circuit sans fil comme celle-ci: https://www.ebay.com/itm/191416297627 Je vais utiliser la version Measure Explorer 103RAWD de cette carte: https://www.ebay.com/itm/103RAT -circuit-proto-proto… puisque j'en ai un tas sous la main, mais la version 103RAW-0 que je relie ci-dessus fonctionnera très bien aussi.
  3. Tondeuses, fils, soudure, fer à souder, "mains secourables" ou quoi que ce soit pour tenir des trucs, etc. etc. etc. Si vous êtes allé aussi loin dans ces didacticiels, vous avez probablement déjà tout cela.

Voici un lien vers la collection complète de mes tutoriels d'assembleur AVR:

Étape 1: Concevoir un schéma de câblage

Concevoir un schéma de câblage
Concevoir un schéma de câblage
Concevoir un schéma de câblage
Concevoir un schéma de câblage
Concevoir un schéma de câblage
Concevoir un schéma de câblage

Ce qui est bien avec les cartes Measure Explorer, c'est que si vous prenez le temps de planifier les choses au début, vous pouvez vous épargner beaucoup de câblage à la fin. Nous allons donc commencer par prendre le temps de concevoir notre mise en page avant de commencer à souder quoi que ce soit. Avec ce type de carte, vous devez couper un tas de fils de connexion, ce qui n'est pas si facile, mais le résultat est une très belle carte compacte avec un minimum de fils emmêlés. La première chose que nous devons faire est de concevoir notre circuit de sorte qu'il s'adapte sur la carte. Une bonne façon de le faire est de télécharger la carte du tableau, puis de l'utiliser pour jouer avec différents modèles jusqu'à ce que vous en trouviez un qui fonctionne. Voici la disposition pour le ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600-j.webp

Étape 2: Découpez le circuit sur la carte

Découpez le circuit sur la carte
Découpez le circuit sur la carte
Découpez le circuit sur la carte
Découpez le circuit sur la carte
Découpez le circuit sur la carte
Découpez le circuit sur la carte

Prenez d'abord un sharpie et, en utilisant votre disposition que vous avez tracée à l'étape précédente, dessinez votre circuit sur le tableau. C'est à dire. tracer des lignes pour représenter les fils. Ne dessinez rien en termes de composants, juste les fils de connexion comme indiqué sur la première image. Notez que lorsque vous vous trompez (et si vous êtes comme moi, vous allez tout gâcher plusieurs fois au cours de ces étapes), vous pouvez utiliser une gomme et effacer la ligne. Faites cela pour les deux côtés de la planche.

Ensuite, vous devez couper les connexions autour des lignes. Si vous regardez attentivement le tableau, vous verrez que chaque trou d'épingle est connecté aux 4 trous adjacents des deux côtés du tableau, de sorte que tous les trous du tableau sont connectés les uns aux autres lorsque vous commencez. Vous devez donc couper le long des deux côtés de chacun de vos fils pour les isoler. La façon la plus courante de faire cette coupe est avec un couteau Exacto. Mais je suis nul pour les couteaux Exacto et je me couperais probablement. J'utilise donc un Dremel avec un accessoire d'outil de coupe mince. J'aurais aimé avoir une sorte d'accessoire de meulage qui soit pointu car cela fonctionnerait mieux - mais je n'en ai pas comme ça, alors j'ai utilisé l'accessoire de scie à découper. (Note ajoutée: après avoir terminé ce projet, j'ai trouvé que les plus petites têtes de "roue de coupe robuste" pour Dremels fonctionnent le mieux, elles ressemblent à de petits cercles de papier de verre et elles fonctionnent comme l'outil de coupe montré ici, sauf qu'elles sont de plus petit diamètre et donc il est beaucoup plus facile de voir et de contrôler où vous coupez)

En cours de route, il est utile de tenir la planche à la lumière et de s'assurer que les fils sont bien coupés. Vous pouvez être ennuyé par le fait qu'il y a des connexions des deux côtés de la planche, vous devez donc répéter le processus de coupe avec l'autre côté, mais je pense que vous en verrez l'utilité lorsque vous aurez terminé. J'ai fait beaucoup d'erreurs en coupant des fils qui n'auraient pas dû être coupés et avoir l'autre côté toujours connecté s'avère agréable.

Il faudra un peu de temps et de patience pour couper le circuit dans la carte, mais c'est plutôt amusant une fois que vous êtes bon dans ce domaine.

Étape 3: souder les composants et tester

Souder les composants et tester
Souder les composants et tester
Soudez les composants et testez
Soudez les composants et testez
Souder les composants et tester
Souder les composants et tester

Maintenant que vous avez isolé tous les fils de votre circuit imprimé, vous pouvez commencer à souder les composants individuels.

J'ai d'abord soudé les LED de l'un des dés, puis j'ai pris les fils positifs et négatifs de ma maquette et j'ai testé les connexions de chaque LED pour m'assurer qu'elles sont isolées les unes des autres et qu'elles fonctionnent.

De même avec l'autre dé.

Câblez ensuite la résistance à chaque dé et la résistance de 10K à l'arrière de la carte.

Fixez ensuite l'oscillateur à cristal, les capuchons 22pf, les boutons-poussoirs et l'ATmega328P. Vous voudrez peut-être souder un socket de puce, puis y insérer votre ATmega328P afin de pouvoir le retirer si vous le souhaitez et le réutiliser dans autre chose. Je viens de souder ma puce à la carte car je sais ce que nous allons finalement construire avec tous ces tutoriels et je sais que je l'aimerai suffisamment pour ne pas vouloir retirer la puce.

Remarquez, en regardant au dos du tableau, la façon dont nous avons attaché les en-têtes. J'ai utilisé de longs en-têtes de broche et les ai pliés horizontalement afin qu'ils ne dépassent pas du tableau. C'est pour que je puisse éventuellement recouvrir la carte au niveau des boutons-poussoirs et des LED avec un conteneur et ne pas avoir d'en-têtes qui me gênent. Nous avons un en-tête pour Tx, Rx afin que nous puissions programmer la puce, nous avons un en-tête pour SDA, SCL afin que nous puissions utiliser la communication à 2 fils plus tard. et nous avons un en-tête à 3 broches pour AVCC, AREF, GND de l'autre côté de la carte. J'ai toutes les broches de masse et les broches VCC câblées ensemble sur la puce, nous n'avons donc besoin que d'une seule entrée d'alimentation.

Enfin, une fois que tout est câblé, nous filons le dé 1 au dé 2 comme nous l'avons fait sur la planche à pain afin de pouvoir contrôler les deux dés avec seulement 9 broches.

Nous devons maintenant modifier notre code pour qu'il contrôle cette nouvelle configuration.

Étape 4: Code d'assemblage et vidéo

J'ai joint le code d'assemblage et la vidéo du rouleau à dés en fonctionnement. Tout ce que j'ai fait a été de prendre le code de notre rouleau à dés du didacticiel 6, de modifier les broches pour qu'elles correspondent à la nouvelle disposition et de supprimer le sous-programme de communication puisque nous allons écrire un nouveau dans le didacticiel 10. La prochaine fois, nous utiliserons à nouveau notre clavier et apprendrons à contrôler les affichages à 7 segments. À bientôt !

Conseillé: