Qual è il set minimo di parti per un circuito con questo microcontrollore AVR?


10

Il mio Arduino Uno ha un microcontrollore ATMEGA328P-PU e un sacco di altre cose sulla scheda. Vorrei programmare il chip senza il software Arduino e solo il minimo di altri componenti. Voglio infine creare cose senza il costo di Arduino, e voglio conoscere le altre parti sul tabellone e aggiungerle di nuovo secondo necessità. Sono a mio agio con C e gcc, quindi probabilmente riesco a capire la parte software. Ma cosa, se non altro, oltre a questi due prodotti di seguito, devo avere nella breadboard con il microcontrollore?

Microcontrollore programmatore Atmel


Puoi rispondere a questa domanda da solo trovando e leggendo la scheda tecnica ATMEGA328P-PU.
Phil Frost,

7
Forse quando ne so di più. Il foglio dati è di 550 pagine, sono un principiante e una scrematura non mi ha rivelato nulla. Faccio molto studio personale, ma apprezzo i siti come questo dove posso ottenere alcune risposte dagli umani di tanto in tanto. :)
Rob N,

6
@PhilFrost Questo è il peggior consiglio che potresti dare a un principiante.
capcom

1
@PhilFrost Mentre sono d'accordo con te sul fatto che trovare informazioni è probabilmente l'abilità più essenziale che un principiante possa avere, specialmente con la pletora di informazioni disponibili grazie a Internet, aprire una scheda tecnica per la prima volta può essere un po 'intimidatorio. Una volta che qualcuno più esperto risponde alla sua domanda e dice loro dove nel foglio dati ha trovato la risposta, il principiante può analizzarla di nuovo e iniziare a guadagnare un po 'di fiducia. Inoltre, il collegamento fornito non è un foglio dati. Gli hai detto di leggere il "Foglio dati ATMEGA328P-PU", non di effettuare una ricerca su Google per una risposta.
capcom,

1
OK, riproverò. Rob, dovresti sapere che qualsiasi produttore di un dispositivo non banale pubblicherà la documentazione per rispondere esattamente a questa domanda. I produttori hanno un chiaro interesse a semplificare l'utilizzo del loro prodotto. La scrematura del foglio dati è il modo di iniziare. Per cose complesse come i microcontrollori, potrebbe esserci una nota di applicazione separata. "applicazione tipica" sono le parole magiche che devi usare nei termini di ricerca. Non è male chiedere aiuto, ma è bene sapere come pescare.
Phil Frost,

Risposte:


13

Tutto ciò di cui hai bisogno, a parte il programmatore e il chip, è un paio di cappucci di disaccoppiamento e un modo per collegare i segnali di programmazione alla breadboard.

Così:

  • 1 cappuccio elettrolitico di grandi dimensioni (ad es.> 100 uF) Potresti farne a meno se la tua sorgente è bella e silenziosa (ad es. Batteria)
  • 1 ceramica 100nF attraverso i pin di alimentazione del micro
  • 1 resistenza da 10kΩ da collegare dal pin di reset a Vcc per mantenere il micro fuori dal reset.
  • Alcuni cavi jumper per collegare i nodi sulla breadboard (puoi acquistare cavi jumper già pronti, ma io uso un rotolo da 22 AWG e ne taglio il mio - molto più economico se lo fai molto)
  • Un'intestazione per collegare il cavo del programmatore. Secondo la guida dell'utente , sembra che sia necessaria un'intestazione con passo da 2,54 mm 2x3 pin.

Opzionale

  • Un pulsante per collegare a terra la linea di ripristino se si desidera ripristinare fisicamente il chip (non utilizzo gli AVR, ma sono sicuro al 99,9% che il programmatore possa farlo dall'IDE)
  • Un cristallo da usare al posto dell'oscillatore interno
  • Condensatori 2 * 22pF per il cristallo (posizionare da entrambi i lati a terra)
  • Componenti passivi, LED, sensori, ecc. Per fare qualcosa di utile con il codice che scrivi ;-)

A parte l'intestazione (che è a 10 pin con alcuni pin inutilizzati - puoi usare le etichette come guida per le tue connessioni, i nomi sono gli stessi) questo schema è il più semplice che potrei trovare con un rapido Google:

Schema AVR semplice

Stranamente ho appena scritto un blog su come fare praticamente la stessa cosa con un microcontrollore PIC (potrebbe valere la pena dare un'occhiata, i due sono molto simili)


3
Se stiamo parlando di un minimo assoluto, non è necessario il resistore di pullup sulla linea di reset: l'AVR ha un pullup interno. E se stiamo parlando di consigliabile, dovresti includere anche un limite sulla linea di ripristino - vedi questa nota sull'app: atmel.com/images/doc2521.pdf . Inoltre, l'intestazione ISP a 2x3 pin menzionata è molto più comune della 2x5 mostrata nello schema.
Nick Johnson,

Grazie! Se il tappo 100nF è per i pin di alimentazione, a cosa serve il tappo> 100µF?
Rob N

1
@RobN il condensatore robusto è per il filtraggio / smoothing del rumore dell'alimentatore
vicatcu

@NickJohnson - grazie per i punti più fini - se vuoi, modifica la mia risposta (come detto non ho usato un AVR, il mio piccolo micro di scelta è il PIC - o in effetti un ARM come lo STM32F10xxx più spesso al giorno d'oggi)
Oli Glaser,

1
Se si utilizza il framework Arduino, è necessario anche un condensatore 100nF tra il segnale DTR dall'adattatore da seriale a USB e la linea di ripristino, altrimenti si sarà costretti a saldare a mano un platine adattatore su perfboard con un condensatore 0402 perché quello è l'unico pacchetto in cui hai 100nF disponibile e nessuno farebbe mai una cosa così sciocca.
Simon Richter,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.