Go Down

Topic: Non riesco a programmare ATmega644P (Read 8196 times) previous topic - next topic

BaBBuino

Cmq adesso carico il Bootloader Sanguino. Almeno una prima programmazione del Blink me lalasciava fare. Poi comincio con i tentativi.

leo72

Babbuino, una precisazione. Io di problemi ne ho più con il 1284 che con il 644.
Quest'ultimo con me fa meno lo str...zo dell'altro.

BaBBuino

Sisi, sabato notte mi sono letto le 23 pagine del mega-post. Per questo che mi meraviglio a maggior ragione.

Cmq bootloader caricato, adesso metto il Blink...

BaBBuino

Blink caricato ad 1 Hz. Adesso provo a 2 Hz.

Intanto date un'occhiata alla def di Board:

##############################################################
atmega644.name=Sanguino W/ ATmega644P via Bootloader
atmega644.upload.protocol=stk500
atmega644.upload.maximum_size=63488
atmega644.upload.speed=57600
atmega644.bootloader.low_fuses=0xF7
atmega644.bootloader.high_fuses=0x9A
atmega644.bootloader.extended_fuses=0xFF
atmega644.bootloader.path=atmega
atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex
atmega644.bootloader.unlock_bits=0x3F
atmega644.bootloader.lock_bits=0x0F
atmega644.build.mcu=atmega644p
atmega644.build.f_cpu=16000000L
atmega644.build.core=arduino
##############################################################
atmega644.name=Sanguino W/ ATmega644 via ISP
atmega644.upload.protocol=stk500
atmega644.upload.maximum_size=65536
atmega644.upload.speed=115200
atmega644.upload.using=arduino:arduinoisp
atmega644.bootloader.low_fuses=0xF7
atmega644.bootloader.high_fuses=0xDF
atmega644.bootloader.extended_fuses=0xFF
atmega644.bootloader.path=atmega
atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex
atmega644.bootloader.unlock_bits=0x3F
atmega644.bootloader.lock_bits=0x0F
atmega644.build.mcu=atmega644p
atmega644.build.f_cpu=16000000L
atmega644.build.core=arduino

Michele Menniti

Sembrano a posto, varia sempre l'HFuse visto che ogni bl ha la sua capienza, ma con il low a F7 siamo a posto
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

BaBBuino

Ultimo tentativo è stato di estrarre il 644 dalla board "bella" e buttarlo stand alone su una breadboard, con tutti i componenti di contorno.

Niente da fare. Carica bene il Bootloader, carica il 1° Blink via seriale, ed al secondo si pianta. Provati 2 ATMega644 ed entrambi hanno lo stesso comportamento.

Per ora ci rinuncio...

tonid

Mah...Io ho usato il bl di Leo e nelle board di testo vedo che per il caricamento in ISP si utilizza la velocità di 19200 mentre per caricamento tramite bootloader la velocità sale a 115200.
Queste sono le differenze ma non credo sia questo il problema.

superzaffo

Io ti posso dire che ho usato il C da 100nf in serie con il la linea di reset e la R in pull-up... tra l' altro il quarzo nella breadb. non è neanche tanto vicino al micro.
Ora nella Bread ho collegato la micro 5 sensori di tutti i tipi e anche un port expander i2c e una micro sd via ISP, funziona tutto a meraviglia..  (per il momento)  ]:D
Cosa ti dice il led nel pin2 e con il boot loader di Leo ?

Ciao

pitusso

Ciao,
potrei dire cose già dette o castronate, non son ancora riuscito a leggermi tutte le pagine del thread...

Per ora la parte di caricamento del bootloader me la son schivata: ho un paio di ATMega644p già con bootloader sanguino.
Ieri sera ho dovuto aggiornare con nuovo firmware uno di questi.
Sono su board Sanguinololu - c'è un convertitore ftdi e quarzo 20mhz

In ogni caso, modificando il file boards.txt e impostando (riporto solo i cambiamenti):
Code: [Select]
atmega644.upload.protocol=arduino
atmega644.upload.speed=38400

il caricamento dello sketch avviene senza problemi (se non consideriamo il giochetto del tasto di reset tenuto premuto prima dell'upload).

leo72

@pitusso:
mettendo 38400 però dovresti ricompilare il bootloader per lavorare a quella velocità. Il bootloader AtmegaBOOT lavora a 57600 mentre l'Optiboot 4.5 a 115200.

leo72

@babbuino:
fai un'ultima prova. Prova con il filtro RC e non usare jumper per fare il collegamento tra pin del convertitore e pin RX0 del micro ma utilizza la stessa resistenza come ponticello. Sembrerà una scemenza ma a me ha funzionato. In pratica ci deve essere la minor distanza possibile da percorrere.

pitusso

@leo
Quote
mettendo 38400 però dovresti ricompilare il bootloader per lavorare a quella velocità. Il bootloader AtmegaBOOT lavora a 57600 mentre l'Optiboot 4.5 a 115200.


ha bootlaoder sanguino

leo72


pitusso

@leo
ok, rimane il fatto che a modificare la velocità nel boards.txt non ci son arrivato a tentoni, ma dapo lettura di svariate fonti nel mondo RepRap dove l'mcu in questione è largamente usato con il bootloader sanguino.
Solo così si riesce a caricare un qualche sketch sul micro...

leo72

Perché allora non provi a modificare la velocità anche nel file Makefile allegato ed a ricompilare il bootloader?

Go Up