Arduino Forum

International => Italiano => Hardware => Topic started by: paolosanna on Dec 10, 2012, 11:14 am

Title: programmare il 644 ... ma come????
Post by: paolosanna on Dec 10, 2012, 11:14 am
... ho acquistato alcuni atmel 644 .. perchè avevo bisogno di più pin...
ho anche acquistato questo:
http://www.ebay.it/itm/1x-ATMEGA328P-PU-Arduino-UNO-USB-2-0-TO-RS232-UART-KIT-ATMEGA328-/221121384301 (http://www.ebay.it/itm/1x-ATMEGA328P-PU-Arduino-UNO-USB-2-0-TO-RS232-UART-KIT-ATMEGA328-/221121384301)  ... per simulare la porta COM tramite USB ...

ho letto e scaricato questi.... http://www.leonardomiliani.com/?p=625 (http://www.leonardomiliani.com/?p=625)..

... ho guardato anche qui: http://arduino.cc/en/Main/Standalone (http://arduino.cc/en/Main/Standalone)

ma non sono riuscito a programmare questi 644 ....

avete qualche informazione o consiglio da darmi?


Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 10, 2012, 11:22 am
Paolo forse dovresti darci tu qualche info in più.... ;)
Intanto l'acquisto del primo link potevi risparmiartelo, disponendo di un Arduino, potevi tranquillamente programmarlo via ISP
Non ricordo se Leo avesse lavorato ad un bootloader, in caso contrario non potrai mai programmare il 644 con un Convertitore seriale e comunque dovresti prima caricare il bootloader via ISP.
Comunque intanto spiega come hai collegato l'HW e cosa hai tentato di fare e che errori hai ricevuto
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 10, 2012, 12:08 pm
Se Paolo ha seguito la mia guida, ha scaricato con pacchetto software contenente non solo i file da aggiungere al core per far riconoscere il micro ma anche un bootloader testato e funzionante.
http://www.leonardomiliani.com/?p=625
Per cui con gli strumenti che ho fornito egli può programmare questi chip sia con la tecnica ISP sia via seriale usando il bootloader.

Mi associo comunque alla richiesta di maggiori info su cosa non funzioni esattamente.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 10, 2012, 01:25 pm
allora adesso non ho il materiale per essere preciso, posso solo dire sommariamente cosa ho fatto:
da qui http://sanguino.cc/hardware (http://sanguino.cc/hardware) .... ho messo il quarzo, i due condensatore di da 22pf /connessi anche al GND), quello da 100nF tra +5V e GND, la resistenza ed il  led sul pin 1.. e basta. Non ho messo il circuito di reset etc..

Ho messo i +5V al pin 30, connesso anche al pin 10, il GND l'ho messo al pin 11 connesso anche al pin 31... come dallo schema di cui sopra.

Poi, sempre dal medesimo schema ho provato a connettere lo schema che lui chiama USB2TTL, che usa i seguenti pin del 644
usando i pin RXD, TXD, GND al convenrtitore seriale che ho acquistato.... naturalmente incrociando tx con rx e viceversa ....

Per michele: .. preferisco usare questo convertirore che un altro arduino.....

naturalmente ho scaricato la libreria di leo e l'ho aggiunta lla IDE 1.01 .... ma non vedo segni di vita ....
....

in linea di principio dovrebbe funzionare???? ...

oppure sto comettendo qualche errore grossolano?



Title: Re: programmare il 644 ... ma come????
Post by: ratto93 on Dec 10, 2012, 01:43 pm

allora adesso non ho il materiale per essere preciso, posso solo dire sommariamente cosa ho fatto:
da qui http://sanguino.cc/hardware (http://sanguino.cc/hardware) .... ho messo il quarzo, i due condensatore di da 22pf /connessi anche al GND), quello da 100nF tra +5V e GND, la resistenza ed il  led sul pin 1.. e basta. Non ho messo il circuito di reset etc..

Ho messo i +5V al pin 30, connesso anche al pin 10, il GND l'ho messo al pin 11 connesso anche al pin 31... come dallo schema di cui sopra.

Poi, sempre dal medesimo schema ho provato a connettere lo schema che lui chiama USB2TTL, che usa i seguenti pin del 644
usando i pin RXD, TXD, GND al convenrtitore seriale che ho acquistato.... naturalmente incrociando tx con rx e viceversa ....

Per michele: .. preferisco usare questo convertirore che un altro arduino.....

naturalmente ho scaricato la libreria di leo e l'ho aggiunta lla IDE 1.01 .... ma non vedo segni di vita ....
....

in linea di principio dovrebbe funzionare???? ...

oppure sto comettendo qualche errore grossolano?





Prima di poter programmare il micro devi inserirgli il bootloader, non l'ho mai fatto con quel micro ma è sicuramente così :)
Devi prendere arduino, caricarci lo schetck d'esempio Arduino ISP, collegare tramite interfaccia SPI (MISO,MOSI,SCK e il pin 10 al reset del micro target), poi vai su board, selezioni quella del mega644 e poi fai burn bootloader, così dovrebbe andare, se la procedura va a buon fine puoi passare a programmarlo via seriale
Title: Re: programmare il 644 ... ma come????
Post by: Augusto Picciani on Dec 10, 2012, 01:59 pm
Il bootloader lo devi caricare in ogni caso come giá ti é stato suggerito. Poi, per caricare gli sketch, non devi dimenticarti di mettere una resistenza di pull-up di 10k tra i 5V ed il pin di Reset del 644 (credo debba essere il pin 9) oltre al condensatore, in serie, tra il pin di reset e quello del programmatore (Arduino, oppure convertiore usb/seriale). Per il valore del condensatore prova pure quello da 1uf
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 10, 2012, 04:13 pm
Nel pacchetto che ho preparato c'è anche uno schema di collegamento. Vale anche per il 644, l'unica cosa che forse a te non serve è il circuito sulle linee RX/TX se usi il 644 perché quel filtro RC è stato aggiunto per un bug hardware che affligge alcuni lotti di 1284).

Per poterlo programmare via seriale ti serve flashare il bootloader ma prima di fare questa operazione, accertati di riuscire a comunicare con il micro. Senza bootloader, col tuo convertitore è normale che tu non riesca a comunicare via seriale con il 644.

Quindi io preparerei intanto un 644 standalone su una breadboard e ci flasherei sopra il bootloader tramite ISP: connetti i pin 10/11/12/13 di un Arduino UNO (con lo sketch ArduinoISP) rispettivamente ai piedini fisici 9/6/7/8, poi aggiungi ovviamente 5V e GND.
Aprendo l'IDE devi avere la voce "Amtega644 @ 16 MHz w/bootloader". Selezioni questa e poi  dai "scrivi bootloader".
Se tutto è andato per il meglio puoi adesso usare il tuo convertitore.
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Dec 10, 2012, 05:27 pm
x iscrizione.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 12, 2012, 09:04 am
.. allora... innanzitutto grazie per i vostri suggerimenti ...

... prima ho caricato sull'arduino da usare come programmatore lo sketc arduinoISP...

... ho eseguito le istruzoini di leo... ho scaricato il suo file.zip .. questo: 644P/1284P core for Arduino 1.0.2
. l'ho installato nella cartella hardware\arduino.. dell'IDE .. come da istruzioni...
ho copiato il contenuto del file new_entrie_for_boards .. nel file boards ...
.. sull'IDE ho seloezionato la board giusta ... (644 a 16 mhz.. for bootloader)..

ho attivato il trasferimento del bootloader .. i led TX, RX ed il led 9 hanno lampeggiato per quasi un minuto... nessun messaggio d'errore, ma solo il messaggio di avvenuto trasferimento del bootloader ...
... quindi ne deduco che il bbotloader sia stato caricato ....

adesso provo a tresferire uno skech ...
carico nell'IDE  l'esempio blink... per fare lampegguare il pin 13

seleziono nell'IDE  strumenti/tipo di arduino/la board 644 ISP ... (non bootloader)
selezione nell'IDE strumenti/programmatore/arduinoISP
attivo il tarsferimento del file con il pulsante "carica" e mi da errore (non posso scrivere qui il messaggio di errore perchè non ho la pennina dove ho memorizzato il tutto)...

dal menu file do il comando "carica con un programmatore" ....
apparentemente non mi da errore... cè il lampeggio dei led tx rx e il messaggio positivo a fine trasferimento

ma non funziona nulla
il primo problema e che non so la corrispondenza dei pin nel 644 .. li ho provati tutti ... ma niente...

le domande sono queste:
.. in linea di principio vi pare che il procedimento che sto seguendo sia quello giusto??
.. siccome uso l'IDE 1.0.1 .. può essere questo il problema?
.. come faccio a identificare i PIN nel 644??? .. ho guardato il datasheet e non trovo la corrispondenza tra A0, A1, A7 etc.. o i PIN 1,2,.. 10, 13 .. etc.. ho solo capito come sono raggrupati come PORTA, PORTC, PORTD etc....

suggerimenti idee??...

chiedo scusa se sono stato poco preciso ma sono in una pausa lavoro e non ho con me pennina con i risultati delle prove fatte ieri sera.. grazie
ciao


Title: Re: programmare il 644 ... ma come????
Post by: niki77 on Dec 12, 2012, 09:31 am
La corrispondenza dei pin la trovi nel file PINS_ARDUINO.H che risiede nella cartella

POSIZIONE DOVE HAI ARDUINO IDE\hardware\CARTELLA DEL CORE CHE HAI SCARICATO DA LEO\variants\VARIANTE CHE STAI UTILIZZANDO

Dove

POSIZIONE DOVE HAI ARDUINO IDE = percorso completo dove hai installato arduino (es. c:\arduino-1.0.1)
VARIANTE CHE STAI UTILIZZANDO = la reperisci aprendo il file BOARDS.TXT presente in POSIZIONE DOVE HAI ARDUINO IDE\hardware\CARTELLA DEL CORE CHE HAI SCARICATO DA LEO, leggendo l'impostazione .build.variant della scheda che hai selezionato)

ES. (nel mio caso uso una scheda che nel menù di arduino si trova con il nome di 'Mighty 1284p 16MHz using Optiboot')

mighty_opt.name=Mighty 1284p 16MHz using Optiboot
....
....
....
mighty_opt.build.core=standard
mighty_opt.build.variant=standard

In questo caso la board in oggetto avrà il suo file PINS_ARDUINO.H in

es.
c:\arduino-1.0.1\hardware\CARTELLA DEL CORE CHE STo UTILIZZANDO\variants\standard

All'interno di detto file ti troverai una parte di codice dove verranno mappati i pin del micro alle porte specifiche della mcu e il relativo bit .
In alcuni file vi è anche una tabella di corrispondenza,nel tuo dovrebbe esserci una cosa di questo tipo:


//                         ATMEL ATMEGA644P/1284P
//
//                               +---\/---+
//            PCINT8/(D0 ) PB0  1|        |40  PA0 (A0 / D24)/PCINT0
//            PCINT9/(D1 ) PB1  2|        |39  PA1 (A1 / D25)/PCINT1
//      PCINT10/INT2 (D2 ) PB2  3|        |38  PA2 (A2 / D26)/PCINT2
//      PCINT11/OC0A (D3 ) PB3  4|~       |37  PA3 (A3 / D27)/PCINT3
//   PCINT12/0C0B/SS (D4 ) PB4  5|~       |36  PA4 (A4 / D28)/PCINT4
//      PCINT13/MOSI (D5 ) PB5  6|        |35  PA5 (A5 / D29)/PCINT5
// PCINT14/OC3A/MISO (D6 ) PB6  7|~*      |34  PA6 (A6 / D30)/PCINT6
//  PCINT15/OC3B/SCK (D7 ) PB7  8|~*      |33  PA7 (A7 / D31)/PCINT7
//                         RST  9|        |32  AREF
//                         VCC 10|        |31  GND
//                         GND 11|        |30  AVCC
//                       XTAL2 12|        |29  PC7 (D23) TOSC2/PCINT23
//                       XTAL1 13|        |28  PC6 (D22) TOSC1/PCINT22
//       PCINT24/RX0 (D8 ) PD0 14|        |27  PC5 (D21) TDI/PCINT21
//       PCINT25/TX0 (D9 ) PD1 15|        |26  PC4 (D20) TDO/PCINT20
//  PCINT26/INT0/RX1 (D10) PD2 16|        |25  PC3 (D19) TMS/PCINT19
//  PCINT27/INT1/TX1 (D11) PD3 17|        |24  PC2 (D18) TCK/PCINT18
//      PCINT28/OC1B (D12) PD4 18|~       |23  PC1 (D17) SDA/PCINT17
//      PCINT29/OC1A (D13) PD5 19|~       |22  PC0 (D16) SCL/PCINT16
//      PCINT30/OC2B (D14) PD6 20|~      ~|21  PD7 (D15) OC2A/PCINT31
//                               +--------+
//
// *: OC3A/OC3B (and corresponding PWMs) are only present on Atmega1284


Tra parentesi tonde come vedi c'è il pin numerazione arduino corrispondente (D13 = digital 13, A1 = analog1)

Buon lavoro.

Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 12, 2012, 11:13 am
grazie niki .. utilissimo ......

per le prime due domande??? .. suggerimenti?????
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 12, 2012, 11:15 am
eppoi ho ancora un'altro dubbio: ... ma quindi con la tecnica ISP si può programmare qyualsiasi microcntrollore senza che ci sia il bootloader?.... dove trovo altre informazoni al riguardo?
Title: Re: programmare il 644 ... ma come????
Post by: PaoloP on Dec 12, 2012, 11:27 am
Dalla guida di Michele --> http://www.michelemenniti.it/vhd/Elettronica/GPAT_v4.pdf (http://www.michelemenniti.it/arduino_burn_bootloader.php) :smiley-mr-green:
D'altronde si chiama "Guida alle tecniche di programmazione dei microcontrollori ATMEL" e non "Guida alla programmazione di ARDUINO".  ]:)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 12, 2012, 11:28 am
@Paolo:
il procedimento è giusto, varia comunque in base a come vuoi usare il microcontrollore. Se metti un chip in standalone normalmente il bootloader non si usa, perché con la tecnica ISP puoi programmarlo direttamente, senza bootloader. Info le trovi nella guida del Menniti, è stata scritta inizialmente per programmare un Atmega328 ma i principi valgono per tutti i micro. L'idea di base è quella di usare lo sketch Arduino ISP come emulatore di un programmatore e collegare i pin D10/D11/D12/D13 dell'Arduino programmatore alle linee RESET/MOSI/MISO/SCK del chip di destinazione. MOSI/MISO/SCK sono le 3 linee della comunicazione SPI e le trovi nel datasheet, variano come corrispondenza da micro a micro.

Attenzione ad una cosa: se stai usando l'IDE 1.0.1 devi usare il pacchetto 644_1284 in versione 1.0.1! La versione 1.0.2 è per l'IDE 1.0.2 (e 1.0.3). Sono diversi perché nell'IDE 1.0.1 il supporto per il 644/1284 era incompleto e dovevano essere sostituiti 3 file del core dell'IDE.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 12, 2012, 11:51 am
Grazie PaoloP e Leo...

.... forse sbaglio, anzi probabilmente sbaglio... ma on mi piace l'idea di avere empre affianco un  altro arduino da usare come programmatore...anche perchè il 644 deve lavorare in comunicazione con un altro 328 fa da web server,.....   nella mia idea io volevo riservare nella breadboard i pin per la programmazione tramite l'emulatore USB Seriale che ho linkato nel primo post..

.. invece mi interessa la programmazione senza il boot loader direttamemnte dalla porta seriale del pc (o dall'emulatore USB-Seriale) ... ma nella guida di menniti (che ho guardato, anche se superficialmente) nonc'è nessun riferimento all'utilizzo della porta seriale direttamete dal pc e la connessione al microcontrollore ......

comunque adesso me la stampo a colori e stasera me la leggo bene....

Grazie ...

altri suggerimenti???? ... qualche link dove si tratta di questo argomento?
Title: Re: programmare il 644 ... ma come????
Post by: PaoloP on Dec 12, 2012, 12:17 pm
Non è possibile.
Il bootloader è un programma che permette di riprogrammare il microcontrollore dalla porta seriale. Senza bootloader niente programmazione seriale.
A questo punto ti conviene lascialo.

Ti consiglio comunque di prevedere il collegamento ai pin SPI per una programmazione di emergenza.
Se non vuoi usare un Arduino puoi usare un programmatore esterno ISP. C'è ne sono diversi in giro.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 12, 2012, 12:18 pm
Non puoi programmare via serial un chip senza bootloader.
Il bootloader è un particolare programma scritto dal team di Arduino che all'avvio del microcontrollore controlla appunto se sulla seriale sta arrivando un nuovo sketch. Se arriva, lo legge e contemporaneamente lo scrive sulla Flash. Se non c'è nulla, avvia il programma già presente. In questo caso ti serve un convertitore USB/seriale.

Senza bootloader l'unico modo per scrivere il nuovo sketch è appunto la programmazione ISP, che usa la comunicazione SPI del micro. Quindi ti serve o un programmatore o un Arduino che lo emuli.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 12, 2012, 01:52 pm
ok..
allora per la programmazione via seriale, con il mio emulatore USB, devo metterci il bootloadr..e credo che farò così....
.. le indicazioni le trovo nella guida di menniti? ... la tecnica seriale.. mi pare che sia stata chiamata così..!!! .. questa è valida anche per il 644??? come si utilizza?? ... perchè menniti parla del 328 ... mi pare ....

invece la programmazoine ISP è anch'essa trattata da menniti ma per il 328.. dove prende i collegamenti dal connettore ISP... ma come faccio sul 644 standalone????


Title: Re: programmare il 644 ... ma come????
Post by: PaoloP on Dec 12, 2012, 02:18 pm

invece la programmazoine ISP è anch'essa trattata da menniti ma per il 328.. dove prende i collegamenti dal connettore ISP... ma come faccio sul 644 standalone????



@Paolo:
il procedimento è giusto, varia comunque in base a come vuoi usare il microcontrollore. Se metti un chip in standalone normalmente il bootloader non si usa, perché con la tecnica ISP puoi programmarlo direttamente, senza bootloader. Info le trovi nella guida del Menniti, è stata scritta inizialmente per programmare un Atmega328 ma i principi valgono per tutti i micro. L'idea di base è quella di usare lo sketch Arduino ISP come emulatore di un programmatore e collegare i pin D10/D11/D12/D13 dell'Arduino programmatore alle linee RESET/MOSI/MISO/SCK del chip di destinazione. MOSI/MISO/SCK sono le 3 linee della comunicazione SPI e le trovi nel datasheet, variano come corrispondenza da micro a micro.

Attenzione ad una cosa: se stai usando l'IDE 1.0.1 devi usare il pacchetto 644_1284 in versione 1.0.1! La versione 1.0.2 è per l'IDE 1.0.2 (e 1.0.3). Sono diversi perché nell'IDE 1.0.1 il supporto per il 644/1284 era incompleto e dovevano essere sostituiti 3 file del core dell'IDE.


Il ragazzo non legge con attenzione e non si applica.  ]:D ]:D ]:D

Datasheet
644A e 644PA --> http://www.atmel.com/Images/doc8272.pdf
644P/V --> http://www.atmel.com/Images/8011S.pdf
644/V  --> http://www.atmel.com/Images/doc2593.pdf
Quale hai?
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 12, 2012, 03:29 pm
hai ragione ... omonimo!!!!
.. chiedo scusa.

Ho capito che per la programmazione ISP devo usare RESET/MOSI/MISO/SCK del microcontrollare e fin qui ci siamo. Ma se non voglio usare arduino per emulare la seriale ,se volessi usare una seriale vera e propria, la corrisopndenza dei pin della seriale DB9 che mi occorrono li trovo nella guida di menniti?

Stasera riproverò... per i 644 credo di avere i PA.... ma dovrei verificare stasera ...
ciao
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 12, 2012, 03:39 pm
Tra 644, 644V, 644P e 644PA a livello di piedinatura non cambia quasi nulla.
I modelli "non P" non hanno il core PicoPower per cui non gestiscono il risparmio energetico in maniera ottimale. Sono da sconsigliare per progetti standalone dove vuoi mettere in sleep il micro.
Il modello "V" è una vecchia serie che reggeva una tensione di alimentazione minima di 1,8V: per contro il clock era max di 10 MHz.
Il modello "A" è una revisione del core che permette di lavorare a 1,8V minimi mantenendo un core capace di lavorare max a 20 MHz. Nell'acquisto, quindi, scegliere sempre il modello "644PA" possibilmente, che oltretutto costa anche meno dei precedenti 644V e 644P integrando le cose buone di entrambi.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 12, 2012, 05:05 pm
@ Paolo S: come ti hanno spiegato io ho scritto la Guida basandomi sul 328P, i principi sono identici, quindi per la programmazione ISP devi "localizzare" sul modello di 644 che usi i segnali MISO, MOSI, SCK, RESET e poi collegare in parallelo le alimentazioni, nel senso che 5V e GND il 644 li deve prendere (per comodità, ma il GND sarebbe comunque obbligatorio) dall'Arduino. Per la programmazione seriale, una volta che hai caricato il bootloader sul 644, puoi continuare ad usare Arduino, sempre in base a come scritto nella Guida, senza necessariamente comprare un Convertitore, se non lo hai già. Anche in questo caso devi localizzare i pin TX/RX/RESET, ma il 644 ha più seriali, immagino che il core si riferisca alla prima, al massimo vai a tentativi.

@ Leo: non ho controllato ma penso che il 644 possa lavorare a 1,8V e 20MHz, ma NON contemporaneamente, se lo alimenti a 1,8V hai comunque una limitazione del clock massimo.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 12, 2012, 10:33 pm

@ Leo: non ho controllato ma penso che il 644 possa lavorare a 1,8V e 20MHz, ma NON contemporaneamente, se lo alimenti a 1,8V hai comunque una limitazione del clock massimo.

Do per scontato che quando scrivo che può lavorare a 1,8V lo intendo non certamente a 20 MHz. Sono da rispettare le tabelle nel datasheet.
Poi, come detto, il "644" è una cosa, questo chip effettivamente esiste. Ma è a 2,7V e 20 MHz. Poi c'è il 644V, a 1,8V di tensione minima ma solo 10 MHz di tensione massima (ovviamente innalzando la tensione).
In questa pagina:
http://atmel.com/devices/ATMEGA644.aspx
ci sono tensione minima e clock massimo per i 644 e 644V. Il 644 è dato per 2,7V/20 MHz mentre il 644V per 1,8V/10 MHz.

Qui il 644A:
http://atmel.com/devices/ATMEGA644A.aspx
come vedi, 20 MHz e 1,8V

Qui invece il 644P/V
http://atmel.com/devices/ATMEGA644P.aspx
Il 644P va a 2,7V/20 MHz mentre il 644PV va a 1,8V/10 MHz. Entrambi con core PicoPower

E qui il 644PA:
http://atmel.com/devices/ATMEGA644PA.aspx
1,8V/20 MHz con core PicoPower
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 13, 2012, 08:35 am
cari leo e menniti...

ok... credo di avere capito come procedere con la programmazione ISP...

... in effetti ieri ci sono risucito a riprogrammare il 644 usando questa configurazione
Quote from: Leo
connetti i pin 10/11/12/13 di un Arduino UNO (con lo sketch ArduinoISP) rispettivamente ai piedini fisici 9/6/7/8,

che dovrebbe essere questa tecnica ISP. Ok.. funziona e sto gia "migrando" il codice dal 328 al 644 ....

Ho provato anche la programmazione seriale (sui primi tx e rx), presa dal manuale Menniti .... ma non sono riuscito.... puo darsi che magari non fosse andata a buon fine la scrittura del bootloader e quindi non abbia funzionato per questo.... stasera riproverò....

Per quanto riguarda la programmazine seriale non posso (e non voglio) usare un altro arduino ma preferisco lasciare  sulla board i pin su cui inserire il convertitore USB - seriale che ho comprato.

... quindi se la programmazione seriale non ha funzionato i motivi potrebbere due:
- o il bootloader non è stato caricato bene .. (anche se il messaggio di fine trasferimento confermava il buon esito!!!)
- non ho usato la giusta copia di rx - tx  sul 644

quindi la domande sono:
- è giusto quanto sopra, sulle possibili cause del malfunzionamento?
- esiste un metodo certo per verificare la presenza del bootloader nel micro?

ed ancora

- i pin utilizzati per l'ISP (MISO, MOSI, SCK) .. opsso comunque utilizzarli, durante il normale funzionamento , come pin di OUT/IN  ???

... comunque confermo che il 644 sta funzionando regolarmente programmato con l'ISP, con il 30 % di script già "tradotto"  per il 644 .. e sono già soddisfatto ....
saluti

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 13, 2012, 08:53 am
Bene, bene, partiamo dalla programmazione seriale, i collegamenti da fare sono: (premesso che il 644 deve essere configurato con quarzo e condensatori e R da 10K tra reset [pin 9] e 5V, per la frequenza a cui l'hai programmato)
TX convertitore al pin 14 del 644
RX convertitore al pin 15 del 644
5V covertitore ai pin 10 e 30 del 644
GND del convertitore ai pin 11 e 31 del 644
RESET/DTR/RST/RTS del convertitore (è sempre lo stesso pin, non so come si chiama sul tuo) ad un C da 100nF, l'altro capo del C da 100nF al pin 9 del 644
In caso di insuccesso puoi bypassare il C da 100nF, ma in genere serve

Quote
- è giusto quanto sopra, sulle possibili cause del malfunzionamento?
- esiste un metodo certo per verificare la presenza del bootloader nel micro?

sì alla prima domanda, segui le mie istruzioni per la prova; no alla seconda domanda, o meglio temo che la cosa sia abbastanza complessa, però se la procedura di caricamento è andata a buon fine stai tranquillo che il bl c'è ;)

Quote
- i pin utilizzati per l'ISP (MISO, MOSI, SCK) .. opsso comunque utilizzarli, durante il normale funzionamento , come pin di OUT/IN  ???

sì, senza alcuna limitazione, invece devi stare attento a che siano completamente liberi quando decidi di riprogrammare il micro; ma se l'ISP lo usi solo per il bl in seguito non ti serviranno più.

Quote
... comunque confermo che il 644 sta funzionando regolarmente programmato con l'ISP, con il 30 % di script già "tradotto"  per il 644 .. e sono già soddisfatto ....

certamente mi sono perso qualcosa, perché non capisco questa frase :smiley-roll-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 13, 2012, 09:06 am
Grazie michele .. gentilissimo e chiarissimo....

l'ultima frase era solo per rafforzare quanto scritto prima da me....


ok... credo di avere capito come procedere con la programmazione ISP...
... in effetti ieri ci sono risucito a riprogrammare il 644 usando questa configurazione
Quote from: Leo
connetti i pin 10/11/12/13 di un Arduino UNO (con lo sketch ArduinoISP) rispettivamente ai piedini fisici 9/6/7/8,

che dovrebbe essere questa tecnica ISP. Ok.. funziona e sto gia "migrando" il codice dal 328 al 644 ....


... niente di importante ... stasera riproverò.. ciao
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 13, 2012, 12:58 pm
Un modo per sapere se il bootloader funziona ci sarebbe. Se hai scaricato il mio pckage, apri il file /hardware/arduino/booloaders/1284p/optiboot.c e cercare intorno alla riga 187 il seguente codice:

Code: [Select]
#ifndef LED_START_FLASHES
#define LED_START_FLASHES 0
#endif



Metti il numero di flash che vuoi e poi ricompila.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 13, 2012, 01:07 pm
e questo fa lampeggiare un LED? quale?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 13, 2012, 10:26 pm

e questo fa lampeggiare un LED? quale?

E' scritto nel file pins_def.h presente nella stessa cartella. Per il 644/1284 si tratta del pin PB1, che sarebbe il 2° piedino.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 13, 2012, 10:30 pm


e questo fa lampeggiare un LED? quale?

E' scritto nel file pins_def.h presente nella stessa cartella. Per il 644/1284 si tratta del pin PB1, che sarebbe il 2° piedino.


per Paolo non per me, se attiva quella riga senza collegare nulla all'esterno non si accorgerà comunque di niente :)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 13, 2012, 10:47 pm



e questo fa lampeggiare un LED? quale?

E' scritto nel file pins_def.h presente nella stessa cartella. Per il 644/1284 si tratta del pin PB1, che sarebbe il 2° piedino.


per Paolo non per me, se attiva quella riga senza collegare nulla all'esterno non si accorgerà comunque di niente :)

Beh, questo è scontato  ;)
Cmq era stato domandato come poter avere la certezza che il bootloader fosse stato caricato correttamente e stesse funzionando, quello è il modo più semplice, che sfrutta lo stesso codice del bootloader.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 13, 2012, 11:05 pm
infatti è perfetto, abbiamo fatto tutto sto casino solo perché intendevo dirti che accanto al suggerimento potevi dirgli direttamente che doveva collegare un led al pin 2 tramite una R in serie :D
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 13, 2012, 11:18 pm
Ma così non gli davo il suggerimento di andare a studiarsi il core che ha scaricato. Invece così sa che ci sono dei file che fanno alcune cose, che quei file li può modificare e che modificandoli può personalizzarsi il core.
Diciamo che stasera mi sento molto insegnante, va' ... sarà che a forza di ragionare con te mi sto professorizzando  :smiley-yell:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 13, 2012, 11:45 pm

Ma così non gli davo il suggerimento di andare a studiarsi il core che ha scaricato. Invece così sa che ci sono dei file che fanno alcune cose, che quei file li può modificare e che modificandoli può personalizzarsi il core.
Diciamo che stasera mi sento molto insegnante, va' ... sarà che a forza di ragionare con te mi sto professorizzando  :smiley-yell:

Ottimo, caro collega, concordo con la Sua disquisizione, da approfondire in sede opportuna XD
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 14, 2012, 10:12 am
Grazie per gli "spiegoni" ... ad entrambi naturalmente.
Ma se siete d'accordo continuerei con le domande!!!!

sul 328, in una parte del codice, leggevo i 4 bit della porta D così:
Code: [Select]
charDTMF_value = (PIND)>>4;   // legge i bit della porta D e shifta a destra di 4 (estrae un valore tra 0 e 15)

adesso nel 644 volevo collegarlo ai primi PIN della porta B, ovvero:
           
Code: [Select]
PCINT8/(D0 ) PB0  1|   
            PCINT9/(D1 ) PB1  2|
   PCINT10/INT2 (D2 ) PB2  3|
  PCINT11/OC0A (D3 ) PB3  4|


nel 644 dovrei leggerlo così
Code: [Select]
charDTMF_value = (PINB)>>4;   // legge i bit della porta B e shifta a destra di 4 (estrae un valore tra 0 e 15)

.. ma mi sfugge quale dei bit è più significativo e quale no... insomma ddevo shiftare di 4 posti o no? siccome non riesco a farlo funzionare...

un'altra cosa:
- per fare il debug devo fare funzionare il serial monitor... siccome la programmazione la faccio tramite ISP .. niente serial monitor!!! giusto?

ed ancora:
- la funzione che legge  questo: "charDTMF_value = (PINB)>>4" è attivata con l'interrupt che sul 644 ho messo sul n° 0,
PCINT26/INT0/RX1 (D10) PD2 16 (dalla mappattura dei PIN del 644)
cioè il PIN 16 del microcontrollore, dove cè anche il RX1...
quindi siccome ci sono funzioni che inviano dati anche alla seriale, è possibile che il fatto che sia attivita RX sul pin 16 mandi a quel paese l'interrupt?

suggerimenti??... consigli???



Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 14, 2012, 10:35 am

Grazie per gli "spiegoni" ... ad entrambi naturalmente.
adesso nel 644 volevo collegarlo ai primi PIN della porta B, ovvero:
           
Code: [Select]
PCINT8/(D0 ) PB0  1|   
            PCINT9/(D1 ) PB1  2|
   PCINT10/INT2 (D2 ) PB2  3|
  PCINT11/OC0A (D3 ) PB3  4|


nel 644 dovrei leggerlo così
Code: [Select]
charDTMF_value = (PINB)>>4;   // legge i bit della porta B e shifta a destra di 4 (estrae un valore tra 0 e 15)

In questo modo non leggerai nulla di valido, o per meglio dire otterrai il valore di pin PB4..PB7 sui primi 4 bit.
Uno shift è uno scorrimento, se scorri 1 byte di 4 posizioni verso destra perdi il valore dei primi 4 bit meno significativi, su cui troverai il valore dei 4 bit più significativi.
Esempio:
byte 11000011
Se fai byte >> 4 poi byte vale 00001100(0011) perché i bit 0011 sono usciti da destra, e li hai persi.

Quote

.. ma mi sfugge quale dei bit è più significativo e quale no... insomma ddevo shiftare di 4 posti o no? siccome non riesco a farlo funzionare...

Il "peso" dei bit si misura da sinistra a destra.
76543210
Quindi il bit 7 è quello più significativo, il bit 0 quello meno significativo.
Ma tu cosa intendi fare? Leggere solo i primi 4 bit di quella porta?
Allora usa un AND bit a bit.
Fai PINB & 0b0001111, in questo modo ti verranno restituiti solo i 4 bit a destra, perdendo gli altri.

Quote

un'altra cosa:
- per fare il debug devo fare funzionare il serial monitor... siccome la programmazione la faccio tramite ISP .. niente serial monitor!!! giusto?

Non dipende da come programmi il chip ma dal fatto che tu usi o meno la seriale nel tuo sketch.

Quote

ed ancora:
- la funzione che legge  questo: "charDTMF_value = (PINB)>>4" è attivata con l'interrupt che sul 644 ho messo sul n° 0,
PCINT26/INT0/RX1 (D10) PD2 16 (dalla mappattura dei PIN del 644)
cioè il PIN 16 del microcontrollore, dove cè anche il RX1...

No, la seconda seriale esiste solo sul 1284.
Mi sa che ti devi leggere il datasheet della famiglia 344/644/1284 prima di continuare.

Quote

quindi siccome ci sono funzioni che inviano dati anche alla seriale, è possibile che il fatto che sia attivita RX sul pin 16 mandi a quel paese l'interrupt?

suggerimenti??... consigli???

Studia.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 14, 2012, 11:49 am

In questo modo non leggerai nulla di valido, o per meglio dire otterrai il valore di pin PB4..PB7 sui primi 4 bit.
Uno shift è uno scorrimento, se scorri 1 byte di 4 posizioni verso destra perdi il valore dei primi 4 bit meno significativi, su cui troverai il valore dei 4 bit più significativi.
Esempio:
byte 11000011
Se fai byte >> 4 poi byte vale 00001100(0011) perché i bit 0011 sono usciti da destra, e li hai persi.


devo leggere i 4 bit di informazionepresenti nei primi 4 PIN della porta B del 644, ovvero
D0  1|   
D1  2|
D2  3|
D3  4|

- quindi quando leggo la porta B, il D0 è il meno significativo!! giusto?

per l'utilizzo della seriale ....
Quote

Non dipende da come programmi il chip ma dal fatto che tu usi o meno la seriale nel tuo sketch.


si. la seriale la uso. ma nella connessione  per la programmazione ho la connessione ISP, non quella seriale. Siccome non sono riuscito a ricevere dati nel serial monitor ne ho dedotto che la connessione ISP non consente ai dati seriali di raggiungere il serial monitor.. quindi niente debug....
pensavo di collegare direttamete il tx del 644 al rx dell'arduino usato come programatore ISP  e viceversa per il rx <-- tx ..

circa questo
Quote

No, la seconda seriale esiste solo sul 1284.
Mi sa che ti devi leggere il datasheet della famiglia 344/644/1284 prima di continuare.

il problema e con l'inglese ....

e per questo:
Quote

Studia.

.. il problema è sempre con l'inglese!!!! ... ma grazie di tutto, anche del consiglio!!!  ;)

Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 14, 2012, 02:47 pm


In questo modo non leggerai nulla di valido, o per meglio dire otterrai il valore di pin PB4..PB7 sui primi 4 bit.
Uno shift è uno scorrimento, se scorri 1 byte di 4 posizioni verso destra perdi il valore dei primi 4 bit meno significativi, su cui troverai il valore dei 4 bit più significativi.
Esempio:
byte 11000011
Se fai byte >> 4 poi byte vale 00001100(0011) perché i bit 0011 sono usciti da destra, e li hai persi.


devo leggere i 4 bit di informazionepresenti nei primi 4 PIN della porta B del 644, ovvero
D0  1|   
D1  2|
D2  3|
D3  4|

- quindi quando leggo la porta B, il D0 è il meno significativo!! giusto?

Giusto! (metto il "!" visto che a te piacciono i punti esclamativi  :P)
Però tu scrivevi prima che volevi fare uno shift, perché?
Se shifti di 4 posizioni la lettura dei primi 4 bit, li perdi. Questo lo hai capito? Non rispondi alle mie domande...
Quote
Ma tu cosa intendi fare? Leggere solo i primi 4 bit di quella porta?


Quote

per l'utilizzo della seriale ....
Quote

Non dipende da come programmi il chip ma dal fatto che tu usi o meno la seriale nel tuo sketch.


si. la seriale la uso. ma nella connessione  per la programmazione ho la connessione ISP, non quella seriale. Siccome non sono riuscito a ricevere dati nel serial monitor ne ho dedotto che la connessione ISP non consente ai dati seriali di raggiungere il serial monitor.. quindi niente debug....

La connessione SPI serve per la programmazione: SPI = Serial Programming Interface.
La linea SPI non la puoi usare per l'invio dei dati. Una volta programmato il chip, devi approntare la connessione seriale.

Quote

pensavo di collegare direttamete il tx del 644 al rx dell'arduino usato come programatore ISP  e viceversa per il rx <-- tx ..
Quote

Appunto. SPI è una cosa, seriale è un'altra.

Quote

No, la seconda seriale esiste solo sul 1284.
Mi sa che ti devi leggere il datasheet della famiglia 344/644/1284 prima di continuare.

il problema e con l'inglese ....

e per questo:
Quote

Studia.

.. il problema è sempre con l'inglese!!!! ... ma grazie di tutto, anche del consiglio!!!  ;)



Se aspetti che Atmel rilasci un datasheet in italiano, fai prima a cambiare hobby  ;)
Tutti i datasheet, anche quelli dei componenti, sono scritti tutti in inglese. Un minimo di conoscenza della lingua ti serve, altrimenti non ti puoi muovere.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 14, 2012, 04:36 pm
Ciao leo.... innanzitutto scusami perchè mi sembra che sto mettendo a dura prova la tua pazienza ...


Esempio:
byte 11000011
Se fai byte >> 4 poi byte vale 00001100(0011) perché i bit 0011 sono usciti da destra, e li hai persi.
Questo lo hai capito? Non rispondi alle mie domande...
Ma tu cosa intendi fare? Leggere solo i primi 4 bit di quella porta?

Si esatto devo leggere solo i primi 4 bit e ricavare il valore contenuto dai primi 4 bit (tra 0 e 15) ....
ciò perchè ho deciso di usare i primi quattro pin della porta B, se avessi usato i pin dal 4 al 7 avrei dovito fare il bitwise con 00001111 ... e non fare nessuno shift. almeno così mi pare di avere capito!!!!

Quote

Se aspetti che Atmel rilasci un datasheet in italiano, fai prima a cambiare hobby  ;)
Tutti i datasheet, anche quelli dei componenti, sono scritti tutti in inglese. Un minimo di conoscenza della lingua ti serve, altrimenti non ti puoi muovere.


si... qualcosa cerco di leggere ma arrivo fin dove posso..... per il resto leggo a destra e a manca.... dove capita...
grazie comunque...
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 14, 2012, 04:49 pm

Ciao leo.... innanzitutto scusami perchè mi sembra che sto mettendo a dura prova la tua pazienza ...


Esempio:
byte 11000011
Se fai byte >> 4 poi byte vale 00001100(0011) perché i bit 0011 sono usciti da destra, e li hai persi.
Questo lo hai capito? Non rispondi alle mie domande...
Ma tu cosa intendi fare? Leggere solo i primi 4 bit di quella porta?

Si esatto devo leggere solo i primi 4 bit e ricavare il valore contenuto dai primi 4 bit (tra 0 e 15) ....
ciò perchè ho deciso di usare i primi quattro pin della porta B, se avessi usato i pin dal 4 al 7 avrei dovito fare il bitwise con 00001111 ... e non fare nessuno shift. almeno così mi pare di avere capito!!!!

E' alla rovescia... Comunque tutto dipende da dove vuoi avere quei 4 bit. Se li vuoi avere nelle prime 4 posizioni di una variabile, allora leggi la porta e basta.
Ti ricordo che esistono anche istruzioni appositamente scritte per chi è un po' a digiuno in fatto di manipolazione dei singoli bit. Leggi questa:
http://arduino.cc/en/Reference/Bit
e le funzioni linkate in fondo.
Title: Re: programmare il 644 ... ma come????
Post by: Maurotec on Dec 14, 2012, 04:55 pm
Non credo si tratti di pazienza, e che se non hai capito serve spiegare quel concetto con altri esempi, ovviamente a te serve arrivare all'obiettivo e sacrifichi volentieri di imparare le operazioni di shift.
                       
Se prenti 8 bit
7             0
1111 1111  

Il bit 0 e il meno significativo, mentre il 7 e più significativo. Per prelevare il valore dei primi 4 bit (0-4) serve impostare i bit 5-7 tutti a zero, oppure fare un operazione logica di and tra il numero x è una maschera.

La maschera in questo caso equivale al numero 15 che in binario significa impostare i primi 4 bit ad 1, così 0000 1111.

L'operazione and sarà simile a questa:
x = 0110 0110 (102 decimale)
result = x  & 15
o se preferisci in formato esadecimale:
x = 0x66
result = x  & 0xf

result conterrà il valore 6.

Ciao.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 14, 2012, 05:12 pm
Per Mauro....

in realtà come fare ed usare le operazoini di bitwise l'ho capito e lo sto usando regolarmente in diversi progetti .... il mio dubbio, probabilmente perchè non mi sono spiegato a sufficienza, consisteva in questo:
.. siccome sto prelevando 4 bit dalla porta B del 644, a partire dal pin1 (D0), il mio dubbio era:
- sto prelevando questo: 11110000
- oppure questo: 00001111  ...
poi per trattarli con il bitwise per estrarre ciò che mi serve, credo di arrangiarmi, me l'avete spiegato voi stessi in molti altri post....

ad ogni buon conto ringrazio per la gentile disponibilità....

io capisco che a chi è esperto e pratico le domande banali, magari su argomenti affrontati decine di volte, rischiano di urtare, ma chi ha bisogno chiede ... gentilmente e senza nessuna pretesa. Poi se uno ritiene di rispondere, innazitutto lo ringrazio, poi interloquisco, chiedo chiarimenti... sempre fintanto che all'interlocutore gli và di rispondere .....
ciao 

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 14, 2012, 07:47 pm
Non stai urtando nessuno, poi ognuno ha i propri modi per rispondere, se gli va... devi però abituarti ad essere un po' più sintetico e chiaro e soprattutto a fare attenzione a ciò che ti si chiede, serve per capire meglio la problematica, se pensi solo a chiedere e mai a rispondere poi diventa difficile aiutarti, nessuno riesce a leggere nel pensiero ecco perché la chiarezza è fondamentale. Ciao :)
Title: Re: programmare il 644 ... ma come????
Post by: Maurotec on Dec 14, 2012, 10:14 pm
Condivido il pensiero di Menniti.

Quote

Non credo si tratti di pazienza, e che se non hai capito serve spiegare quel concetto con altri esempi, ovviamente a te serve arrivare all'obiettivo e sacrifichi volentieri di imparare le operazioni di shift.


Quello sopra è un mio pensiero che non è detto corrisponda a verità

Quote
in realtà come fare ed usare le operazoini di bitwise l'ho capito e lo sto usando regolarmente in diversi progetti .... il mio dubbio, probabilmente perchè non mi sono spiegato a sufficienza, consisteva in questo:
.. siccome sto prelevando 4 bit dalla porta B del 644, a partire dal pin1 (D0), il mio dubbio era:
- sto prelevando questo: 11110000
- oppure questo: 00001111  ...
poi per trattarli con il bitwise per estrarre ciò che mi serve, credo di arrangiarmi, me l'avete spiegato voi stessi in molti altri post....


Ho capito male io allora, sembrava non fossi in grado di estrapolare i primi 4 bit meno significativi.

Ti consiglio di procurarti un software con al funzione di calcolatrice binaria, io uso quello in dotazione a GNOME di GNU/Linux, che mi permette di fare il bitwise e vedere subito il risultato sia in decimale, esa e binario. Quando invece devo testare molte bitwise e cose più complicate uso scrivere un programma di test in C/C++ che poi faccio girare sul pc, così evito di scrivere in flash.

Quote
io capisco che a chi è esperto e pratico le domande banali, magari su argomenti affrontati decine di volte, rischiano di urtare, ma chi ha bisogno chiede ... gentilmente e senza nessuna pretesa. Poi se uno ritiene di rispondere, innazitutto lo ringrazio, poi interloquisco, chiedo chiarimenti... sempre fintanto che all'interlocutore gli và di rispondere .....


Condivido in pieno, ma alle volte non va di rispondere con una soluzione, ma viene voglia di fare il professore, spiegando nel dettaglio. Sai, se c'è un altro, oltre a me, che sa quello che so io, ci sono più probabilità che questo risponda al posto mio, e così è stato fino a oggi.

Ciao.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 14, 2012, 11:21 pm

.. siccome sto prelevando 4 bit dalla porta B del 644, a partire dal pin1 (D0), il mio dubbio era:
- sto prelevando questo: 11110000
- oppure questo: 00001111  ...

Ti avevo già risposto a questo quesito. Il bit meno significativo è quello più a destra. Quindi se leggi D0/D1/D2 ecc... i bit saranno il 1° il 2°, il 3° ecc... del byte in cui li metti.
Nel tuo caso, la seconda risposta: 00001111
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 16, 2012, 12:34 pm
Chiedo scusa per il ritardo .. ma ieri ed non mi sono potuto collegare ...

per Michele

Non stai urtando nessuno,...... se pensi solo a chiedere e mai a rispondere poi diventa difficile aiutarti,....


non mi ero accorto di non aver risposto a qualcosae mi scuso per questo!!  ... si, certamente cerco di essere sempre sintetico al massimo e, di conseguenza, mi rendo conto che questo non faciliti il compito di chi potrebbe darmi una risposta. Certamente gli sarebbe più facile se avesse ben chiaro il pensiero di chi chiede, cosa esattamente ha fatto, cosa sta facendo, cosa ha capito etc.... .. 



Quote
io capisco che a chi è esperto e pratico le domande banali, magari su argomenti affrontati decine di volte, rischiano di urtare, ma chi ha bisogno chiede ... gentilmente e senza nessuna pretesa. Poi se uno ritiene di rispondere, innazitutto lo ringrazio, poi interloquisco, chiedo chiarimenti... sempre fintanto che all'interlocutore gli và di rispondere .....

Condivido in pieno, ma alle volte non va di rispondere con una soluzione, ma viene voglia di fare il professore, spiegando nel dettaglio. Sai, se c'è un altro, oltre a me, che sa quello che so io, ci sono più probabilità che questo risponda al posto mio, e così è stato fino a oggi.
Ciao.

... si ma io apprezzo comunque chi oltre alla risposta semplice e diretta mi da anche spiegazioni, spunti per leggere e capire magari più approfonditamente. Nessun problema insomma. Solo apprezzamenti. E' solo che dal tono di qualche risposta avevo percepito, come dire, che un leggero disturbo aveva afflitto i polpastrelli di chi digitava la risposta in quel momento ... (scherzo naturalmnete ...  ;) ... ma qui si rischia di uscire OT ....)
Comunque voglio ribadire il mio ringraziamento per quegli utenti particolarmente attivi in questo forum che regolarmenmte affrontano e risolvono i più banali problemi di noi dilettanti, .... e che fanno in tempo a rispondere a tutti.



Per Leonardo

Ti avevo già risposto a questo quesito. Il bit meno significativo è quello più a destra. Quindi se leggi D0/D1/D2 ecc... i bit saranno il 1° il 2°, il 3° ecc... del byte in cui li metti.
Nel tuo caso, la seconda risposta: 00001111

... si Leo grazie ora ho capito bene!!!!

Ancora:
Ho fatto la conversione di buona parte dello script per il 644 .. ma ci sono ancora parti che non riesco a fare funzionare.. in particlolare il serial monitor e la prigrammazione via seriale... ma credo che sia meglio aprire un altro topic .. che ne dite?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 16, 2012, 04:10 pm

ci sono ancora parti che non riesco a fare funzionare.. in particlolare il serial monitor

Questo funziona solo se usi un convertitore USB/seriale altrimenti i dati tra il PC ed il micro non puoi gestirli.
Basterebbe anche l'Arduino, basta sfilare l'Atmega328.

Quote

e la prigrammazione via seriale... ma credo che sia meglio aprire un altro topic .. che ne dite?

Senza bootloader sul chip non puoi farlo. Se hai scaricato il mio package, dentro trovi anche un bootloader per il 644 già compilato. Prova ad usarlo. Se non ricordo male, dovrebbe essere compilato per i 16 MHz, se ti serve un'altra frequenza devi ricompilarlo.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 16, 2012, 04:15 pm
Se non riesci a dialogare col serial monitor ovvio che non riuscirai nemmeno a programmare via seriale; forse conviene restare su questo Topic, almeno per ora.
Dunque, facciamo questa prova facile facile:
1 - Carica uno sketch che invia dati alla seriale in continuazione, senza intervento umano, magari i  numeri da 1 a 1000 e poi ricomincia....; togli alimentazione al micro.
2 - Ad ognuno dei tre pin TX delle tre seriali del 644 collega una R da 330 ohm o maggiore (non superiore a 1kohm)
3 - All'altro capo delle R collega l'anodo di un LED, i catodi dei tre LED tutti a GND
4 - ridai alimentazione al micro, uno dei tre LED dovrebbe dare segno di vita, se è così poi vediamo come procedere. :)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 16, 2012, 04:55 pm

2 - Ad ognuno dei tre pin TX delle tre seriali del 644 collega una R da 330 ohm o maggiore (non superiore a 1kohm)

Il 644P ha 2 seriali (il 644 non P ne ha 1 sola).
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 16, 2012, 05:36 pm
@Paolo:
scusa, perché altrimenti ci perdiamo per strada....
facciamo (anzi, facci) un riassunto di cos'hai fatto fino ad ora?
L'HW che hai provato, il SW che stai usando ecc..

A me la programmazione dei 644P via ISP o seriale funziona, quindi c'è un problema da te che dobbiamo individuare, ma se continuiamo a fare proposte senza capire come tu ti stia muovendo mi sa che non arriviamo a nulla  ;)

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.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 16, 2012, 05:56 pm


2 - Ad ognuno dei tre pin TX delle tre seriali del 644 collega una R da 330 ohm o maggiore (non superiore a 1kohm)

Il 644P ha 2 seriali (il 644 non P ne ha 1 sola).


sì, grazie, una svista, ho scritto "tre pin TX delle tre seriali
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 17, 2012, 10:40 am

Questo funziona solo se usi un convertitore USB/seriale altrimenti i dati tra il PC ed il micro non puoi gestirli.
Basterebbe anche l'Arduino, basta sfilare l'Atmega328.
.....
.....
Senza bootloader sul chip non puoi farlo. ....

Ho provato usando il convertitore USB seriale con i collegamenti come dal post precedente di Michele..
Ho anche provato usando la tecnica seriale della guida di Michele;
Ho anche provato usando arduino uno, caricando uno script quasi vuoto, cioè con il setup imposto i pin 0 e 1 come input, e poi faccio eseguire un loop vuoto. collegando tx --> rx e rx <-- tx (644 - 328). Lo usavo er ricevere le stringhe NMEA dal ricevitore GPS e funzionava ... ma niente .. qui appare qualcosa nel serial monitor ma sembrano solo bestemmio. Naturlmente ho settato e provato con tutti i valori di bps. Ho anche verificato che il quarzo del 644 fosse da 16 Mhz... (sull'involucro cè stampigliato 16).

Credo che il bootloader ci sia... ho fatto anche la modifica da te suggerita per fare flashare il 2 pin .. ho messo uil valore 5 (credo 5 flash) .. ma è rapidissimo.... si vede che flasha ma non saprei dirti se sono 5 ....

Per le prove che mi hai suggerito di fare non potro farle prima di stasera ....


Se non riesci a dialogare col serial monitor ovvio che non riuscirai nemmeno a programmare via seriale; forse conviene restare su questo Topic, almeno per ora.
Dunque, facciamo questa prova facile facile:
1 - Carica uno sketch che invia dati alla seriale in continuazione, senza intervento umano, magari i  numeri da 1 a 1000 e poi ricomincia....; togli alimentazione al micro.
2 - Ad ognuno dei tre pin TX delle tre seriali del 644 collega una R da 330 ohm o maggiore (non superiore a 1kohm)
3 - All'altro capo delle R collega l'anodo di un LED, i catodi dei tre LED tutti a GND
4 - ridai alimentazione al micro, uno dei tre LED dovrebbe dare segno di vita, se è così poi vediamo come procedere. :)

.. starera michele... poi scrivo dei risultati.. .. interessante comunque la tecnica per vedere se cè attivita tx RX ... : Magari si potrebbe inserire in modo stabile nel prpgetto???... potrebbe essere utile per il debug etc... ???.. che ne dici?




2 - Ad ognuno dei tre pin TX delle tre seriali del 644 collega una R da 330 ohm o maggiore (non superiore a 1kohm)

Il 644P ha 2 seriali (il 644 non P ne ha 1 sola).


io ho il 644PA .. ma sto usando sempre le rx0 e tx0 (pin 14 e 15 del micro 644)


@Paolo:
scusa, perché altrimenti ci perdiamo per strada....
facciamo (anzi, facci) un riassunto di cos'hai fatto fino ad ora?
L'HW che hai provato, il SW che stai usando ecc..


Ardware usato: -arduino UNo con botloader origianle; -644PA
software: IDE 1.0.2 aggiornato con il tuo package per il 644


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.

.. direi che tutto questo l'ho fatto e funzione .. ho anche fatto flashare il pin 2 come detto prima ..
aggiungo anche che faccio l'upload dello script così:
- carico lo script nell'IDE
- seleziono la scheda di destinazoine: Atmega644 @ 16 MHz w/ISP ...
- seleziono programmatore: arduino as ISP
poi faccio l'upload .. dal menu file --> carica con un programmatore. Qui evidenzio  che se uso il tasto per l'upload sulla barra dei comandi mi dà un errore e non carica. Non sò forse questa informazione è rilevante ..



Adesso prenditi l'Arduino (lasciamo per ora da parte il tuo convertitore USB/seriale), staccagli il chip e fai questi collegamenti:...
......

in realtà ho già provato.. stasera riprovo.

aggiungo questa infomarzione:
Tra le varie prove che ho fatto, solo sull'arduino UNO (non sul 644) ... ho provato ad eseguire lo schetc
esempi--> communication--> ASCIItable.. e non mi funziona sull'ide 1.02 e nenche sull'1.01. ma fuunziona sull'ide 022..
non sò forse è rilevante??.. bho=???
più tardi vedro le vs risposte...

ciao e grazie



Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 17, 2012, 11:06 am

- seleziono la scheda di destinazoine: Atmega644 @ 16 MHz w/ISP ...

Guarda che "Atmega644 @ 16 MHz w/Arduino as ISP" non è la stessa cosa di quello che ti ho detto io, "Atmega644 @ 16 MHz w/bootloader".
Nel primo caso non viene riservato spazio al bootloader per cui riflashando il micro il bootloader potrebbe venir sovrascritto.
La voce che ti ho invece consigliato riserva 1 kB di Flash per il bootloader, quindi questo resta protetto anche nelle successive scritture
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 17, 2012, 11:42 am

Guarda che "Atmega644 @ 16 MHz w/Arduino as ISP" non è la stessa cosa di quello che ti ho detto io, "Atmega644 @ 16 MHz w/bootloader".
Nel primo caso non viene riservato spazio al bootloader per cui riflashando il micro il bootloader potrebbe venir sovrascritto.
La voce che ti ho invece consigliato riserva 1 kB di Flash per il bootloader, quindi questo resta protetto anche nelle successive scritture


si,, ho sbagliato scrivendo....
Atmega644 @ 16 MHz w/bootloader    ... l'ho utilizzato per tasferire il bootloader
Atmega644 @ 16 MHz w/Arduino as ISP  ... lo stavo utilizzando per trasferire gli schetc
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 17, 2012, 11:45 am
Comunque in tutto questo marasma di problemi con il 644 ci sono anche note positive.
Ho convertito tutto lo schetch ed ora funziona tutto (eccezion fatta per il serial monitor .. che usavo per il debug)...
.. insomma ho convertito tutto il lavoro fatto e funziona benissimo anche sul 644, ora ho i pin in più per aggiungere le altre implementazioni ...
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 17, 2012, 11:51 am
Ma hai provato ad usare l'Arduino smontando il chip come ponte USB/seriale come ti avevo detto?
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 17, 2012, 12:24 pm
Rispondo solo per la mia parte.... L'uso dei LED come "monitor" dei segnali TX/RX è comune soprattutto nei convertitori USB-Seriale, quindi puoi tranquillamente decidere di adottarli sia per RX che per TX, l'importante è che le R siano di valore più alto del normale in modo che le linee non siano caricate troppo.
Nello specifico stiamo solo cercando di capire se la (e quale) seriale sta rispondendo alle tue richieste, ecco perché usiamo solo la linea TX del 644.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 17, 2012, 12:34 pm
Il bootloader usa la seriale su RX0/TX0.
Io comunque sono convinto che lui sbagli qualche passaggi perché a me funziona sia il 644 che il 1284 con il bootloader che ho postato.
Casomai potrebbe provare a mettere il filtro RC dello schema allegato al package sul pin RX, magari sta sperimentando gli stessi problemi che ebbi io a suo tempo con il 1284P. Non dovrebbe, perché non ho sentore di questo sui 644P, però tentare non nuoce.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 17, 2012, 01:06 pm

Ma hai provato ad usare l'Arduino smontando il chip come ponte USB/seriale come ti avevo detto?

.. su questo punto mi sta venendo il dubbio che forse NON ho settato la scheda da programmare come Atmega644 @ 16 MHz w/bootloader quendo facevo questa prova ...appena a casa riprovo...

per adesso vi ringrazio.. inserirò anche i led monitor per l'attività RX DX .. con una resistenza da 1 k o un po meno, giusto per evidenziare (anche se poco) l'attività sulle linee...

ciao
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 17, 2012, 05:03 pm
..

Ma hai provato ad usare l'Arduino smontando il chip come ponte USB/seriale come ti avevo detto?
confermo quanto detto prima.. provato e non funge lo stesso.....

Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 17, 2012, 05:13 pm
Bene, allora andiamo ancora più a ritroso:
1) foto del circuito
2) schema dei collegamenti
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 17, 2012, 05:30 pm

..

Ma hai provato ad usare l'Arduino smontando il chip come ponte USB/seriale come ti avevo detto?
confermo quanto detto prima.. provato e non funge lo stesso.....


Ricorda che nel caso di Arduino usato come Convertitore devi collegare TX a TX e RX a RX, oltre ovviamente al RESET
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 17, 2012, 06:52 pm
ok... adesso vado a casa e RIprovo.... compreso il reset come dice michele....

farò anche qualche foto...
ciao a domani

grazie...
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 17, 2012, 07:13 pm

ok... adesso vado a casa e RIprovo.... compreso il reset come dice michele....

farò anche qualche foto...
ciao a domani

grazie...


Fai riferimento alla Guida, c'è un apposito capitolo su questa cosa, con tanto di descrizioni e foto
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 18, 2012, 02:01 pm
@Leo

Bene, allora andiamo ancora più a ritroso:
1) foto del circuito
2) schema dei collegamenti


le foto sono queste ...
(http://imageshack.us/a/img819/6279/dscn3955e.th.jpg) (http://imageshack.us/photo/my-images/819/dscn3955e.jpg/)
(http://imageshack.us/a/img607/4737/dscn3954.th.jpg) (http://imageshack.us/photo/my-images/607/dscn3954.jpg/)
(http://imageshack.us/a/img543/7592/dscn3953k.th.jpg) (http://imageshack.us/photo/my-images/543/dscn3953k.jpg/)
(http://imageshack.us/a/img846/5539/dscn3952u.th.jpg) (http://imageshack.us/photo/my-images/846/dscn3952u.jpg/)
relativamente ai collegamenti cè ben poco da evidenziare.
ho disconesso quesi tutto...

Riferendosi alla prima foto:
l'integrato in alto a destra è il decoder dtm, che connetto alla porta B. Funziona perfettamente. Ho tolto tutte le connessionì perchè disturbavano la foto.

I tre integrati nella parte bassa sono gli shift register, anche quelli li ho disconessi, ma ho già sperimentato che funzionano perfettamente connessi alla porta A del 644...
tra i collegamenti del micro si vedodo i collegamenti 10 -30 e 11-31 filo blu e filo bianco. Il quarzo con i due suoi condensatori ... più l'atro condensatore tra +5v e GND

i valori dei componenti sono tutti verificati.

i collegamenti sulla porta C ( in alto a sinistra), quattro fili bianchi uno verde ed uno azzurro sono i controlli del display LCD che anche questo funziona benissimo ....
i tre fili bianchi con la resistenza push down in alto a sinistra  sono i input digitali sulla porta A...
io non rilevo errori di collegamento

ma confermo che non và in programmazine seriale ...


@michele
Ho messo il led sul tx del 644 ed ho riscontrato l'attività tx. In trasmissione và sicuramente bene...
Ho anche fatto di più... ho decodificato con un'analizzatore di stati logici la qualità della trasmissione seriale ed è tutto ok. Correttamente decodificata a 9600 bps.
Ti allego le immagini ottenute
(http://imageshack.us/a/img405/9339/96660387.th.png) (http://imageshack.us/photo/my-images/405/96660387.png/)
(http://imageshack.us/a/img542/7558/32375599.th.png) (http://imageshack.us/photo/my-images/542/32375599.png/)
(http://imageshack.us/a/img18/672/29635674.th.png) (http://imageshack.us/photo/my-images/18/29635674.png/)
(http://imageshack.us/a/img43/6513/91858767.th.png) (http://imageshack.us/photo/my-images/43/91858767.png/)

.. vede l segnale sulla seriale, con i pacchetti intervallati da un delay(1000), ed anche gli stessi pacchetti decodificati (prima foto) ....

.. attendo le vs opinioni...
saluti








Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 18, 2012, 02:24 pm
Ma i segnali corrispondo a ciò che ti aspetti dallo sketch che hai caricato sul 644? Se è così sul serial monitor dovresti vedere i dati. Usando Arduino come convertitore (quindi senza il micro) dovresti vedere la stessa attività sul LED RX. Chiaro che csì sei senza bootloader, se hai caircato lo sketh via ISP il bl non funziona più, però la comunicazione seriale deve funzionare a prescindere, per me è un problema di connessioni.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 18, 2012, 03:01 pm

la comunicazione seriale deve funzionare a prescindere, per me è un problema di connessioni.

Mi viene da pensare la stessa cosa.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 18, 2012, 03:09 pm


la comunicazione seriale deve funzionare a prescindere, per me è un problema di connessioni.

Mi viene da pensare la stessa cosa.

e se guardi le foto, anche se non è facile seguire le connessioni, ti accorgi intanto che c'è qualcosa che non va sul RESET, sempre che dove finisca il filo gialla sia proprio il pin di RESET del 644, ora sono al lavoro e non ho modo di controllare; tanto per cominciare NON vedo la R di pull-up....
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 18, 2012, 04:16 pm
per la ersistenza di pull up, avevo messo 10 k tra il pin 9 del 644 ed i 5 v, poi tra mettere, togliere, provare e riprovare ... ho dimenticato di rimetterla!!!! ... stasera riprovo.
...
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 18, 2012, 05:52 pm
Diciamo che finché il pin di reset lo ponticella col pin RST di Arduino, la R può anche non metterla: ci pensa quella integrata sulla scheda a tenere alto il livello della linea.

Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 18, 2012, 06:34 pm
avete rilevato errori macroscopici nei collegamenti?
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 18, 2012, 06:58 pm
sì, i due fili seriali vanno incrociati, come detto devi collegare TX a TX e RX a RX
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 18, 2012, 10:07 pm
domani vedo se monto un 644 e faccio un paio di prove
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 19, 2012, 08:04 am
Michele.... ho provato anche così.....

.. ieri comunque sono riuscito a fare la comunicazione seriale al serial monitor.

della programmazione con la tecnica seriale neanche a parlarne....

Per la comunicazoine seriale ho proceduto così. Ho messo uno schetc vuoto, solo con i pin 0 e 1 impostati come input ed un loop vuoto. Così sono riuscito a vedere sul serial monitor i dati inviati dal 644...

adesso ho smontato tutto. ed ho iniziato a ricablare tutto, ottimizzando la posizione dei componenti, la lunghezza dei conduttori etc...

poi non mi rimane che cambiare 644 (ne ho altri 2) ...

leo attendo le tue prove...

ciao ...

Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 19, 2012, 09:48 am
Dunque, ho avuto dei problemi anch'io.
Inizialmente non ci riuscivo, poi invece ce l'ho fatta senza problemi.
Ora invece sto avendo nuovamente problemi di Programmer is not responding.

Eppure la flashatura del bootloader è andata a buon fine.
Alle volte mi carica lo sketch, altre no. Altre volte mi carica lo sketch e poi mi da errore. Apparentemente senza una regola.

Sono certo che quando ho preparato il package, un paio di mesi fa, questi problemi non li ho mai avuti col 644.
Solo il 1284 mi ha fatto dannare per via del bug sul modulo della seriale, risolto con l'uso del filtro RC. Ma il 644 si era sempre comportato bene.

Faccio altri test
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 10:41 am
Ma state usando Arduino o un Convertitore? Mettete comunque sia la R di pull-up sul reset del 644 che il C in serie da 100nF, al limite provate ad aumentarlo a 220nF o anche fino a 1µF (NON polarizzato); vale sia per l'una che per l'altra tecnica, ovvio che stiamo sperimentando.... quindi niente obiezioni ;)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 19, 2012, 10:46 am
Stanotte ho fatto le prime prove, che ho poi continuato stamani.

Inizialmente ho avuto problemi di programmer is not responding.
Poi ad un certo punto sono riuscito a scrivere lo sketch usando il bootloader.
Poi ho iniziato nuovamente ad avere problemi, però, stranamente, nonostante venisse fuori l'errore lo sketch veniva scritto. Penso quindi che l'errore venisse fuori in fase di verifica.

Ho spento tutto e sono andato a letto. Stamani, invece, non riesco neanche una volta a spedire uno sketch via bootloader. Vedo che il 644 viene resettato perché risponde col flash sul pin PB1 però poi mi ritrovo l'errore e non si smuove di lì. Ho provato anche col filtro RC sul pin RX (come per il 1284) ma niente. Ho provato ad usare sia la UNO che la Luigino togliendo il 328 ma niente.

Eppure mica sono rincoglionito da ieri a oggi! Quando ho preparato il package per il 644/1284 mi ha sempre funzionato al primo colpo. Non capisco che cavolo gli sia preso oggi....

Continuo con le prove..
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 11:03 am
c'è il fattore non trascurabile delle breadboard strausate; in questi giorni ho avuto delle difficoltà anch'io risolte muovendo qualche cavetto jumper o spostando completamente il chip; altra cosa, spegni Presepe e Albero di Natale ;) anche se purtroppo riceverai comunque i disturbi di tutti quelli che sono accesi negli altri appartamenti; di questi tempi sulla rete elettrica viaggiano fuochi d'artificio....
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 19, 2012, 11:07 am
La cosa buffa è che l'interruzione della programmazione non avviene sempre nello stesso identico punto. Sto seriamente pensando anch'io a problemi di connessioni.

Abilitando l'output sulla console dell'IDE vedo infatti che alle volte il microcontrollore non risponde, alle volte arriva alla lettura della firma digitale (corretta) e poi si blocca, alle volte inizia a trasferire il firmware e poi si blocca. Insomma c'è qualcosa che gli dà noia. Ripeto, stanotte ero riuscito nell'impresa (anche se con qualche problemino), stamani mai.

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 11:31 am
metti un C da 10µF sul VCC, oltre al solito 100nF
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 19, 2012, 12:01 pm
L'ho messo già 1 ora fa... non cambia nulla... non so quante volte ho pigiato quel maledetto pulsantino di upload....
Ogni volta la programmazione si arresta ad un punto diverso. Ora non posso più continuare, devo staccare (devo andare a lavoro), stasera investigherò ulteriormente.

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 12:09 pm
stasera prova a portare tutto (anche a livello bl) a 2400baud
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 19, 2012, 01:38 pm
Io seguo in silenzio .. e stasera riprovo anche io con i suggerimenti di michele.
Intanto ho spostato il micro in un'altra opsizione della board..  anche per ottimizzare le periferiche adiacendi (display, shift register, decoder dtmf, pin di input, audio etc...).. nonchè per otimizzare la lunghezza delle connessioni.


Ma state usando Arduino o un Convertitore? Mettete comunque sia la R di pull-up sul reset del 644 che il C in serie da 100nF, al limite provate ad aumentarlo a 220nF o anche fino a 1µF (NON polarizzato); vale sia per l'una che per l'altra tecnica, ovvio che stiamo sperimentando.... quindi niente obiezioni ;)

Io ho provato sia con l'arduino che con la schedina convertitore di cui al primo post.
Michele scusa la domanda....  ma cosa cambia che il condensatore sia polarizzato o no? la capacità non è sempre quella?

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 01:42 pm
Il comportamento è diverso, nel caso del segnale di RESET serve decisamente non polarizzato, ma non chiedermi altro....
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 19, 2012, 02:13 pm
Stamani ho provato anch'io a spostare il micro su un'altra parte della breadboard, ma non è cambiato nulla.
Ho già provato a compilare il bootloader a 57600 e la relativa voce nella board. Niente.
Ho provato sia con la Luigino che con la UNO. Il risultato è sempre quello: la programmazione si ferma a metà, in un punto che non è mai lo stesso. Solo ieri sera mi ha funzionato poi il nulla.

2 mesi fa non mi aveva mai, e dico mai, dato problemi. Ho provato anche con l'IDE 1.0.2 per vedere se dipendeva da qualcosa della nuova 1.0.3 ma niente.
Questa cosa ha dell'incredibile.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 03:00 pm
forse mesi fa hai fatto le prove con la 0022....
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 19, 2012, 03:38 pm

forse mesi fa hai fatto le prove con la 0022....

No, se hai visto il package l'ho rilasciato per la 1.0.1 e poi per la 1.0.2
La 0022 non la uso da mesi, l'ho anche disinstallata dal mio PC
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 19, 2012, 03:50 pm
può essere una partita diversa di 644?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 19, 2012, 04:07 pm
I due 644 che ho testato 2 mesi fa sono gli stessi che ho testato tra ieri ed oggi. I chip sono perfettamente funzionanti.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 06:14 pm
forse qualche cavola di incompatibilità con gli aggiornamenti toolchain, mi pare che quelli li hai fatti in tempi più recenti...
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 19, 2012, 06:28 pm

forse qualche cavola di incompatibilità con gli aggiornamenti toolchain, mi pare che quelli li hai fatti in tempi più recenti...

Ho riguardato sul mio blog. L'articolo per aggiornare la toolchain l'ho scritto il 27/10/2012, il primo package per il 644/1284 l'ho messo online il 2/11/2012 quindi avevo già la toolchain aggiornata.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 06:54 pm
mi spiace, allora è proprio il momento di......
chiamare loro (http://www.youtube.com/watch?v=vKbg7CfG7i4)
:smiley-mr-green: :smiley-mr-green: :smiley-mr-green:
Title: Re: programmare il 644 ... ma come????
Post by: Maurotec on Dec 19, 2012, 08:36 pm
Primi segni di tempesta magnetica dovuta all'interpolatore sensoriale installato in cantina, ricordatevi non incrociate mai il flusso.
Incrociare il flusso è male. Ok
:D
Ciao.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 19, 2012, 09:46 pm

Primi segni di tempesta magnetica dovuta all'interpolatore sensoriale installato in cantina, ricordatevi non incrociate mai il flusso.
Incrociare il flusso è male. Ok
:D
Ciao.

appunto, quello che dicevo io: TX con TX e RX con RX :smiley-mr-green:
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 20, 2012, 08:19 am
cavolo ... nessuna ipotesi di soluzione all'orizzonte!!!!  =( ... io ieri non ho potuto fare alcuna prova....

Ho visto che lo schetch arduino ISP utilizza  Serial.begin(19200)... mi chiedevo: può avere qualche rilevanza con la mancata comunicazione con il 644??

... intanto prendo atto della difficoltà di attivare il serial monitor quando sull'arduino programmatore cè lo schect arduinoISP .. ed è un problema serio perchè la visualizzazione su seriale mi è quasi indispensabile per fare il debug....

mi sa che mi conviene fare lo sviluppo della singola "implementazione" sul 328.. poi una volta resa funzionante traslo tutto sul 644 .....

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 20, 2012, 09:14 am
Non ti preoccupare Paolo, ormai che Leo si è messo a fare le prove la soluzione la si trova, devi solo avere pazienza....

@ Leo: ovvio che la soluzione va trovata  :smiley-sweat: e che a questo punto conviene rifare qualche prova anche col 1284 e anche una prova con la 0022, ma non per contraddirti, semplicemente per capire se la direzione delle prove deve essere sw o hw, così siamo troppo al buio. Stanotte mi è venuto un flash, chissà se abbiamo a che fare con un problema di livelli... prova a mettere una R da 22k come pull-up sull'RX del 644; altra prova che puoi fare è eliminare la componente continua: metti in serie ai due segnali due C da 1µF. Ovvio che sono prove al buio, ma se avessimo un minimo di risposte positive si ci potrebbe lavorare su.... Se ti fermi comincio io, a questo punto non possiamo pensare che questa bestiola non sia programmabile/utilizzabile via seriale, peraltro io dispongo di svariati Convertitori: FT232RL, MCP2200, CP2100, oltre a tre Arduini, in più ho la strumentazione che potrebbe darmi una mano, e siccome ormai sono al countdown delle mie sospiratissime vacanze, penso proprio che aggiungerò anche questi test all'elenco :smiley-sweat: non possiamo deludere Paolo XD
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 09:39 am

cavolo ... nessuna ipotesi di soluzione all'orizzonte!!!!  =( ... io ieri non ho potuto fare alcuna prova....

Ho visto che lo schetch arduino ISP utilizza  Serial.begin(19200)... mi chiedevo: può avere qualche rilevanza con la mancata comunicazione con il 644??

Non c'entra. Per comunicare via seriale il chip Atmega328 va tolto. La comunicazione si instaura fra Atmega8U2 e Atmega644: la scheda Arduino in questo caso diventa come il tuo convertitore USB/seriale.

Quote

... intanto prendo atto della difficoltà di attivare il serial monitor quando sull'arduino programmatore cè lo schect arduinoISP .. ed è un problema serio perchè la visualizzazione su seriale mi è quasi indispensabile per fare il debug....

Anche questo forse è un falso problema perché se tieni montato il 328 sull'Arduino mentre tenti di comunicare con l'Atmega644 via seriale è normale che non possa funzionare nulla dato che il 328 sull'Arduino instaura lui la comunicazione con l'Atmega8U2.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 09:42 am

@ Leo: ovvio che la soluzione va trovata  :smiley-sweat: e che a questo punto conviene rifare qualche prova anche col 1284 e anche una prova con la 0022, ma non per contraddirti, semplicemente per capire se la direzione delle prove deve essere sw o hw, così siamo troppo al buio.

Difatti dei test li farò.
Però quando ho pubblicato il package per 644/1284 ero già con la 1.0.1, e ti ricordo che i test erano stati tutti positivi.

Quote

Stanotte mi è venuto un flash, chissà se abbiamo a che fare con un problema di livelli... prova a mettere una R da 22k come pull-up sull'RX del 644;

Ma così non si crea un partitore con le R da 1K che sono presenti sull'Arduino?

Quote

altra prova che puoi fare è eliminare la componente continua: metti in serie ai due segnali due C da 1µF. Ovvio che sono prove al buio, ma se avessimo un minimo di risposte positive si ci potrebbe lavorare su.... Se ti fermi comincio io, a questo punto non possiamo pensare che questa bestiola non sia programmabile/utilizzabile via seriale, peraltro io dispongo di svariati Convertitori: FT232RL, MCP2200, CP2100, oltre a tre Arduini, in più ho la strumentazione che potrebbe darmi una mano, e siccome ormai sono al countdown delle mie sospiratissime vacanze, penso proprio che aggiungerò anche questi test all'elenco :smiley-sweat: non possiamo deludere Paolo XD

Fermare non mi fermo ma non ti dico neanche di stare fermo perché avendo appunto la strumentazione giusta puoi capire meglio di me perché la comunicazione seriale, una volta che è partita, si interrompe casualmente in corso d'opera.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 20, 2012, 09:56 am
sì che il partitore si crea ma così comunque dovremmo dare un "contributo in continua", mentre nel caso dei C facciamo la cosa opposta; posso farele io queste prove tra qualche giorno, se preferisci.
Sulla 0022 insisto solo perché serve conferma che il problema sia hw o sw, non perché non ti credo :smiley-sweat: :smiley-sweat:.
Per capirci ti rcconto una cosa che mi è successa una ventina di gg fa: testo un circuito che prevede un partitore d'ingresso, ad un certo punto trovo una buona combinazione in termini di risultati e mi faccio convinto che il partitore di ingresso non serve più, lo elimino ed infatti il circuito continua a funzionare ed anzi va meglio di "un qualcosa". Tutto felice spengo, torno al lab dopo tre giorni, senza aver smontato nulla, ripeto il test, una schifezza! rimetto il partitore come prima prova, tutto ok; ora ti risparmio la scoperta del motivo ma è solo per dire che a volte si creano concomitanze tali per le quali una cosa funzioni regolarmente e poi al venire meno di una qualsiasi variabile le cose peggiorano anche drasticamente, d'altra parte lo stai verificando da solo, quindi o ti sta sfuggendo qualcosa di macroscopico oppure i test fatti alcuni mesi fa avevano delle circostanze che in questo momento non sono ripetute.
Io ho conservato la mia installazione 0022, in "parallelo" alla 1.0.1, a questo punto posso farla io anche questa prova, ma prima devo finire assolutamente il lavoro che sai e poi devo dedicare del tempo ai test di un display che mi dovrebbe arrivare a momenti, l'ho promesso ad un amico del Forum, quindi posso solo rimandare il mio progetto personale di questo momento, tanto sono a buon punto.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 09:57 am
Ci sono riuscito  ]:D
Ho ricontrollato tutti i collegamenti e questa volta avevo sbagliato i collegamenti dei C del quarzo da 16 MHz. Girando la basetta non pensavo al fatto che le linee laterali blu e rossa avevano cambiato posizione e ieri sera, collegandole con poca luce, avevo invertito i collegamenti. Però, siccome sulla basetta ho altre cose, la linea positiva non è collegata a nulla e quindi semplicemente i C non erano né a massa né a Vcc.

Inoltre il mitico suggerimento di Michele è da top10  ;)
Ho messo una R di pull-up da 10K sulla linea RX e tutto ha funzionato al primo colpo. Non ho usato i C in serie verso massa per eliminare i disturbi in alternata.

@Michele:
Ora, però, Michele DEVI usare il suo DSO e vedere i livelli di quei segnali e capire come siamo messi lì sopra.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 10:03 am
E' INCREDIBILE!
Ora mi dice nuovamente "programmer is not responding"....  =(

EDIT:
smuovendo l'Arduino a volte programma a volte no.
Ora vabbé che domani c'è la fine del mondo per cui potrebbe darsi che le leggi della fisica stanno saltando  :smiley-yell:, ma questa cosa ha il sapore dello sciamanesimo  :smiley-sweat:
Mi sa che i pin della mia Arduino siano un po'.... spanati (non so se è italiano).
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 20, 2012, 10:14 am
Leo, è un problema certamente di contatti sommato ad una eccessiva sensibilità del 644, è assolutamente necessario che li ripeta anch'io; tu hai usato anche la Luigino che non dovrebbe essere altrettanto spanata, magari alla luce di queste nuove prove chissà....
Quella storia dei Maya è una delle più grandi palle raccontate all'umanità, il 22 saremo ancora qui a festeggiare il 644 che funziona ;)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 10:26 am

Leo, è un problema certamente di contatti sommato ad una eccessiva sensibilità del 644, è assolutamente necessario che li ripeta anch'io; tu hai usato anche la Luigino che non dovrebbe essere altrettanto spanata, magari alla luce di queste nuove prove chissà....

Sicuramente.
Ah, per dovere di cronaca. Con la pull-up da 10K anche sulla linea TX il caricamento va a buon fine sempre. Alcuni problemi che avevo menzionato, e cioè che il caricamento dava errori eppure pareva fosse stato portato a termine perché lo sketch partiva, erano dati dal fatto che in fase di verifica i dati non erano stati spediti correttamente verso il PC.

Per cui, riassumo i miei test:
1) R di pull-up da 10K (per 5V) sulle linee RX e TX: tutto OK
2) aggiunta del C da 0.1uF poliestere in serie alle linee RX e TX: ERRORE. Sembra dargli noia, non so il perché.
3) aggiunta di un C da 100pF ceramico in serie alle linee RX: tutto OK. Anzi, PERFETTO. Programmo al primo colpo.
4) aggiunta di un C da 100pF ceramico in serie alle linee RX e TX: ERRORE. Non programma il micro.

Quindi la combinazione vincente per me è:
R di pull-up da 10K su RX e TX, C in serie da 100 pF su RX

Quote

Quella storia dei Maya è una delle più grandi palle raccontate all'umanità, il 22 saremo ancora qui a festeggiare il 644 che funziona ;)

Non vedo l'ora che sia domani per prendere per il cul... tutti quelli che ci credono. Siamo nel 21° secolo eppure la gente crede a 'ste ca@@ate più di quando l'umanità era nel medioevo!
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 11:34 am
Uh oh... ho brickato l'unico 1284 che avevo... merd....  :smiley-roll-sweat:
La signature a 0x535353 come la vedete?  :smiley-eek:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 20, 2012, 01:26 pm
io la vedo tanto di Banda Bassotti quella signature però è stravagante e comunque il brickage :smiley-sweat: non c'entra nulla con la signature; quei tre byte mostrano il valore originale oppure 000000 o FFFFFF quando si cancella, certamente non esiste possibilità che venga "cambiato", riprova con calma, e comunque se hai brickato ti basta riportare i segnali dello schedino HV del 328 sulla bread e risolvi in dieci minuti; scaricati il mio articolo gratuitamente dal sito di El In, ci sono tutte le connessioni, non puoi sbagliare; ma prima ricontrolla bene, per me continuano ad essere problemi di contatti.

Da quello che dici sembrerebbe confermata l'ipotesi dei livelli, anche se è strano, però con le mie prossime prove e misure vedremo come stanno le cose; sarà importante ora che ripeta le prove Paolo e vediamo che ne esce. Sul valore dei condensatori ho sbagliato io, ragionavo sui termini di 10 e passa MHz, mentre qui siamo a frequenze molto più basse, quindi va benissimo il valore che hai usato! Io ora sono a pranzo con i colleghi per gli Auguri, ci sentiamo più tardi.

GRANDE LEO!!!!
Title: Re: programmare il 644 ... ma come????
Post by: niki77 on Dec 20, 2012, 01:57 pm

Uh oh... ho brickato l'unico 1284 che avevo... merd....  :smiley-roll-sweat:
La signature a 0x535353 come la vedete?  :smiley-eek:


Vedo una programmazione hv all'orizzonte.
Cmq sicuramente sei possessore di una versione pdip, quindi ... non fai manco tanta fatica!
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 02:15 pm
La signature oscilla fra 000000 e 535353  :smiley-sweat:
Sì, ho la versione DIP per cui non devo far altro che liberare la basetta da tutto il casino e dargli un po' di 12V  ]:D
Cmq per sicurezza ho ordinato un altro 1284 da RS insieme ad altri microcontrollori.

OT 1:
Ah, se volete fare la spesa, ci sono i Tiny84A ad un prezzo incredibile, 1,48€+IVA
http://it.rs-online.com/web/p/microcontroller/7380684/
Anche se li ho, ne ho presi un paio extra

OT2:
già che c'ero ho preso un paio di Attiny861. Mi sono messo in testa di aggiungerne il supporto al core Tiny  :P
Title: Re: programmare il 644 ... ma come????
Post by: niki77 on Dec 20, 2012, 02:22 pm

OT2:
già che c'ero ho preso un paio di Attiny861. Mi sono messo in testa di aggiungerne il supporto al core Tiny  :P


Dato che ci sei sistema anche il supporto per il 1284p , tanto hai le mani in pasta!
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 02:27 pm


OT2:
già che c'ero ho preso un paio di Attiny861. Mi sono messo in testa di aggiungerne il supporto al core Tiny  :P


Dato che ci sei sistema anche il supporto per il 1284p , tanto hai le mani in pasta!


Quello è già a posto. Se nel core 1.0.1 c'era già il supporto al 644P (lo hai scoperto tu) ed io avevo aggiunto quello al 1284P, dall'1.0.2 hanno messo il supporto anche al 1284P. Sul mio sito trovi perciò 2 package, per le 2 diverse versioni. Nel package c'è anche il bootloader già compilato ed il make modificato per compilarlo sulla propria distro nonché le voci da aggiungere per avere le schede tra le board disponibili.
Title: Re: programmare il 644 ... ma come????
Post by: niki77 on Dec 20, 2012, 02:30 pm

Quello è già a posto. Se nel core 1.0.1 c'era già il supporto al 644P (lo hai scoperto tu)


Già solo che non avevo ancora scoperto che delle librerie poi però ne funziona una ogni 3x2 ...  :smiley-sad-blue:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 04:06 pm
Purtroppo è lo scotto da pagare quando si usano chip che non sono ufficialmente supportati. Lo stesso capita con i Tiny.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 20, 2012, 04:26 pm
eccomi:

quindi io dovrei fare così:
Quote from: leo72

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.


.. e così:
Quote from: leo72

......
Sicuramente.
Ah, per dovere di cronaca. Con la pull-up da 10K anche sulla linea TX il caricamento va a buon fine sempre. Alcuni problemi che avevo menzionato, e cioè che il caricamento dava errori eppure pareva fosse stato portato a termine perché lo sketch partiva, erano dati dal fatto che in fase di verifica i dati non erano stati spediti correttamente verso il PC.

Per cui, riassumo i miei test:
1) R di pull-up da 10K (per 5V) sulle linee RX e TX: tutto OK
2) aggiunta del C da 0.1uF poliestere in serie alle linee RX e TX: ERRORE. Sembra dargli noia, non so il perché.
3) aggiunta di un C da 100pF ceramico in serie alle linee RX: tutto OK. Anzi, PERFETTO. Programmo al primo colpo.
4) aggiunta di un C da 100pF ceramico in serie alle linee RX e TX: ERRORE. Non programma il micro.

Quindi la combinazione vincente per me è:
R di pull-up da 10K su RX e TX, C in serie da 100 pF su RX




... ho capito bene???

Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 04:28 pm
Sì, è giusto. E' quello che ho fatto io.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 20, 2012, 04:47 pm
... ok!!! grazie....

caro Leo .... spero di poterti menzionare tra i "credits" ..  nel lavoro in corso ...
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 04:53 pm

... ok!!! grazie....

caro Leo .... spero di poterti menzionare tra i "credits" ..  nel lavoro in corso ...

:smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 20, 2012, 08:49 pm


... ok!!! grazie....

caro Leo .... spero di poterti menzionare tra i "credits" ..  nel lavoro in corso ...

:smiley-sweat:

ah bravi, tutt'e due, così avete risolto e vi scambiate salamelecchi e promesse di credits. Eh già, centinaia di migliaia di schiavi costruirono le Piramidi spezzandosi la schiena ma la gente oggi ricorda solo Cheope, Chefren e Micerino :smiley-sad-blue:. E comunque non ti funzionerà, mi ci gioco i sì-ddetti, così impari :P e non è jettatura, ma dato di fatto  8)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 20, 2012, 10:06 pm

ah bravi, tutt'e due, così avete risolto e vi scambiate salamelecchi e promesse di credits. Eh già, centinaia di migliaia di schiavi costruirono le Piramidi spezzandosi la schiena ma la gente oggi ricorda solo Cheope, Chefren e Micerino :smiley-sad-blue:. E comunque non ti funzionerà, mi ci gioco i sì-ddetti, così impari :P e non è jettatura, ma dato di fatto  8)

Ma io non ho chiesto nulla, mica vorrai incolparmi per responsabilità oggettiva, eh?  :smiley-yell:
PS:
iettatore  ]:D
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 20, 2012, 10:21 pm


ah bravi, tutt'e due, così avete risolto e vi scambiate salamelecchi e promesse di credits. Eh già, centinaia di migliaia di schiavi costruirono le Piramidi spezzandosi la schiena ma la gente oggi ricorda solo Cheope, Chefren e Micerino :smiley-sad-blue:. E comunque non ti funzionerà, mi ci gioco i sì-ddetti, così impari :P e non è jettatura, ma dato di fatto  8)

Ma io non ho chiesto nulla, mica vorrai incolparmi per responsabilità oggettiva, eh?  :smiley-yell:

non chiedi ma nemmeno rifiuti ;)
Quote

PS:
iettatore  ]:D

ho detto chiaramente che NON è jettatura....non funzionerà perché non può funzionare.....  8)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 21, 2012, 10:05 am

non chiedi ma nemmeno rifiuti ;)

E' Natale, devo essere gentile  :P

Quote

ho detto chiaramente che NON è jettatura....non funzionerà perché non può funzionare.....  8)

Ah, per via dell'incrocio delle linee RX/TX.
Sì è vero.  :smiley-roll-blue:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 21, 2012, 10:07 am

Vedo una programmazione hv all'orizzonte.
Cmq sicuramente sei possessore di una versione pdip, quindi ... non fai manco tanta fatica!


OK. Una mezz'oretta sulla basetta ed il chip è tornato operativo  :D
L'ho dovuta rifare 2 volte perché la prima volta mi ero scordato di collegare i 12V e quando ho terminato l'operazione ho smontato tutti i ponticelli, poi ho visto che mancava l'ingresso dei 12V  :smiley-roll-blue: :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 21, 2012, 10:35 am
Dunque, stamani mi sono rimesso a fare alcuni test.

PREMESSE:
1) ci sono in circolazione dei 1284P in formato DIP di una partita difettosa, che hanno un bug a livello hardware sulla linea RX della 1a seriale (e questo è assodato da conferme avute sul forum internazionale). Ripeto: solo il formato DIP è affetto da questo problema che riguarda solo alcune partite.
2) questi 1284P con bug hanno bisogno di un filtro RC sull'ingresso di RX0 altrimenti la comunicazione seriale non funziona. Questo vale sia per la programmazione seriale tramite bootloader sia per la normale comunicazione.
3) i 644P in formato DIP sembrano esenti da questo problema

OBIETTIVO:
trovare una soluzione che possa essere utilizzata sia per i 1284P che per i 644P, senza che l'utente debba cambiare nulla a livello di circuiteria.

SOLUZIONE:
1) togliere la pull-up aggiuntiva da 10K sulla linea RX (che farebbe un partitore con la R da 1K presente sulla linea RX che arriva dall'Atmega8/16U2) che dà noia al 1284P mentre la sua presenza è indifferente per il 644P.
2) la pull-up aggiuntiva da 10K sulla linea TX si può tenere, non disturba nessuno dei 2 chip
3) usare un filtro RC sulla linea RX del microcontrollore composto da una R da 10K in serie fra il pin RX dell'Arduino ed il pin RX0 del 644P/1284P, ed un condensatore ceramico da 100 pF (100 picoFarad) in parallelo (fra RX0 e GND).

Ho provato questa configurazione con 1284P affetto da bug e 644P non affetto da bug ed entrambi sono stati programmati al primo colpo senza storie da parte di avrdude.
Title: Re: programmare il 644 ... ma come????
Post by: niki77 on Dec 21, 2012, 11:00 am
Quote


OK. Una mezz'oretta sulla basetta ed il chip è tornato operativo 
L'ho dovuta rifare 2 volte perché la prima volta mi ero scordato di collegare i 12V e quando ho terminato l'operazione ho smontato tutti i ponticelli, poi ho visto che mancava l'ingresso dei 12V   



Immagina quanto sarebbe stato carino se il tuo chip fosse stato tqfp  :smiley-eek-blue:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 21, 2012, 11:14 am

Immagina quanto sarebbe stato carino se il tuo chip fosse stato tqfp  :smiley-eek-blue:

Sì ma siccome più che hobbista sono un imbranato patentato con mano tremula assolutamente incompatibile con i componenti smd, uso solo quelli a foro passante per cui sotto questo punto di vista non ho problemi  :smiley-yell:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 21, 2012, 12:33 pm
Leo, ottimo per le prove, però non possiamo pensare che questi chipponi si programmino via seriale SOLO mediante Arduino, che poi è la cosa più deprecabile a motivo di dover tirare fuori l'ATmega328 dallo zoccolo; quindi dobbiamo vedere come si comportano con un Convertitore esterno; io non so se i miei 1284P sono affetti da bug, come faccio a saperlo?
Altra cosa: il fatto che un componente sia tollerato dal sistema non significa che debba starci, la pull-up da 10K sul TX si può eliminare o no? se non serve toglila, se è indispensabile allora devi modificare il punto 2 della soluzione ;)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 21, 2012, 02:40 pm

Leo, ottimo per le prove, però non possiamo pensare che questi chipponi si programmino via seriale SOLO mediante Arduino, che poi è la cosa più deprecabile a motivo di dover tirare fuori l'ATmega328 dallo zoccolo;

Su questo concordo.
Difatti stasera vorrei provare con la Luigino per vedere se tutto funziona correttamente anche con l'FT232.

Quote

quindi dobbiamo vedere come si comportano con un Convertitore esterno;

Che io non ho. Tu però hai l'MCP2200, dovresti provare.

Quote

io non so se i miei 1284P sono affetti da bug, come faccio a saperlo?

Ci sono SOLO 2 certezze:
1) il bug affligge solo le versioni DIP
2) il bug colpisce anche chip dello stesso lotto di produzione.
Io ho ad esempio un chip il cui lotto è lo stesso di quello di un tipo che sul forum internazionale diceva di non aver avuto problemi. Quindi l'unica è tentare: se non ti va senza, filtro RC, allora è affetto da bug.

Quote

Altra cosa: il fatto che un componente sia tollerato dal sistema non significa che debba starci, la pull-up da 10K sul TX si può eliminare o no? se non serve toglila, se è indispensabile allora devi modificare il punto 2 della soluzione ;)

Funziona anche senza. Per lo meno usando l'Arduino come interfaccia.
Quindi anche qui c'è da capire se una R serve oppure no ad esempio usando un altro convertitore USB/seriale. Quello che avevi fatto tu con l'MCP2200 aveva resistenze in serie o parallelo? Per capire.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 21, 2012, 05:57 pm
... finalmente posso stare un pò seduto davanti al pc a fare ciò che mi piace!!!!

... allora ieri sera ho provato un pò... e per un attimo ho avuto la sensazione che la "gufata" di michele potesse aver avuto seguito ....

.. allora, messe le resistenza di pull up 10K (+5V)  sulla linea Tx e Rx ...
.. condensatore in serie nella linea RX da 100pF .... ma niente!!! Niente programmazione via seriale.

Stavo per mollare.... quindi smonto tutto e riprovo a collegare direttamente sul convertitore
linee tx e rx dirette, senza resistenze nè condensatori, solo il condensatore sulla linea di reset, come lo "jetatt"... pardon Michele, non perde occasione di ricordare. E voilà... tutto funziona alla perfezione.

Quindi ho cablato tutto in modo stabile, eliminando fili volanti etc... e và alla grande.
Programma benissimo ad ogni tentativo.. serial monitor perfetto.. esattamente come sulla scheda arduino.... Innesto il cavetto USB e via.... niente più metti-togli 328 sulla scheda arduino ...

quindi riassumendo
RX del convertitore ----> pin 14 (RXD0) del 644 : diretto senza alcuna resistenza di pull up;
TX del convertitore ----> pin 15 (TXD0) del 644: come sopra ..
DTR del convertitore ---> pin 9 (RESET) del 644: interrotto con un condensatore ceramico da 100K pF, ma ho riscontrato che anche
molto diversi va bene comunque ....
naturalmente + 5V e GND dal convertore al 644 ...

funziona tutto alla grande ...

ah.. per michele, anche se in uno dei primi post avevi "criticato" il mio acquisto "superfluo": :)
Quote

, però non possiamo pensare che questi chipponi si programmino via seriale SOLO mediante Arduino, che poi è la cosa più deprecabile a motivo di dover tirare fuori l'ATmega328 dallo zoccolo; quindi dobbiamo vedere come si comportano con un Convertitore esterno;

io stò usando questo:
http://www.ebay.it/itm/1x-ATMEGA328P-PU-Arduino-UNO-USB-2-0-TO-RS232-UART-KIT-ATMEGA328-/221121384301  (http://www.ebay.it/itm/1x-ATMEGA328P-PU-Arduino-UNO-USB-2-0-TO-RS232-UART-KIT-ATMEGA328-/221121384301)


adesso continuiamo con lo sviluppo ...
Grazie a tutti ....
Ciao ;)
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 21, 2012, 07:15 pm
@ Leo: sono alle prese con la "creatura", nel frattempo però mi si è rotto il regolatore del Dremel =(, smontato, forse è il mosfet finale, speriamo :smiley-sweat: Ok devo fare le prove io, oltre all'MCP2200 ho anche l'FT232RL a schedino e il cavetto Nokia con il CP2100, quindi ho modo di fare svariate prove.

@ Paolo:  ]:D quei collegamenti te li sto dettando da non so più quando, quindi ora vorrei capire perché FINO A IERI NON TI ABBIA MAI FUNZIONATO NULLA; purtroppo ultimamente si sta diffondendo il brutto vizio di chiedere aiuto e poi, a problema risolto, non dire quaal era il problema riscontrato e come si è risolto, un bel post: cari amici, ora funziona tutto, grazie e andate aff....; nel tuo caso almeno hai detto come ti funziona, ma visto che la novità per Leo erano le pull-up non si capisce per te cosa sbagliavi.
Io NON deprecavo l'acquisto, cerca di capire, ti stavo suggerendo che potevi programmarlo via ISP, poi è uscita fuori la questione del collegamento seriale e credo di averti detto che potevi farlo anche con Arduino; come avrai letto non solo dispongo di diversi convertitori ma ne ho anche progettato uno che sarà pubblicato prossimamente su Elettronica In, quindi non provo particolare odio per la materia, anzi l'ho studiata e approfondita e ho fatto parecchia sperimentazione, al punto di garantirti in tempi non sospetti che ti avremmo risolto il problema ;)
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 21, 2012, 07:27 pm
@Michele: ti dò atto che me li hai suggeriti da subito, ma non mi funzionava. COME TI SCRITTO MOLTE VOLTE.  ;) ... Non sò perchè. Sicuramente sbagliavo qualcosa. La maggior parte dei tentativi li facevo sempre con l'arduino non con il convertitore. Forse cè qualcosa che non va nell'arduino!!! ....
Quindi non ho capito qual'era il problema. Ipotizzo, come voi, che fosse qualcosa nei collegamenti, magari qualche collegamento un pò lasco. Bho!!!!
Mi limito a comunicarvi, con gratitudine ([font=Verdana]CON GRATITUDINE[/font]), la mia soddisfazione. Di più non posso fare.

Ciao....
PS sto andando a mettere un altro post nella sezione software .... se vuoi partecipare ..... ;)
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 21, 2012, 09:07 pm
Quindi fammi capire, se possibile, hai fatto funzionare tutto usando il Convertitore con i collegamenti diretti tx-tx e rx-rx ed il C tra DTR e RESET, così scrivi e confermi. Ma questa cosa ha un significato ben preciso con Arduino, NON con il Convertitore, che NON dovrebbe funzionare in queste condizioni; allora o la serigrafia del tuo converitore indica stravagantemente i segnali di "destinazione" oppure non c'è più religione e prima di mezzanotte avranno avuro ragione quei mangiamais dei Maya :smiley-eek-blue:.
Riguardo la GRATITUDINE la pizzicata era per il fatto che io avevo suggerito la soluzione e tu mettevi lui nei credits, ma ovviamente si scherzava con Leo, come facciamo sempre, senza ovviamente alcune "gelosia", si gioca e basta.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 21, 2012, 09:27 pm
si.. confermo le letture rx e tx, come sotto, lette direttamente dalla serigrafia del convertitore ....


per le pizzicate non ero sicuro fosse solo una battuta, ma pittosto ho pensato: "ma questo Michele, pur essendo indubbiamente bravo e meritatamente dovrei includerlo nei "credits" ... non è che è un pò polemico???? .... ma no scherzo!!! ciao..
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 21, 2012, 10:40 pm

quei mangiamais dei Maya :smiley-eek-blue:.

ROTFL  :smiley-yell: :smiley-yell:

Quote

Riguardo la GRATITUDINE la pizzicata era per il fatto che io avevo suggerito la soluzione e tu mettevi lui nei credits, ma ovviamente si scherzava con Leo, come facciamo sempre, senza ovviamente alcune "gelosia", si gioca e basta.

Confermo.  ;)
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 22, 2012, 09:24 am

si.. confermo le letture rx e tx, come sotto, lette direttamente dalla serigrafia del convertitore ....

mi sono guardato il link del Convertitore, si basa sul CP2102, lo stesso chip del cavo Nokia, quindi avrò modo di provare col mio; ho visto nelle immagini che consigliano effettivamente il collegamento "diretto", questo significa solo che le serigrafie TX e RX sul Convertitore fanno riferimento al chip target e non ai segnali effettivi del CP2102; la trasmissione seriale si fa sempre in modo incrociato; anche su Arduino le indicazioni "tx/rx sono riferite all'ATmega328 e NON all'8u2, ecco perché anche in quel caso i collegamenti vanno fatti diretti. COmunque l'importante è che funzioni.

Quote

per le pizzicate non ero sicuro fosse solo una battuta, ma pittosto ho pensato: "ma questo Michele, pur essendo indubbiamente bravo e meritatamente dovrei includerlo nei "credits" ... non è che è un pò polemico???? .... ma no scherzo!!! ciao..

io non sono "indubbiamente" bravo, semplicemente mi sono fatto una discreta esperienza in questa specifica cosa della programmazione seriale, tutto qui, e non sono polemico, né un po' e né molto, solo che dico chiaramente quando una cosa non mi piace ma, ripeto, nella specifica questione scherzavo con Leo (che ti ha dato conferma...), se avessi "promesso" i credits a qualcun altro non avrei fatto la stessa battuta, sarei venuto direttamente in Sardegna a cercarti :smiley-yell: :smiley-yell: :smiley-yell:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 22, 2012, 10:30 am

anche su Arduino le indicazioni "tx/rx sono riferite all'ATmega328 e NON all'8u2, ecco perché anche in quel caso i collegamenti vanno fatti diretti.


Esattamente. L'altro giorno quando ho consigliato di incrociare RX e TX non mi ricordavo che con l'Arduino usato come convertitore seriale/USB si doveva far riferimento al chip Atmega8/16U2 e non all'Arduino.

Dando un'occhiata al datasheet si capisce la situazione degli "incroci pericolosi"  ;)
Il "problema", se così si può chiamare, del non dover incrociare le linee RX/TX sull'Arduino quando si usa la scheda senza il chip Atmega328 ma come convertitore seriale/USB nasce del fatto che sull'Arduino abbiamo già 2 chip che comunicano serialmente fra di loro, il già nominato Atmega832 ed il convertitore USB/seriale, l'AtmegaxxU2 (che può essere l'8U2 come il 16U2).
Come si vede dal datasheet, le linee RX e TX dall'AtmegaxxU2 vengono collegate rispettivamente con i pin TX ed RX dell'Atmega328, e poi sono riportate sui pin esterni della scheda. In sintesi, i pin esterni dell'Arduino usano l'indicazione RX e TX ma in riferimento all'Atmega328, e va bene così nell'uso normale della scheda.

Ma se si deve usare l'Arduino come convertitore per far dialogare l'AtmegauuU2 con un altro dispositivo seriale, le linee non si incrociano perché il pin dell'Ardino RX è collegato già con il pin TX dell'AtmegaxxU2, ed il pin TX con il piedino RX.

Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 12:08 am
Oggi sono riuscito solo a mettere il bootloader sul 644, avevo tanto altro da fare; domani assemblo il collegamento seriale e provo tutti i sistemi di conversione che ho, poi aggiorno il Topic.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 12:45 pm
Ho fatto una serie di test di programmazione seriale su un 644PA, confermo al 100% i vostri esiti:
MCP2200 (due schede identiche): richiede R10k in serie e C 100pF in parallelo verso massa sulla linea RX del 644; da tenere presente l'ininfluenza delle due R da 1k in serie ad entrambi i segnali sulla mia schedina e la R di pull-up da 22k sull'RX del 2200 (quindi sul TX del 644)

FT232RL (due schede diverse): stessa identica situazione dell'MCP2200 solo che qui ho dovuto aggiungere il C100nF sulla linea del DTR, in quanto queste schede non lo prevedono, mentre sulle mie MCP2200 c'è.

CP2100 (Cavo Nokia): a suo tempo avevo inserito nello spinotto terminale il C da 100nF; il cavetto funziona anche senza il gruppo RC (quindi confermate le prove di PaoloS), ma non risente della sua presenza, quindi funziona anche se c'è.

Riepilogando: per far funzionare qualsiasi convertitore USB-Seriale al 100% conviene:
- mettere un C da 100nF in serie alla linea DTR(Conv)-RESET(micro)
- mettere una R da 10k in serie alla linea TX(Conv)-RX(micro)
- mettere un C da 100pF tra la linea RX del micro e GND

Ora però voglio completare il ciclo di test con un 644A ed un 1284P, se ne parla nel pomeriggio, ma prima voglio cercare di capire qualcosa collegando il DSO alla sola linea RX del 644PA, visto che i problemi sono tutti lì.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: PaoloP on Dec 23, 2012, 01:48 pm
Scusate, ma non ho letto tutto il topic.
Volevo sapere se le soluzioni trovate riguardano solo la programmazione seriale, mentre per quella ISP non è necessario alcun accorgimento.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 02:12 pm

Scusate, ma non ho letto tutto il topic.
Volevo sapere se le soluzioni trovate riguardano solo la programmazione seriale, mentre per quella ISP non è necessario alcun accorgimento.

E' corretto. L'ISP non è influenzata.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 02:33 pm
Confermo Paolo, tant'è che usiamo regolarmente l'ISP per caricare il bootloader sui micro in test.
Ora inizio le misure col DSO, spero di capirci qualcosa :~
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 03:02 pm

Ora inizio le misure col DSO, spero di capirci qualcosa :~

Intanto iniziamo con una cosuccia semplice.  :smiley-sweat:
Prendi lo sketch Blink, compilalo e cerca di inviarlo sul 644P tramite l'accoppiata seriale/bootloader con e senza filtro RC, per vedere a livello di segnali cosa succede sulla linea RX.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 05:03 pm
Dunque, osservando le immagini allegate potete vedere l'effetto del "filtro" RC che abbiamo usato finora: in pratica il fronte di salita dei segnali viene arrotondato e contemporaneamente l'ampiezza diminuisce leggermente, e i risultati li sapete.
Però ho notato che l'MCP2200 a volte soffre questa situazione, quindi ho fatto altre prove, tra cui quella di creare un partitore per diminuire il segnale ma senza distorcerlo, il risultato lo vedete nella seconda figura, l'ampiezza diminuisce e il segnale resta perfetto, in queste condizioni però funziona solo l'FT232RL, mentre l'MCP2200 risponde solo a volte e il CP2100 non ne vuole.
Ho notato un miglioramento con un C1nF ed una R4k7 entrambi tra RX del 644 e massa, ma comunque la situazione resta incerta; non cambia molto se levo la 4k7
Ora posso passare alle prove con altri micro, per il momento resta il fatto che la situazione non è molto affidabile; considerate però una cosa: io mando gli sketch a ripetizione, cioè finisce uno e spedisco immediatamente lo stesso, a volte si creano sovrapposizioni, ma comunque l'incidenza di ciò è abbastanza limitata.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 05:45 pm
La mia domanda (pertinente con il lavoro che stiamo facendo noi) è:
c'è una combinazione "sicura" per ogni tipo di convertitore? Oppure, c'è un convertitore che funziona senza?

Mi spiego, se io uso l'FT232 mi par di capire che il filtro RC non crei problemi, anzi.
Ma con l'MCP2200 qualche problema il filtro lo crea, per cui hai trovato un circuito filtrante "tollerato" dal convertitore oppure l'MCP2200 funziona anche senza? Questo non l'ho capito.

Attendo i testi del 1284.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 06:04 pm
Sono le domande che mi sto ponendo io, e le risposte non mi piacciono per niente :smiley-sad-blue: Con due diversi 1284P non riesco a programmarli in alcun modo e con alcun convertitore, non ho provato l'Arduino perché non me ne frega niente, anche se a questo punto DEVO, se non altro per avere conferma che qualche spiraglio ci sia.
il 644A ha una diversa signature, francamente mi secca ora andare a modificare qualcosa per farlo funzionare, anche perché è "inutilizzabile" per i nostri scopi, non serve perderci tempo.
Prova un altro 644PA e poi uso Arduino, a tra poco....
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 06:18 pm
OK
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 06:30 pm
Tre su tre 644PA funzionano anche con Arduino UNO ed il solito RC, oltre che con FT232RL, il mio problema ora sono proprio i 1284P, che non vanno con nessun sistema: Arduino UNO, FT232RL, MCP2200, CP2100. A questo punto mi viene il dubbio che il problema non sia il bootloader, a me pare di aver usato la tua ultima versione, ma l'avevo scaricata forse un mesetto fa, come faccio a sapere se sto usando i file corretti? Secondo te potrebbe essere una cosa del genere?
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 06:39 pm

Tre su tre 644PA funzionano anche con Arduino UNO ed il solito RC, oltre che con FT232RL, il mio problema ora sono proprio i 1284P, che non vanno con nessun sistema: Arduino UNO, FT232RL, MCP2200, CP2100. A questo punto mi viene il dubbio che il problema non sia il bootloader, a me pare di aver usato la tua ultima versione, ma l'avevo scaricata forse un mesetto fa, come faccio a sapere se sto usando i file corretti? Secondo te potrebbe essere una cosa del genere?

Sul mio sito trovi un package aggiornato chiamato 644p_1284P_0102-002.zip
http://www.leonardomiliani.com/?p=625
Mi pare di aver ricompilato entrambi i bootloader, anche se non ne sono sicuro al 100% (nei giorni passati ho fatto talmente tante prove che ho perso la testa...).

So per certo però che la configurazione che ho suggerito, ossia R da 10K fra pin RX dell'Arduino e pin RX0 del 1284P, con C da 100pF in parallelo fra RX0 e GND a me a funzionato senza problemi. Ho usato l'Arduino UNO R1, quello con l'Atmega8U2 come convertitore con il firmware originale.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 06:42 pm
Ah, ho caricato il bootloader del 1284P con l'Arduino UNO con lo sketch ArduinoISP. Non so se lo hai fatto anche tu, altri programmatori più semplici (come l'USBtinyISP) non sono tutti capaci di scrivere oltre i 64 kB di Flash.

In buona sostanza, carica il bootloader ed accertati che funzioni. Per verificarlo, collega il 1284P su cui hai scritto il bootloader (quello che c'è nel mio package), attacca un LED al 2° piedino, dai alimentazione al chip e poi dagli un segnale di reset: se il bootloader è "vivo e vegeto", dovresti avere 3 flash veloci sul led (questa opzione viene compilata di default).
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 06:46 pm
Io sto usando la 1.0.1, posso usare comunque questa tua versione per la 1.0.2?
Il test l'ho appena fatto ed il LED flasha regolarmente quindi ci siamo, ma vorrei provare ad usare l'ultimo tuo.

EDIT: porc...... ho il solito problema del download dal tuo sito, lo fa ma poi mi dice che non ci sono file da estrarre o mi tira fuori un file ridicolo che non serve a niente ]:D
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 06:49 pm

Io sto usando la 1.0.1, posso usare comunque questa tua versione per la 1.0.2?

Per l'IDE 1.0.2 e 1.0.3 devi usare la versione 0102-002, perché con l'IDE 1.0.2 e 1.0.3 non serve più sovrascrivere i file del core di Arduino.
Il bootloader dovrebbe essere lo stesso ma se scarichi l'ultima versione è meglio. Come ti ho detto, mi pare di aver ricompilato il bootloader, ma non ne sono sicuro al 100%. Nell'incertezza, scaricala.

Quote

Il test l'ho appena fatto ed il LED flasha regolarmente quindi ci siamo, ma vorrei provare ad usare l'ultimo tuo.

OK
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: tonid on Dec 23, 2012, 06:54 pm
Ciao ragazzi.
Non ho seguito tutto il topic ma mi sembra di aver capito che i problemi che avete sono legati al pin rx del 644 che in alcuni casi siete riusciti a risolvere con filtro rc.  Guardando i risultati del DSO postati da Michele con il filtro applicato non ha alcun senso che un segnale distorto sia più interpretabile dal micro rispetto ad uno ben squadrato se non per un "difetto" delle porte. Mi viene da pensare che forse basta solo tenere il livello di tensione del segnale entrante al 644 leggermente più basso dei volt di alimentazione.
Per arrivare a questo scopo e renderlo applicabile ai diversi tipi di convertitori si potrebbe provare ad inserire un diodo veloce in serie al segnale abbassando il livello logico 1 a Vcc-0,5.  Non dispongo di 644 altrimenti avrei fatto anche io un po di prove volentieri.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 06:58 pm
MI sono spiegato male: posso usare il bootloader che hai preparato per la versione 1.0.2 con l'IDE 1.0.1? Puoi mandarmi ciò che devo usare per mail visto che il download dal tuo sito non mi funziona?

@ tonid: ma il diodo in serie non taglia le semionde negative? La prova ad abbassare il livello l'ho fatta anch'io con un partitore di tensione, forse ho esagerato, visto che l'ho portata a 3,4V, posso farla io la prova del diodo, sei sicuro di ciò che dici?

EDIT: ho messo comunque un BAT42 provandolo in entrambi i sensi e non cambia nulla; con il fatto di aver collegato il LED, sto notando una cosa, forse tra il RESET ed il primo segnale di TX per il sincronismo passa troppo poco tempo, ma intanto come posso fare a ritardare questa cosa?
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: tonid on Dec 23, 2012, 07:01 pm
Ciao Michele,il diodo se collegato con il catodo verso il pin rx del 644 lascia passare tutti i segnali positivi rispettando il senso della comunicazione portando il pin ai 5 volt meno la caduta del diodo.
Si può eventualmente aggiungere una R verso massa da una decina di K direttamente sul pin RX che tiene il pin a GND in assenza di segnale proveniente dal convertitore.
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 07:10 pm
Ti avevo risposto editando il post precedente, comunque non va nemmeno con la R, l'errore che ottengo è "avrdude: stk500_getsync(): not in sync: resp=0x00", quindi il convertitore invia il segnale di sync al micro ma questi non lo riconosce e non risponde, infatti il TX del micro non dà alcun segno di vita :smiley-sad-blue:
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 07:10 pm

MI sono spiegato male: posso usare il bootloader che hai preparato per la versione 1.0.2 con l'IDE 1.0.1? Puoi mandarmi ciò che devo usare per mail visto che il download dal tuo sito non mi funziona?

Trovi il package completo allegato a questo post.
E' la versione per IDE 1.0.2 e 1.0.3


Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: leo72 on Dec 23, 2012, 07:11 pm

Ti avevo risposto editando il post precedente, comunque non va nemmeno con la R, l'errore che ottengo è "avrdude: stk500_getsync(): not in sync: resp=0x00", quindi il convertitore invia il segnale di sync al micro ma questi non lo riconosce e non risponde, infatti il TX del micro non dà alcun segno di vita :smiley-sad-blue:

Prova con una R di pull-up da 10K sulla linea TX.
Title: Re: programmare il 644 ... ma come????
Post by: paolosanna on Dec 23, 2012, 07:12 pm
io intanto vi seguo in silenzio!!!!
Title: Re: programmare il 644 ... ma come???? RISOLTO!!!!
Post by: menniti on Dec 23, 2012, 07:21 pm


Ti avevo risposto editando il post precedente, comunque non va nemmeno con la R, l'errore che ottengo è "avrdude: stk500_getsync(): not in sync: resp=0x00", quindi il convertitore invia il segnale di sync al micro ma questi non lo riconosce e non risponde, infatti il TX del micro non dà alcun segno di vita :smiley-sad-blue:

Prova con una R di pull-up da 10K sulla linea TX.

il TX del micro è già in UP, se metto una pull-down si accende il led RX del Convertitore, ma chiaramente non riesco a simulare la risposta del micro e finisce lì.
Però non mi hai risposto: posso mettere queste cartelle nella loro posizione dell'IDE1.0.1 che sto usando o devo scaricarmi l'IDE 1.0.2???

Ho messo il nuovo bootloader sul 1284P, il led lampeggia, ma la trasmissione seriale NON va, proprio non ne vuole, sinceramente non ho più idea di cosa poter fare, ho perso un intero pomeriggio dietro a questa cosa, quindi o escono elementi seri e nuovi oppure bisogna lasciar perdere.
La configurazione è corretta: ho verificato i fuse e sono ok, ho messo quarzo e C, il C100nF sull'alimentazione, la R10k sul RESET, il C100nF in serie al RESET; questa stessa configurazione con il 644PA (3 micro diversi) funziona, e con l'FT232Rl è sufficiente usare un partitore con una 10k in serie al segnale ed una 22k tra RX del micro e GND; in questo modo la soglia di 5V diminuisce a circa 3,44V, il segnale resta pulito (v. immagine in un post precedente) e funziona tutto. é proprio un problema di comunicazione tra il TX del convertitore e l'RX del 1284P (non risolto finora) e del 644P (risolto con RC o partitore).

Con l'MCP2200 funziona col partitore, a patto di far passare almeno 15 secondi prima della successiva programmazione, ma solo il 644P

Con il CP2100 funziona senza alcun particolare accorgimento, ma solo il 644P

@Leo: non è che il bootloader spegne qualcosa nel micro???

Per stasera basta, torno a casa, domani faccio altre prove se qualcuno mi fornisce elementi nuovi altrimenti per me si può chiudere, anche se con parecchia rabbia
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 23, 2012, 10:24 pm
@Mike:
1) scusa, ho saltato la domanda. Puoi mettere il bootloader del package 0102-002 sull'IDE 1.0.1.

2)ma se con l'FT232 va e con l'MCP2200 no, bisognerebbe capire cos'ha questo chip di diverso dall'altro. E perché con l'Atmega8U2 della mia Arduino funziona.

3) il bootloader non spenge nulla sul micro. E' l'Optiboot e si comporta come quello della UNO: all'avvio, guarda se sulla seriale è in arrivo uno sketch, se sì lo scrive - se no salta al programma utente. Non fa altro.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Dec 23, 2012, 10:46 pm
Ciao Leo,se mi dai indicazioni/link sullo schema del convertitore FT232(non l'ho mai usato)che state usando e sulla sigla esatta dei chip che volete programmare li ordino così appena arrivano faccio anche io un po di prove e vediamo se riusciamo insieme a risolvere il problema o quanto meno sapere esattamente come comportarsi.
Credo,viste le feste ,che mi arriveranno a Gennaio,non posso quindi contribuire subito ma appena arrivano si può fare
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 23, 2012, 10:53 pm
Io ho usato solo l'Arduino UNO senza l'Atmega328, sfruttando quindi l'Atmega8U2 come convertitore, ed a me ha funzionato sia con il 644P che con il 1284P con il filtro RC che ho suggerito.
Per l'FT232 devi sentire Michele...
I chip da programmare sono l'Atmega644P/PA e l'Atmega1284P, entrambi in versione DIP40.

Ma, ripeto, io li programmo tramite bootloader.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Dec 23, 2012, 11:02 pm
Ok,intanto mi procuro i chip e poi vediamo.
Io ho l'MCP2200 già montato ed inizierò a fare un po di prove con quello e con la scheda arduino senza ATmega.
Quello che sarebbe ideale trovare è una circuiteria standard ai diversi convertitori di modo che ogni volta non si debba fare uno schema "adattatore" specifico.
Ora aspetto Michele per sapere di più sul FT232......
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 23, 2012, 11:12 pm

Quello che sarebbe ideale trovare è una circuiteria standard ai diversi convertitori di modo che ogni volta non si debba fare uno schema "adattatore" specifico.

Era quello a cui si cercava di arrivare  :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Dec 23, 2012, 11:18 pm
Bene....si è fatta ora di andare a fare il pane e brioches per domani.......mi faccio un reset altrimenti metto nell'impastatrice convertitori,resistenze,ecc. compromettendo l'impasto......Faccio un grosso augurio di buon Natale a tutti,ciao.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 23, 2012, 11:26 pm
'notte e buon Natale anche a te  XD
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 23, 2012, 11:49 pm
@ Leo: (ok, intanto l'ho caricato sul micro, ma non è cambiato nulla). Forse mi sono spiegato male:
1 - i tre diversi convertitori + Arduino funzionano benissimo col 328P
2 - i tre diversi convertitori + Arduino programmano il 644P seppur con leggere differenze, ma trascurabili, ricorrendo al filtro RC o, indifferntemente, al partitore resistivo (soluzione che preferisco perché non altera il segnale, come hai visto)
3 - nel mio caso nessuno dei quattro programma il 1284P (ne ho provati due diversi)
Perché mi devo concentrare sui convertitori e NON sul 1284P??
MI faresti una prova con 644/1284? Lascia la r10k e al posto del C100pF metti una R da 22k in funzione di pull-down e vedi quello che succede; se, come penso, funziona tutto, il metodo è decisamente migliore del "filtro" perché non deforma il segnale, col rischio di perdere qualcosa quando si userà seriamente....
Poi due domande:
1 - in qualche modo il lampeggio del LED sul pin 2, subito dopo il reset che il convertitore dà al micro, visto che quasi istantaneamente gli manda il sync tramite il TX, può creare problemi di una qualche natura?
2 - è il caso di provare la seriale a 2500bps? può avere problemi col bootloader?

@ Tonid, tutte le info e materiali che ti servono (grazie in anticipo per il contributo!)
1 - l'FT232RL è montato su Arduino 2009, puoi far riferimento a quello schema; nello specifico io sto usando lo schedino Sparkfun, è fatto benissimo ed è comodo, diversamente ti tocca realizzarlo, non è pensabile di provarlo tramite adattatori; lo puoi prendere da Futura, credo anche da Robot Italy, o direttamente da Sparkfun (mi pare che in Europa sia Watterott il distributore...), ti basta la versione base, quella col connettore a 6 poli
2 - l'MCP2200 ce l'hai già
3 - hai anche Arduino, ma serve solo come riferimento, non ci interessa programmare i micro con l'8u2
4 - il CP2100 non ci interessa nemmeno, è solo perché mi trovo il cavetto, ma non abbiamo intenzione di usarlo
5 - i micro da programmare, come ha detto Leo, sono ATmega644P e ATmega1284P, in formato PDIP-W 40 pin
6 - il firmware/bootloader da usare è quello scaricabile dal sito di Leo

Le problematiche dovrebbero esserti chiare:
1 - nessuna difficoltà a programmarli via ISP, lo facciamo da tempo e l'abbiamo usato appunto per mettere il bl sui micro
2 - il problema è la programmazione via seriale
3 - i miei ultimi post ti indicano lo stato delle cose, la differenza con Leo è che lui riesce a programmare anche il 1284, ma sempre con il "filtro" RC (ora vediamo se risolve col partitore che gli ho consigliato). Se hai bisogno di chiarimenti non esitare a chiedere
4 - Se ordini a Futura e RS ti arriva tutto in un paio di giorni, ma questo solo se vuoi fare in fretta; io fino a novità da parte di qualcuno che abbia idee o prenda informazioni, non ci perdo più tempo, non so davvero più che fare, questa cosa ha dell'incredibile.

basta :smiley-sweat:, buonanotte e Buon Natale a tutti  XD
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 23, 2012, 11:54 pm
Per le prove devi aspettare dopo le feste. Domattina sveglia alle 5 e lavoro, poi a natale e santo stefano, fra lavoro e famiglia, praticamente non ci sono  :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 24, 2012, 08:05 am
certamente, vedi solo se puoi dare risposta alle due domande che ti ho fatto nell'ultimo post.... così al limite stamattina faccio un'altro paio di prove prima di dedicarmi a tempo pieno al mio "progetto dell'anno 2013" XD
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 24, 2012, 08:19 am

Poi due domande:
1 - in qualche modo il lampeggio del LED sul pin 2, subito dopo il reset che il convertitore dà al micro, visto che quasi istantaneamente gli manda il sync tramite il TX, può creare problemi di una qualche natura?

No. E' il comportamento standard dell'Optiboot. Lo fa anche l'Arduino.
Semplicemente, il lampeggio viene eseguito prima che si instauri la comunicazione con avrdude.

Quote

2 - è il caso di provare la seriale a 2500bps? può avere problemi col bootloader?

Il bootloader è compilato per lavorare a 115200 bps.
Penso che possa accettare qualsiasi velocità inferiore però dovresti:
1) ricompilare il bootloader per la nuova velocità
2) cambiare la velocità nella board relativa

Comunque io ho provato a 57600, quando facevo i test e non mi andava. E non ho risolto.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 24, 2012, 08:36 am
naturalmente intendevo scrivere 2400 :D, ok, rinuncio alle altre prove, io purtroppo non mi sento nelle condizioni di scrivere ad ATMEL; forse tu potresti sentire BOB per sapere se nel tempo gli è capitato qualche altro guaio e come lo ha risolto o meglio ancora aprire un Topic internazionale con la problematica, tanto la cosa quella è: nonostante il filtro non c'è verso di programmare il 1284P; se hai qualche minuto aprilo il Topic e mandami il link così me lo seguo durante la giornata.
Ora vado al lab.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 24, 2012, 10:08 am
Guarda, dei problemi relativi al pin RX0 se ne è già discusso sul forum internazionale. Ho anche guardato su AvrFreaks.
La soluzione è sempre quella: filtro RC.

Casomai ho trovato una cosa nuova, tu che usi l'FT232 e l'MCP2200 potresti provarla.
Il circuito di reset che fanno è questo:

Code: [Select]

    +---|<|----+
    |          |
5V--+-- R10K --+-- PIN_RST
               |
               = C 100nF
               |
          PIN_DTR


Non so se si capisce.
In pratica, R di pull-up da 10K tra VCC e pin di reset con diodo in antiparallelo.
Condensatore non pol. da 100 nF in serie sulla linea che va dal pin DTR del programmatore al pin di reset del microcontrollore.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 24, 2012, 10:11 am
Questo è il normalissimo circuito di reset, solo con l'aggiunta del diodo che, se ricordi, hanno messo anche sulle ultime versioni di Arduino; se ne parlò abbondantemente tra Astro e Testato, quanto quest'ultimo scriveva la sua Guida sull'IDe 1.0.
Mettere un diodo non mi costa nulla, provo....
Niente da fare, il problema ormai è chiaro per me: non c'è dialogo tra Convertitore e micro, a motivo del fatto che l'RX del micro non riconosce i segnali in arrivo dal TX del convetitore.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 24, 2012, 10:18 am

Niente da fare, il problema ormai è chiaro per me: non c'è dialogo tra Convertitore e micro, a motivo del fatto che l'RX del micro non riconosce i segnali in arrivo dal TX del convetitore.

E' questo, è il famoso bug HW delle versioni DIP del micro.
Per curiosità, di che produzione è il tuo micro?
Cioè, sopra al chip ci sono delle scritte:
ATMEL
ATMEGA1284P
PU
XXYY

Cos'hai scritto al posto di XXYY? Per capire il lotto, se è uguale al mio.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 24, 2012, 10:20 am
1021
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 24, 2012, 10:31 am
A memoria non è uguale al mio, il mio mi pare sia marchiato 1039.
Sto spulciando nel forum alla ricerca di quella discussione sul 1284 in cui si parlava anche di questi problemi... discussione che non riesco a ritrovare... incredibile... 30 pagine sparite.. o sono orbo io...
Cmq trovo un sacco di gente che si lamenta di non riuscire a caricare via seriale col bootloader...
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 24, 2012, 10:43 am
Ecco, ho ritrovato il mio post dove segnalavo il problema e la soluzione.
http://arduino.cc/forum/index.php/topic,80483.msg958603.html#msg958603

Ora che rileggo, vedo che ho fatto una cosa che a te non ho suggerito. Pare una ca**ata ma all'epoca funzionò: tagliare i piedini del condensatore da 100pF affinché siano i più corti possibili e metterlo il pin più vicino possibile ai pin del 1284P.
Pare fantascienza, ma puoi provare.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 24, 2012, 10:55 am
niente da fare, sono accorgimenti da RF, in questo caso penso solo che si tratti di situazioni vado/non vado; comunque sia non ci possiamo certo affidare ad accorgimenti del genere, quin  bisogna studiare a fondo e capire dov'è il vero problema :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: Maurotec on Dec 24, 2012, 02:56 pm
Vi seguo e se si tratta di un bug sarebbe bello leggere un comunicato ufficiale Atmel per capire dove il problema così da cercare una soluzione a ragion veduta.

Ciao.
Title: Re: programmare il 644 ... ma come????
Post by: cece99 on Dec 24, 2012, 03:06 pm
Guardate, se posso essere di aiuto ho un progetto di comprare un 644 e ho degli mcp2200 quindi se volete vi do una mano a fare prove :)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 24, 2012, 05:04 pm
Dopo investigazione in rete per rinfrescarmi la memoria, ho trovato il bug.
Esso sembra risiedere in un problema interno che porta a reset imprevisti del microcontrollore se durante l'esecuzione di un programma arrivano dati sulla linea RX0, cioè la linea di ricezione della prima seriale hardware.
Questi dati interferiscono col bus della memoria Ram causando errori che spaziano dall'alterazione dei dati fino al reset del microcontrollore.

La soluzione proposta è solo quella del filtro RC.
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=107115
http://www.seanet.com/~karllunt/1284pmemprob.html
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=600128
http://uzebox.org/forums/viewtopic.php?f=4&t=49

Lì si parla solo di frequenze di 20 MHz ma qui noi abbiamo chip a 16 MHz col bug.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 24, 2012, 06:09 pm
@ Mauro: bisognerebbe contattare ATMEL, se se ne parla su AVRFreaks penso che la cosa sia nota, ma io non so dove mettere mani né come contattarli, chissà Astro, ma mi sa che se n'è andato a sciare da qualche parte XD

@ cece: ovviamente ci stiamo muovendo "pubblicamente", chiunque vuole può fare prove, ma il problema col 644P non si pone, è il 1284P che fa le bizze

@ leo: la vedo sempre peggio, specialmente se abbiamo conferma che è un bug del pdip. Ma dimmi, non potremmo usare la seconda seriale per l'upload??? :D
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 24, 2012, 10:53 pm

@ Mauro: bisognerebbe contattare ATMEL, se se ne parla su AVRFreaks penso che la cosa sia nota, ma io non so dove mettere mani né come contattarli, chissà Astro, ma mi sa che se n'è andato a sciare da qualche parte XD

Il bug è di vecchia data. Se ne parla già in riferimento a chip del 2008. Atmel, da quel che ho letto su AvrFreaks, ufficialmente ha detto solo che quei chip erano dei preserie e quindi secondo loro i micro di produzione non avrebbero avuto il problema. Il... problema è che invece anche i chip costruiti successivamente ce l'hanno.
Quindi Atmel non affermerà mai che sono buggati.

Quote

@ leo: la vedo sempre peggio, specialmente se abbiamo conferma che è un bug del pdip. Ma dimmi, non potremmo usare la seconda seriale per l'upload??? :D

In teoria sì. Penso basti prendere il bootloader e modificare la USART usata. Il problema è che questo bug colpisce anche la normale comunicazione seriale per cui basta un segnale su RX0 per resettare il micro.

Mike, però mi suona strana 'sta cosa. Saresti l'unico a cui il filtro RC non ha funzionato. Eppure su AvrFreaks tutte le discussioni aperte per il bug della USART0 del 1284 sono state chiuse con [Risolto] proprio grazie a questo filtro.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 24, 2012, 11:54 pm
Leo, mi rendo perfettamente conto di quello che dici, d'altra parte levo il 1284 metto il 644 e cambio board e funziona, quindi non ho problemi di connessioni; ho provato due diversi 1284, ho verificato i fuse e il led che lampeggia mi conferma che il bootloader è a posto, tu dici che sono più deficiente o più sfigato? :~
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 25, 2012, 12:22 am

Leo, mi rendo perfettamente conto di quello che dici, d'altra parte levo il 1284 metto il 644 e cambio board e funziona, quindi non ho problemi di connessioni; ho provato due diversi 1284, ho verificato i fuse e il led che lampeggia mi conferma che il bootloader è a posto, tu dici che sono più deficiente o più sfigato? :~

Sicuramente sfiga.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 26, 2012, 10:42 am
Torno alla carica in maniera diretta: ce la faresti a preparare un bl-prova per il solo 1284P che faccia uso della USART2 per la comunicazione seriale? Magari la problematica riguarda solo QUELLA USART e non la comunicazione seriale in genere; dubito che qualcun altro l'abbia fatto finora.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 26, 2012, 11:10 am

Torno alla carica in maniera diretta: ce la faresti a preparare un bl-prova per il solo 1284P che faccia uso della USART2 per la comunicazione seriale? Magari la problematica riguarda solo QUELLA USART e non la comunicazione seriale in genere; dubito che qualcun altro l'abbia fatto finora.

Penso di sì, te lo faccio però oggi pomeriggio (ora non sono a casa).
Ma resterebbe il problema che la USART0 sarebbe afflitta dal bug comunque ed un suo uso potrebbe mandare in crash il chip in modo del tutto casuale se non adeguatamente sistemato. Anzi, leggendo in quei thread, un qualsiasi uso come input del pin RX0 causa iniziezione di dati casuali nella Ram con conseguente possibile crash.

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 26, 2012, 11:22 am
Beh, intanto proviamo a vedere cosa succede con la seconda, poi se non ricordo male ce ne stanno tre sul 1284P, ed io penso che già due siano sufficienti per un uso comune, al limite si disabilita come seriale e restano i pin digitali; vediamo intanto se si risolve la questione dell'upload :smiley-sweat: Fai con calma....
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 26, 2012, 11:42 am
Forse ti è sfuggito...

un qualsiasi uso come input del pin RX0 causa iniziezione di dati casuali nella Ram con conseguente possibile crash.

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 26, 2012, 01:31 pm
non mi è sfuggito, ma io non mi fido ciecamente di ciò che scrivono, ma solo delle prove che facciamo io tu ed altri che sanno come muoversi e con cui possiamo colloquiare direttamente ;)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 26, 2012, 01:35 pm

non mi è sfuggito, ma io non mi fido ciecamente di ciò che scrivono, ma solo delle prove che facciamo io tu ed altri che sanno come muoversi e con cui possiamo colloquiare direttamente ;)

Oggi vedo di prepararti il bootloader.
Title: Re: programmare il 644 ... ma come????
Post by: Maurotec on Dec 26, 2012, 01:50 pm

non mi è sfuggito, ma io non mi fido ciecamente di ciò che scrivono, ma solo delle prove che facciamo io tu ed altri che sanno come muoversi e con cui possiamo colloquiare direttamente ;)


Anche se fosse così male che vada si fa finta di non avere la USART0 e si cortocircuita il pin Rx a VDD o VSS. La cosa del filtro RC visto che funziona mi fa pensare ad un problema legato al conenuto armonico alto tipico delle onde quadre, ci sarebbe da controllare con l'oscillocopio se l'onda quadra su pin RX è davvero quadra oppure la connessione al pin RX ne compromette la forma.

Se ci fate caso il datasheet del 1284 datata 2010 elenca solo due seriali anziche 3, forse solo in un secondo tempo hanno pensato di apportare modifiche che rendessero appetibile il 1284 rispetto al 644 non puntanto solo sulla differenza di flash, e purtroppo nella transizione è uscito qualche chip di cui non essere orgogliosi.

Ciao.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 26, 2012, 02:15 pm
Nei post precedenti ho pubblicato due immagini del DSO: il filtro RC la distorce, ovviamente, se invece adotto un normale partitore l'onda quadra resta perfetta e con l'FT232RL programmo senza problemi il 644, evitando quella pessima distorsione; anzi mi piacerebbe che facesse la prova Leo, sul suo 1284P, visto che gli funziona col filtro: valori 10k e 22k (quest'ultima in pull-down). Sono anch'io dell'idea che se si riesce a far funzionare si possa abbandonare questa seriale.

Comunque mi sono ricordato che mesi fa avevo aperto un contatto con la Filiale italiana di ATMEL, voglio provare a scrivergli.

@ Leo: ok, più tardi anch'io ti mando del materiale.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Dec 26, 2012, 05:05 pm
Il firmware è allegato. Non l'ho potuto provare perché sulla breadboard ho il circuitino di test per l'altra cosa.
Fammi sapere se va. L'ho compilato per la 2° seriale, quindi usa i pin RX1 e TX1.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Dec 26, 2012, 05:32 pm
ok, grazie, appena possibile faccio la prova, tanto ho lasciato tutto montato nel lab. L'altro circuito lascialo montato perché devo ancora fare la mia prova, pazienta, vediamo se riesco a trovare una mezzoretta domani, altrimenti il 28 è sicuro.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 11, 2013, 08:05 pm
Allora, oggi finalmente sono riuscito a tornare nel lab per fare le altre prove col 1284P, purtroppo senza successo.
Ho cambiato ancora micro (ne ho 5, ma sono tutti della stessa partita)
Ho provato a mettere i fuse di cui parlavamo e ovviamente ho aggiunto un oscillatore esterno a 16MHz
La storia è sempre la stessa:
il micro riceve il RESET
immediatamente dopo tre TX in rapida sequenza ma nemmeno un RX
dopo un poò errore "avrdude: stk500_getsync(): not in sync: resp=0x00"
La programmazione la faccio tramite convertitore USB-Seriale con FT232RL
Ho fatto un ennesimo tentativo di scrupolo con Arduino UNO, ma niente da fare :smiley-sad-blue:, con o senza filtro RC, 8u2 o FT232RL o MCP2200.
Naturalmente tutti i metodi di programmazione funzionano con qualsiasi altro micro

SONO ATTAPIRATO!!!!! =(
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 11, 2013, 11:44 pm
Boh, 'sta cosa ha dell'incredibile nonché del paradossale. Stiamo andando avanti per tentativi, ognuno con una soluzione che non funziona se provata da un altro.... mah... Comunque tutto ciò conferma che i bug questo chip ce li ha davvero sulla USART0.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 12, 2013, 10:08 am
Il problema è che noi abbiamo usato anche l'altra seriale come esperimento, ma non è cambiato nulla. Ieri sera ho scritto all'Agente ATMEL per l'Italia, spiegando la cosa e riportando il lotto dei miei micro, vediamo se mi risponde. Sarei tentato di comprarne un altro, ma francamente ne ho già 5 inutilizzati, un paio hanno lavorato per le prove dei miei due Programmatori, ma gli altri fino a queste prove erano intatti.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 12, 2013, 11:39 am

Il problema è che noi abbiamo usato anche l'altra seriale come esperimento, ma non è cambiato nulla. Ieri sera ho scritto all'Agente ATMEL per l'Italia, spiegando la cosa e riportando il lotto dei miei micro, vediamo se mi risponde. Sarei tentato di comprarne un altro, ma francamente ne ho già 5 inutilizzati, un paio hanno lavorato per le prove dei miei due Programmatori, ma gli altri fino a queste prove erano intatti.

Se è una persona seria, non lo smentirà, il che equivale ad una conferma implicita  ;)
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 14, 2013, 10:18 pm
MI ha risposto ieri (di domenica!!!) fornendomi l'indirizzo diretto dell'assistenza ATMEL ed un altro nominativo (italiano) acui scrivere per conoscenza, e mo' mi tocca tradurre in inglese la mia lettera :smiley-sweat: :smiley-sweat:

Comunque ho fatto una serie di altre prove: ho scollegato i 5V dell'USB e alimentato il micro con una tensione esterna di 4,5V ed ho aggiunto una pull-down al tx del micro ed ora vedo che il micro risponde alle "sollecitazioni" del programmatore, però c'è un problema di sincronismo a mio modesto parere. Vedremo cosa mi rispondono (semrpe se capiscono quello che gli scrivo :smiley-yell:)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 14, 2013, 10:32 pm

MI ha risposto ieri (di domenica!!!) fornendomi l'indirizzo diretto dell'assistenza ATMEL ed un altro nominativo (italiano) acui scrivere per conoscenza, e mo' mi tocca tradurre in inglese la mia lettera :smiley-sweat: :smiley-sweat:

Comunque ho fatto una serie di altre prove: ho scollegato i 5V dell'USB e alimentato il micro con una tensione esterna di 4,5V ed ho aggiunto una pull-down al tx del micro ed ora vedo che il micro risponde alle "sollecitazioni" del programmatore, però c'è un problema di sincronismo a mio modesto parere. Vedremo cosa mi rispondono (semrpe se capiscono quello che gli scrivo :smiley-yell:)

Uhm... mi fa pensare questa cosa.
Sul mio sito un lettore mi ha scritto che lui ha programmato i suoi 1284P alimentandoli separatamente dall'Arduino che usava per programmarli
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 14, 2013, 10:37 pm
Ormai preso dalla disperazione ho provato di tutto, variando il range da 3 a 5,5V, come dicevo ora si accende il led tx e poi quello rx, in pratica il micro si accorge che gli è arrivata qualcosa e da una risposta, ma non conosco il protocollo di comunicazione, non so se la risposta del micro è quacosa tipo "eh, cos'hai detto?" oppure "sì, ho capito", ma poi non capisce il programmatore a sua volta; comunque ho lasciato le masse in comune, non avrebbe senso non farlo, secondo me; nei prossimi gg farò altre prove "strane".
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 14, 2013, 10:43 pm

comunque ho lasciato le masse in comune, non avrebbe senso non farlo, secondo me

Beh, sì. Certo. Altrimenti non tornerebbero neanche i livelli della seriale.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 15, 2013, 12:03 am


comunque ho lasciato le masse in comune, non avrebbe senso non farlo, secondo me

Beh, sì. Certo. Altrimenti non tornerebbero neanche i livelli della seriale.


la cosa curiosa è questa: normalmente il livello TX è allo stato HIGH e così com'è non dà segni di vita; se metto una pull-down da 10k lo porto allo stato LOW, ed in questo modo vedo l'attività sul pin, ma nun ce sto a capì na piotta :~
Comunque ho scritto all'assistenza, vediamo se mi rispondono
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 15, 2013, 10:35 am
Beh, sono veloci, anche se ti trattano come un deficiente :smiley-sad-blue:
Quote
Dear customer,
Please make sure that the hardware connection is correct.
You can test UART function with application firmware but not bootloader. The easy code can verify hardware connection and firmware.Pin 15 is used for UART0 but not UART1, so please check which UART you are using.
And please be noticed that the memory size is different between ATmega664PA and ATmega1284.
Thanks.
Best Regards,
Atmel Technical Support Team

La questione dell'USART0/1 è colpa mia perché ieri sera ho parlato di prima seriale e lui l'ha interpretata come "1" invece di "0".
Prima di rispondergli spiegando che non sono così sprovveduto e che conosco le differenze di memoria tra 644 e 1284 ]:D qualcuno gentilmente mi spiega il significato STRETTO della frase che ho colorato in rosso?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 15, 2013, 10:44 am
Mi par di capire che suggerisca l'uso di un test condotto con un firmware (penso inteso nel senso di programma) e non di un bootloader, programma che può verificare la funzionalità della connessione hardware.
Cioè, capisco che ti sta dicendo che forse il problema è dato da un errore nelle connessioni.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 15, 2013, 11:23 am

Mi par di capire che suggerisca l'uso di un test condotto con un firmware (penso inteso nel senso di programma) e non di un bootloader, programma che può verificare la funzionalità della connessione hardware.
Cioè, capisco che ti sta dicendo che forse il problema è dato da un errore nelle connessioni.


Allora avevo capito bene. La questione delle connessioni se la sta ponendo perché pensa che io abbia fatto confusione tra USART0 e USART1, ma noi sappiamo che così non è. Testare un firmware invece di un bootloader significa che vado a caricare via ISP un qualsiasi software che faccia uso della seriale 0 e verifico se funziona, ma io sono ragionevolmente sicuro di sì, e comunque non potrei avere il problema su 5 micro.
Inutile che gli risponda ora, al limite gli dico che faccio altri test; per scrupolo metto via ISP un qualsiasi sketch che usa la seriale e poi gli allego lo schema applicativo dei test che sto facendo e la copia del bootloader che sto usando, e gli spiego che a me quello serve e non la semplice funzionalità del micro.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 20, 2013, 12:19 pm
Ciao gente,ho montato il 644P ma prima di iniziare a fare delle prove volevo chiarire alcune cose su cui non ho fatto ancora esperienza.
Ho scaricato il pacchetto dal sito di Leo e ho sistemato il tutto nell'ide 1.0.1,poi per caricare il bootloader in ISP seleziono la board di testo ATmega644p@16MHz w/Arduino as ISP e poi carico il bootloader con il tasto burn bootloader che è presente nei tool dell'ide.
A questo punto monto il chip in stand alone con il quarzo ecc. ed è pronto per essere programmato in seriale ma quale board di testo devo selezionare per caricare uno scketch ?
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 20, 2013, 02:05 pm
Allora, ho usato la board di testo  ATmega644p@16MHz w/bootloader ed il convertitore MCP2200 con i seguenti collegamenti:
-nessun condensatore in serie al reset del MCP2200;
-R da 1k tra TX del MCP2200 e pin RX del 644;
-R da 1k tra TX del 644 e RX del MCP2200;
-nessun filtro RC sull'RX del 644;
-ATmega644PA-PU in stand alone con quarzo 16MHz ed R di reset in pull-up da 10k.
Ho caricato una decina di volte il blink con successo variando i valori di delay e verificando anche il lampeggio sul pin 19(D13).
Se invece inserisco il condensatore in serie al reset non trova il chip andando in "not in sync".

edit. Ho provato anche a scaricare uno dopo l'altro gli scketch aspettando giusto il messaggio dell'ide done uploading e l'esito è sempre positivo......fin'ora ne ho scaricati una 40ina .
Se avete bisogno di più info o misurazioni chiedetemi ,lascio tutto montato.
Title: Re: programmare il 644 ... ma come????
Post by: PaoloP on Jan 20, 2013, 03:59 pm
Riguardo l'IDE conviene usare tutti l'ultima versione ufficiale, la 1.0.3, per evitare che piccole differenze nel codice si ripercuotano nei test.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 20, 2013, 04:05 pm
Sarebbe una buona cosa ma nel mio caso spaventa cambiare perchè non ho particolare dimestichezza con file e cartelle :smiley-eek:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 20, 2013, 04:13 pm

Se invece inserisco il condensatore in serie al reset non trova il chip andando in "not in sync".

Sul pin di reset lascia solo la resistenza di pull-up (da 10 a 30K), il C (da 0.1uF ceramico) mettilo eventualmente  in parallelo, che aiuta a tenere il pin un pochino più pullato basso finché la VCC non si è stabilizzata.

Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 20, 2013, 04:14 pm

Riguardo l'IDE conviene usare tutti l'ultima versione ufficiale, la 1.0.3, per evitare che piccole differenze nel codice si ripercuotano nei test.

Concordo. Oltretutto non devi più cambiare i file del core dato che la 1.0.3 supporta nativamente sia il 644P che il 1284P.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 20, 2013, 04:22 pm
Ciao Leo,ho aggiunto il C da 100nF in parallelo alla pull-up ma devo comunque eliminare quello in serie al reset altrimenti non va.
La cosa strana è che a me funziona benissimo senza filtro RC e,se lo aggiungo,carica bene lo stesso...
Mi pare di ricordare che il problema lo avevate su entrambi i chip 644/1280,giusto?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 20, 2013, 04:24 pm

Ciao Leo,ho aggiunto il C da 100nF in parallelo alla pull-up ma devo comunque eliminare quello in serie al reset altrimenti non va.

Te lo avevo detto anche io:
Quote
il C (da 0.1uF ceramico) mettilo eventualmente  in parallelo

;)

Quote

La cosa strana è che a me funziona benissimo senza filtro RC e,se lo aggiungo,carica bene lo stesso...

Il filtro RC serve (ma non sempre) per i 1284P, i 644P non necessitano di esso.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 20, 2013, 04:28 pm
Ah,ricordavo che con l'MCP c'erano dei problemi anche con il 644 8)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 20, 2013, 04:31 pm

Ah,ricordavo che con l'MCP c'erano dei problemi anche con il 644 8)

L'unico che so che abbia avuto dei problemi con il 644P durante la programmazione via bootloader è stato Michele.
A lui il 644P funziona con filtro RC mentre il 1284P proprio non riesce a programmarlo.

Io ho sempre programmato il 644P senza filtro, mentre mi serve assolutamente il filtro con il 1284P.
Però preciso che io ho usato per ora solo l'Arduino UNO con l'Atmega328 staccato, quindi invece dell'MCP2200 ho usato l'Atmega8U2. Non so se questo fa la differenza. A parte il convertitore, anche in rete ho letto di problemi solo in relazione al 1284P.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 20, 2013, 04:40 pm
Ricordavo bene allora che c'era un problema ma non ricordavo che lo avesse  Michele....Appena passa di quì vediamo se posso tornargli utile.
Il 1284 non me lo hanno dato disponibile quindi non posso fare prove anche con quello,dovrei vedere "sotto casa" se ne hanno ma la vedo dura.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 20, 2013, 06:46 pm
Intanto io sto usando la 1.0.1.
All'inizio ho fatto prove con CP2100, MCP2200, FT232RL e 8u2, i risultati sono riportati qui (http://arduino.cc/forum/index.php/topic,136740.msg1042226.html#msg1042226). Quindi l'unico modo che ho io per programmare il 644P è usare il filtro o un partitore sulla linea rx del micro, eccetto il CP2102 che funziona direttamente; invece nessuno di essi va con il 1284P né con filtro e né senza.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 20, 2013, 07:00 pm
Ciao Michele,anche io uso l'ide 1.0.1 ed ho usato l'MCP come convertitore ma,avendo fatte le prove come rimasti qualche post fa,devo dire che non mi ha dato particolari problemi se non dovuti al condensatore in serie al reset che,una volta bypassato,mi ha permesso di caricare sckecth senza l'ausilio di filtri RC sul RX del 644.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 21, 2013, 10:47 am
Ho ordinato questa mattina il 1284p,dovrebbe arrivare mercoledì/giovedì,appena arriva faccio due prove anche io su quello e vi dico.
Ciao.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 21, 2013, 10:51 am
Purtroppo ho altre dieci cose da fare nel pochissimo tempo che ho disponibile per il lab; ora non può che venirmi il dubbio che sia il portatile, perché qui secondo me è una frazione di qualcosa....
Il fatto è che altri sul Forum Internazionale sono nelle mie stesse condizioni, la cosa che mi toglie voglia di insistere è il fatto di non aver MAI visto funzionare un 1284P.
Comunque ho fatto una piccola ma dettagliata relazione all'Assistenza ATMEL, inviando loro materiale per fare le prove ed il link al Topic del F.I. in modo che vedano che non sono un visionario e che comunque, anche chi va meglio (v. Leo) è costretto a ricorrere al filtro RC. Sarebbe ora interessante vedere la tua prova col 1284P, se e quando ti arriva. Una sola info: il tuo convertitore MCP2200 lo hai realizzato sul mio schema o hai apportato modifiche particolari? Nella versione che ho dato alla Rivista ho messo il C in serie al DTR (RTS in realtà....) però ho previsto anche un jumper a saldare, in parallelo ad esso per bypassarlo in situazioni come questa.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 21, 2013, 11:11 am
Per ora le prove le ho fatte tutte con il fisso.
MIke, hai provato a dare alimentazione all'Atmega1284P separatamente e non attraverso il convertitore (e quindi il portatile)?
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 21, 2013, 11:29 am

Per ora le prove le ho fatte tutte con il fisso.
MIke, hai provato a dare alimentazione all'Atmega1284P separatamente e non attraverso il convertitore (e quindi il portatile)?

sì, lo leggi qualche post addietro, quella sera che ho poi messo una pull-down sul tx del micro ed a quel punto ho iniziato a vedere attività di risposta, invece dei soliti 3 lampeggi a vuoto, ma comunque ottenendo lo stesso errore. MI era venuto il dubbio dei livelli ed ho provato ad alimentare il micro separatamente da 4,5 a 5,5V mentre il convertitore era alimentato dall'USB, ovviamente masse in comune
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 21, 2013, 12:18 pm
Quote
Sarebbe ora interessante vedere la tua prova col 1284P, se e quando ti arriva. Una sola info: il tuo convertitore MCP2200 lo hai realizzato sul mio schema o hai apportato modifiche particolari? Nella versione che ho dato alla Rivista ho messo il C in serie al DTR (RTS in realtà....) però ho previsto anche un jumper a saldare, in parallelo ad esso per bypassarlo in situazioni come questa.

Ma,l'ho ordinato questa mattina tramite un amico che ha un negozio di comp,aveva da chiudere un ordine ad RS e gli ha infilato il mio chip,comunque spero mi arrivi presto. Per quanto riguarda l,MCP2200 ho fatto una nuova scheda dove posso sia ponticellare il condensatore con un jumper che la resistenza da 1K (famosa)che in alcune situazioni particolari poteva dare fastidio ma lo schema è lo stesso tuo.
Le prove che ho fatto io sul 644 sono state fatte da portatile e non da fisso.
Ora a parte tutto non entro troppo in merito all'architettura di un micro in quanto sono ignorante ma se è prevista la programmazione seriale è giusto che essa debba funzionare e visto che così non è il problema lo hanno loro (atmel) e dovrebbero a mio parere risolverlo o quanto meno trovare una soluzione che sia sempre funzionale.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 21, 2013, 12:51 pm
il tecnico con cui sono in contatto finora è stato gentile e disponibile, vediamo ora che siamo al nocciolo della questione.....
i miei MCP2200 ora sono in Rivista perché sul numero di febbraio esce l'articolo, quando rientrano posso fare la prova a bypassare le due R da 1K ed eliminare la pull-up sull'rx dell'MCP, intanto aspetto le tue prove.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 21, 2013, 01:04 pm
Va bene..
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 22, 2013, 08:27 am
Ecco la risposta ATMEL:
Quote
Dear customer,

Here are some suggests about your issue:

1. When you program bootloader and USART firmware to the chip, please make sure which entrance (application or bootloader) the firmware runs from when power on.

2. If the bootloader affects USART, please add bootloader code step by step and check which part affects USART

3. I soppose RC filter doesn't affect USART communication, please measure the wave of TXD and RXD with oscilloscope to check if they are nomal

Hope this will help you to solve the problem.
Quindi loro pensano che il problema sia nel bootloader, e d'altra parte se io carico via ISP un firmware che gestisce la seriale non ho alcun problema. Secondo loro il filtro non influisce sulla programmazione ed io sono d'accordo e l'ho sempre detto: penso che quei due componenti non svolgano funzione di filtro, visto che deformano l'onda, ma servano o per ritardare l'invio del segnale di TX rispetto all'azione del bootloader o per abbassare la soglia del segnale; in quest'ultimo caso l'ha prova ve l'ho fornita; io che sono costretto ad usare il "filtro" anche col 644, ho provato a sostituire il C con una R, creando di fatto un partitore che diminuiva di circa 1V il segnale, lasciandolo però perfettamente quadro, e a me la programmazione ha funzionato comunque. Purtroppo col 1284 nel mio caso non c'è niente da fare.
La cosa interessante, se ho ben capito il punto 1 è questa: se analizziamo il comportamento tipo del bl, vediamo che quanto il programmatore inizia la sua attività, per prima cosa manda un RESET, in seguito ad esso il bl verifica se c'è attività sulla seriale, altrimenti va ad eseguire l'eventuale firmware. A me pare di aver notato che normalmente l'interrogazione della seriale avvenga ad opera del micro con l'invio di un segnale mediante il proprio TX, al quale il convertitore risponde, e quindi inizia il dialogo; quindi (magari se qualcuno può fare una prova al volo anche col solo Arduino me lo conferma) dopo il reset c'è prima un impulso sul LED tx (se parliamo di Arduino, rx se parliamo di un convertitore esterno) e poi la risposta con l'altro LED. Nel mio caso questo impulso di richiesta NON C'È quindi potrebbero aver ragione loro che il bl non sia in esecuzione o sia troppo in ritardo. Come suggeriscono loro, è possibile seguire passo-passo cosa succede nel bl e provare ad introdurre dei ritardi alla sua esecuzione, dopo l'arrivo del RESET al micro. Ho sempre detto che secondo me il convertitore parte troppo presto rispetto al reset. Insomma sono idee buttate, la verità è che dovremmo metterci in due: uno fa le prove col DSO e l'altro analizza parallelamente il comportamento del sw, ma purtroppo ciò non è possibile, allora chiedo: è possibile, "leggendo" il bootloader, scrivere la sequenza delle operazioni che esso compie nella fase iniziale, comprese 'uso dell'USART0? Questo mi potrebbe aiutare ad analizzare col DSO il comportamento del micro, e secondo me alla fine ce la facciamo.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 22, 2013, 11:32 am
Gli do un'occhiata.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 22, 2013, 11:58 am
ottimo XD
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 22, 2013, 12:04 pm
Operazioni eseguite dal main del file optiboot.c (versione 4.5 di maniacbug):

1) resetta un paio di registri
2) controlla se il reset è avvenuto per cause esterne (quindi reset per alimentazione assente). In questo caso il chip è stato avviato per la prima volta e viene eseguito lo sketch, saltando il bootloader. Ciò è confermato dal fatto che nel momento in cui si da alimentazione al 1284P, il led sul pin 2 non lampeggia ma lampeggia solo alle successive pressioni del pulsantino di reset
3) se deve far lampeggiare il led, imposta il timer 1 con prescale /1024 (verrà usato come fonte di tempo)
4) se non è definito il flag SOFT_UART, imposta la modalità DOUBLE SPEED per la seriale (la SOFT UART è descritta nell'Application Note AVR305 di Atmel, ma non è il nostro caso).
5) imposta il watchdog per triggerare dopo 500 ms (anche se il valore scelto in realtà direbbe 1s... boh..)
6) imposta il pin del led come output
7) se si usa la SOFT UART, imposta TX come output
8 ) se deve far lampeggiare il led, esegue i lampeggi di saluto
9) ora entra in un ciclo infinito:
9.a) preleva un carattere dalla seriale
9.b) controlla se è il comando di lettura versione (STK_GET_PARAMETER): nel caso spedisce indietro la versione dell'Optiboot
9.c) controlla se è il comando di SET DEVICE (STK_SET_DEVICE): nel caso lo ignora
9.d) controlla se è il comando di SET DEVICE EXT (STK_SET_DEVICE_EXT): nel caso lo ignora
9.e) controlla se è il comando di LOAD ADDRESS (STK_LOAD_ADDRESS): nel caso carica il nuovo indirizzo
9.f) controlla se è il comando di UNIVERSAL (STK_UNIVERSAL): nel caso lo ignora
9.g) controlla se è il comando di SCRITTURA SU FLASH (STK_PROG_PAGE): qui entra in una funzione che carica i dati e poi li scrive nella pagina indicata
9.h) controlla se è il comando di LETTURA DA FLASH (STK_READ_PAGE): qui entra in una funzione che legge la pagina indicata e la spedisce indietro
9.i) controlla se è il comando di LETTURA SIGNATURE (STK_READ_SIGN): qui entra in una funzione che legge la firma e la rispedisce indietro
9.j) controlla se è il comando di USCITA DALLA PROGRAMMAZIONE (STK_LEAVE_PROGMODE): setta il watchdog per 16 ms per far resettare il micro
9.k) per tutti gli altri comandi, risponde un generico "OK" non considerando ciò che riceve
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 22, 2013, 08:36 pm
Gran bel lavoro Leo, ora però mi dovresti aiutare nell'interpretazione. Quali sono i passaggi che esegue il bl quando:
1 - micro collegato al Convertitore, collego la porta USB e dò alimentazione (ti confermo che non c'è reset)
2 - apro uno sketch sull'IDE e lo invio al micro (ti confermo che questa operazione inizia con un reset)
vedo i lampeggi del LED sul pin 2, a seguire solo tre lampeggi del TX del convertitore (quello collegato all'rx del micro).
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 22, 2013, 10:11 pm

Gran bel lavoro Leo, ora però mi dovresti aiutare nell'interpretazione. Quali sono i passaggi che esegue il bl quando:
1 - micro collegato al Convertitore, collego la porta USB e dò alimentazione (ti confermo che non c'è reset)

Deduco che arrivi l'alimentazione dal convertitore, giusto?
Allora il punto in questione è il (2). Il registro MCUSR del microcontrollore registra la causa del reset.
Se il riavvio è dovuto ad una causa esterna, viene lanciato lo sketch utente. Il primo avvio ricade in questo caso.
Quindi, collegando il convertitore ma non programmando, il bootloader salta al programma senza mettersi in ascolto sulla seriale.

Quote

2 - apro uno sketch sull'IDE e lo invio al micro (ti confermo che questa operazione inizia con un reset)
vedo i lampeggi del LED sul pin 2, a seguire solo tre lampeggi del TX del convertitore (quello collegato all'rx del micro).

In questo caso il bootloader continua dal punto 3).
Fa quindi lampeggiare i led, apre la seriale e si mette in ricezione.
Le operazioni che seguono sono in risposta ai comandi che il bootloader riceve da avrdude.

Servono altri dettagli?
Title: Re: programmare il 644 ... ma come????
Post by: Maurotec on Jan 23, 2013, 03:05 am
Quote

Allora il punto in questione è il (2). Il registro MCUSR del microcontrollore registra la causa del reset.
Se il riavvio è dovuto ad una causa esterna, viene lanciato lo sketch utente. Il primo avvio ricade in questo caso.
Quindi, collegando il convertitore ma non programmando, il bootloader salta al programma senza mettersi in ascolto sulla seriale.


Il problema potrebbe essere legato al fatto che non riesce a distinguere la causa del reset e passi sempre e comunque ad eseguire codice utente.
Potrebbe?

Ciao
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 23, 2013, 09:51 am

Quote

Allora il punto in questione è il (2). Il registro MCUSR del microcontrollore registra la causa del reset.
Se il riavvio è dovuto ad una causa esterna, viene lanciato lo sketch utente. Il primo avvio ricade in questo caso.
Quindi, collegando il convertitore ma non programmando, il bootloader salta al programma senza mettersi in ascolto sulla seriale.


Il problema potrebbe essere legato al fatto che non riesce a distinguere la causa del reset e passi sempre e comunque ad eseguire codice utente.
Potrebbe?

Ciao

Non credo. Perché quando l'Atmega8U2 spedisce il segnale di reset al chip, il led di stato lampeggia, segno che il bootloader ha letto correttamente il registro. D'altronde, stiamo parlando dell'Optiboot, è lo stesso montato sull'Atmega328, corretto per poter gestire Flash con dimensioni superiori ai 64 kB.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 23, 2013, 01:54 pm
Sì, in queste prove standard l'alimentazione viene dal convertitore, proveniente dall'USB.
Confermo che quando faccio l'upload il reset avviene perché lampeggia il LED messo sul pin 2 del micro, proprio per tale verifica, cosa che non succede all'accensione.
Vorrei sapere questo: posto che tu trovi riscontro in quello che "racconto" seguendo il tuo schema sequenziale, secondo te, nel momento in cui il micro preleva il primo carattere dalla seriale , non dovrebbe chiederglielo?? cioè non dovrei vedere lampeggiare il LED RX del convertitore, segno che il micro sta chiedendo qualcosa? Come sai scrivo da casa, dove non ho nulla per fare prove, poi tutto ciò che esce dalle discussioni diventa oggetto di prova e verifica. Vorrei che tu verificassi il 644 (che lavora senza filtro da te) per darmi conferma di questa cosa, anche se forse i LED di Arduino sono siglati lato micro e non lato 8u2, verifica tu.
In pratica dopo il lampeggio del LED 2 mi aspetterei un flash del led rx del convertitore, seguito da un flash del led tx, e poi tutta la "discussione" con entrambi che lavorano ininterrottamente.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 23, 2013, 03:25 pm
Michele, te porti male  XD
Oggi senza filtro RC non riesco a programmare il mio Atmega644P.  ]:D

Vabbè.... andiamo avanti  :smiley-sweat:


Vorrei sapere questo: posto che tu trovi riscontro in quello che "racconto" seguendo il tuo schema sequenziale, secondo te, nel momento in cui il micro preleva il primo carattere dalla seriale , non dovrebbe chiederglielo?? cioè non dovrei vedere lampeggiare il LED RX del convertitore, segno che il micro sta chiedendo qualcosa? Come sai scrivo da casa, dove non ho nulla per fare prove, poi tutto ciò che esce dalle discussioni diventa oggetto di prova e verifica. Vorrei che tu verificassi il 644 (che lavora senza filtro da te) per darmi conferma di questa cosa, anche se forse i LED di Arduino sono siglati lato micro e non lato 8u2, verifica tu.
In pratica dopo il lampeggio del LED 2 mi aspetterei un flash del led rx del convertitore, seguito da un flash del led tx, e poi tutta la "discussione" con entrambi che lavorano ininterrottamente.

Premetto: mi baso su cosa faccia l'Atmega8U2 perché i led dell'Arduino UNO sono pilotati da questo chip.
Detto questo, il bootloader non chiede i dati sulla seriale, semplicemente si mette in attesa. Se arriva qualcosa, lo interpreta. Altrimenti se non arriva nulla il watchdog provvederà al timeout, cioè all'uscita dopo tot periodo senza nulla con un bel reset. Questo lo verifico perché premendo il reset e resettando l'Atmega644P, il led RX sull'Arduino non lampeggia, segno che il bootloader verso il chip non invia nulla.

Questa è la mia analisi dei dati, attendo ora le tue conclusioni.  ;)
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 23, 2013, 04:50 pm
Leuccio mio :* non ti farei del male nemmeno se tu fossi l'ultimo ostacolo tra me e la Bellucci (sono sicuro che ti scanseresti di tuo ]:D)
Se ti può consolare ti ricordo che la mia prima vittima sono me stesso 8), quindi non chiedermi che ti succede, ma se non hai dimenticato qualcosa, ciò che ti accade non è altro che la prova dell'inaffidabilità di questa comunicazione....
Conclusioni? secondo ciò che dici tutto va bene ed invece non va bene nulla.
Per cui a questo punto, avendo molto più chiari (grazie a te XD) i meccanismi del dialogo, non mi resta che collegare il DSO, appena sarà possibile..., e fotografare i vari momenti dei pin reset, tx e rx, sia sul 644 che sul 1284, con e senza filtro. Un bel servizio da mandare a mamma ATMEL per farle vedere i sui figlioli quanti capricci fanno, sperando ci capiscano qualcosa, maremma seriale ]:D ]:D ]:D
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 23, 2013, 04:56 pm

Leuccio mio :* non ti farei del male nemmeno se tu fossi l'ultimo ostacolo tra me e la Bellucci (sono sicuro che ti scanseresti di tuo ]:D)

Manco morto!  ]:)

Quote

Se ti può consolare ti ricordo che la mia prima vittima sono me stesso 8), quindi non chiedermi che ti succede, ma se non hai dimenticato qualcosa, ciò che ti accade non è altro che la prova dell'inaffidabilità di questa comunicazione....
Conclusioni? secondo ciò che dici tutto va bene ed invece non va bene nulla.
Per cui a questo punto, avendo molto più chiari (grazie a te XD) i meccanismi del dialogo, non mi resta che collegare il DSO, appena sarà possibile..., e fotografare i vari momenti dei pin reset, tx e rx, sia sul 644 che sul 1284, con e senza filtro. Un bel servizio da mandare a mamma ATMEL per farle vedere i sui figlioli quanti capricci fanno, sperando ci capiscano qualcosa, maremma seriale ]:D ]:D ]:D

Ho deciso, per il mio compleanno mi compro un DSO anch'io... mi sento troppo limitato senza  :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 23, 2013, 10:54 pm
Sarebbe ora! fatti consigliare da Astro ;) ti aggiorno appeno potrò fare prove :)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 24, 2013, 06:11 pm

Sarebbe ora! fatti consigliare da Astro ;) ti aggiorno appeno potrò fare prove :)

A me andrebbe bene un DSO come il tuo, non pretendo strumenti professionali: 1) non saprei come usarli, 2) la moglie mi rincorrerebbe  :smiley-yell:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 24, 2013, 06:28 pm


Sarebbe ora! fatti consigliare da Astro ;) ti aggiorno appeno potrò fare prove :)

A me andrebbe bene un DSO come il tuo, non pretendo strumenti professionali: 1) non saprei come usarli, 2) la moglie mi rincorrerebbe  :smiley-yell:

:smiley-eek-blue: GW-INSTEK GDS2064 (http://www.pintotiemme.it/index.php?id=4&prod=GDS2064&scat=)
Title: Re: programmare il 644 ... ma come????
Post by: PaoloP on Jan 24, 2013, 07:04 pm



Sarebbe ora! fatti consigliare da Astro ;) ti aggiorno appeno potrò fare prove :)

A me andrebbe bene un DSO come il tuo, non pretendo strumenti professionali: 1) non saprei come usarli, 2) la moglie mi rincorrerebbe  :smiley-yell:

:smiley-eek-blue: GW-INSTEK GDS2064 (http://www.pintotiemme.it/index.php?id=4&prod=GDS2064&scat=)


Leo, questo lo compri per te e a tua moglie il Bimby --> http://bimby.vorwerk.it/it/home/  ;)
Il prezzo è il medesimo.  :smiley-eek:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 24, 2013, 10:18 pm
@Mike:
in quel prezzo c'è uno zero di troppo  $)
:smiley-yell: :smiley-yell:

@paolo:
non se ne parla nemmeno  :P
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 24, 2013, 11:27 pm
Oggi ho ritirato il 1284 ed ho fatto adesso qualche prova sulla seriale usando l'mcp2200 come convertitore.
Mettendo RC ,che più che un filtro è più una rete di ritardo sul rx del 1284 carico senza problemi gli scketch in seriale,se invece non metto nulla non si trova in sincronia con il programmatore.
@Michele
ti do ragione sul fatto che il convertitore parte troppo presto con i dati da inviare al 1284,l'anticipo del segnale è di qualche microsecondo e lo si nota sovrapponendo i segnali ottenuti prima e dopo la rete di ritardo.

Per riuscire a programmare entrambi i micro 644/1280 basta mettere in serie al pin rx una R di 120K ed eliminare il condensatore,ho fatto diverse prove con entrambi i micro e nel mio caso il problema non si presenta.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 24, 2013, 11:48 pm

Oggi ho ritirato il 1284 ed ho fatto adesso qualche prova sulla seriale usando l'mcp2200 come convertitore.
Mettendo RC ,che più che un filtro è più una rete di ritardo sul rx del 1284 carico senza problemi gli scketch in seriale,se invece non metto nulla non si trova in sincronia con il programmatore.
@Michele
ti do ragione sul fatto che il convertitore parte troppo presto con i dati da inviare al 1284,l'anticipo del segnale è di qualche microsecondo e lo si nota sovrapponendo i segnali ottenuti prima e dopo la rete di ritardo.

Ti ricordo che il bootloader è lo stesso Optiboot dell'Atmega328 solo modificato per poter gestire il 3° registro indirizzi che serve a programmare memorie più grandi di 64 kB (limite dei registri a 16 bit).
Per curiosità, potresti analizzare anche i tempi di risposta di un Atmega328 con Optiboot per capire se è il micro che è più rapido del 1284 oppure se la modifica SW influisce sui tempi di risposta del bootloader?
Altra cosa, a te ha influito la lunghezza del collegamento? A me sì. Nel senso che se anche uso la rete RC (chiamiamola così visto che non è un filtro, quindi) se antempongo un jumper troppo lungo il chip non risponde correttamente.

Quote


Per riuscire a programmare entrambi i micro 644/1280 basta mettere in serie al pin rx una R di 120K ed eliminare il condensatore,ho fatto diverse prove con entrambi i micro e nel mio caso il problema non si presenta.


Domani provo questa configurazione.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 24, 2013, 11:59 pm
Leo, non mi pare che tu mi abbia accennato a questa cosa dei cavetti lunghi.....

Tonid: infatti è da parecchio che su questo Topic vado predicando che secondo me il "filtro" compie un'azione ritardante e non di filtro vero, in quanto i segnali si "rovinano" anche se il micro li legge ancora. Nel caso del 644 io ho usato un partitore 10k+22k e mi funzionava lo stesso, mentre il 1284P non sono riuscito a farlo andare. Una cosa non capisco: come fa a ritardare il segnale una sola R da 120k senza condensatore? Ovviamente la proverò anch'io, ma sono un pò dubbioso sul buon esito della prova.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 12:05 am

Leo, non mi pare che tu mi abbia accennato a questa cosa dei cavetti lunghi.....

E' una cosa di cui mi sono accorto solo l'altro giorno quando ho fatto le ultime prove prima di smontare il chippone.

Quote

Tonid: infatti è da parecchio che su questo Topic vado predicando che secondo me il "filtro" compie un'azione ritardante e non di filtro vero, in quanto i segnali si "rovinano" anche se il micro li legge ancora. Nel caso del 644 io ho usato un partitore 10k+22k e mi funzionava lo stesso, mentre il 1284P non sono riuscito a farlo andare. Una cosa non capisco: come fa a ritardare il segnale una sola R da 120k senza condensatore? Ovviamente la proverò anch'io, ma sono un pò dubbioso sul buon esito della prova.

Michele, prova anche i tempi su un Atmega328 con Optiboot 4.4.
Per capire insomma se l'Optiboot 4.5 di maniacbug introduce dei ritardi software oppure se è il micro che risponde con lentezza.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 25, 2013, 12:12 am
Posso risponderti subito, quando mi hai detto che non avevi apportato modifiche ho scaricato nuovamente gli originali e lì c'era sia il 4.4 che il 4.5, li ho provati entrambi. Io non credo che il problema sia proprio del bootloader ma dei tempi "interni" della gestione della seriale del micro, solo così si spiegano i differenti comportamenti tra i nostri vari micro; ovvio che parliamo di tempi piccolissimi, ma bastano per fare la differenza, purtroppo.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 12:17 am
Però in diversi che hanno avuto problemi con l'USART0 sui 1284P, usando la USART1 questi problemi pare non ci siano.
Nel thread sul forum internazionale ci sono alcuni interventi interessanti pubblicati negli ultimi giorni.
Uno riprendeva ciò che era emerso da un altro possessore di chip che, 2/3 anni fa, aveva avanzato l'ipotesi di "noise", "disturbo", che se presente sul pin RX0 andava ad alterare i dati in transito sul bus interno.
Questo utente scriveva che se lui toccava il pin RX0 con un dito, il chip si resettava. Questo secondo lui confermava la questione che il 1284 fosse "nato male", cioè che avesse qualcosa di sbagliato a livello di die interna.

La rete RC, secondo lui, era un filtro RC vero e proprio che serviva a pulire il segnale sul pin RX0 in modo che il disturbo non entrasse nel chip corrompendo il bus dati dello stesso.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 25, 2013, 12:24 am
Allora significa che esiste da qualche parte un bootloader che usa l'USART1, io ho provato quello modificato da te, ma senza successo, se ricordi avevo avanzato anch'io il dubbio e ti avevo chiesto di modificare il bl per me; puoi reperire questa versione che hanno provato altri?
Riguardo il filtro, ti ricordo che ho pubblicato in questo Topic, un po' di post fa, un'immagine del DSO con il segnale che esce dal Convertitore (che non si capisce perché debba essere disturbato, in quanto funziona con altri 7-8 tipi ci MCU) e la porcheria che si vede sul pin rx, vattelo a guardare e dimmi se ti sembra una ripulitura  :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 12:40 am
Quote
Altra cosa, a te ha influito la lunghezza del collegamento? A me sì. Nel senso che se anche uso la rete RC (chiamiamola così visto che non è un filtro, quindi) se antempongo un jumper troppo lungo il chip non risponde correttamente.

Questo potrebbe essere causato dalle capacità parassite introdotte dal cavo stesso(piccolissime) che mettendosi in serie al C ne riducevano il valore.
Anche le misurazioni che ho fatto non sono del tutto veritiere perchè bisognerebbe tener conto della capacità della sonda dell'oscilloscopio
quindi ho solo guardato più o meno come arrivavano i segnali....
L'idea di togliere il condensatore e aumentare il valore della resistenza mi è venuta perchè il ritardo da creare era talmente piccolo che si poteva provare solo ritardando il flusso degli elettroni con una resistenza abbastanza grande da ottenere il risultato.
Mi rimaneva da fare la prova con il 644 per vedere se in quel caso invece avrebbe dato problemi ed ha funzionato bene.
Queste sono mie teorie......sarei contento se passasse astro per illuminarci.

Edit. @Leo
La R ed il C così collegati sono un filtro passabasso e guardando i segnali postati da Michele,quella distorsione,è l'effetto che ha un filtro su un segnale ma il fatto che quel filtro porti a far funzionare la seriale è solo perchè ritarda il segnale,lo riterda perchè il condensatore impiega un certo tempo a caricarsi fino a Vcc tramite la R,più grande è la R e più distorcerà il segnale.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 12:45 am
@Leo
Dimenticavo di dirti che io per portare i segnali alla seriale uso i cavetti con i coccodrilli lunghi una 40ina di cm.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 09:20 am

Allora significa che esiste da qualche parte un bootloader che usa l'USART1, io ho provato quello modificato da te, ma senza successo, se ricordi avevo avanzato anch'io il dubbio e ti avevo chiesto di modificare il bl per me; puoi reperire questa versione che hanno provato altri?

Ho letto di questo bootloader ma non l'ho trovato.
Dovrei ricercarlo.

Quote

Riguardo il filtro, ti ricordo che ho pubblicato in questo Topic, un po' di post fa, un'immagine del DSO con il segnale che esce dal Convertitore (che non si capisce perché debba essere disturbato, in quanto funziona con altri 7-8 tipi ci MCU) e la porcheria che si vede sul pin rx, vattelo a guardare e dimmi se ti sembra una ripulitura  :smiley-sweat:

Vero, dimenticavo.
Allora la questione del reset toccando il pin RX0 che lamenta l'utente a cosa è dovuta? A spike di microcorrenti causati dall'elettrostatica? Se basta un segnale del genere per far saltare la stabilità di un micro, andiamo bene  :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 09:28 am
Ho fatto altri test con un Atmega 328,utilizzando gli stessi valori di R usati con 644/1284 e tutto funziona a dovere......
Nel 328 ho messo l'optiboot ma no so che versione sia.....
Se volete che faccia altri test ditemelo,ho tutte le board montate e posso fare in un attimo.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 09:32 am

Ho fatto altri test con un Atmega 328,utilizzando gli stessi valori di R usati con 644/1284 e tutto funziona a dovere......
Nel 328 ho messo l'optiboot ma no so che versione sia.....

Se stai usando l'IDE dalla 0023 in poi o un Arduino R3 siamo sicuri che l'Optiboot sia il 4.4.

Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 09:34 am
Si Leo,sto usando la 1.0.1.
Tu hai avuto modo di provare?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 09:46 am

Si Leo,sto usando la 1.0.1.
Tu hai avuto modo di provare?

Mi sto accingendo ora...  ;)
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 09:46 am
Ok,attendo.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 09:59 am
Esito: NEGATIVO.
Ho usato una R da 100K perché da 120K non ce l'avevo ma penso che non faccia molta differenza.
Arriva il reset (vedo il lampeggi del led sul pin 2), poi vedo lampeggiare i led RX/TX della mia Arduino (quindi ci dev'essere un minimo di scambio di dati) ma poi l'operazione si arresta quasi subito, riparte lo sketch precedentemente memorizzato (un blink su un altro pin) e dopo qualche secondo l'IDE mi dice "programmer is not responding".

EDIT:
usando la sola R come ponticello, quindi infilandone un reoforo nel pin RX di Arduino e l'altro nella breadboard accanto a RX0 del 1284 sono riuscito a programmare il chip!
Continuo quindi a soffrire del problema della lunghezza del collegamento fra i 2 pin.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 10:06 am
Potresti provare con un valore di R superiore,giusto per avere un confronto alla pari ?
Io ho fatto 100+10+10..
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 10:19 am
FUNZIONA  :smiley-yell:

100+10+10K con addirittura un bel ponticello lungo  ;)
Per fare lo sborone, ho messo 100+75=175K... Ancora positivo!!  SCIAMANESIMO! XD
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 10:21 am
Bene,son contento  :)
Io ho provato ad aumentare il valore di resistenza fino a 340K avendo sempre esito positivo su tutti e tre i micro che ho messo sotto i ferri.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 10:25 am
Adesso aspettiamo Michele che confermi la cosa.
E' lui quello che non è mai riuscito a programmare i 1284 con il bootloader, io usando la rete RC ci ero riuscito.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 10:26 am
Ora aspetterei anche Michele per verificare se anche a lui funziona come nel nostro caso...
Volevo anche provare con ATtinyxx13 ,visto che ha la seriale, perchè ho il materiale sw per farlo ma mi manca il chip :smiley-yell:
Tu ne hai per caso uno per vedere se anche in quel caso si riesce a scaricare lo scketch senza che la R influisca in maniera negativa?  

edit...mi hai preceduto :)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 10:30 am

Ora aspetterei anche Michele per verificare se anche a lui funziona come nel nostro caso...
Volevo anche provare con ATtinyxx13 ,visto che ha la seriale, perchè ho il materiale sw per farlo ma mi manca il chip :smiley-yell:
Tu ne hai per caso uno per vedere se anche in quel caso si riesce a scaricare lo scketch senza che la R influisca in maniera negativa?  

edit...mi hai preceduto :)

Io un 4313 e mi pare anche un 2313 libero.
Ma tu hai un bootloader per AttinyX313?
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 10:34 am
Avevo scaricato tutto il pacchetto per i tiny x4,x5,xx13,se ti serve provo a vedere se lo ritrovo in rete.....perdona l'ignoranza ma credo che fosse presente tutto all'interno del pacchetto.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 25, 2013, 10:40 am
ottimo, devo avere delle R da 22Mohm ]:D, se vale il principio, l'aria dovrebbe essere la soluzione migliore, quindi niente collegamento tra tx convertitore e rx micro  :D Scherzi a parte è la prima prova che faccio oggi pomeriggio (finalmente LAB!!!!). Magari piazzo un bel trimmer da 1Mohm e vado a tentativi. Tonid, tu stai usando sempre l'MCP2200 vero? questo potrebbe giustificare la differenza sulla lunghezza dei cavi: i PIC sono più generosi nell'erogazione della corrente. Io invece oggi provo con l'FT232, i miei due MCP2200 sono tutti a Gallarate =( e comunque posso sempre provare l'UNO con Optiboot 4.4 (che peraltro mi pare di aver già messo, ma tanto è questione di un minuto rifare l'operazione) affiancandola al 1284 per accorciare i collegamenti.
Un'informazione da entrambi: come lo state fornendo il RESET al 1284P? Se non ricordo male Leo ha fatto il collegamento diretto, visto che usa Arduino, ma hai anche lasciato la R di pull-up sulla bread? hai usato un ulteriore C da 100nF?
Mentre Tonid ricordo che ha detto che ha dovuto eliminare il C, lasciando il collegamento diretto RTS-RESET, e se non sbaglio ha eliminato le due R da 1k in serie a tx/rx; ma hai lasciato  la pull-up sul reset del 1284? e quella sull'RX dell'MCP2200?
Confermatemi/correggetemi per favore.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 10:40 am

Avevo scaricato tutto il pacchetto per i tiny x4,x5,xx13,se ti serve provo a vedere se lo ritrovo in rete.....perdona l'ignoranza ma credo che fosse presente tutto all'interno del pacchetto.

Se parli del core Tiny, lì dentro NON c'è un bootloader vero e proprio ma solo dei finti bootloader che servono esclusivamente a programmare i fuse dei microcontrollori usando appunto l'opzione "Scrivi il bootloader" dell'IDE.
In rete ho trovato un paio di bootloader per i Tiny ma ha poco senso usarli perché consumano circa mezzo kB di memoria. Se pensi che un Tiny2313 ha 2048 byte di Flash, capisci come sia un po' controproducente usare il bootloader
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 10:45 am

Un'informazione da entrambi: come lo state fornendo il RESET al 1284P? Se non ricordo male Leo ha fatto il collegamento diretto, visto che usa Arduino, ma hai anche lasciato la R di pull-up sulla bread? hai usato un ulteriore C da 100nF?

Sulla breadboard ho ricostruito un circuito standalone, per cui c'è un C da 100nF poli su VCC (che prendo dal pin 5V di Arduino) da cui poi partono i ponticelli per portare tensione ai pin VCC e AVCCC del 1284P. Sempre dallo stesso nodo prelevo con una R da 30K la linea di pull-up per il pin di reset.
Sia il C che la R li ho lasciati collegati anche durante la prova. Il reset l'ho preso dal pin RST dell'Arduino, che ha quindi una ulteriore R da 10K.
Insomma, se ha funzionato a me con tutto questo intreccio di roba...  ;)

Quote

Mentre Tonid ricordo che ha detto che ha dovuto eliminare il C, lasciando il collegamento diretto RTS-RESET, e se non sbaglio ha eliminato le due R da 1k in serie a tx/rx; ma hai lasciato  la pull-up sul reset del 1284? e quella sull'RX dell'MCP2200?
Confermatemi/correggetemi per favore.

Io le R da 1K ce l'ho per forza perché usando l'Arduino sono integrate sulla scheda stessa. Però essendo appunto in serie, sulla linea che va al pin RX0 avevo 100+10+10+1=121K e poi 100+75+1=176K
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 10:51 am
Quote
Se parli del core Tiny, lì dentro NON c'è un bootloader vero e proprio ma solo dei finti bootloader che servono esclusivamente a programmare i fuse dei microcontrollori usando appunto l'opzione "Scrivi il bootloader" dell'IDE.
In rete ho trovato un paio di bootloader per i Tiny ma ha poco senso usarli perché consumano circa mezzo kB di memoria. Se pensi che un Tiny2313 ha 2048 byte di Flash, capisci come sia un po' controproducente usare il bootloader

Ho capito....evviva l'ignoranza :smiley-mr-green:
@Michele
Allora se usi l'aria ,non usarne più di 2 litri altrimenti porta dei problemi... :smiley-mr-green:
Ho usato l'MCP 2200,il condensatore di reset l'ho bypassato,poi ho aggiunto la R in questione in serie al pin RX di tutti i micro provati(644/1284/328),ho messo una R da 1k in serie sul TX di tutti i micro,R di pull-up (10K)al reset dei micro.
La circuiteria rimanente intorno all'MCP l'ho lasciata invariata......
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 25, 2013, 10:58 am
ok, grazie ragazzi, ora ho un quadro abbastanza chiaro sul tipo di prove che posso fare, speriamo bene :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 11:00 am

Quote
Se parli del core Tiny, lì dentro NON c'è un bootloader vero e proprio ma solo dei finti bootloader che servono esclusivamente a programmare i fuse dei microcontrollori usando appunto l'opzione "Scrivi il bootloader" dell'IDE.
In rete ho trovato un paio di bootloader per i Tiny ma ha poco senso usarli perché consumano circa mezzo kB di memoria. Se pensi che un Tiny2313 ha 2048 byte di Flash, capisci come sia un po' controproducente usare il bootloader

Ho capito....evviva l'ignoranza :smiley-mr-green:

Tu insegni a me, io insegno a te ;)
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 25, 2013, 11:14 am
e tutti e due insegnate a me, destino ingrato :smiley-mr-green:
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 01:03 pm
Quote
Tu insegni a me, io insegno a te

E allora mi devo impegnare molto di pìù,almeno per sdebitarmi sugli gli eventi passati :smiley-eek:
Quote
e tutti e due insegnate a me, destino ingrato

Ahahaha,si si......fai sempre il modesto eh !?  :smiley-mr-green:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 25, 2013, 06:33 pm
:smiley-sad-blue:
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 ]:D 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.
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 25, 2013, 09:03 pm
@Michele
Beh,diciamo che hai buttato veleno :smiley-eek-blue:
Volevo chiederti se durante l'upload degli sketch hai per caso tenuto la sonda del DSO  collegata al pin RX del micro.....
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 25, 2013, 09:43 pm
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 ]:D ]:D ]:D
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ù :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 25, 2013, 10:30 pm
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.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 25, 2013, 11:22 pm

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
Quote

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

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

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?
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Jan 26, 2013, 12:08 am
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.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 26, 2013, 01:13 am
Non annoi per niente, ci servono altri "tester" :)
Da come hai descritto mi sembra che tu NON abbia caricato il bootloader sul micro, visto che hai ancora su il blink ;)
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 26, 2013, 07:08 am
Quote
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....
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 26, 2013, 07:38 am
Quote
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.. 
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 26, 2013, 07:39 am

Quote

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?

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.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 26, 2013, 08:53 am
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!
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 26, 2013, 09:11 am
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
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 26, 2013, 09:23 am

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!

Sì, chiaro. Era per capire solo se il chip potesse avere dei problemi di tolleranze interne.
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Jan 26, 2013, 12:54 pm
@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 ?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 26, 2013, 12:57 pm

@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.

Quote

@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à
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Jan 26, 2013, 12:59 pm
Scusa Leo, tanto per completare le mie conoscenze su questi micro, quindi c'è un compilatore ad hoc. O ho capito male ?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 26, 2013, 01:16 pm

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
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 26, 2013, 02:24 pm

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? :smiley-eek-blue: anche se c'è sempre il 644 che mi mette fuori strada.
Title: Re: programmare il 644 ... ma come????
Post by: astrobeed on Jan 26, 2013, 03:18 pm
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:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 26, 2013, 03:45 pm
e cchi sse move de qua! :D Grazie :*
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Jan 26, 2013, 04:06 pm
cavoli.. che novità !
Staremo incollati al pc  :smiley-mr-green:
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Jan 26, 2013, 05:02 pm
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)

Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 26, 2013, 05:46 pm
@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?
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Jan 26, 2013, 05:51 pm
Grazie Leo, infatti ho fatto la prova di invertire ed infatti il problema di protocol error era con i pin invertiti.
Adesso grazie a queste tue istruzioni
Quote

3) usare un filtro RC sulla linea RX del microcontrollore composto da una R da 10K in serie fra il pin RX dell'Arduino ed il pin RX0 del 644P/1284P, ed un condensatore ceramico da 100 pF (100 picoFarad) in parallelo (fra RX0 e GND).

Sono riuscito a scaricare lo sketch via arduino seriale e funziona.  ;)
Adesso però proverò con il convertitore uguale a Paolo S... vediamo.. Lui mi sembra che ha detto che non ha messo niente, ne C sul reset e ne pull up ...
Vediamo...
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Jan 26, 2013, 07:17 pm
Ok, fatto anche la prova con l'adattatore usb seriale come quello di Paolo S
Alla fine tutto ok...
Configurazione funzionante a me..
Tx->TX senza pull up
Rx->Rx senza pull up
DTR->reset con C da 100nF in serie e una R da 10K in Pull up.

Nota: Se provo a memorizzare in ISP il bootloader con la resistenza da 10k di Pull-up nel reset, la procedura non funziona.

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 26, 2013, 09:43 pm
Leo: fammi capire, stai parlando di tutto quanto ho dovuto mettere nella cartella hardware, giusto? quindi niente di nuovo. Con Astro inutile insistere, c'ho già provato io, è con l'acqua alla gola con i lavori che deve completare, dopo ci spiegherà, posso dirti che era a conoscenza del problema, quantomeno quando gliene ho parlato mi ha detto "scommetto che state usando il bootloader basato su optiboot!". Aspettiamo e speriam bene.

SZ: anch'io col convertitore con CP2102 non ho avuto problemi col 644, invece niente da fare con 1284, domani vorrei riprovare alla luce dei nuovi test che abbiamo fatto.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 27, 2013, 12:02 am

Leo: fammi capire, stai parlando di tutto quanto ho dovuto mettere nella cartella hardware, giusto? quindi niente di nuovo.

Sì, il pacchetto che ho preparato io. Ci sono 3 sottocartelle, variants, bootloaders e cores, ognuna con dei file che variano in base alla versione di IDE usata.

Quote


Con Astro inutile insistere, c'ho già provato io, è con l'acqua alla gola con i lavori che deve completare, dopo ci spiegherà, posso dirti che era a conoscenza del problema, quantomeno quando gliene ho parlato mi ha detto "scommetto che state usando il bootloader basato su optiboot!". Aspettiamo e speriam bene.

SZ: anch'io col convertitore con CP2102 non ho avuto problemi col 644, invece niente da fare con 1284, domani vorrei riprovare alla luce dei nuovi test che abbiamo fatto.

Michele, se vuoi fare un tentativo, scaricati il pacchetto originale di maniacbug:
https://github.com/maniacbug/mighty-1284p
Dentro a /bootloaders/standard trovi un file denominato ATmegaBOOT_1284P.hex. Questo è il primo bootloader che l'utente ha usato. Non so quanto impegni di flash, controlla nel file boards.txt allegato allo ZIP che hai scaricato le impostazioni dei fuse. Prova questo bootloader, vedi se cambia qualcosa.
Non è basato sull'Optiboot, credo sia basato sul vecchio bootloader tipo 2009 (o forse Mega non so).
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 27, 2013, 12:42 am
MI sa che era quello che mi ero messo inizialmente da parte per le prove, poi passando il tempo, quando hai messo appunto il tuo lavoro, l'ho mollato, una prova è fattibile, in attesa dell'intervento di Astro.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 27, 2013, 05:40 pm
Bene, con il vecchio bootloader di mighty sono riuscito finalmente a blinkare :D il 1284P, ma confermo la necessità del C da 100nF in serie al DTR dell'FT232RL ed inoltre ho dovuto comunque mettere una R da 220kohm in serie al tx del Convertitore, quindi sull'rx del micro. Con 120kohm dava segni di vita ma comunque dava un errore, sono saltato direttamente a 220kohm, tanto il valore esatto non ha molta importanza. E' importante che la tecnica funzioni, e questa manovra è la conferma che è come dice Astro, c'è un problema di bootloader; ora appena lui riuscirà a mantenere l'impegno e fornircene uno (o quantomeno le spiegazioni per modificare quello attuale) si dovrebbe riuscire tutti a programmare senza alcuna R o C, insomma con i pin tx/rx liberi, tutt'al più le classiche R da 1k in serie ai due segnali.
Anche questo BL è basato sull'optiboot, nella cartella ci sono anche le board Mighty, che però sono basate sul vecchio bootloader, si evince facilmente dai percorsi e dalla memoria riservata (2k); c'è anche la bobuino ma questa è basata sull'optiboot, infatti la memoria riservata, così come per la versione usata da me, è di 1k.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 27, 2013, 05:48 pm
Ti contraddico  ;), non è basato sull'optiboot ma sul vecchio bootloader 2009.
C'è espressamente scritto nel sorgente:
Code: [Select]
based on stk500boot.c

Se guardi il sorgente del bootloader contenuto nella cartella /bootloader/atmega vedrai infatti che è sostanzialmente lo stesso con l'aggiunta del supporto per il 1284  ;)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 27, 2013, 06:09 pm
L'ho voluto provare anch'io. Risultato: negativo.

Non riesco a caricare nessuno sketch, nonostante il bootloader risponda correttamente al reset (vedo il lampeggio del led).
Ho provato con:
1) C da 100 nF in serie sulla linea di reset (proveniente dal pin RST dell'Arduino)
2) senza detto C
3) con R da 175K in serie sul pin RX0 del micro
4) senza detta R
5) facendo diverse combinazioni fra C ed R

Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 27, 2013, 06:31 pm
Errata corrige!
Avevo fatto una ca**ata io.
Mi ero dimenticato di mettere la velocità a 57600 nella nuova voce del file boards.txt.

Confermo quindi che con il bootloader standard riesco a programmare il chip. Aggiungo anche che riesco a farlo SENZA nessun componente aggiuntivo sulla linea che dal pin RX dell'Arduino va al pin RX0 del 1284P.
Quindi in sostanza usando solo la R da 1K che c'è in serie sulla scheda. Ottimo, ottimo.
Title: Re: programmare il 644 ... ma come????
Post by: astrobeed on Jan 27, 2013, 06:33 pm
Sono sempre molto di fretta, vi spiego brevemente dove sta il problema, i bootloader che state utilizzando sono pensati per il 328 e similari, il 644/1284 richiede delle tempistiche diverse, va usato il bootloader della Mega2560 (decisamente migliore del optiboot e si può trasferire a 240 kbps, in complenso occupa più spazio nella flash) con alcune piccole modifiche.
Spero domani di avere più tempo per entrare nei dettagli, io ho il bootloader sicuramente funzionante per il 1284, devo inserire anche il 644 e ricompilarlo per questo micro così ve lo passo già pronto all'uso, ovviamente anche il relativo sorgente.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 27, 2013, 06:41 pm
Astro, grazie dell'intervento.
Il bootloader "mighy" è basato sul bootloader standard stk500 usato per le vecchie 10000/2009/Mega.
Con questo funziona correttamente senza ammennicoli sulle linee di trasmissione (almeno per me) però, come dici tu, la velocità è limitata a 57600.

Proverò a spippolare con il bootloader della mega (skt500v2)  XD
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 27, 2013, 06:44 pm
Grande Astro, così ci leviamo di torno tutte ste cartelle che non ne posso più, anche se credo che comunque il core dobbiamo mantenerlo no? così come il pins_Arduino.h, almeno io che ho la 1.0.1 no?
Va bene, al dunque mi darete le relative istruzioni in modo che si possa sintetizzare al minimo ogni aggiunta all'IDE. :)

@ Leo: il mio ragionamento si basava sul nome "optiboot_atmega1284p.hex" e sull'occupazione di memoria (1k), visto che certamente quello della 2009 se ne prende 1,5K e quindi 2k, però mi fido di ciò che dici, ci mancherebbe; ciò che dice Astro conferma i miei dubbi di sempre, sulle temporizzazioni del "dialogo" e ulteriore conferma è che comunque in ogni situazione il tuo 1284 si comporta meglio dei miei :~ Invece non capisco questa cosa della velocità, da sempre io non ho mai fatto caso a questo parametro, più che convinto che venisse bellamente ignorato ed anche in questo frangente ho usato la board di mighty con bootloader 16MHz e ora vedo che il parametro è 115200; poi tu stai parlando di "bootloader standard", ma ti stai riferendo alla versione presente nella cartella "standard"? perché io invece sto usando quello della cartella optiboot, così come previsto dalla board.
Title: Re: programmare il 644 ... ma come????
Post by: astrobeed on Jan 27, 2013, 06:48 pm

Grande Astro, così ci leviamo di torno tutte ste cartelle che non ne posso più, anche se credo che comunque il core dobbiamo mantenerlo no? così come il pins_Arduino.h, almeno io che ho la 1.0.1 no?
Va bene, al dunque mi darete le relative istruzioni in modo che si possa sintetizzare al minimo ogni aggiunta all'IDE. :)


Il core non ha nulla a che vedere con il Bootloader, sono due cose distinte, il primo entra in funzione subito dopo il reset e usa i parametri impostati al suo interno e non quelli scritti nel file boards.txt, non appena il bootloader termina il suo lavoro entra in gioco il discorso core che riguarda solo la compilazione dello sketch.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 27, 2013, 06:54 pm
ok, quindi io ho le tre cartelle attuali: cores, variants e bootloaders, devo svuotare la sola bootloaders per metterci i file che fornirai tu, giusto?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 27, 2013, 06:55 pm

@ Leo: il mio ragionamento si basava sul nome "optiboot_atmega1284p.hex" e sull'occupazione di memoria (1k), visto che certamente quello della 2009 se ne prende 1,5K e quindi 2k, però mi fido di ciò che dici, ci mancherebbe;

Beh, devi anche pensare che sull'Atmega1284 i tagli di memoria riservabili per il bootloader sono 1024/2048/4096/8192 (parlo di byte, non di word) mentre sull'Atmega328 sono 512/1024/2048/4096. Quindi anche con l'Optiboot sui 1284 meno di 1K non si può proteggere.

Quote

ciò che dice Astro conferma i miei dubbi di sempre, sulle temporizzazioni del "dialogo" e ulteriore conferma è che comunque in ogni situazione il tuo 1284 si comporta meglio dei miei :~ Invece non capisco questa cosa della velocità, da sempre io non ho mai fatto caso a questo parametro, più che convinto che venisse bellamente ignorato ed anche in questo frangente ho usato la board di mighty con bootloader 16MHz e ora vedo che il parametro è 115200; poi tu stai parlando di "bootloader standard", ma ti stai riferendo alla versione presente nella cartella "standard"? perché io invece sto usando quello della cartella optiboot, così come previsto dalla board.

Se apri il pacchetto mightyhome trovi dentro alla cartella /bootloaders 2 ulteriori cartelle: optiboot e standard.
In optiboot c'è il bootloader Optiboot 4.5 modificato da maniacbug, mentre in standard c'è il bootloader derivato da quello della vecchia 2009.
Se vedi bene nel file boards.txt contenuto nel pacchetto mightyhome, la scheda "Original Mighty" usa il bootloader "standard" mentre  sia la Mighty 1284 che la Bobduino usando il bootloader "optiboot".
Attento quindi a quello che hai usato.
Title: Re: programmare il 644 ... ma come????
Post by: astrobeed on Jan 27, 2013, 06:55 pm

devo svuotare la sola bootloaders per metterci i file che fornirai tu, giusto?


Yes.

Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 27, 2013, 07:35 pm


devo svuotare la sola bootloaders per metterci i file che fornirai tu, giusto?

Yes.

optiboot, anzi Optimum!! :smiley-mr-green:

@ Leo: a me scappa da ridere a questo punto :D io ho usato la prima board del file "Mighty 1284p 16MHz using Optiboot" che lavora a 115200 e usa "optiboot_atmega1284p.hex" che si trova in "optiboot", quindi è confermato che ho fatto la prova con il bootloader derivato dall'optiboot, come pensavo, infatti la memoria impostata è 130048, quindi riserva 1k, i conti tornano se non per il fatto che in questo caso a me il 1284P funziona con la R da 220K. Allora prima di andarmene faccio al volo una prova con la "Original Mighty 1284p 16MHz", cambio il bl e vediamo che succede :smiley-sweat:

EDIT: prova fatta, ora posso usare la R da 120k, ergo lascerei il bl derivato dall'optiboot, visto che una R vale l'altra, mentre l'optiboot mi fa risparmiare 1k di flash.

Leo se proprio vuoi spippolare guardati la differenza tra questo optiboot e quello che stai usando tu, magari scovi il motivo per il quale a voi funziona ed a me no e magari risolvi pure. Aspettando Astro.......
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jan 27, 2013, 09:22 pm
Bene.....ho seguito questi ultimi post e pare proprio di essere arrivati,grazie alla collaborazione di astro,alla risoluzione dei problemi.
Purtroppo non posso essere di alcun aiuto in quanto questo genere di cose sono ancora un po troppo complicate per me,quindi attendo e seguo silenzioso.  :)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 27, 2013, 10:03 pm

@ Leo: a me scappa da ridere a questo punto :D io ho usato la prima board del file "Mighty 1284p 16MHz using Optiboot" che lavora a 115200 e usa "optiboot_atmega1284p.hex" che si trova in "optiboot", quindi è confermato che ho fatto la prova con il bootloader derivato dall'optiboot, come pensavo, infatti la memoria impostata è 130048, quindi riserva 1k, i conti tornano se non per il fatto che in questo caso a me il 1284P funziona con la R da 220K. Allora prima di andarmene faccio al volo una prova con la "Original Mighty 1284p 16MHz", cambio il bl e vediamo che succede :smiley-sweat:

EDIT: prova fatta, ora posso usare la R da 120k, ergo lascerei il bl derivato dall'optiboot, visto che una R vale l'altra, mentre l'optiboot mi fa risparmiare 1k di flash.

Senz'altro il passaggio all'uso dell'Optiboot è stato giustificato dal fatto di dimezzare il consumo di Flash rispetto al bootloader standard.


Quote

Leo se proprio vuoi spippolare guardati la differenza tra questo optiboot e quello che stai usando tu, magari scovi il motivo per il quale a voi funziona ed a me no e magari risolvi pure. Aspettando Astro.......

Sono 2 bootloader completamente differenti. Anche il bootloader della Mega è diverso (anche se simile a quello "original mighty"), però questo occupa 4 kB di Flash... Boh... aspetto cos'ha elaborato astro e poi vediamo come si casca  ;)
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 28, 2013, 09:21 am
Leo, ma io sto parlando delle differenze tra i due optiboot1284 di mighty: quello che stai usando tu attualmente e quello che mi hai linkato e che ho scaricato per le mie prove; in pratica il tuo optiboot dovrebbe essere la versione aggiornata del mio attuale, ecco perché ti consigliavo di guardare le differenze.
Non ti avrei chiesto un lavoro di confronto con quello della MEGA visto che Astro ha detto che lo fornirà lui funzionante sia per 644 che per 1284.  :)

@ tonid: al momento ciò che siamo arrivati a fare non è niente di più dell'altro giorno, visto che io ieri, su suggerimento di Leo, ho testato due versioni precedenti di bootloader per 1284: una basata sempre sull'optiboot e l'altra basata sul vecchio bl della 2009. Astro ci ha spiegato che le problematiche derivano da tempistiche differenti tra il 328 ed i 644/1284 e di conseguenza serve un bl derivante da quello della MEGA2560 e non da quello della UNO. Ci ha promesso che ne avrebbe ricompilato una sua versione sie per 644 che per 1284 e ciò risolverà tutti i nostri problemi e ci permetterà di lavorare senza R, C e quant'altro.

Siamo in dolce e trepida attesa...... :*
Title: Re: programmare il 644 ... ma come????
Post by: astrobeed on Jan 28, 2013, 09:47 am

Siamo in dolce e trepida attesa...... :*


Oggi pomeriggio dovrei riuscire a trovare il tempo per compilarvi la versione 644.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 28, 2013, 10:00 am

Leo, ma io sto parlando delle differenze tra i due optiboot1284 di mighty: quello che stai usando tu attualmente e quello che mi hai linkato e che ho scaricato per le mie prove; in pratica il tuo optiboot dovrebbe essere la versione aggiornata del mio attuale, ecco perché ti consigliavo di guardare le differenze.
Non ti avrei chiesto un lavoro di confronto con quello della MEGA visto che Astro ha detto che lo fornirà lui funzionante sia per 644 che per 1284.  :)

Ah, scusa. E' che ieri era una giornata in cui c'ero ma non troppo....
A memoria, di diverso nella 4.5 c'è solo la sistemazione del supporto al bootloader locato nella parte alta della memoria, generalmente non accessibile dal vecchio optiboot 4.4 che prevedeva la gestione di soli 64 kB di memoria, e la gestione del flag RAMPZ, che in pratica serve come 3° byte per comporre gli indirizzi oltre i 64 kB di Flash. Ma alla fine sono poche righe di codice sparse in qualche define. Altre diff macroscopiche non ne vedo.
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 28, 2013, 02:28 pm
Stamani ho fatto una serie intensiva di test. Lo scopo ultimo era quello di usare qualcosa che permettesse di usare il chip in standalone con un bootloader che per funzionare non richiedesse componenti elettronici extra sul pin RX.

Optiboot 4.5
Ho provato a compilare l'Optiboot 4.5 per lavorare a 57600 (con voce in boards.txt modificata) e non ha funzionato. avrdude si incocciava.
Ho provato anche a modificare il bootloader inserendo l'attivazione della pull-up interna su RX0 che vedo viene attivata dal bootloader standard, ma anche così nulla.
Risultato: con l'Optiboot 4.5 non sono riuscito in nessun caso a usarlo senza R/C/RC.

Bootloader "standard" Mighty (basato sul bootloader Atmega usato sulla 2009)
Il bootloader funziona a 57600. Se lo compilo a 115200 (modificando boards.txt) avrdude mi dice che c'è un errore di sincronismo.
Risultato: il bootloader standard funziona senza R/C/RC a patto di usare solo la velocità a 57600.

Prima di metter mano al bootloader della MEGA (bootloader stk500v2), attendo il lavoro di astro.
A dire il vero, già ci ho provato... Con la versione contenuta nell'IDE ho avuto problemi di incartamento del bootloader per via del watchdog (lampeggio perpetuo del led). La versione che si trova su Github che invece non soffre di questo problema non mi si compila (è vecchia di 1 anno). Entrambi soffrono di vetustà del codice, sorgenti cioè che con la nuova toolchain Atmel non riesco a compilare correttamente perché il codice è vecchio e non è aggioranto da un sacco di tempo (il bootloader distribuito con l'IDE sono 2 anni che non viene modificato).
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 28, 2013, 05:16 pm
Il bootloader standard a me funziona con la R da 120k, il bootloader "optiboot" (da ciò che mi pare di capire è comunque basato sulla 4.5) invece richiede una 220k; questi i risultati dei miei test su quanto ho scaricato ieri (mighty agg. giugno 2012)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 28, 2013, 06:10 pm

Il bootloader standard a me funziona con la R da 120k, il bootloader "optiboot" (da ciò che mi pare di capire è comunque basato sulla 4.5) invece richiede una 220k; questi i risultati dei miei test su quanto ho scaricato ieri (mighty agg. giugno 2012)

Ma te quindi hai usato i bootloader intonsi, così com'erano, senza modifiche, giusto?
Quindi non hai fatto test per provare a velocità inferiori.

PS:
l'Optiboot di maniacbug è la versione 4.5.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 28, 2013, 07:45 pm
Sì, ho scaricato quelle cartelle e le ho distribuite nella mia personale, ho usato il suo file boards.txt con opti a 115200 e standard a 57600
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 29, 2013, 10:55 am
Michele.
Ti allego 2 bootloader per il 1284 derivati dall'Optiboot 4.5 di maniacbug.
Uno è compilato per avere un timeout di 2s, l'altro è compilato per avere in più anche la velocità ridotta a 57600.
Provali entrambi: per il primo basta sostituirlo a quello che già hai, mentre per il secondo devi anche modificare la relativa voce nel file boards.txt, per capire se il tuo è un problema di tempi e/o di velocità.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 29, 2013, 11:13 am
ok, gli allegati? :smiley-mr-green: (ti rispondo con calma, la tua esposizione merita molta attenzione ed attenta valutazione)
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 29, 2013, 11:18 am
Uh.. .credevo di averli allegati. Eccoli.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 31, 2013, 02:54 pm
sbaglio o abbiamo un Latitante :D?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 31, 2013, 03:10 pm

sbaglio o abbiamo un Latitante :D?

Mi pare  ;)

Ti aggiorno su un paio di cose:
1) il bootloader Atmegaboot che ti ho passato ha un bug. Nell'intento di implementare un timeout basato sul watchdog come l'Optiboot, mi sono dimenticato del reset del medesimo se parte la programmazione  :smiley-sweat: :smiley-sweat:
In allegato trovi la versione corretta. Essa resta in ascolto per 2 secondi (il bootloader originale attende 6/7 secondi) prima di avviare lo sketch se nulla arriva dalla seriale.
2) devo correggere le prime analisi che avevo fatto su questo bootloader. Esso, senza R sulla linea che va al pin RX0, non funziona. Se lo sketch da programmare è breve (tipo un paio di KB), non ci sono problemi. Ma se si spedisce uno sketch che sia grande (bastano anche 15/16 KB) allora ad un certo punto la programmazione si ferma con un errore di verifica. Inserendo la R, invece, la programmazione termina senza problemi.

Ah, parlando sul forum internazionale, hanno precisato una cosa a cui io lì per lì non avevo dato peso. La R da sola in realtà non è... da sola. Crea comunque un filtro RC con l'impedenza interna del GPIO.
Inoltre qui:
http://arduino.cc/forum/index.php/topic,142514.msg1096562.html#msg1096562
Trovi delle analisi fatte all'oscilloscopio di cosa arriva sul pin RX0 con varie combinazioni di C, R e loro assenza.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 31, 2013, 04:10 pm
Ma se devo comunque mettere la R in serie perché mi fai provare questo bl? cosa dovrebbe avere di migliorato rispetto a quello che sto usando già?
Leggendo il link di Nick Gammon (il tipo che stiamo seguendo anche per il GLCD) ho visto che lui usa 2 C da 18pF invece dei 22pF, magari l'influenza sulla frequenza dell'oscillatore potrebbe in qualche modo.... lui non usa nulla e dice che programma :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 31, 2013, 04:37 pm

Ma se devo comunque mettere la R in serie perché mi fai provare questo bl? cosa dovrebbe avere di migliorato rispetto a quello che sto usando già?

Giusto per curiosità, per capire quale sia più affidabile. Io mi rendo conto che fra l'Optiboot 4.5 e l'ultimo che ti ho passato, è questo quello che a me funziona meglio.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 31, 2013, 04:43 pm
ok, però io finora ho testato solo il blink, quindi devo ripetere i test con sketch più grandi :smiley-sweat:
Allora, attualmente io ho la cartella originale di maniacbug di giugno 2012, l'unica che mi abbia dato effetti positivi, mentre l'ultima versione a me non ha mai funzionato.
Domanda stupida, giusto per capire di che stiamo parlando: questi due che mi stai facendo testare (c'è anche l'altro a 57600) da dove derivano?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jan 31, 2013, 05:22 pm

ok, però io finora ho testato solo il blink, quindi devo ripetere i test con sketch più grandi :smiley-sweat:
Allora, attualmente io ho la cartella originale di maniacbug di giugno 2012, l'unica che mi abbia dato effetti positivi, mentre l'ultima versione a me non ha mai funzionato.
Domanda stupida, giusto per capire di che stiamo parlando: questi due che mi stai facendo testare (c'è anche l'altro a 57600) da dove derivano?

Dalla cartella di maniacbug, bootloaders, cartella atmega.
Lì dentro c'è il sorgente di un bootloader elaborato dal codice dell'stk500v2, che è il bootloader originale da cui sono nati quello per la 2009 e la Mega.
Io l'ho preso, ci ho aggiunto il timeout basato sul watchdog, e l'ho ricompilato. stop.
Quindi come bootloader è in pratica più simile a quello della MEGA2560 come diceva Astro, e non ha nulla a che spartire con l'Optiboot.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jan 31, 2013, 06:13 pm
ok :)
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Feb 01, 2013, 08:10 pm
Risultati delle prove odierne, ASPETTANDO ASTROBEED  :D

1 - i due bootloader di prova non vanno
2 - rimesso il precedente optiboot "originale" tutto ok
3 - il bootloader nuovo (quello che state usando voi) a me funziona solo sul 644P
4 - entrambi i bootloader (opti e standard) della precedente versione mi programmano il 1284P ma non il 644P perché non c'è un bootloader specifico e nemmeno la board (ovviamente evito di mettere mano per non aumentare la confusione).

Pomeriggio mi sono rientrati i due MCP2200, confermo le maggiori difficoltà di questo chip rispetto all'FT232RL, laddove l'FT non sbaglia un colpo, i due MCP ne sbagliano parecchi, arriverei a dire che non vanno... Sui due MCP2200 potrei ancora fare delle prove, p.es. eliminando del due R da 1k in serie a tx e rx e la r da 22k di pull-up sull'rx, ma mi piacerebbe avere il parere di Astro, e molto più mi piacerebbe avere il suo Bootloader per 644/1284. Il ritardo è molto strano, considerando che è uno che le promesse le mantiene sempre; forse ha replicato le nostre prove ed ha incontrato qualche difficoltà anche lui :smiley-sweat:
domenica pomeriggio sono di nuovo qui, intanto oggi mi è arrivata la lampada di Aladino, spettacolare!, non vedo l'ora di provarla seriamente saldando il PCB che mi è appena arrivato, ma mi pare che sia davvero eccezionale. XD XD

A voi la parola....
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Feb 01, 2013, 11:14 pm
1) i bootloader che ti ho spedito io vanno solo su 1284, non l'ho compilato per 644. Ma l'intenzione era appunto quella di iniziare ad utilizzare il chip più "grosso"
2) se ti serve un bootloader per il 644, nel mio package ce n'era uno basato sull'Optiboot 4.5. Bastava flasharlo direttamente dall'IDE
3) non posso fare confronti fra MCP2200 e FT232
4) che cos'è la lampada di Aladino??? è tipo la sfera di cristallo di Uwe?  :smiley-yell:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Feb 02, 2013, 09:14 am

1) i bootloader che ti ho spedito io vanno solo su 1284, non l'ho compilato per 644. Ma l'intenzione era appunto quella di iniziare ad utilizzare il chip più "grosso"

No, alla fine decido di aspettare una risposta definitiva di Astro, se lui decide di fornirmi un bootloader funzionante come si deve risolvo tutti i problemi, in caso contrario, ma "tanto per", ho il bl nuovo del 644 che mi funziona con la R, ed il bl vecchio del 1284 che mi funziona sempre con la R, anche se non ho fatto prove approfondite con sketch lunghi, ma detto questo all'occorrenza vado di ISP, ormai i piani sono cambiati....
Quote

2) se ti serve un bootloader per il 644, nel mio package ce n'era uno basato sull'Optiboot 4.5. Bastava flasharlo direttamente dall'IDE

no, come spiegato sopra, sono a posto, anche se preferirei una versione funzionante al 100%
Quote

3) non posso fare confronti fra MCP2200 e FT232

non ha importanza, con il 328 l'MCP2200 va una meraviglia, è giusto una mia curiosità, ma possso agire solo su tre R implicate nel collegamento, mi piacerebbe anche qui il parere di Astro il quale però, e giustamente direi, nel momento in cui addebita tutto al bootloader non vedrà alcun problema reale, e quindi non lo vedo nemmeno io ;)
Quote

4) che cos'è la lampada di Aladino??? è tipo la sfera di cristallo di Uwe?  :smiley-yell:

sì, tipo, la sfera di Uwe gli fa vedere le cose invisibili, la mia lampada di Aladino mi fa vedere finalmente i componenti smd ed i relativi PCB, senza dover fare contorsioni con e senza occhiali. E' una belva con 64 LED messi attorno ad una lente che ingrandisce in modo eccellente e mi permette di lavorare con precisione su questi componenti che per la mia vista sono davvero piccoli. IN più ho preso una pedana a rotelle che, assieme ai bracci snodabili della lente mi permette di non avere intralci sul tavolo XD
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Feb 02, 2013, 09:28 am
Quote
sì, tipo, la sfera di Uwe gli fa vedere le cose invisibili, la mia lampada di Aladino mi fa vedere finalmente i componenti smd ed i relativi PCB, senza dover fare contorsioni con e senza occhiali. E' una belva con 64 LED messi attorno ad una lente che ingrandisce in modo eccellente e mi permette di lavorare con precisione su questi componenti che per la mia vista sono davvero piccoli. IN più ho preso una pedana a rotelle che, assieme ai bracci snodabili della lente mi permette di non avere intralci sul tavolo

Maa.......la devi accarezzare per farla accendere??? :smiley-mr-green:
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Feb 02, 2013, 10:27 am
no, però ieri sera quando l'ho dovuta spegnere per andare via me la sono abbracciata e sbaciucchiata, prossimo appuntamento d'amore domani pomeriggio  :*
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Feb 06, 2013, 05:30 pm
Ma.. alla fine, dalle prove fatte, quale è il modo migliore per programmare il 644/1284 via seriale ?
Con tutte ste prove che avete fatto mi sono un po' perso  :D  :*
Naturalmente aspettando Astro...
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Feb 06, 2013, 05:50 pm
Riassumo brevemente, anche alla luce di quanto affermato ultimamente nella sezione internazionale.

Il problema di questi chip sembra che risieda nella vicinanza del pin RX0 al pin XTAL1 del chip. Il pin XTAL1 è quello più importante dei 2 a cui si collega il quarzo. Stranamente, rispetto ad esempio all'Atmega328, la coppia di pin XTAL1/2 è stata invertita, così che XTAL1 sia accanto al pin RX0. Se ci fosse stato il pin XTAL2 ci sarebbero stati meno problemi. Un altro problema deriva dai fuse. Impostando il fuse basso per un clock esterno in realtà si abilita il micro ad attendersi un segnale di clock sul pin XTAL1, con tensioni e corrente interne basse, passibili di interferenze esterne. Usare quindi il valore $FF non è una buona idea. In diversi hanno suggerito l'uso del fuse $F7, che abilita il micro ad usare un cristallo esterno ("full swing"), gestito tramite dei segnali con più corrente in modo che siano un po' più insensibili ai disturbi arrecati dal flusso di dati che può transitare sul pin RX0.
In diversi hanno detto che usando questo valore per il fuse hanno risolto i problemi di programmazione usando l'Optiboot 4.5 modificato da maniacbug. In diversi concordano poi che la breadboard non è la soluzione migliore per eseguire questo genere di test per via della capacità parassita delle sue piste. In diversi hanno poi suggerito di evitare di far passare i segnali sui 2 pin XTAL1 e RX0 molto vicini, su un PCB, e di usare un piano di massa intorno ai pin del cristallo..
Io tutte queste prove non posso farle, non producendomi i PCB in casa.

Questa la teoria... adesso la mia pratica.
Io senza la R sulla linea RX0 non riesco a programmare il chip, anche usando il valore $F7 per il fuse basso. Ed usando il bootloader standard, quello a 57K, perché con l'Optiboot e la sola R non riesco, devo usare l'accoppiata R+C.

Insomma, un gran casino.
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Feb 06, 2013, 05:56 pm
Azz.. quindi per fare dei veri test, si dovrebbe fare un pcb specifico prestando molta attenzione a interferenze e spurie varie.
Ma la configurazione (usb-serial converter-R-C) migliore, per te, qualè ?
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Feb 06, 2013, 06:07 pm
Io non ho molta scelta, ho usato solo l'Atmega8U2 della UNO.
Quindi non faccio casistica  :smiley-sweat:
Title: Re: programmare il 644 ... ma come????
Post by: superzaffo on Feb 06, 2013, 06:16 pm
ok...
vediamo cosa dice Michele, le sue considerazioni...
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Feb 06, 2013, 06:27 pm
se mi date il tempo...ecco la mia.....
Con l'unico bootloader per 644 (chiamiamolo quello "di Leo" per capirci, visto che si può scaricare anche dal suo sito) io riesco a programmare con la famosa resistenza.
Per programmare il 1284 invece devo ricorrere alla versione di giugno 2012 (sempre maniacbug), sia standard che optiboot, in entrambi i casi devo usare la resistenza.
Ho fatto a suo tempo la prova con il generatore di clock esterno a 16MHz, una bella onda quadra a 5V applicata all'XTAL1 con fuse $F7, senza alcun risultato positivo. Non credo troppo alle prove "PCB" anche se proprio in questi giorni sto sperimentando la notevole differenza di comportamento di un circuito "serio" montato su breadboard o su PCB. Credo piuttosto che ci siano problemi di tempistica di questi micro, che variano anche da lotto a lotto, e che nelle migliaia di prove fatte dagli utenti, alcuni abbiano trovato una propria soluzione, che però spesso non funziona agli altri.
In definitiva concordo con Astrobeed, il problema è nel bootloader. Se così non fosse la prova che mi ha fatto fare il supporto ATMEL (estremamente disponibile!) non sarebbe andata a buon fine, invece se carico via ISP un qualsiasi programma che fa uso anche intenso della seriale funziona tutto a meraviglia, quindi non c'è assolutamente alcuna influenza reciproca tra XTAL1 e RX0.
Astrobeed è una persona seria, quindi se non ci ha fornito il bootloader che ci aveva promesso è perché alla fine anche lui probabilmente sta avendo gli stessi problemi nostri e sta cercando di risolverli, compatibilmente con le altre mille cose che ha da fare.
L'unica cosa strana è che non ci abbia aggiornati, ma non sarò certo io a rompergli i maroni, l'ho già fatto fin troppe volte in passato, e solo quando altri hanno cominciato a fare lo stesso con me ho capito cosa significava :smiley-mr-green:
Tanto lui questi interventi li legge di sicuro, quindi sta a lui intervenire o meno.......

@ sz: ho usato indifferentemente 8u2, MCP2200 e FT232RL, sai il migliore qual è? il PL2303, un chippetto che si trova nei vecchi cavi USB Nokia, l'unico col quale ho programmato il 644 perfino senza resistenza; l'ho messo da parte perché è un TSSOP, scomodissimo da saldare, e perché non voglio legare l'idea di funzionamento a qualcosa di obbligato, quando siamo in uno standard.
Title: Re: programmare il 644 ... ma come????
Post by: BaBBuino on Feb 10, 2013, 03:49 am

Una cosa non capisco: come fa a ritardare il segnale una sola R da 120k senza condensatore? Ovviamente la proverò anch'io, ma sono un pò dubbioso sul buon esito della prova.


Devi considerare la capacità "parassita" introdotta dai circuiti interni del MCU, quidi una R da 120K, con qualche decina di picoFarad (stima a naso) in parallelo, possono certamente ritardare un segnale in maniera misurabile.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Feb 10, 2013, 10:00 am
Comunque sia nel precedente post ho descritto i miei risultati, visto che tu ne hai aperto un altro provo a rispondere lì per vedere se sei nelle mie stesse condizioni, però il 644 lo abbiamo programmato tutti, in un modo o nell'altro.....
Title: Re: programmare il 644 ... ma come????
Post by: astrobeed on Feb 10, 2013, 10:24 am

Astrobeed è una persona seria, quindi se non ci ha fornito il bootloader che ci aveva promesso è perché alla fine anche lui probabilmente sta avendo gli stessi problemi nostri e sta cercando di risolverli, compatibilmente con le altre mille cose che ha da fare.


Il problema sono solo le mille cose che devo fare in questi giorni, e parlo di cose di lavoro che per ovvi motivi hanno la precedenza su tutto.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Feb 10, 2013, 10:47 am


Astrobeed è una persona seria, quindi se non ci ha fornito il bootloader che ci aveva promesso è perché alla fine anche lui probabilmente sta avendo gli stessi problemi nostri e sta cercando di risolverli, compatibilmente con le altre mille cose che ha da fare.


Il problema sono solo le mille cose che devo fare in questi giorni, e parlo di cose di lavoro che per ovvi motivi hanno la precedenza su tutto.


è quello che ho scritto io no? :) Personalmente so quanto sei incasinato, e la prova pubblica possiamo considerarla il Topic sulla lib del display I2C. Comunque è ovvio che noi ormai ci siamo arenati, nel senso che siamo arrivati a soluzioni più o meno barbare per riuscire a programmare sia il 644 che il 1284, però la differenza comportamentale tra i nostri vari chip fa capire che il problema sia a monte, ecco perché restiamo con la speranza che tu possa trovare un momento per risolvere la cosa, se ti resta qualche dubbio le prove le facciamo noi e così almeno ti leviamo questo onere.
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 07, 2013, 07:54 pm
Ciao a tutti, sono nuovo del forum e penso per chi come me è alle prime armi è fondamentale.
Vengo al sodo : mi sono imbattuto in un 1248p standalone e dopo svariati giorni di lettura e prove, sono riuscito a caricare il bootloader (quello modificato da http://www.leonardomiliani.com/) e il classico blink. Fin qui tutto bene fino a quando ho provato a far blinkare il pin D18-19-20 (pins 24-25-26 del 1284p) con il solito led+resistenza, niente!!!!
Qualcuno sa dirmi se quei pins si possono usare come output? Sbaglio qualcosa? Vi prego illuminatemi!
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jun 07, 2013, 08:01 pm
il blink come lo hai caricato, via seriale o ISP?
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 07, 2013, 08:15 pm
Via seriale
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jun 07, 2013, 09:11 pm
Ciao,dovresti dare un po più di informazioni..
Come avrai letti nel topic non a tutti carica gli sketch in seriale,tu come lo hai collegato?
Quindi hai caricato il BL in ISP e poi in seriale hai caricato il blink e tutto ha funzionato,poi hai provato a caricare un'altro sketch,sempre in seriale,che doveva fare dei blink sui pin 24/25/26 ed invece non ha funzionato..Ma l'ide che messaggi ti ha dato?
Più cose spieghi e più è semplice capire ed aiutarti ;)
Ciao
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 07, 2013, 10:02 pm
Ok, mi spiego meglio:
ho caricato il BL via isp, poi come da manuale, ho tolto il micro dall' arduino, ho collegato il TX RX sui pin corrispondenti ed ho iniziato a caricare gli scheth senza problemi, cambiando (dall'esempio blink) di volta in volta il pin di output e spostando il led sul pin corrispondente. Quando sono arrivato al pin 24 (D18) e i tre sucessivi mi sono accorto che ( anche prima di caricare lo schetch) notavo che il led gia' leggermente si accendeva(pensavo fosse perche' non avevo ancora uploadato) ma una volta caricato lo schetch non davano nessun segno di vita.
Domanda: puo' essere che quelle porte siano difettose o che magari ho combinato qualche cavolata innavvertitamente?
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jun 07, 2013, 10:36 pm
se ti funziona su altri pin, potrebbe essere un problema del PORT corrispondente a quei pin o più semplicemente che quei pin NON corrispondano ai pin digitali che stai usando nello sketch
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 08, 2013, 07:33 am
Ho provato a fare un ciclo FOR su tutti i pins e con pazienza collegare tutti i led a tutti. Il risultato è che tutti i led blinkano tranne quelli.
Cosa intendi per un problema di PORT, hw o sw? C'è qualcosa che si può fare per verificarlo?
Intanto grazie al vostro aiuto penso di avere capito che in teoria dovrebbero funzionare........ sbaglio?
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 08, 2013, 07:54 am
Altra prova:
Ho provato a configurare il pin24 (D18) come input e led su pin2 (D1).....

void setup(){
  Serial.begin(9600);
  pinMode(18, INPUT_PULLUP);
  pinMode(1, OUTPUT);
}
void loop(){
  int sensorVal = digitalRead(18);
  Serial.println(sensorVal);
  if (sensorVal == HIGH) {
    digitalWrite(1, LOW);
  }
  else {
    digitalWrite(1, HIGH);
  }
}

ma niente............

controprova cambiando input (es. D15), e funziona regolarmente.............


mmmmmmmhhhhhhhhhh!!!!!

Lo lancio dalla finestra??????
Title: Re: programmare il 644 ... ma come????
Post by: tonid on Jun 08, 2013, 08:23 am
Ciao,dovrebbe funzionare tutto regolarmente,a questo punto penso che i pin si possano essere danneggiati in qualche maniera.
A me ,sinceramente ,non è mai capitata una cosa simile.
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 08, 2013, 08:35 am
Lo penso anch'io, ma non riesco a capire come posso averli danneggiati !!! Dovrei averne uno di vergine per assicurarmi di questo e credo che lo ordino anche subito, vi aggiornerò appena non avrò il nuovo 1284.
Intanto grazie a tutti.............
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jun 08, 2013, 09:49 am
1) che core stai usando?
2) hai collegato l'alimentazione anche sui pin 30 e 31?
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 08, 2013, 10:21 am
Cosa intendi per core? (scusa la mia ignoranza).
Si, l'alimentazione sul 30 e 31 c'è.
Title: Re: programmare il 644 ... ma come????
Post by: menniti on Jun 08, 2013, 10:31 am
@ Leo:

Ciao a tutti, sono nuovo del forum e penso per chi come me è alle prime armi è fondamentale.
Vengo al sodo : mi sono imbattuto in un 1248p standalone e dopo svariati giorni di lettura e prove, sono riuscito a caricare il bootloader (quello modificato da http://www.leonardomiliani.com/) e il classico blink. Fin qui tutto bene fino a quando ho provato a far blinkare il pin D18-19-20 (pins 24-25-26 del 1284p) con il solito led+resistenza, niente!!!!
Qualcuno sa dirmi se quei pins si possono usare come output? Sbaglio qualcosa? Vi prego illuminatemi!
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 08, 2013, 10:38 am
Ok,
644p_1284p_core_102-002
utilizzato con IDE 1.05
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jun 08, 2013, 11:11 am
@Michele:
Di pacchetti sul mio sito ce ne sono 2. Volevo sapere appunto quale aveva usato.

@bozz:
io non ho avuto problemi con nessun pin. Però i test li ho condotti con l'IDE di Arduino fino alla 1.0.4. Non so se con la 1.0.5 hanno cambiato qualcosa, ma non credo. Dovrei dare un'occhiata ma mi pare strano.
Anche perché il pin D18 corrisponde al pin fisico PC2, se fosse stata una rimappatura dei pin avresti avuto problemi anche con il pin D17 ed il pin D16.
Title: Re: programmare il 644 ... ma come????
Post by: bozz on Jun 08, 2013, 11:25 am
Fermi tutti!!! RISOLTO (mea culpa)!!!!
Grazie al vostro aiuto, mi avete messo una pulce nell'orecchio e sono andato a ricontrollare il core, mi ero dimenticato di copiare le new boards!
Adesso funziona alla grande, però per upload via seriale ho dovuto aggiungere il filtro RC.
Grazie ancora!
Title: Re: programmare il 644 ... ma come????
Post by: leo72 on Jun 08, 2013, 02:29 pm
Bene.  ;)
Aggiungi "[Risolto]" al titolo del thread  :P