Go Down

Topic: ATmega328PB (Read 102992 times) previous topic - next topic

PaoloP

Se programmo il bootloader da AVRdudess funziona.
Quote
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude.exe: Device signature = 0x1e9516 (probably m328pb)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex"
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex auto detected as Intel Hex
avrdude.exe: writing flash (32748 bytes):

Writing | ################################################## | 100% 0.00s

avrdude.exe: 32748 bytes of flash written
avrdude.exe: verifying flash memory against D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex:
avrdude.exe: load data flash data from input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex:
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex auto detected as Intel Hex
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex contains 32748 bytes
avrdude.exe: reading on-chip flash data:

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

avrdude.exe: verifying ...
avrdude.exe: 32748 bytes of flash verified
avrdude.exe: reading input file "0xFF"
avrdude.exe: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of lock written
avrdude.exe: verifying lock memory against 0xFF:
avrdude.exe: load data lock data from input file 0xFF:
avrdude.exe: input file 0xFF contains 1 bytes
avrdude.exe: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lock verified

avrdude.exe done.  Thank you.

Riga di comando: -c xplainedmini -p m328pb -P usb -U flash:w:"D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex":a -U lock:w:0xFF:m

PaoloP

Quanto mi piace questa warning di avrdude. :D
Esce anche con la Xplain328P
Code: [Select]
Unknown signature 1e950f(probablym328p)

PaoloP

La riga dell'IDE invece è:
Code: [Select]
-CD:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb/avr/tools/avr8-gnu-toolchain//etc/avrdude.conf -v -patmega328pb -cxplainedmini -e -Ulock:w:0x3F:m -Uefuse:w:0xF5:m -Uhfuse:w:0xDC:m -Ulfuse:w:0xE0:m


Contro
Code: [Select]
-c xplainedmini -p m328pb -P usb -U flash:w:"D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex":a -U lock:w:0xFF:m

PaoloP

Anche con i fuse
Code: [Select]
-c xplainedmini -p m328pb -P usb -v -U flash:w:"D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex":a -U lfuse:w:0xE0:m -U hfuse:w:0xDC:m -U efuse:w:0xFD:m -U lock:w:0xFF:m
Tramite AVRdudess funziona.
Quote
Unknown signature 1e9516(probablym328pb)
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

avrdude.exe: Version 6.3, compiled on Feb 17 2016 at 09:25:53
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2014 Joerg Wunsch

             System wide configuration file is "D:\Arduino\avrdudess_20140805\avrdude.conf"

             Using Port                    : usb
             Using Programmer              : xplainedmini
avrdude.exe: usbdev_open(): Found mEDBG CMSIS-DAP, serno: ATML2523030200001661
avrdude.exe: max packet size expected 512, but found 64 due to EP 0x81's wMaxPacketSize
avrdude.exe: Found CMSIS-DAP compliant device, using EDBG protocol
             AVR Part                      : ATmega328PB
             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 : JTAG3_ISP
             Description     : Atmel AVR XplainedMini in ISP mode
             Vtarget         : 5.0 V
             SCK period      : 8.00 us

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude.exe: Device signature = 0x1e9516 (probably m328pb)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex"
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex auto detected as Intel Hex
avrdude.exe: writing flash (32748 bytes):

Writing | ################################################## | 100% 0.00s

avrdude.exe: 32748 bytes of flash written
avrdude.exe: verifying flash memory against D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex:
avrdude.exe: load data flash data from input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex:
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex auto detected as Intel Hex
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex contains 32748 bytes
avrdude.exe: reading on-chip flash data:

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

avrdude.exe: verifying ...
avrdude.exe: 32748 bytes of flash verified
avrdude.exe: reading input file "0xE0"
avrdude.exe: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of lfuse written
avrdude.exe: verifying lfuse memory against 0xE0:
avrdude.exe: load data lfuse data from input file 0xE0:
avrdude.exe: input file 0xE0 contains 1 bytes
avrdude.exe: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lfuse verified
avrdude.exe: reading input file "0xDC"
avrdude.exe: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of hfuse written
avrdude.exe: verifying hfuse memory against 0xDC:
avrdude.exe: load data hfuse data from input file 0xDC:
avrdude.exe: input file 0xDC contains 1 bytes
avrdude.exe: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of hfuse verified
avrdude.exe: reading input file "0xFD"
avrdude.exe: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0xFD:
avrdude.exe: load data efuse data from input file 0xFD:
avrdude.exe: input file 0xFD contains 1 bytes
avrdude.exe: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of efuse verified
avrdude.exe: reading input file "0xFF"
avrdude.exe: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of lock written
avrdude.exe: verifying lock memory against 0xFF:
avrdude.exe: load data lock data from input file 0xFF:
avrdude.exe: input file 0xFF contains 1 bytes
avrdude.exe: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lock verified

avrdude.exe done.  Thank you.


PaoloP

Ecco... se metto in AVRdude Lockbit 0x3F invece di 0xFF va in errore.

testato

L'AVR Dragon non è l'unico programmatore Atmel che supporta l'HVPP, p.e. anche l'STK600 la supporta, però non si tratta solo del 12V sul reset, ci sono ben 16 segnali da collegare, di cui 8 bit dati, 8 bit di controllo e 1 clock, scordatelo di farlo con l'Atmel ICE, ho appena verificato.
Per manualmente intendo collegare il micro su una breadboard ed applicare il 12V al momento giusto.
Intendo il metodo manuale fatto con arduino stesso e l'apposito firmware

C'è anche uno schefino in vendita, certo che dissardare il micro falla explained, risaldarlo su un adattatore, resettsrlo, ridissaldarlo, risaldarlo sulla explained......
Fai prima a ricomprarla :-)

Se facessero la versione pdip sarebbe tutto più facile e tutti aggiorneremmo le uno
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

astrobeed

C'è anche uno schefino in vendita, certo che dissardare il micro falla explained,
Io ho usato la HVPP sulla Xplained senza dissaldare il micro, è bastato togliere una resistenza per non mandare i 12 V sul 32u4, però questo è uno dei rarissimi casi in cui è possibile farlo senza dissaldare il micro.
Scientia potentia est

PaoloP

Sto andando avanti.
Fuse scritti.
Verifica fuse + unlockbit.
Bootloader scritto.
Verifica LockBit failed.
Quote
avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb/avr/tools/avr8-gnu-toolchain//etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : xplainedmini
avrdude: usbdev_open(): Found mEDBG CMSIS-DAP, serno: ATML2523030200001661
avrdude: max packet size expected 512, but found 64 due to EP 0x81's wMaxPacketSize
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
         AVR Part                      : ATmega328PB
         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 : JTAG3_ISP
         Description     : Atmel AVR XplainedMini in ISP mode
         Vtarget         : 5.0 V
         SCK period      : 8.00 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9516 (probably m328pb)
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: reading input file "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr/bootloaders/optiboot_m328pb.hex"
avrdude: writing flash (32748 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 32748 bytes of flash written
avrdude: verifying flash memory against D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr/bootloaders/optiboot_m328pb.hex:
avrdude: load data flash data from input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr/bootloaders/optiboot_m328pb.hex:
avrdude: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr/bootloaders/optiboot_m328pb.hex contains 32748 bytes
avrdude: reading on-chip flash data:

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

avrdude: verifying ...
avrdude: 32748 bytes of flash verified
avrdude: reading input file "0xCF"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0xCF:
avrdude: load data lock data from input file 0xCF:
avrdude: input file 0xCF contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xff != 0xcf
avrdude: verification error; content mismatch

avrdude done.  Thank you.

Errore durante la scrittura del bootloader
WTF!

Etemenanki

#518
Mar 19, 2016, 04:22 pm Last Edit: Mar 19, 2016, 04:23 pm by Etemenanki
... WTF
Che codice di errore e', hardware o software ? ... :P :D :D :D
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

astrobeed

Che codice di errore e', hardware o software ? ... :P :D :D :D
Non è un codice di errore, wtf = codice ISO 639-3 della lingua dumpu. :D

Scientia potentia est

PaoloP

Allora.... non riesco a scrivere correttamente i fuse.
Impostando l'unlockfuse a 0xFF invece che 0xcF e extended fuse a 0xFD al posto di 0xF5. Funziona.
Ovviamente non attiva il controllo sul clock e nemmeno la protezione del'area bootloader.
Dopo aver messi il filtro driver della libusb anche ATmel Studio non riesce a settare bene i fuse sul 328PB.
Non ricordo prima.

astrobeed

Ho fatto qualche prova con l'usb filter, però l'impressione è che ci sono ancora tanti problemi da risolvere da parte di Avrdude, primo tra tutti il blocco della seriale sul mEDBG dopo la programmazione.

Se non ci avete fatto caso i 328PB contengono un ID unico, impresso durante il processo di produzione, che permette di identificare il singolo chip, o scheda che lo contiene, il data sheet dice solo che c'è però non spiega come usarlo.
Cercando sulla AN che parla delle differenze tra Atmega328P e Atmega328PB ho trovato che l'ID si può leggere come un registro di I/O e occupa ben 9 byte, da 0xF0 a 0xF8, ecco un semplice sketch per leggere i 9 byte visto che non sono definiti nemmeno all'interno di iom328pb.h.
Forse vale la pena di realizzare una funzione dedicata.

Code: [Select]
#define UID0  _SFR_IO8(0xF0)
#define UID1  _SFR_IO8(0xF1)
#define UID2  _SFR_IO8(0xF2)
#define UID3  _SFR_IO8(0xF3)
#define UID4  _SFR_IO8(0xF4)
#define UID5  _SFR_IO8(0xF5)
#define UID6  _SFR_IO8(0xF6)
#define UID7  _SFR_IO8(0xF7)
#define UID8  _SFR_IO8(0xF8)

void setup() {
  Serial.begin(57600);

  Serial.println(UID0, HEX);
  Serial.println(UID1, HEX);
  Serial.println(UID2, HEX);
  Serial.println(UID3, HEX);
  Serial.println(UID4, HEX);
  Serial.println(UID5, HEX);
  Serial.println(UID6, HEX);
  Serial.println(UID7, HEX);
  Serial.println(UID8, HEX);
}
Scientia potentia est

gpb01

#522
Mar 20, 2016, 10:31 am Last Edit: Mar 20, 2016, 10:31 am by gpb01
... ho trovato che l'ID si può leggere come un registro di I/O e occupa ben 9 byte, da 0xF0 a 0xF8
... la cosa buffa è che non ce ne è traccia neanche all'interno di iom328pb.h dove si sono fermati con le definizioni a TWAMR1 (0xDD) e non sono andati oltre. Inoltre, sia nel Summary 10/2015 che nel Datasheet 10/2015, nella tabella di riepilogo dei registri (Register Summary), i suddetti registri vengono solo definiti "Reserved" ! :o

Guglielmo
Search is Your friend ... or I am Your enemy !

astrobeed

i suddetti registri vengono solo definiti "Reserved" ! :o
Che il data sheet del 328PB sia carente, fumoso, per non dire di peggio, già lo sappiamo, speriamo che rilasciano una nuova revisione a breve.
Scientia potentia est

gpb01

#524
Mar 20, 2016, 12:28 pm Last Edit: Mar 20, 2016, 12:29 pm by gpb01
Che il data sheet del 328PB sia carente, fumoso, per non dire di peggio, già lo sappiamo, speriamo che rilasciano una nuova revisione a breve.
... direi che anche il file iom328pb.h non è da meno ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up