Close

Additional information regarding "wrong Fuses setting recovery"

A project log for ULTRA ZERO, a successor of SDuino ZERO

This is Atmel SMART (ARM Cortex M0+) based board, a successor of SDuino Zero

kodera2tkodera2t 11/24/2016 at 11:560 Comments

SAMD21G18A has some unusual behaviour which sometimes change fuse setting by unknown timing. The "unusual state" seems to be triggered by some unusual program and as a result, programming port for Arduino IDE disappear. (In the case of Atmel Studio, connection is through JTAG and we don't have any problem.) Here I would like to explain how to recover "no USB" situation by using Atmel ICE.

(Step 1) connect your Atmel ICE to your computer connect JTAG to ULTRA Zero XX. series and launch Atmel Studio and select "device programming"

(Step 2) In the device programming window, Select device as "ATSAMD21G18A" and click Apply and set SWD 2MHz (default value).

After setting SWD clock, you can read "Device Signature" as "0x10010305". In this window, click "Fuses" on the left hand side will show you current fuse bit (NVRAM) setting.

The first lots of lines shows "as a result" data, which shows MCU's calibration datas. These datas cannot be changed. The last around ten lines are editable datas.

I confirmed "it looks like completely broken board" change WDT_ENABLE and WDT_ALWAYSON are both checked. THESE SHOULD NOT BE ON and should be deselected as above picture.

These are "working board" setting. If your board has something different one, values should be modified and after that, push "Program" button to change setting. (NVMCTRL_BOOTPROT setting of 0x02 added on Dec. 4th.)

It seems, this is a perfect solution for "unusual situation"....

Discussions