644 problema pin analogici

Sto realizzando un progettino con un atmega 644.
Il 644 ha su il bootloader, e lo programmo via seriale senza problemi.... arrivato quasi alla fine del progetto, provo a programmarlo via icsp tramite arduino uno.... tutto bene, nessun errore, ma vedo letture sballate su 2 pin analogici...
Lo riprogrammo via seriale, e non carica nulla... sparito il bootloader!
Con arduino uno rimetto il bootloader, e nuovamente è possibile programmare via seriale.... ma mi trovo i pin analogici in tilt!
Ho un secondo 644, lo sostituisco, e non cambia nulla! I pin A0 e A1 (39 e 40) non ne vogliono sapere di leggere l'input, non vedo variazioni collegandoli verso il +5 o verso gnd solo valori variabili e simili tra loro. Se li utilizzo come pin digitali vanno bene (prove fatte col 644 su bredboard senza altri collegamenti a parte 5v, gnd, quarzo e cond., resist. su reset).
Sono giorni che tutto funziona con collegato un lcd grafico, qualche i/o, e 2 termistori.... al secondo 644 ho solo caricato il bootloader e gli sketch di prova.
Cosa mi sfugge??

Ci ho capito qualcosa di piu.... i pin analogici vanno tutti, ma sono 'fuori posto'...
prima colonna
pin che 'dichiaro'

seconda col. pin che mi ritrovo
e terza pin corrispondente del 644

pin A0 -> A1 -> 39 dell'avr
pin A1 -> A0 -> 40 dell'avr
pin A2 -> A7 -> 33 dell'avr
pin A3 -> A6 -> 34 dell'avr
pin A4 -> A5 -> 35 dell'avr
pin A5 -> A4 -> 36 dell'avr
pin A6 -> A3 -> 37 dell'avr
pin A7 -> A2 -> 38 dell'avr

dovrebbe essere:

pin A0 ->40 dell'avr
pin A1 ->39 dell'avr
pin A2 ->38 dell'avr
pin A3 ->37 dell'avr
pin A4 ->36 dell'avr
pin A5 ->35 dell'avr
pin A6 -34 dell'avr
pin A7 ->33 dell'avr

Gli stessi 8 pin, se usati come digitali, sono a posto.....
Vado a pescare??
Grazie!

Che core stai usando?
Hai controllato il file pins_arduino.h del core?
Hai il 644 o il 644P?

Se prendi un'orata da 4 chili chiamami!!

L'orata è solo da 2kg..... ho risolto, non so come, ma ho risolto flashando ancora il bootloader, cosa fatta diverse volte senza esito.... non ho idea di cosa è cambiato....
Oltre al problema dei pin analogici, non mi ero accorto che i pin da D18 a D21 (da 24 a 27 dell'AVR) erano inutilizzabili, tutti a tensione costante di circa 1.7volts, e non si alzavano/abbassavano né leggevano nulla! Questo in entrambi i 644!!
Ho (ri)scoperto che programmando un avr via ICSP il bootloader se ne va!
Il core è quello del pacchetto di Leo v.1.01
Nel pins_arduino i pin sono mappati giusti.
Sono dei 644P.

Comunque ho risolto, anche se non ho capito come, il flash del bootloader mi è andato a vuoto per un pezzo, poi ha preso ad andare!
Sospetto problemi di seriale, a tratti per caricare lo sketch devo premere e rilasciare al momento giustissimo il pulsante di reset, poi per ore va benissimo!
Boh!!!

Sui problemi di programmazione via seriale del 644 e del 1284 ci sono lunghissimi topic sul forum.

Ciao, il pacchetto 1.01 è stato scritto per la vecchia versione dell'IDE 1.01, che non supportava nativamente quei chip.
Dall'IDE 1.02 in poi le cose sono cambiate ed ora il supporto è nativo, basta solo attivarlo.

Ti suggerisco perciò di recuperare il pacchetto aggiornato e di riprovare.
Come indichi i pin all'analogRead? Con 0..7 oppure con A0...A7?

Allora forse il casino che ho avuto è dovuto a questo… non avevo idea che gia l’ide dal 1.0.2 avesse il supporto nativo… ora ci studio sopra un pò… comunque gli analogRead li ho sempre indicati con A0…A7…
Grazie!

Recupera il pacchetto che ti ho detto e riprova.
Prova anche indicando i pin con 0…7 e dimmi se cambia qualcosa.

leo72:
Recupera il pacchetto che ti ho detto e riprova.
Prova anche indicando i pin con 0..7 e dimmi se cambia qualcosa.

Non ho capito dove recuperare il pacchetto....
Se indico i pin con 0..7, punta ai pin digitali..... comunque ora il problema non sussiste piu, tutti i pin sono a posto!

ivan64:
Non ho capito dove recuperare il pacchetto....

Dal mio sito (link in calce), no? :wink:

Se indico i pin con 0..7, punta ai pin digitali.....

Se scrivi analogRead(0) punta al pin analogico A0, come fa a puntare ai digitali, scusa?

Sto ancora dormendo....
Si, analogRead(0) punta correttamente al pin A0...

...e il tuo pacchetto lo sto appunto usando!!