Pages: 1 [2] 3 4 ... 25   Go Down
Author Topic: programmare il 644 ... ma come????  (Read 15745 times)
0 Members and 1 Guest are viewing this topic.
Cagliari, Italy
Online Online
Tesla Member
***
Karma: 103
Posts: 6580
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21625
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Oristano
Offline Offline
Sr. Member
****
Karma: 0
Posts: 252
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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????


Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 103
Posts: 6580
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.  smiley-twist smiley-twist smiley-twist

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?
« Last Edit: December 12, 2012, 08:22:36 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Oristano
Offline Offline
Sr. Member
****
Karma: 0
Posts: 252
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: December 12, 2012, 09:41:53 am by Paolo S » Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21625
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


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

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

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21625
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@ 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
« Last Edit: December 18, 2012, 12:27:22 pm by leo72 » Logged


Oristano
Offline Offline
Sr. Member
****
Karma: 0
Posts: 252
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

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

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'è smiley-wink

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
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Oristano
Offline Offline
Sr. Member
****
Karma: 0
Posts: 252
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21625
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#ifndef LED_START_FLASHES
#define LED_START_FLASHES 0
#endif


Metti il numero di flash che vuoi e poi ricompila.
Logged


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

e questo fa lampeggiare un LED? quale?
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21625
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


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

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 smiley
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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