Hi to all,
I am struggling to upload the XIAO bootloader to a brand new ATSAMD21 MPU.
Everything started by bricking one XIAO I have had and I was just curious can I reupload firmware again.
It turned out that the ATSAMD21 is dead, not showing its Device signature.
Then, I have taken a brand new ATSAMD21 CPU, soldered it to the breadboard according the Seeeduino XIAO schematic and connected to the J-link (3V3, GND, SWDIO, SWCLK). I successfully uploaded the firmware (or at least, I thought so) using Atmel Studio 7 and then tried the assembly with Arduino IDE but the ATSAMD21 is not visible to the Arduino IDE nor the active COM port for the connection.
I see that somewhere I make a mistake(s) but can not realize where… I am doing everything according to suggestions from the Internet. Even, the verifying process has been done successfully but the board is not visible after, neither any of LEDs are blinking after reconnecting the board to the USB port.
When I compare what I have uploaded and what I read from the CPU, I can notice differences between those two files… Of course, the CPU has been erased before any upload.
In addition, I am not sure which file is the right one for uploading between these 2:
.Here are the fuses:
ADC_LINEARITY_0 = 0x08
ADC_LINEARITY_1 = 0x04
ADC_BIASCAL = 0x03
OSC32K_CAL = 0x48
USB_TRANSN = 0x05
USB_TRANSP = 0x1D
USB_TRIM = 0x03
DFLL48M_COARSE_CAL = 0x18
DFLL48M_FINE_CAL = 0x200
ROOM_TEMP_VAL_INT = 0x1D
ROOM_TEMP_VAL_DEC = 0x08
HOT_TEMP_VAL_INT = 0x54
HOT_TEMP_VAL_DEC = 0x07
ROOM_INT1V_VAL = 0x00
HOT_INT1V_VAL = 0xFD
ROOM_ADC_VAL = 0xB0C
HOT_ADC_VAL = 0xD11
NVMCTRL_BOOTPROT = SIZE_0BYTES
NVMCTRL_EEPROM_SIZE = SIZE_0BYTES
BOD33USERLEVEL = 0x07
BOD33_EN = ENABLED
BOD33_ACTION = RESET
WDT_ENABLE = DISABLED
WDT_ALWAYSON = DISABLED
WDT_PER = CYC16384
WDT_WINDOW_0 = [X]
WDT_WINDOW_1 = 0x05
WDT_EWOFFSET = CYC16384
WDT_WEN = DISABLED
BOD33_HYST = DISABLED
NVMCTRL_REGION_LOCKS = 0xFFFF
OTP4_WORD_0 = 0x40004007 (valid)
OTP4_WORD_1 = 0x61F4B21C (valid)
OTP4_WORD_2 = 0xFFFFFE00 (valid)
TEMP_LOG_WORD_0 = 0x75481D (valid)
TEMP_LOG_WORD_1 = 0xD11B0CFD (valid)
USER_WORD_0 = 0xD8E0C7FF (valid)
USER_WORD_1 = 0xFFFFFC5D (valid)