Non capisco il concetto di Arduino


8

Ho avuto difficoltà a creare un Arduino per un po '(è riuscito a realizzare una versione breadboard usando un cavo programmatore ISP ). Dicono che il bootloader Arduino sia realizzato in modo tale da non richiedere circuiti esterni per programmare l' ATmega8 . Ma quando ho guardato negli schemi c'è il circuito normale richiesto per la connessione seriale. Quindi cosa fa effettivamente il bootloader?


1
nessun circuito esterno è un'affermazione assurda ... per parlare con un computer tramite una porta seriale è necessario almeno un transciever RS232, come un MAX232 di qualche tipo; o come fa Arduino, puoi parlare TTL UART direttamente a un chip di interfaccia USB come FTDIs.
Vicatcu,

Risposte:


12

Il bootloader è un piccolo programma nel flash dell'AVR che non viene mai sovrascritto e viene eseguito all'accensione. Il compito del bootloader è leggere i dati del programma dall'UART e scriverli sul flash interno. Senza un bootloader, l'unico modo per caricare il codice è utilizzare l'ISP.

L'AVR ATMega8 è privo di codice nel flash. Il codice può essere caricato tramite i pin ISP (nella programmazione del sistema), utilizzando un programmatore ISP AVR (o anche un altro Arduino).

Per Arduino, l'ISP viene utilizzato una sola volta (in fase di produzione) per caricare un piccolo bootloader. All'accensione, il bootloader viene eseguito e comunica con l'UART seriale (pin TX + RX). Ora, Arduino può essere programmato tramite i pin seriali usando il protocollo STK500.

Poiché i pin seriali sono (in genere) collegati a un FTDI USB al chip seriale, Arduino può anche essere programmato tramite USB.


Quindi stai dicendo che se ho un chip atmega8 con un bootloader in esso bruciato posso rimuovere tutti i circuiti per l'ISP e collegare semplicemente i pin corretti dal seriale all'arduino? Puoi anche dirmi come collegherò il seriale con atmega8
Rick_2047

2
Una volta che hai il bootloader, ecco un circuito Arduino molto minimale. Collega il tuo PC (tramite un convertitore di livello TTL) ai pin TX / RX / GND. profmason.com/wp-content/uploads/2008/09/arduinopins.jpg Vedi questa domanda per ulteriori dettagli: chiphacker.com/questions/2512/ftdi-basic-breakout-5v
Toby Jaffey

1
Il max232 converte i segnali di livello seriale RS232 (come proviene dal connettore a 9 pin su un PC) in segnali di livello TTL (5v) adatti per comunicare con Arduino / AVR. Il circuito max232 può essere sostituito da un chip seriale FTDI da USB a TTL per il collegamento a un PC.
Toby Jaffey,

2
Una piccola nota qui: Il bootloader di Arduino ascolta sulla porta seriale solo per un nuovo codice per un breve periodo all'avvio. I bootloader precedenti di Arduino attendono alcuni secondi prima che inizi l'esecuzione del codice. I bootloader più recenti si avviano molto rapidamente e devono essere ripristinati dalla linea DTR da un FT232. Se prevedi di utilizzare un max232, carica il bootloader precedente. Controlla anche Sparkfun ( sparkfun.com/commerce/tutorial_info.php?tutorials_id=104 ) per alcuni fantastici tutorial AVR.
bpijls,

2
È il vero codice oggetto AVR. Arduino batte alcune piattaforme rivali (es. Basic Stamp) in quanto esegue un codice oggetto compilato non un interprete.
Toby Jaffey,

3

Puoi acquistare i chip ATmega328 con il caricatore di avvio su di essi qui .


Ne ho appena ordinati 4 oggi (dal sito di ZA) :)
Leppie,

1

Probabilmente significano che se acquisti un Arduino Uno pre-costruito e assemblato, non devi acquistare un programmatore. Come con molti altri starterkit elettronici. È possibile programmare la scheda Arduino Uno con un solo cavo USB (A> B).

Tuttavia, se hai intenzione di costruire un tuo Arduino da solo, ovviamente avrai bisogno di un circuito esterno (ad esempio un programmatore ISP AVR) o roba Max232 o FTDI.


0

L'idea alla base del bootloader di Arduino è che non è necessario alcun hardware o circuito speciale per riprogrammarli, rispetto alla programmazione iniziale di esso, o al vecchio microcontrollore, che spesso necessita di un programmatore dedicato (come PicKit2 per MCU PIC). Il bootloader consente la programmazione tramite una connessione seriale di base.

Naturalmente, al momento, era necessario il collegamento seriale, in genere un convertitore RS232 da TTL a RS232. Quindi le porte seriali vengono gradualmente eliminate, da USB a seriale diventa onnipresente, consentendo così di sostituire un max232 o simile. E ora, l'uso del microcontrollore Atmel abilitato USB consente anche che ciò non sia necessario, quindi un singolo ic con parti passive minime potrebbe fornire le funzioni Arduino e USB a seriale. Ora hai solo bisogno di un cavo USB e alcuni passivi per caricare uno schizzo. La programmazione iniziale del bootloader richiede ancora la tradizionale programmazione ICSP.

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.