Come si dovrebbe passare dall'uso di un Arduino come programmatore a un programmatore esterno?


12

Parte seconda di una serie in tre parti sulla transizione da Arduino a un semplice microcontrollore AVR e componenti di supporto minimi ( parte prima , parte tre )

Ho visto molte persone chiederlo su Internet, quindi ecco qui:

So già come programmare e utilizzare un ATbega328 barebone con un Arduino come programmatore . Ora voglio iniziare a utilizzare un programmatore esterno con l'IDE Arduino.

Come devo procedere in questa transizione? Cosa dovrei imparare? (Sarebbe bello se un mini tutorial per alcune delle porzioni fosse fornito come parte della risposta)


2
+1, un candidato eccellente per una domanda di riferimento, non vedo l'ora di avere risposte ben strutturate e dettagliate, facili da seguire per un principiante, e non risposte "etch-a-board".
Anindo Ghosh,

Sono confuso. Volete passare da una metodologia all'altra. Cosa ti aspetti come risposta? I tutorial per l'utilizzo diretto di un programmatore esterno sono buoni, i tutorial reali.
asheeshr,

@AshRj: la transizione e il riavvio sono due cose diverse. Se uno sa come usare un Arduino, avrebbe bisogno di sapere quali saranno le differenze nei vari codici (e le basi dell'uso di un programmatore).
Manishearth,

@Manishearth Cosa intendi con "senza bootloader"?
Polar

@Polar: Fondamentalmente, non voglio che il bootloader Arduino sia lì per aiutarmi (cosa che succede se usi un Arduino come programmatore), voglio solo un ATmega nudo su cui tutto il codice sia il mio codice.
Manishearth,

Risposte:


6

Nota: questo mini tutorial si basa sulle informazioni ufficiali qui sul sito Arduino. Implica anche l'uso dell'IDE ufficiale di Arduino.

Nota 2: I collegamenti forniti ai prodotti possono essere collegamenti Farnell (in quanto contengono schede tecniche) o le pagine dei prodotti reali sul sito Web del produttore.


Passaggio 1: procurati un programmatore esterno

La prima cosa da notare è che è necessario un programmatore esterno per evitare il bootloader e recuperare la memoria 1K o 2K che occupa (12,5% della memoria totale ). È possibile utilizzare un AVR-ISP , un STK-500 o un programmatore con porta parallela: il sito ufficiale di Arduino contiene le istruzioni qui . Si noti che non è possibile comunicare con la scheda tramite il programmatore parallelo: il consiglio è di utilizzare un cavo seriale per questo. Il vantaggio principale dell'utilizzo di un programmatore parallelo è che sono molto più economici degli altri se sei disposto a fare un po 'di saldatura - hai solo bisogno di alcuni (3) resistori e alcuni connettori, mentre un ISP può ripristinarti a £ 30 / $ 50 (il tasso di conversione è approssimativo).


Passaggio 2: modifica il file delle preferenze di Arduino

Successivamente dovrai configurare l'IDE di Arduino per permetterti di eludere il bootloader. Assicurati di NON avere l'IDE Arduino aperto! Il file delle preferenze preferences.txtè disponibile nelle seguenti posizioni, a seconda del sistema operativo in uso:

  • C:\Documents and Settings\<Username>\Application Data\Arduino\preferences.txt (Finestre)
  • /Users/<Username>/Library/Arduino/preferences.txt (Mac)
  • ~/.arduino/preferences.txt (Linux)

Per accedere al file delle preferenze in Windows, vai al menu Start e poi vai a %appdata%(NB: non uso Windows regolarmente, sentiti libero di correggermi). Quindi vai su Arduino e poi supreferences.txt

Su Mac, usa Terminal e fai:

cd ~/Library/Arduino
open .

Oppure in Finder usa Goto (Cmd-Shift-G) e inserisci ~/Library/Arduino. Entrambi ti portano in una finestra del Finder con preferences.txtin.

Sui sistemi Unix, le cartelle che iniziano con un '.' (come .cache, .git) sono nascosti per impostazione predefinita, quindi in Linux dovrai usare il Terminale e inserire:

cd ~/.arduino
nautilus .

Nota: se lo si desidera, è possibile sostituire nautilus con gnome-open . So che questi sia il lavoro sui sapori comuni di Linux, ma si possono avere problemi in alcuni dei sapori più 'esotici'.

Una volta trovato il preferences.txtfile, aprilo e cambia upload.usingda bootloaderda al nome di uno dei programmatori nella ./hardware/programmers.txtsottodirectory. Se si desidera rimuovere solo il bootloader da una scheda, ./hardware/boards.txtè possibile modificare il <board>.upload.usingparametro e tutte le altre schede continueranno a utilizzare il bootloader. Quindi basta salvare il file pertinente e chiuderlo (il mio Arduino si è appena bloccato e ho quasi perso la risposta, forse perché mi sono dimenticato di farlo).


Passaggio 3: carica lo schizzo

Dopo aver modificato il file pertinente, riaprire l'IDE di Arduino e caricare lo schizzo normalmente. Se hai appena modificato ./hardware/boards.txt, solo quella particolare scheda non avrà il bootloader, ma se hai modificato preferences.txttutte le schede non avranno il bootloader.


Passaggio 4: sostituire il bootloader

Se vuoi avere di nuovo il bootloader sulle tue schede (per qualsiasi motivo), prima rimuovi il <board>.upload.usingparametro o upload.usingripristina bootloader. Quindi dovrai riaccendere il bootloader sulle schede interessate: questa risposta spiega ragionevolmente un metodo per farlo, e c'è un metodo più semplice per caricare il bootloader Arduino solo con un solo ISP (che dovresti avere da prima) sul sito ufficiale qui .


Immagino di non essere stato chiaro, ho modificato la domanda per renderlo evidente: volevo più o meno scartare del tutto l'IDE (il che significa che devi imparare un altro linguaggio di programmazione. Tuttavia, poiché hai già pubblicato una risposta, io
Potrei semplicemente porlo

@Manishearth Ah, lo modificherò per riflettere questo, se vuoi. Poi di nuovo, siamo riusciti a fare con altre domande ...
Polar

Ne chiederò un altro, questo diventerà troppo ampio se lo
inserisco

@Manishearth Ok :)
Polar,

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.