programmare il 644 ... ma come????

:disappointed_relieved:
Niente da fare, non ne vuole sapere in alcun modo, le ho provate TUTTE sempre con l'identico risultato: lampeggia il led del reset del micro, poi tre lampeggi del led tx del convertitore (o del led rx di Arduino) e poi il solito errore di sincronismo.
Poi ho riprovato con il 644 (e FT232RL) e non funzionava più nemmeno col filtro (ma nel mio caso uso 10k+100p), allora ho ripristinato il C da 100nF in serie al RESET e si è rimesso a funzionare, a questo punto ho tolto il filtro e messo la R da 120k (ma anche una 330k è uguale) e funziona; se ricordate la prima prova che feci con successo fu quella di usare u partitore invece del filtro, col risultato di non rovinare il segnale e risolvere comunque; insomma in un modo o nell'altro io ho con il 644P la stessa situazione che Voi avete col 644P, mentre il 1284P non ne vuole in alcun modo.
Ovviamente ho ripetuto le prove con il C da 100nF sul reset, ma anche con 220n, 470n, 1µ ed infine anche un 10nF (giusto una cosa minima), ma non c'è niente da fare; figuratevi che se scollego completamente i due cavi tx e rx il convertitore si comporta allo stesso modo, proprio non ne vuole ]:smiley: Ho provato anche con delle pull-up/down da 10k, singole o incrociate o parallele: in questo caso anche il led rx inizia a dare segni di vita ma si vede che ognuno dei due lavora per conto proprio; ora devo scappare purtroppo, poi riprendiamo la questione.

@Michele
Beh,diciamo che hai buttato veleno :fearful:
Volevo chiederti se durante l'upload degli sketch hai per caso tenuto la sonda del DSO collegata al pin RX del micro.....

Non l'ho fatto per non introdurre ulteriori elementi di disturbo, avrei voluto farlo dopo per prendere qualche "appunto" ma il mio tempo/lab è stato bruscamente interrotto da ordini dall'alto ]:smiley: ]:smiley: ]:smiley:
Invece avevo intenzione di chiedere a te se fosse possibile fare un video, della fase UPLOAD-RESET-START in pratica dal comando fino a quando inizia il caricamento, collegando contemporaneamente tx ad un canale e rx all'altro, in modo sta studiarmi il comportamento e cercare di capire che cavolo non va; o almeno fai un confronto tra 644 e 1284 e vedi se si comportano allo stesso modo, tanto il 644 ce l'ho pure io e mi posso studiare quello, sperando di trovare un po' di tempo in più :sweat_smile:

Michele, hai provato a ponticellare il pin RX di Arduino con il pin RX0 del 1284 con la resistenza, senza inserire dei cavetti extra? A me andava solo in quel modo. Non so, forse può dipendere anche dalla basetta sottostante?
Altra prova, hai per caso un quarzo di clock inferiore? Tipo 8/10/12 MHz? Montando quello (senza toccare i fuse), riesci a programmarlo? Mi ricordo che io feci dei test con un risonatore ceramico da 12 MHz con esito positivo.

leo72:
Michele, hai provato a ponticellare il pin RX di Arduino con il pin RX0 del 1284 con la resistenza, senza inserire dei cavetti extra? A me andava solo in quel modo.

sì, l'ho infilata direttamente nell'header e nel foro accanto al pin

Non so, forse può dipendere anche dalla basetta sottostante?

no, come detto tolgo il 1284, metto al suo posto il 644 e funziona.

Altra prova, hai per caso un quarzo di clock inferiore? Tipo 8/10/12 MHz? Montando quello (senza toccare i fuse), riesci a programmarlo? Mi ricordo che io feci dei test con un risonatore ceramico da 12 MHz con esito positivo.

sono attrezzato da 1 a 40MHz, farò anche questa prova per curiosità, ma non ne colgo l'utilità, se anche funzionasse a che servirebbe?

Ciao ragazzi.. scusate se mi intrometto... ma io vi so seguito passo passo e ho fatto gli stessi collegamenti di Paolo S avendo lo stesso adattatore seriale (a dire il vero è del mio amico)
Ho fatto prima il caricamento del bootloader e del priogrammino BLINK via ISP con un arduino uno e funziona a meraviglia... Ho collegato poi l' adattatore seriale come da voi suggerito a Paolo S e mi da il solito messaggio not in sync.
Quando inizia il trasferimento dati, vedo che il led nel pin 13 lampeggia 2-3 volte e poi basta... continua con il BLINK caricato via ISP.
Ho un C da 100n in serie con il reset collegato al DTR. TX -> TX e RX ->RX..

Mi sono letto tutte ste pagine non so quante volte e sinceramente mi sembra tutto ok..
Grazie e scusate se magari vi annoierò sulla cosa, visto quanto è stata trattata.

Non annoi per niente, ci servono altri "tester" :slight_smile:
Da come hai descritto mi sembra che tu NON abbia caricato il bootloader sul micro, visto che hai ancora su il blink :wink:

Ho fatto prima il caricamento del bootloader e del priogrammino BLINK via ISP con un arduino uno e funziona a meraviglia... Ho collegato poi l' adattatore seriale come da voi suggerito a Paolo S e mi da il solito messaggio not in sync.

Se hai caricato prima il bootloader in ISP e subito dopo anche il BLINK in ISP perdi il bootloader e non puoi più caricare in seriale.
Devi prima mettere il BL in ISP e poi ,per caricare uno sketch,colleghi il chip in seriale ed attraverso un convertitore gli mandi lo sketch in seriale............Se hai seguito quanto detto finora e stai utilizzando anche tu il BL di Leo,puoi collegare sul pin 2 del micro un led con la sua R e,quando il micro riceve il reset dal convertitore,il led farà 3 lampeggi,poi inizieranno a lampeggiare i led TX/RX del convertitore e,appena finito di caricare,il led sul pin 2 farà altri 3 lampeggi ad indicare che il chip è pronto ad eseguire il codice appena caricato.......Quindi se lo sketch era il blink,il led sul D13 comincia a lampeggiare....

Invece avevo intenzione di chiedere a te se fosse possibile fare un video, della fase UPLOAD-RESET-START in pratica dal comando fino a quando inizia il caricamento, collegando contemporaneamente tx ad un canale e rx all'altro

Ciao Michele,io ho un DSO della GW instek comperato proprio dal link che hai dato a Leo in quanto conosco molto bene il proprietario(è di Torino) con SD card ma non riesco a capire se posso memorizzare in qualche maniera ciò che visualizza a display......Devo cercare il libretto di istruzioni....Ho scaricato il programmino che ti permette di vedere sul pc lo schermo del DSO ma se provo a registrare pare che tende ad inchiodare tutto quello che ho contemporaneamente in funzione sul pc.....dovrei provare ad aprire l'applicazione del DSO su un pc e caricare il micro da un'altro pc ....mmmmm ...solo che è un po un casino....
Se riesci/sai aiutarmi in questo ti posso fornire il video,altrimenti devo vedere comunque di risolvere la cosa..

Inizialmente su AvrFreaks dicevano che il bug della UART0 riguardasse solo le connessioni verso chip con clock di 20 MHz. Io però ho trovato che anche a 16 MHz c'era il problema. Abbassando invece a 12 MHz ero riuscito a caricare lo sketch.

Tonid, il mio DSO è proprio quello del link e dovrebbe avere la funzione di memorizzazione di un periodo, ma non l'ho provata nemmeno io; finora mi sono limitato a fare dei print screen sulla pen drive USB; dovrei studiarmi il manuale ma chi lo trova il tempo? Non ti preoccupare, non ne vale la pena, come detto dispongo del 644, posso fare alcune prove di caricamento e vedere il comportamento e poi confrontarlo "a memoria" col 1284P; inoltre in settimana entrante dovrebbero ritornarmi i due MCP2200 e poi riprenderò le prove ultime, anche con il CP2102 che a memoria mi pare fosse stato l'unico a permettermi di caricare sul 644 senza alcun fronzolo....

Leo, ciò che hai detto mi era chiaro pure prima, il ragionamento che faccio è: ammesso che funzioni che ne faccio di questa informazione? Non posso certo mettere in piedi una bestia del genere con un miserabile quarzo da 12MHz!

L'ideale sarebbe stato un analizzatore di stati logici,così si potevano vedere i 3 segnali ed il loro comportamento in funzione del tempo :0

Sì, chiaro. Era per capire solo se il chip potesse avere dei problemi di tolleranze interne.

@Michele: Effettivamente poi, pensandoci bene, mi era venuto proprio quel dubbio. Nel pomeriggio scarico nuovamente il bootloader. Ma ho un dubbio... devo impostare nell' ide il 644 16Mhz con o senza bootloader per scaricare appunto il bootloader. Io inizialmente avevo impostato "senza bootloader".

@Tonid: Si ho visto in questo topic il tip del led nel pin 2, ma per farlo devo modificare un file, che ora non ricordo il nome, e poi Leo dice di ricompilarlo.. Con ricompilare, cosa si intende ? Nel senso.. basta scaricare nuovamente il bootloader ? (nel farlo l' ide lo ricompila..) o c'è un compilatore particolare per questi micro ?

superzaffo:
@Michele: Effettivamente poi, pensandoci bene, mi era venuto proprio quel dubbio. Nel pomeriggio scarico nuovamente il bootloader. Ma ho un dubbio... devo impostare nell' ide il 644 16Mhz con o senza bootloader per scaricare appunto il bootloader. Io inizialmente avevo impostato "senza bootloader".

Devi scegliere "con" bootloader altrimenti l'IDE, oltre a non scriverlo, non programma i fuse per preservare lo spazio nella memoria.

@Tonid: Si ho visto in questo topic il tip del led nel pin 2, ma per farlo devo modificare un file, che ora non ricordo il nome, e poi Leo dice di ricompilarlo.. Con ricompilare, cosa si intende ? Nel senso.. basta scaricare nuovamente il bootloader ? (nel farlo l' ide lo ricompila..) o c'è un compilatore particolare per questi micro ?

Non importa ricompilarlo. Ho visto che nel makefile originale è già presente la voce per attivare l'output sul pin 2 per cui anche usando gli hex originali hai quella funzionalità

Scusa Leo, tanto per completare le mie conoscenze su questi micro, quindi c'è un compilatore ad hoc. O ho capito male ?

superzaffo:
Scusa Leo, tanto per completare le mie conoscenze su questi micro, quindi c'è un compilatore ad hoc. O ho capito male ?

No, il compilatore è sempre avr-gcc. Fino alla versione 002x dell'IDE serviva un core specifico per poterli usare con l'IDE di Arduino, dalla versione 1.0 in poi il supporto è stato lentamente integrato in Arduino stesso. Dalla versione 1.0.2 basta aggiungere le voci nel file boards.txt per usarli senza ulteriori modifiche.
L'unica cosa che non c'è nell'IDE è un bootloader specifico, che invece ha preparato un altro utente del forum, maniacbug. E che io ho integrato nel package che puoi scaricarti dal mio sito dove trovi insieme al file boards.txt

leo72:
No, il compilatore è sempre avr-gcc. Fino alla versione 002x dell'IDE serviva un core specifico per poterli usare con l'IDE di Arduino, dalla versione 1.0 in poi il supporto è stato lentamente integrato in Arduino stesso. Dalla versione 1.0.2 basta aggiungere le voci nel file boards.txt per usarli senza ulteriori modifiche.

Questa frase ricordo che l'hai già detta e lì per lì mi era sfuggita, ma ora è meglio approfondire: se è dalla 1.0.2 che non servono modifiche, io nella 1.0.1 avrei dovuto modificare qualcosa? non è che sto impazzendo per non aver fatto qualcosa sulla 1.0.1? :fearful: anche se c'è sempre il 644 che mi mette fuori strada.

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 :grin:

e cchi sse move de qua! :smiley: Grazie :*