Go Down

Topic: programmare il 644 ... ma come???? (Read 25 times) previous topic - next topic

astrobeed

Intervento veloce dopo che Michele mi ha spiegato in privato i problemi a cui state andando incontro, lasciate perdere gli "esperimenti" con resistenze e condensatori che non servono a nulla, il problema è nel bootloader che state utilizzando che non è idoneo per il 644/1284.
Adesso non ho tempo per spiegarvi dove sta il problema e la relativa soluzione, sto finendo una libreria per Arduino che renderò di pubblico dominio e devo preparare un rendering 3D di anteprima di una nuova scheda (Linux Embedded) che interesserà anche il mondo Arduino, su questa poi aprirò un topic dedicato.
Non appena ho finito, e non credo se ne parli prima di domani, mi rifaccio sentire in questo topic con tutte le spiegazioni del caso, not get worry, stay tuned  :smiley-mr-green:

Michele Menniti

e cchi sse move de qua! :D Grazie :*
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

superzaffo

cavoli.. che novità !
Staremo incollati al pc  :smiley-mr-green:

superzaffo

Però, aspettando astro, io ho ancora dei problemi (sicuramente banali) con il caricamento dello sketch via seriale.
1) Ho caricato il bootloader, con la scelta "644 w bootloader".
2) Collegato al pin 2 con resistenza il led.
3) Collegato l' adattatore in questo modo TX -> TX, RX -> RX, DTR con un C da 100nF in serie al pin 9

quando cerco di caricare lo sketch blink il led lampeggia un 2-3 volte e poi l' Ide mi da not in sync (provato anche invertire rx e tx, setssa cosa)

Ho provato anche questa strada citata da Michele
Quote

Quindi, io partirei dal caricare lo sketch ArduinoISP sull'Arduino UNO. Poi chiudi l'IDE.
Ora il mio core 644_1284: scaricalo (prendi la versione per IDE 1.0.2 sia per l'IDE 1.0.2 che per l'IDE 1.0.3) ed installalo.
Avvia l'IDE, seleziona "Atmega644 @ 16 MHz w/bootloader" e poi scrivi il bootloader sul microcontrollore (così imposti anche i fuse corretti per lavorare a 16 MHz e riservare l'area al bootloader) con la tecnica ISP usando l'ArduinoISP come programmatore.
Adesso prenditi l'Arduino (lasciamo per ora da parte il tuo convertitore USB/seriale), staccagli il chip e fai questi collegamenti:
Arduino ---> 644P
Pin RST ---> pin 9
Pin RX ---> pin 15
Pin TX ---> pin 14
Pin 5V ---> pin 10 e 30
Pin GND ---> pin 11 e 31

Collega l'Arduino, apri l'IDE, poi scegli la voce "Atmega 644 @ 16 MHz w/bootloader", carica lo sketch Blink e spedisci con l'icona di upload. Adesso prendi un LED + R e collegali al pin 19 del 644: se il bootloader ha svolto il suo compito, lo sketch Blink dev'essere sul micro ed il LED deve lampeggiare.

Ma l' errore che mi compare, dopo che il led nel pin 2 lampeggia e anche i led rx e tx dell' aruino lampeggiano, protocol error, expect=014, resp=0x41.. ecc..

Non capisco dove ancora sto sbagliando.. anche perchè non mi sembra molto complessa la cosa.. (ahh io ho un 644P)


leo72

@michele:
per la 1.0.1 servono dei file del core modificati per integrare il supporto al 1284 (di serie c'è solo quello per il 644). Tale supporto è stato aggiunto a partire dalla versione 1.0.2. Per tutte le versioni serve poi uno specifico file pins_arduino.h che descrive i pin e le funzionalità ad essi agganciati.

@superzaffo:
ho timore di aver fatto casino quando ho scritto quelle istruzioni. Non mi ricordavo che si doveva ragionare tenendo a mente l'Atmega8U2: sulle schede Arduino il pin RX è collegato al pin RX0 dell'Atmega328 ma è collegato al pin TX dell'Atmega8U2 per cui non va invertito. Stessa cosa per il pin TX. Collega quindi il pin RX con il piedino 14 del 644/1284 ed il pin TX con il piedino 15.

@astrobeed:
che problema sarebbe, che hai riscontrato nel bootloader?

Go Up