Problems fuse programming Atmel-ICE

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Problems fuse programming Atmel-ICE

Armin Oonk
Hi,
 
I have a small programming setup for a custom pcb. I use a raspberry pi with avrdude (6.1) to program a atmega128rfa1. I am currently using a AVRISP mkii but because it is unavailable I am looking into using the Atmel-ICE programmer.
 
I have some funny behavior with the Atmel-ICE programmer. When I try to burn the fuses I get a verification error of the efuse
Command:
avrdude -p m128rfa1 -c atmelice_isp -P usb -B 32 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m
 
Output (only the error part):
avrdude: verification error, first mismatch at byte 0x0000 0xf6 != 0xfe
avrdude: verification error; content mismatch
 
When I use the old and trusted AVRISP mkii everything works
Command:
avrdude -p m128rfa1 -c stk500v2 -P usb -B 32 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m
 
Output:
avrdude: 1 bytes of efuse verified
 
 
Does anybody have a idea why it get an error with the atmel-ICE programmer?
 

Full command output:

sudo avrdude -p m128rfa1 -c atmelice_isp -P usb -B 16 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1ea701
avrdude: reading input file "0xf7"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.09s

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

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

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

Writing | ################################################## | 100% 0.09s

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

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

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

Writing | ################################################## | 100% 0.09s

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

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

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

avrdude: safemode: efuse changed! Was fe, and is now f6
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK (E:FE, H:D1, L:F7)

avrdude done.  Thank you.


--
 
Armin Oonk, MSc
 
Berkelaar Meet- en RegelTechniek
Mijnbouwstraat 120
2628 RX Delft
The Netherlands
 
T +31(0)6 14 65 84 39
BTW NL1677.88.395.B01 / KvK 27299619
logo[1]
 

_______________________________________________
AVR-chat mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avr-chat
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problems fuse programming Atmel-ICE

Martin Stejskal

Hi,
I've an idea. Maybe wrong, but I have one :) Since only 2 LSB are actually used as extended fuses, I guess programmer or avrdude can ignore "unused bits" (like using some mask). Point is, that there may be bug in programmer FW or AVR chip description (which avdrude use), so one bit can be interpreted bad.
But if you check your fuse values with register, I think you does not have problem (2 LSB are same in both cases).
Or maybe you set unsupported baudrate (on some USB <--> UART convertors it can be problem).
Regards
  Martin

On 29 Mar 2016 17:40, "Armin Oonk" <[hidden email]> wrote:
Hi,
 
I have a small programming setup for a custom pcb. I use a raspberry pi with avrdude (6.1) to program a atmega128rfa1. I am currently using a AVRISP mkii but because it is unavailable I am looking into using the Atmel-ICE programmer.
 
I have some funny behavior with the Atmel-ICE programmer. When I try to burn the fuses I get a verification error of the efuse
Command:
avrdude -p m128rfa1 -c atmelice_isp -P usb -B 32 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m
 
Output (only the error part):
avrdude: verification error, first mismatch at byte 0x0000 0xf6 != 0xfe
avrdude: verification error; content mismatch
 
When I use the old and trusted AVRISP mkii everything works
Command:
avrdude -p m128rfa1 -c stk500v2 -P usb -B 32 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m
 
Output:
avrdude: 1 bytes of efuse verified
 
 
Does anybody have a idea why it get an error with the atmel-ICE programmer?
 

Full command output:

sudo avrdude -p m128rfa1 -c atmelice_isp -P usb -B 16 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1ea701
avrdude: reading input file "0xf7"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.09s

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

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

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

Writing | ################################################## | 100% 0.09s

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

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

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

Writing | ################################################## | 100% 0.09s

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

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

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

avrdude: safemode: efuse changed! Was fe, and is now f6
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK (E:FE, H:D1, L:F7)

avrdude done.  Thank you.


--
 
Armin Oonk, MSc
 
Berkelaar Meet- en RegelTechniek
Mijnbouwstraat 120
2628 RX Delft
The Netherlands
 
T +31(0)6 14 65 84 39
BTW NL1677.88.395.B01 / KvK 27299619
logo[1]
 

_______________________________________________
AVR-chat mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avr-chat


_______________________________________________
AVR-chat mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avr-chat
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problems fuse programming Atmel-ICE

Armin Oonk
Hi,

yes I also have this idea about a wrong bit mask. But I am not an avrdude developer, so I thought I ask here first.

I have tested it a bit more today and with atmel studio it all seems fine.

The value 0xF6 for the extended fuse bit is not a correct value if I look at the datasheet for the atmega128rfa1.

Bit 3 is reserved and has as description "Do not modify" with a default value of 1. With 0xF6 this is set to zero.

Not sure if the mail list supports image but here is a screenshot of the extended fuse bits for the atmega128rfa1


Kind regards,
Armin

Op 29-Mar-16 om 15:41 schreef Martin Stejskal:

Hi,
I've an idea. Maybe wrong, but I have one :) Since only 2 LSB are actually used as extended fuses, I guess programmer or avrdude can ignore "unused bits" (like using some mask). Point is, that there may be bug in programmer FW or AVR chip description (which avdrude use), so one bit can be interpreted bad.
But if you check your fuse values with register, I think you does not have problem (2 LSB are same in both cases).
Or maybe you set unsupported baudrate (on some USB <--> UART convertors it can be problem).
Regards
  Martin

On 29 Mar 2016 17:40, "Armin Oonk" <[hidden email]> wrote:
Hi,
 
I have a small programming setup for a custom pcb. I use a raspberry pi with avrdude (6.1) to program a atmega128rfa1. I am currently using a AVRISP mkii but because it is unavailable I am looking into using the Atmel-ICE programmer.
 
I have some funny behavior with the Atmel-ICE programmer. When I try to burn the fuses I get a verification error of the efuse
Command:
avrdude -p m128rfa1 -c atmelice_isp -P usb -B 32 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m
 
Output (only the error part):
avrdude: verification error, first mismatch at byte 0x0000 0xf6 != 0xfe
avrdude: verification error; content mismatch
 
When I use the old and trusted AVRISP mkii everything works
Command:
avrdude -p m128rfa1 -c stk500v2 -P usb -B 32 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m
 
Output:
avrdude: 1 bytes of efuse verified
 
 
Does anybody have a idea why it get an error with the atmel-ICE programmer?
 

Full command output:

sudo avrdude -p m128rfa1 -c atmelice_isp -P usb -B 16 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1ea701
avrdude: reading input file "0xf7"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.09s

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

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

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

Writing | ################################################## | 100% 0.09s

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

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

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

Writing | ################################################## | 100% 0.09s

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

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

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

avrdude: safemode: efuse changed! Was fe, and is now f6
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK (E:FE, H:D1, L:F7)

avrdude done.  Thank you.


--
 
Armin Oonk, MSc
 
Berkelaar Meet- en RegelTechniek
Mijnbouwstraat 120
2628 RX Delft
The Netherlands
 
T +31(0)6 14 65 84 39
BTW NL1677.88.395.B01 / KvK 27299619
logo[1]
 

_______________________________________________
AVR-chat mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avr-chat


--
 
Armin Oonk, MSc
 
Berkelaar Meet- en RegelTechniek
Mijnbouwstraat 120
2628 RX Delft
The Netherlands
 
T +31(0)6 14 65 84 39
BTW NL1677.88.395.B01 / KvK 27299619
logo[1]
 

_______________________________________________
AVR-chat mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avr-chat
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problems fuse programming Atmel-ICE

Martin Stejskal

Hi,
I was checking datasheet for Atmega128, not for Atmega128rfa1. I taught that they are same - obviously not. Sorry for confusion.
So I think only way is checking sources of avrdude (maybe chip description have wrong mask.... ).
Martin

On 29 Mar 2016 23:24, "Armin Oonk" <[hidden email]> wrote:
Hi,

yes I also have this idea about a wrong bit mask. But I am not an avrdude developer, so I thought I ask here first.

I have tested it a bit more today and with atmel studio it all seems fine.

The value 0xF6 for the extended fuse bit is not a correct value if I look at the datasheet for the atmega128rfa1.

Bit 3 is reserved and has as description "Do not modify" with a default value of 1. With 0xF6 this is set to zero.

Not sure if the mail list supports image but here is a screenshot of the extended fuse bits for the atmega128rfa1


Kind regards,
Armin

Op 29-Mar-16 om 15:41 schreef Martin Stejskal:

Hi,
I've an idea. Maybe wrong, but I have one :) Since only 2 LSB are actually used as extended fuses, I guess programmer or avrdude can ignore "unused bits" (like using some mask). Point is, that there may be bug in programmer FW or AVR chip description (which avdrude use), so one bit can be interpreted bad.
But if you check your fuse values with register, I think you does not have problem (2 LSB are same in both cases).
Or maybe you set unsupported baudrate (on some USB <--> UART convertors it can be problem).
Regards
  Martin

On 29 Mar 2016 17:40, "Armin Oonk" <[hidden email]> wrote:
Hi,
 
I have a small programming setup for a custom pcb. I use a raspberry pi with avrdude (6.1) to program a atmega128rfa1. I am currently using a AVRISP mkii but because it is unavailable I am looking into using the Atmel-ICE programmer.
 
I have some funny behavior with the Atmel-ICE programmer. When I try to burn the fuses I get a verification error of the efuse
Command:
avrdude -p m128rfa1 -c atmelice_isp -P usb -B 32 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m
 
Output (only the error part):
avrdude: verification error, first mismatch at byte 0x0000 0xf6 != 0xfe
avrdude: verification error; content mismatch
 
When I use the old and trusted AVRISP mkii everything works
Command:
avrdude -p m128rfa1 -c stk500v2 -P usb -B 32 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m
 
Output:
avrdude: 1 bytes of efuse verified
 
 
Does anybody have a idea why it get an error with the atmel-ICE programmer?
 

Full command output:

sudo avrdude -p m128rfa1 -c atmelice_isp -P usb -B 16 -U lfuse:w:0xf7:m -U hfuse:w:0xd1:m -U efuse:w:0xfe:m

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1ea701
avrdude: reading input file "0xf7"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.09s

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

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

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

Writing | ################################################## | 100% 0.09s

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

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

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

Writing | ################################################## | 100% 0.09s

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

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

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

avrdude: safemode: efuse changed! Was fe, and is now f6
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK (E:FE, H:D1, L:F7)

avrdude done.  Thank you.


--
 
Armin Oonk, MSc
 
Berkelaar Meet- en RegelTechniek
Mijnbouwstraat 120
2628 RX Delft
The Netherlands
 
T +31(0)6 14 65 84 39
BTW NL1677.88.395.B01 / KvK 27299619
logo[1]
 

_______________________________________________
AVR-chat mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avr-chat


--
 
Armin Oonk, MSc
 
Berkelaar Meet- en RegelTechniek
Mijnbouwstraat 120
2628 RX Delft
The Netherlands
 
T +31(0)6 14 65 84 39
BTW NL1677.88.395.B01 / KvK 27299619
logo[1]
 

_______________________________________________
AVR-chat mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avr-chat


_______________________________________________
AVR-chat mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avr-chat
Loading...