Topic permanente di programmazione newbie

leo72: L'SPI sta per Serial Peripheral Interface ed è la programmazione tramite i segnali MOSI/MISO/SCK che vengono spediti sui relativi pin. E' la programmazione "standard" degli Atmega ed Attiny. Cmq ora vado a dormire, domattina sveglia alle 5:20, ne riparliamo dopo queste 5 orette di sonno :cold_sweat:

buonanotte, mi sa che allora ho trovato l'inghippo, se setto questo valore credo di disattivare l'ISP, vedremo.

[quote author=Michele Menniti link=topic=95050.msg763953#msg763953 date=1334700491] buonanotte, mi sa che allora ho trovato l'inghippo, se setto questo valore credo di disattivare l'ISP, vedremo. [/quote] Ti riferisci ai lock bit BLB? Cmq ho trovato anche questo doc, guarda se ti può "ispirare": c'è la sequenza dei comandi per impostare i lock bit da spedire al micro http://www.atmel.com/Images/doc0943.pdf

[quote author=Michele Menniti link=topic=95050.msg763940#msg763940 date=1334699607] perché la combinazione 01 serve appunto per (mi pare) disabilitare la programmazione SPI, non è self-programming....? ma cos'è esattamente? [/quote]

Se disabiliti la programmazione SPI poi non riesce più a programmare il micro, devi per forza ripristinarla e si può fare solo tramite JTAG, per i micro che la supportano e se non è stata disabilitata pure questa, oppure con l'erase totale, il che include i fuse, tramite HV. Dei lock bit per il bootloader puoi fregartene altamente, tanto vengono settati come serve quando vai a programmare l'eventuale bootloader via ISP.

OK, e comunque mi sbagliavo, le combinazioni sono proprio tre e non c'è nulla che riguarda l'SPI; del fatto che poi servisse l'HV ovviamente non mi potevo preoccupare, sto realizzando un HV e c'ho pure messo la funzione Chip_Erase :D; i comanid sono inseriti correttamente, come detto se la sequenza non fosse esatta alla rilettura non vedrei i nuovi valori dei LB, che infatti mi impediscono la programmazione dei Fuse finché non faccio un Chip_Erase. Il blocco della programmazione dei fuse è l'unico effetto tangibile dei LB. Sul fatto di ignorare i BLB c'ero, visto che parlava espressamente di boot, infatti non mi sono proprio guardato la procedura.

Ripeto la richiesta: avreste un programmino semplice semplice (che non sia AVR Studio perché sono a corto di tempo...) che possa accedere alla flash di un qualsiasi chip ATmega (tra quelli che usiamo solitamente), leggendone in qualche modo il contenuto, anche parziale? Mi interessa solo per vedere se in condizione FC almeno ho bloccato l'accesso in lettura, altrimenti davvero non so che cosa l'ho implementata a fare la funzione

[quote author=Michele Menniti link=topic=95050.msg764161#msg764161 date=1334731144] Ripeto la richiesta: avreste un programmino semplice semplice (che non sia AVR Studio perché sono a corto di tempo...) che possa accedere alla flash di un qualsiasi chip ATmega (tra quelli che usiamo solitamente), leggendone in qualche modo il contenuto, anche parziale? Mi interessa solo per vedere se in condizione FC almeno ho bloccato l'accesso in lettura, altrimenti davvero non so che cosa l'ho implementata a fare la funzione [/quote]

Usa Avrdude per fare un dump della flash.

astrobeed:

[quote author=Michele Menniti link=topic=95050.msg764161#msg764161 date=1334731144]
Ripeto la richiesta: avreste un programmino semplice semplice (che non sia AVR Studio perché sono a corto di tempo…) che possa accedere alla flash di un qualsiasi chip ATmega (tra quelli che usiamo solitamente), leggendone in qualche modo il contenuto, anche parziale? Mi interessa solo per vedere se in condizione FC almeno ho bloccato l’accesso in lettura, altrimenti davvero non so che cosa l’ho implementata a fare la funzione

Usa Avrdude per fare un dump della flash.
[/quote]
Ottimo! ma io con AVRDUDE finora ho fatto solo operazioni con i fuse e caricamenti di .hex nel micro; avresti una sintassi “tipo” da suggerirmi, così stasera la provo e vediamo finalmente che succede :slight_smile:

avrdude -p m328p -c stk500 -P COMxx -U flash:r:"flash.hex":i Dove COMxx indica la porta seriale utilizzata e il percorso per il file; eventaulmente dopo -P COMxx puoi stabilire un baudrate differente dal predefinito inserendo -b . Inoltre, sostituendo il parametro flash con eeprom puoi leggere la eeprom.

Ciao QP

[quote author=Michele Menniti link=topic=95050.msg764170#msg764170 date=1334732226] Ottimo! ma io con AVRDUDE finora ho fatto solo operazioni con i fuse e caricamenti di .hex nel micro; avresti una sintassi "tipo" da suggerirmi, così stasera la provo e vediamo finalmente che succede :) [/quote] Riprendendo ciò che ha prodotto la tua IDE direi di provare questo: avrdude -CC:\arduino-0022\hardware/tools/avr/etc/avrdude.conf -patmega328p -cstk500v1 -P\.\COM60 -b19200 -Uflash:r:C:\Flash.hex:i

zwzz: Mostly networked community.

Spammer, segnalato ai moderatori.

astrobeed:

zwzz: Mostly networked community.

Spammer, segnalato ai moderatori.

Idem.

OK, grazie ad entrambi, stasera al rientro faccio subito un tentativo e vi riporto i risultati :)

Oppure usa le utility che ti avevo suggerito qui: http://arduino.cc/forum/index.php/topic,100580.msg754520.html#msg754520 ;)

amario57: Oppure usa le utility che ti avevo suggerito qui: http://arduino.cc/forum/index.php/topic,100580.msg754520.html#msg754520 ;)

Sì, hai ragione, ho messo tutto in una cartella "da studiare", il test dell'AVRDUDE dovrebbe essere immediato, una riga e via, vediamo. Grazie!

ricorda che anche se la lettura è bloccata potresti leggere o tutti FF o comunque dati spazzatura senza significato.

BrainBooster: ricorda che anche se la lettura è bloccata potresti leggere o tutti FF o comunque dati spazzatura senza significato.

boh, stasera al rientro faccio qualche prova e vediamo che ne esce....

La sintassi: C:\avr\bin\avrdude.exe -C"C:\avr\etc\avrdude.conf" -patmega328p -cstk500v1 -b9600 -PCOM60 -Uflash:r:C:\Flash.hex:i mi restituisce: can't open device "COM60": impossibile trovare il file specificato (ma la porta è quella); ma l'ultima parte dovrebbe crearmi un file Flash.hex in c:\?

[quote author=Michele Menniti link=topic=95050.msg764948#msg764948 date=1334780387] La sintassi: C:\avr\bin\avrdude.exe -C"C:\avr\etc\avrdude.conf" -patmega328p -cstk500v1 -b9600 -PCOM60 -Uflash:r:C:\Flash.hex:i mi restituisce: can't open device "COM60": impossibile trovare il file specificato (ma la porta è quella); ma l'ultima parte dovrebbe crearmi un file Flash.hex in c:\? [/quote] Metti la porta a cui è collegato il tuo Arduino. Sì, con questa sintassi fai il dump della flash su file e lo salvi nel percorso specificato

Leo, l'ho pure scritto, la porta è quella, ora ho anche provato a mettere il micro con bl e blink durettamente su Arduino, i lock bits sono FF, ma questo è un errore di AVRDUDE, ho visto che in alcune sintassi usavi -b -P 19200 COMx, ma mi dà errore che -P è un baud errato

con COM1 parte ma poi ovviamente dà errore; ho capito che il problema è che non riesce a concepire queste COMxx, ma che posso farci io? come faccio a impostare Arduino su una COM2 o similari?

Sono riuscito a reindirizzare Arduino su COM2, ho impostato 9600baud, ora avviene l'accesso ma mi dà errore di sync... mi sa che non è cosa

Ogni opzione vuole il suo parametro, quindi se vuoi cambiare velocità devi mettere -b 19200 -P porta. Per la porta non so come fare a vederle su Windows, prova collegando l'Arduino e poi aprendo l'icona del Computer per vedere su quale porta viene mappata la scheda.