riprogrammiamo il bootloader con icsp... ma come ?

ciao a tutti, ieri dopo aver scoperto che dovrei riprogrammare l'Atmega328 mi sono acquistato il programmatore ICSP ...
Inutile dire che non ci capisco gran che, il programmatore è questo e penso di aver sbagliato in pieno:

a questo punto mi domando cosa devo fare? non vorrei bruciare anche questo

Che ne dici se metti un link al prodotto e capiamo che programmatore è ? Con la foto, personalmente, ci faccio poco ...

Guglielmo

si scusa ma per me sembrano tutti uguali....
link https://www.amazon.it/ARCELI-USBASP-USBasp_H6-Programmatore-Supporto/dp/B0785RQ766/ref=sr_1_1?__mk_it_IT=ÅMÅŽÕÑ&dchild=1&keywords=ARCELI+USBASP+USBISP+AVR+USBasp_H6+Programmatore+%2B+6+pin+Supporto+cavo+ideale+Win7+Win10+Linux&qid=1610136570&sr=8-1#customerReviews
ilbello è che nn lo vede ne su mac ne su win 10 cn i drver che ho letto sono da inserire

Quello è un USBasp ...
... su Mac quando lo colleghi lo doversti vedere come un nuovo device in /dev, su Win credo tu debba installare un driver, ma in ogni caso , all'interno dell'IDE, NON lo vedi tra le porte.

Per usarlo, una volta collegato

  • dal menu Tools -> Programmer -> selezionare USBasp

  • dal menu Tools -> Board -> selezionare la board/mcu che si vuole programmare e gli evetuali parametri

  • verificare prima di tutto che il programma compili senza errori con il bottone (V) (il primo bottone tondo)

  • se tutto è a posto, collegare il cavo ICSP del programmatore al connettore ICSP sulla scheda da programmare

  • dal menu Sketch -> Upload Using Programmer ... ed avverrà la programmazione

Se da errori verificare gli errori e, in special modo, i collegamenti.

Guglielmo

Attenzione, la procedura descritta qui sopra permette la programmazione, ma vuole che i FUSE della MCU siano stati impostati correttamente o, comunque, la MCU programmata NON funzionerà.

Per la programmazione dei FUSE, sotto macOS, ti consiglio AVRFuses, semplice, essenziale e perfettamente funzionante :slight_smile:

Sotto Win c'è l'ottimo avrdudess.

Ovviamente occorre conoscere bene la MCU e sapere come programmare i suddetti FUSE.

Guglielmo

Infine, se invece vuoi caricare il bootloader su una MCU supportata, i passi sono simili a quelli del post #3 ...

  • dal menu Tools -> Programmer -> selezionare USBasp

  • dal menu Tools -> Board -> selezionare la board/mcu che si vuole programmare e gli evetuali parametri

  • dal menu Tools -> Burn Bootloader e verrà caricato il bootloader.

E' sempre bene aver impostato prima i fuse ... non ricordo se il "Burn Bootloader" li imposta anche, io per sicurezza lo faccio sempre prima.

Guglielmo

ciao, nel mentre mi scrivevi stavo cercando di capire e la mia partita è un invio con il risultato
che ha scritto qual'cosa lo sketch era ArduinoISP

Non so cosa sia successo se non per il fatto che il led L che prima era spento costantemente adesso è verde :wink:
Ho provato subito dop a caricare lo sketch "blink" ma mi da gli errori di prima ....
spero solo di non aver peggiorato la situazione, adesso provo a scaricare il programma per Mac e vedo un po .... poi ti scrivo ....
ma mi srge la domanda , ma on è che posso caricare lo sketch he mi serve per l'Astrofocus ?
PS ma csa sono i FUSE?

ho provato a caricare lo sketch per il telescopio e questo è il risultato
vrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/Users/macuser/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
User configuration file is "/Users/macuser/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : usb
Using Programmer : usbasp
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : usbasp
Description : USBasp, USBasp - USB programmer for Atmel AVR controllers - fischl.de

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "/var/folders/n8/p3f2zqfx2w3dydrm22qtfwhr0000gn/T/arduino_build_402163/AstroFocus.ino.hex"
avrdude: writing flash (8690 bytes):

Writing | ################################################## | 100% 4.15s

avrdude: 8690 bytes of flash written
avrdude: verifying flash memory against /var/folders/n8/p3f2zqfx2w3dydrm22qtfwhr0000gn/T/arduino_build_402163/AstroFocus.ino.hex:
avrdude: load data flash data from input file /var/folders/n8/p3f2zqfx2w3dydrm22qtfwhr0000gn/T/arduino_build_402163/AstroFocus.ino.hex:
avrdude: input file /var/folders/n8/p3f2zqfx2w3dydrm22qtfwhr0000gn/T/arduino_build_402163/AstroFocus.ino.hex contains 8690 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.58s

avrdude: verifying ...
avrdude: 8690 bytes of flash verified

avrdude done. Thank you.

luca63:
avrdude: verifying ...
avrdude: 8690 bytes of flash verified

avrdude done. Thank you.

... è tutto in queste TRE righe ... flash verificata, tutto ok. :smiley:

Però, se i FUSE non sono impostati correttamente ... il programma NON girerà.

Guglielmo

... QUI trovi cosa sono i FUSE ... dopo di che DEVI fare riferimento al datasheet e studiarti come vanno impostati.

Ad esempio, per un ATmega328P con un quarzo esterno a 16 MHz, alimenatato a 5V, come è Arduino UNO, vanno messi a:

low_fuses=0xFF
high_fuses=0xDE
extended_fuses=0xFD

... ma non è l'unica configurazione possibile dato che, alcuni, dipendono da scelte di progetto (es. BOD).

Guglielmo

grazie mille doamni mattina ti aggiorno , adesso devo portare giu il mio cagnolino

buon giorno a tutti , ieri ho fatto dei test.
Da prima programmatore > Arduino(DFrduino) ... provato prima con lo sketch Blink e la scheda ha ricevuto ed elaborato il tutto in quanto il led si accendeva e spegneva, ho quindi poi provato ad inserire lo sketch per il focuser.
Nel frattempo dato che con avrdude mi diceva che il programmatore aveva bisogno di un upgrade ho pensato di utilizzare Arduino per riprogrammarlo .
Quindo da come ho letto arduino > programmatore
lancio il programma avrdude -u -c arduino -P com4 -b ms (sono sotto win)
e sorpresa mi dice che non trova la MCU .....

Hai chiuso i pin per il self-programming ? ... cioe', stai programmando l'usbasp tramite un'altro usbasp (o un'arduino usato come programmatore), usando i pin dell'ICSP, giusto ? ... se si, serve chiudere il ponticello (o i due fori in parte ad uno dei led, dove su alcuni c'e' il ponticello) per farlo, per collegare il pin reset al connettore ...

buona sera a tutti.
dunque quando ho provato a riprogrammare USBASP tramite Arduino , si la risposta è si,ho provato a chiudere gli unici ponticelli che sono presenti a fianco del led ( in effetti sono 2i led)
Poi visto che è arrivato l'Arduino nuovo ho provato a riprogrammare l'Atmega 328P presente sull'Arduino ( DFrduino)
programmatore come "Arduino as ISP"
scrivi il bootloader

i led presenti sia sull'Arduino che sul DFrduino lampeggiavano in sincrono
per curiosita poi ho provato a riprogrammare il DFrduino normalmente ( programmatore AVR ISP), ma mi ha restituito gli stessi errori iniziali

"avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00"

mentre se lo programmo tramite icsb sembra che riesca l'invio, a questo punto ho delle domande:

posso comunque usarlo con la programmazione tramite icsp e ritenerlo valido o lo devo buttare ?

ringrazio tutti

luca63:
.... programmatore AVR ISP ...

... immagino intendessi USBasp come programmatore vero?

Hai seguito alla lettera i passi del mio post #5? ... mentre cercavi di programmare il bootloader, la scheda era alimentata (DEVE esserlo)? Il connettore ICSP era inserito nel verso giusto?

Guglielmo

gpb01:
... immagino intendessi USBasp come programmatore vero?

Hai seguito alla lettera i passi del mio post #5? ... mentre cercavi di programmare il bootloader, la scheda era alimentata (DEVE esserlo)? Il connettore ICSP era inserito nel verso giusto?

Guglielmo

ciao Guglielmo
iniziamo per ordine
no prima ho riprogrammato il bootloader di DFrduino e poi ho provato a passargli lo sketch del focuser , ma mi dava gli stessi errori (vrdude: stk500_recv(): programmer is not responding")allora l'ho riprogrammato tramite programmatore.
Una volta programmato ho rimontato il focheggiatore e ho provato a farlo andare , ma il programma che uso andava in loop e quindi ho fatto l'ennesima prova.
Caricato lo sketch su Arduino , montato il focheggiatore , per magia ha funzionato tutto, perfino il sensore di temperatura.
...mm adesso mi hai fatto venire un dubbio cioè che devo rifare la programmazione del bootloader alimentata esternamente da alimentatore, .....
Si il connettore era inserito nel verso giusto ... anche perche altrimenti Arduino no registrava il suo bootloader su DFrduino ...o mi sbaglio ?
grazie

Io non capisco, parli di DFrduino che è ATmega328P e poi parli di ATtiny85 ...
... ma cosa vuoi programmare ? ? ?

Guglielmo

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.