Quel est l'ensemble minimal de pièces pour un circuit avec ce microcontrôleur AVR?

10

Mon Arduino Uno a un microcontrôleur ATMEGA328P-PU et plein d'autres trucs sur la carte. Je voudrais programmer la puce sans le logiciel Arduino, et seulement le minimum d'autres composants. Je veux éventuellement créer des choses sans le coût d'Arduino, et je veux en savoir plus sur les autres parties de la carte et les rajouter au besoin. Je suis à l'aise avec C et gcc, donc je peux probablement comprendre la partie logicielle. Mais qu'est-ce que, si quelque chose, en plus de ces deux produits ci-dessous, dois-je avoir dans la planche à pain avec le microcontrôleur?

Microcontrôleur programmeur Atmel

Rob N
la source
Vous pouvez répondre vous-même à cette question en trouvant et en lisant la fiche technique ATMEGA328P-PU.
Phil Frost
7
Peut-être quand j'en saurai plus. La fiche technique fait 550 pages, je suis débutant, et un skim ne m'a rien révélé. Je fais beaucoup d'autoformation, mais j'apprécie des sites comme celui-ci où je peux obtenir de temps à autre des réponses humaines. :)
Rob N
6
@PhilFrost C'est le pire conseil que vous puissiez donner à un débutant.
capcom
1
@PhilFrost Bien que je convienne avec vous que la recherche d'informations est probablement la compétence la plus essentielle qu'un débutant puisse avoir, en particulier avec la pléthore d'informations disponibles grâce à Internet, l'ouverture d'une fiche technique pour la première fois peut être un peu intimidante. Une fois qu'une personne plus expérimentée répond à sa question et lui indique où, dans la fiche technique, elle a trouvé la réponse, le débutant peut la ré-analyser elle-même et commencer à gagner en confiance. De plus, le lien que vous avez donné n'est pas une fiche technique. Vous lui avez dit de lire la "fiche technique ATMEGA328P-PU", et non d'effectuer une recherche Google pour une réponse.
capcom
1
OK, je vais reformuler. Rob, vous devez savoir que tout fabricant d'un appareil non trivial publiera de la documentation pour répondre exactement à cette question. Les fabricants ont clairement intérêt à vous faciliter l'utilisation de leur produit. Le survol de la fiche technique est le moyen de commencer. Pour les choses complexes comme les microcontrôleurs, il peut y avoir une note d'application distincte. "application typique" sont les mots magiques que vous devez utiliser dans vos termes de recherche. Ce n'est pas que c'est mal de demander de l'aide, mais c'est bon de savoir pêcher.
Phil Frost

Réponses:

13

Tout ce dont vous avez besoin, à part le programmeur et la puce, c'est quelques bouchons de découplage et un moyen de connecter les signaux de programmation à la maquette.

Donc:

  • 1 gros capuchon électrolytique (par exemple> 100 uF) Vous pouvez peut-être vous en passer si votre source est agréable et silencieuse (par exemple la batterie)
  • 1 céramique 100nF à travers les broches d'alimentation du micro
  • 1 résistance de 10 kΩ à connecter de la broche de réinitialisation à Vcc pour maintenir le micro hors de la réinitialisation.
  • Du fil de connexion pour connecter des nœuds sur votre planche à pain (vous pouvez acheter des fils de connexion prêts à l'emploi, mais j'utilise un rouleau de 22AWG et je coupe le mien - beaucoup moins cher si vous faites cela beaucoup)
  • Un en-tête pour brancher votre câble de programmation. Selon le guide de l' utilisateur, il semble que vous ayez besoin d'un en-tête à pas de 2,54 mm à 2x3 broches.

Optionnel

  • Un bouton pour connecter votre ligne de réinitialisation à la terre si vous souhaitez réinitialiser physiquement la puce (je n'utilise pas d'AVR, mais je suis certain à 99,9% que le programmeur peut le faire depuis l'IDE)
  • Un cristal à utiliser à la place de l'oscillateur interne
  • Condensateurs 2 * 22pF pour le cristal (place de chaque côté à la masse)
  • Composants passifs, LED, capteurs, etc. afin de faire quelque chose d'utile avec le code que vous écrivez ;-)

Mis à part l'en-tête (qui est à 10 broches avec quelques broches inutilisées - vous pouvez utiliser les étiquettes comme guide pour vos connexions, les noms sont les mêmes), ce schéma est le plus simple que j'ai pu trouver avec un rapide Google:

Schéma AVR simple

Curieusement, je viens d'écrire un blog sur le fait de faire à peu près la même chose avec un microcontrôleur PIC (cela vaut peut-être le coup d'œil, les deux sont très similaires)

Oli Glaser
la source
3
Si nous parlons d'un minimum absolu, vous n'avez pas besoin de la résistance de pullup sur la ligne de réinitialisation - l'AVR a un pullup interne. Et si nous parlons conseillé, vous devez également inclure un plafond sur la ligne de réinitialisation - voir cette note d'application: atmel.com/images/doc2521.pdf . De plus, l'en-tête ISP 2x3 broches que vous mentionnez est beaucoup plus courant que le 2x5 montré dans le schéma.
Nick Johnson
Merci! Si le capuchon 100nF est destiné aux broches d'alimentation, à quoi sert le capuchon> 100µF?
Rob N
1
@RobN le condensateur costaud est pour le filtrage / lissage du bruit de l'alimentation
vicatcu
@NickJohnson - merci pour les points plus fins - n'hésitez pas à modifier ma réponse si vous le souhaitez (comme mentionné, je n'ai pas utilisé un AVR, mon petit micro de choix est le PIC - ou bien un ARM comme le STM32F10xxx plus souvent de nos jours)
Oli Glaser
1
Si vous utilisez le framework Arduino, vous avez également besoin d'un condensateur 100nF entre le signal DTR de l'adaptateur série-USB et la ligne de réinitialisation, sinon vous serez forcé de souder à la main un adaptateur platine sur perfboard avec un condensateur 0402 car cela est le seul paquet dans lequel vous disposez de 100nF, et personne ne ferait jamais une chose aussi stupide.
Simon Richter
4

Je ne poste cela que comme réponse pour masquer les URL laides. Vous devriez certainement jeter un œil à l' Atmel Appnote AVR042: Considérations sur la conception du matériel AVR .

vicatcu
la source
+1 pour une excellente référence, je cherchais quelque chose comme ça pour compléter le petit conseil "général" de micro-configuration. @RobN - vous devriez avoir une lecture approfondie de ce document.
Oli Glaser
0

J'ai également trouvé ce lien utile des gens d'Arduino: https://www.arduino.cc/en/Main/Standalone Il explique comment passer d'une puce que vous venez de recevoir de DigiKey (ou où que ce soit) au chargement du chargeur de démarrage et du composants de support minimum nus.

Anormal
la source