Pages: [1] 2 3 ... 7   Go Down
Author Topic: Non riesco a programmare ATmega644P  (Read 6317 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho difficoltà con un 644P...

In breve, ho caricato il bootloader del Sanguino seguendo questo Tutorial: http://www.themakersworkbench.com/content/tutorial/tutorial-burning-sanguino-bootloader-atmega-644p-using-arduino-isp, utilizzando un Arduino come programatore ISP sui pin MISO, MOSI, ecc.

Caricato con successo alla prima botta, testo il chip infilandoci dentro il solito blink all'uscita 13. Lancio e va tutto bene, cerco "a mano" il LED 13 e lo trovo sul PD5 del 644, che in effetti è il D13 di Arduino. Insomma, ho il mio 644 con il suo led che lampeggia ad un Hertz...

Vado a nanna

Nuova giornata e comincio a caricare uno schetch per un display grafico KS0108 based (lo scopo finale è quello, visto che con il 328 non rimane più nemmeno un'uscita per accendere 'na lampadina!). Risultato: solito errore avrdude 015 ecc.
Provo 200 sketch diversi, ma niente, nulla. Nemmeno il blink mi carica più...

Ho a disposizione un TX-RX con 2100, un'altro con 2303 e, ovviamente, l' 8u2 della Arduino UNO (previa rimozione del chip 328), provo in tutte le maniere ma nulla. Sempre il solito errore.

Penso ad problema di reset (autoreset) ma al momento non ho a disposizione nessun condensatore (sono a casa e il laboratorio è distante) per provare qualcosa. Ho solo delle resitenze.

So che Leo e Michele hanno avuto i loro mal di testa con questo chip, ma non sono aggiornato su soluzioni "definitive", come quella del filtro RC (10KOhm + 100pF) per il 1284.

Qualche idea da provare prima di lunedì, quando torno in laboratorio?

Intanto ora sono le 3 di notte, ed il mio 644 continua a guardarmi beffardo, con il suo blink ad un Hz..!   smiley-fat
« Last Edit: February 09, 2013, 10:30:17 pm by BaBBuino » Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,se hai caricato anche lo sketch del blink in ISP credo che il bootloader sia stato cancellato e quindi non riesci a riprogrammare via seriale. Quindi puoi provare a caricare prima il bootloader in ISP e poi in seriale gli carichi il blink...
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 564
Posts: 12468
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

In effetti non sei stato chiaro sulla modalità che hai usato per il caricamento del blink, anche se il fatto che elenchi una serie di programmatori seriali fa pensare che tu correttamente abbia:
1 - caricato il bootloader mediante ISP
2 - caricato il blink via seriale.
in caso contrario è ovvio che il bootloader non sta funzionando più.
Detto questo per evitare di perderci in un'altra discussione di 200 post sarebbe preferibile che tu postassi i collegamenti (p.es. ti è chiaro che Arduino si collega al 644 con connessioni opposte a quelle degli altri due che hai?) che hai usato e spiegassi esattamente la procedura, in modo sintetico, fornendo il link del bootloader che stai usando, la versione di IDE, ecc.
Giusto per non lasciarti deluso, la prova al volo che puoi fare (ma se non va poi devi fornire tutto quanto ti ho chiesto) è quella di mettere una R da almeno 120kohm in serie all'RX del micro (pin 14). Per quanto mi riguarda è l'unico componente esterno che sono disposto ad usare ragionevolmente; contrariamente a queanto sostenete, forse con qualcosa dentro il micro il filtro RC si realizza comunque ma io col DSO vedo una bella onda quadra mentre col C aggiuntivo una schifezza a denti di pescecane (nell'altro Topic ho messo le immagini tempo fa). Stamattina sono a casa causa malattia, qujindi possiamo fare tutte le prove che vuoi, se ti svegli.....
Logged

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

Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ieri notte mi sono letto il post intero di 23 pagine, anche se la parte finale, e semi-conclusiva, lascia ancora aperti molti interrogativi.

Cmq...

1) Bootloader del Sanguino: http://code.google.com/p/sanguino/downloads/list (cmq si poteva vedere dal link che ho postato)

La versione di Arduino-IDE è la 0023, con la cartella Sanguino-bootloader valida per la 0023, caricata nella sotto-cartella Hardware.

2) Il Bootloader è stato caricato su un 644 vergine, con tecnica ISP, (ovviamente!) mentre lo sketch Blink è stato caricato con seriale-booloader, scegliendo come Board, la voce: Sanguino w Atmega644P. Il tutto senza alcun problema ed al primo tentativo.

Conosco il fatto che una successiva programmazione ISP sovrascrive il Bootloader, ma non è questo il caso.

La proggrammazione seriale mi sarebbe comoda, ma non ne faccio un dramma: posso sempre programmare il 644P con ISP.

La cosa che mi perplime è il fatto che alla sera funzionava tutto, e alla mattina non fuinzionava più con niente! Mah...
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 564
Posts: 12468
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Di quella lista avrai scaricato la Sanguino-0023r4.zip immagino; la board che hai usato è corretta.
Invece le connessioni?
- per 2100-2303 devi incrociarle: tx->rx e rx->tx, mentre con 8u2 devi lasciarle dritte: tx->tx e rx->rx
- in tutti e tre i casi devi collegare il RESET del convertitore seriale al RESET del 644, provando sia direttamente che tramite un C da 100nF
- non trascurare di mettere una R da 10kohm tra il RESET del 644 e 5V, oltre a quarzo e C22pF più vicino possibile ai pin 12 e 13

Fatto tutto ciò, sempre rispettando le indicazioni di cui sopra puoi provare ad interompere la linea RX del micro con una R da 120kohm a 330khm

Fammi sapere come va.
Logged

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

Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono quà con il circuito sottomano...

Le linee RX e TX del 644 sono il piedino 14 ed il piedino 15 (alias PD0 e PD1). Come scheda sto usando questa (molto comoda):



Quindi tutte le connessioni verso il quarzo (16 MHz), alimentazione, Reset (piedino 9) sono corrette.

Quanto ai Prog seriali stand-alone, in effetti mi pare che avessi programmato correttamente il Blink con il collegamento NON incrociato, ovvero TX-->TX ed RX-->RX, ma ieri sera ho provato anche ad invertire, con il risultato di una leggera variazione dei lampeggi dei led di trasferimento TX/RX, ma senza programmae un tubo.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 564
Posts: 12468
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

lo schedino (molto bello) ti garantisce che tu non abbia sbagliato le connessioni ai pin, NON che tu non abbia sbagliato in assoluto.
Le connessioni seriali devi fare come ti ho scritto io, l'opposto di quelle è solo perdita di tempo, ti ho parlato della R pull-up sul RESET e del C da 100nF in serie, se rileggi cosa ti ho scritto trovi prove da fare, almeno falle prima di arrenderti.
Immagino (ma un'immaginazione l'ho fatta pure prima, solo che tu non dai conferme, capisco che tu sia incazzato, a chi lo dici smiley-twist, ma mica te la puoi prendere con me smiley-sweat) che tu abbia riprovato a caricare il bootloader e poi riprovare la comunicazione seriale.
Logged

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

Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Michele non è che mi sono arreso, il problema principale è che sono lontano dal mio Laboratorio, e quindi lontano dalla mia Potenza, dal Luogo degli Dei, e credo che tu possa capirmi quando ti dico che sono un pò atapirato.

Una volta in Laboratorio ritorno ad essere il Deus ex machina dei circuiti e in qualche modo si risolve.

Adesso procedo con metodo (e con il POCO materiale che ho a disposizione) provando la resistenza in serie da 120.000, o anche più,
 in serie alla RX. Poi faccio qualche partitore, sempre sulla RX, ma NON ho condensatori. Anzi, si, ma sono quelli da 22 pF per il quarzo...

Non è che posso inventarmi molto in queste condizioni eh! smiley-sad
Logged

Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Adesso riparto da ZERO e ricarico il Bootloader...
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 564
Posts: 12468
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti capisco eccome!  smiley-cry Oggi sono ammalato e domani devo andare al lavoro pena la morte! pomeriggio avevo programmato  5-6 ore di Lab, con una serie di prove da fare, tutte "appese" e importanti; invece devo starmene buono buono per cercare di migliorare lo stato di salute fino a domattina, se esco stasera febbre assicurata, qui ci sono 5° e sta grandinando e noi meno di 10-12° non li abbiamo quasi mai smiley-grin.
Mi sto consolando scrivendo lavori che stavo trascurando da mesi, oggi ho scritto non meno di 50-60 pagine, di cui l'80% in parte tradotte dall'inglese, che non conosco ma che sto pian piano imparando, almeno a tradurre, e poi implementate con parti mie, ovviamente, ora ho le mani artrosiche, infatti mi fermo un'oretta, sono seduto qui da stamattina alle 7, eccetto mezzora di pausa pranzo smiley-sweat
Detto questo ribadisco che con i C a mio parere non devi fare nulla, solo eventualmente levare quello che è in serie al RESET del 644, se c'è su quella scheda, oppure aggiungerlo, se non c'è; ho appurato che a volte è richiesta la presenza a volte no, e siccome sembra che ognuno di noi abbia una situazione personalizzata, bisogna provarle tutte.
Però al tuo posto non mi abbatterei, in fondo a casa ora hai tutto ciò che ti serve, la nostra problematica è molto software. Altra prova che puoi fare è la mia:
IDE 1.0.1 e bootloader/core il cui link trovi nell'altra discussione, ad un certo punto me l'ha fornito Leo, in pratica è la penultima versione del maniacbug, con quello ho finalmente programmato il 1284, seppur con la R da 120-220k (in base alla versione di bootloader, visto che ci stanno la standard e l'optiboot).
Beh, con questo ne hai almeno per un'oretta, il tempo del mio riposo smiley-wink a dopo.
Logged

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

Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie Michele. Intanto Bootloader ricaricato (via ISP) con successo (non avevo alcun dubbio!).

Ora riprovo il Blink via seriale...
Logged

Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono a casa della mia ragazza, devo reinstallre tutti i driver dei dispositivi...

Adesso scarico il Driver del CP2102...
Logged

Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ripartendo da ZERO (Bootloader via ISP + Blink con seriale) la programmazione va a buon fine, MA... (ero già contento... smiley-sad) una seconda programmazione non funziona già più.

In pratica ho caricato il Blink con successo, ma al secondo tentativo, dove ho modificato il delay per farlo lampeggiare un pò più veloce, ho avuto il solito errore:

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

Mistero...  smiley-eek smiley-cry
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 564
Posts: 12468
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

A mio parere questa è la prova assoluta che ha ragione Astro, il bootloader, derivato sempre da UNO/2009 quindi dal mega328P non tiene conto delle diverse tempistiche di questi bestioni, speriamo che lui trovi il tempo di completare il lavoro che aveva iniziato, ha promesso che ce lo fornisce...

Ma hai provato con/senza C in serie al RESET e con 120-220k in serie all'RX?
Logged

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

Offline Offline
Edison Member
*
Karma: 40
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho un condensatore adatto purtroppo. Ora provo con qualche resistenza.

Ma perchè la prima programmazione seriale (quella subito dopo il Bootloader via ISP) funziona? 
Logged

Pages: [1] 2 3 ... 7   Go Up
Jump to: