firmware update broke my Atmel -ICE?

Go To Last Post
17 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This morning I needed to burn some boot loaders onto a bunch of SAMD21G18AUs on some new boards I made, and instead of pulling out my older PC that I've done this on 100's of times... I installed Atmel Studio 7 onto a Win10 laptop instead (Desktop was packed up into storage to save space) - and when I plugged in the ICE to program the SAMDs it told me I had to do a firmware update on the ICE to continue.. (v1.29) I did that, and now my ICE wont read the device properly of any of he SAMD21s on my new boards...   I get weird target voltages and an error saying "can't read the device".

 

So these are all of the things I've tried since...

 

- Pulled out old PC and tried on that (it's an older version of Studio 7.0) and tried on that

- Tried every USB port on both machines, tried 8 (or more) different USB cables

- Checked the boards thoroughly - beeped them out - check all voltages etc.

- Tried plugging the power for the PCB into a wall socked (5V via micro-b) to ensure good power.

- Tried 3 different ribbon cables (I bought spares because I go through a lot of SAMDs)

- Grabbed a working board that had the boot-loader burned on it successfully ages ago and tried to burn it again

- Downloaded the ICE firmware archive and rolled my FW back to a previous version (1.19) and plugged it back Ito the old desktop PC - it immediately asked to update it to (1.27), the version it was on pre plugging it into the laptop

 

All with the same outcome :(

So now it doesn't matter what I do and what firmware I put on... I can no longer read a known working SAMD21G or a new clean SAMD21G to program.... :(

 

Is it possible I destroyed my ICE?

Is there a way to factory reset it?

The box label says it's an Atmel ICE Basic from 2016.12.23

 

Am I going to need to buy another one? I really don't want to - they are super duper expensive.

 

If anyone has any suggestions, please let me know.  

 

Thanks,

Seon

Unexpected Maker
http://unexpectedmaker.com

Last Edited: Fri. Oct 11, 2019 - 09:22 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Also, when I enter atfw -l to list the tools, I see it twice - named like this:

 

atmelice j41800074666

atmelice j41800074666_01

 

Having never ran atfw before today (after the first fw update today that kicked off this mess), I have no idea if that is what it should show or not...  maybe it's because it has both the AVR and SAM ports on it?

Is it correct to see it listed twice like this?

 

Thanks :)

Seon

 

 

Unexpected Maker
http://unexpectedmaker.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ok, I also just installed Studio 6.2 (whatever the last version was before 7.0) and that is also fault to detect any SAMD21 I point it at :(

So it looks like I have wrecked the ICE some how.. :(

Unexpected Maker
http://unexpectedmaker.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Is there a clock rate adjustment?...maybe the upgrade changes the programming clock to something unusable.

does this offer any usable help:

https://www.avrfreaks.net/forum/atmel-ice-driver-re-install-as7

 

These mysterious "programmer fails" can be extremely aggravating...spend hours & hours (or days)  just to get where you left off.

 

Perhaps try programming an AVR  "mega" chip...does that even work?

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

Last Edited: Fri. Oct 11, 2019 - 07:12 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I don't have any AVR chips here to program - I only use ARM (SAMD) and ESP32s.
 

I've tried the SWD clock at default and at various speeds, but none of them help. I'm not seeing 3.3 on the target voltage either - seeing 2.6-2.7 - but there is 3.3V on pin 1 of the SWD header on my board.. so it should be reading 3.3V (like it always did before).

 

None of it seems to be a driver issue, but I will try an un-installed and clean install (again) - as I did install 6.2 today to try it...

 

Sad day :(

 

Cheers,

Seon

Unexpected Maker
http://unexpectedmaker.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Do you have plenty of bypass caps?...this post alludes to some problems...maybe the software update  is more sensitive to reading voltages (maybe a new timing in the reading) & gives up.

https://forum.arduino.cc/index.php?topic=425358.0

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yeah, it's the same board design I've built/flashed over 100 times... It's not my PCB - As I mentioned in the original post, I took a working board that already had the SAMD flashed and tried to read that, and it won't read that either.

 

And I tried with the older AS7 on my other PC, and installed AS6.2 and all of them fail to read - I've swapped out every component in this process, other than the ICE as I only have 1 of them :(

 

I'm currently re-installing AS7 (after a clean out) - and if that doesn't work, I'm going to pull the ICE apart and start looking under the microscope.

 

Cheers,

Seon

Unexpected Maker
http://unexpectedmaker.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

Yeah, it's the same board design I've built/flashed over 100 times... It's not my PCB 

Just checking...to clarify, what I was saying is perhaps the board was marginal in some way (rise times, noise, loading, etc), but the old ICE software could still deal with it...Maybe new ICE software exacerbates any issue (say the original read was just barley making it & the new sequence is slightly different & now fails)....of course that is a long shot & it wouldn't make sense if you reverted to the old ICE software.

 

this document mentions an ICE self-check...for what that is worth

http://ww1.microchip.com/downloads/en/AppNotes/00002466B.pdf

 

 

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

Last Edited: Fri. Oct 11, 2019 - 08:48 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Two SILLY questions:

 

1.  Is the ribbon plugged into the SAM socket or AVR socket ?

2.  Are you using a regular 10-way ribbon to standard Cortex SWD header ?

 

The SAM socket and the AVR socket are both wired backwards.    Hence the special ATMEL-ICE ribbon.

 

Apologies for the questions.   I am not sure whether you say ATMEL-ICE USB comms, updates, ... work

Or whether it is simply the SWD comms to the SAM chip that fails.

 

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

avrcandies wrote:

this document mentions an ICE self-check...for what that is worth

http://ww1.microchip.com/downloads/en/AppNotes/00002466B.pdf

 

Thanks avrcandies, I'll check it out tomorrow to see if that until is also available for AS7.

 

david.prentice wrote:

Two SILLY questions:

 

1.  Is the ribbon plugged into the SAM socket or AVR socket ?

2.  Are you using a regular 10-way ribbon to standard Cortex SWD header ?

 

The SAM socket and the AVR socket are both wired backwards.    Hence the special ATMEL-ICE ribbon.

 

Apologies for the questions.   I am not sure whether you say ATMEL-ICE USB comms, updates, ... work

Or whether it is simply the SWD comms to the SAM chip that fails.

 

David.

 

Hey David - Yes I'm using the SAM socket with the same (original & correct) cables I always use... connected the right way :) 10 pin 1.27mm connector to the SAM port and 10pin 1.27mm connector to my board.

 

As I said, I've done this hundreds of times... the only thing that changed today was the latest version of AS7 on a new computer required an ICE firmware update and since then, the ICE won't read any SAMD device I connect to it... not on 2 different computers, using lots of different USB cables, 3 versions of AS and 3 different 10 pin cables.

 

The VCC (pin1) on the SWD header reads is 3.27V on 2 different DMMs - Burt the ICE reads 2.7V and fails device detection :(

 

Something has gone wrong with the ICE since the firmware was updated to the latest version - and no matter what firmware I re-flash it with now, or what version of AS I use, it no longer detects any SAMD21 I connect it to :(

 

I'll crack it open tomorrow and poke around inside.

 

Cheers,

Seon

Unexpected Maker
http://unexpectedmaker.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Oh, one other thing that's interesting... on the latest AS7 - there is no text entry field for NVMCTRL_BOOTPROT and EEPROM size - it's now a drop down list of values - none that relate to 0x07 that I can work out.

 

A previous AS7 version I have on my older PC still has the text entry field for NVMCTRL_BOOTPROT and EEPROM size.

 

Anyone else notice that?

 

Seon

 

Unexpected Maker
http://unexpectedmaker.com

Last Edited: Fri. Oct 11, 2019 - 10:40 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My ATMEL-ICE firmware is 1.29.  AS7.0.2389

 

I just tried my ATMEL-ICE with a SAMD21G18A.   It will not read the Voltage.

A JLINK-EDU read the voltage.   It did not like the Signature in AS7.0.

 

I then tried a SAM3X8E which did read the voltage ok.  Signature ok.

 

The SAMD21G18A connected fine with Rowley and Keil.   Both with ATMEL-ICE and JLINK.

So there might be something funny with AS7.0.2389 and SAMD

I don't use AS7.0 for ARM targets.  So I don't have much experience with AS7.0 and SAM or SAMD

 

I could probably downgrade the firmware from 1.29

However AS7.0 would only force me to upgrade as soon as I wanted to use it.

 

David.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

david.prentice wrote:

My ATMEL-ICE firmware is 1.29.  AS7.0.2389

 

I just tried my ATMEL-ICE with a SAMD21G18A.   It will not read the Voltage.

A JLINK-EDU read the voltage.   It did not like the Signature in AS7.0.

 

I then tried a SAM3X8E which did read the voltage ok.  Signature ok.

 

The SAMD21G18A connected fine with Rowley and Keil.   Both with ATMEL-ICE and JLINK.

So there might be something funny with AS7.0.2389 and SAMD

I don't use AS7.0 for ARM targets.  So I don't have much experience with AS7.0 and SAM or SAMD

 

I could probably downgrade the firmware from 1.29

However AS7.0 would only force me to upgrade as soon as I wanted to use it.

 

David.

 

 

Thanks for confirming It's not just me David!

Downgrading the firmware didn't work for me... I downgraded to 5 different versions and then went back to my desktop PC that's running AS7,0.1931 - that has been flashing my SAMDs just fine for > 12 months, and it's not working there anymore either. Something about putting the latest firmware on the ICE has left it unusable for SAMDs even when downgraded.

I'm honestly not sure what to do now... and I have a bunch of boards I have to get bootloaders onto :(

 

Regards,

Seon

Unexpected Maker
http://unexpectedmaker.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You can use STLink, JLink, Ulink, ... or any CMSIS-DAP debugger should be able to program your SAMD.

 

Keil or Rowley should be happy.   Other IDEs are available.

Keil or Rowley should work with the ATMEL-ICE.   It is a regular CMSIS-DAP.

 

I might try a SAMD project tomorrow.

If there is a problem,   I am sure that Microchip will sort it out quickly.    It is embarrassing to have a problem with their popular chips.

 

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I just downloaded Keil uVision (ARM version)- never used it before. I can't see how to do anything in it, let alone how to burn a bootloader via ICE. I can't even find anything online about it.

 

Any pointers on how I'd go about it?

 

Mean while, I'm looking into openocd ...

 

Seon

Unexpected Maker
http://unexpectedmaker.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I fixed it! w00h00 !!!

Well, maybe "fixed it" is wrong - I fluked a combo of steps that got it working again, but only on my older AS7 version, with an older ICE firmware.

It all happened when I started to see if I could get OpenOCD to burn my bootloader on my Mac...

 

To get openocd to recognise my ICE properly, I was going through all of the different older firmwares, and found one that seemed to poll the SAMD faster then the others did... and so decided to plug that into my older PC that is running the earlier AS7, and it immediately asked me to change the fw - and I thought, oh oh.. but let it do it, and tada - it now sees my SAMD21s and reads the target voltage correctly, and programs it fine. Weirdly, it's also recognising my SAMD21G18AU as SAMD21G18A - Even though the ICs are clearly marked SAMD21G18AU -  but setting them to SAMD21G18A works fine.

 

Totally weird and lucky steps... but I have my ICE working again in my older AS7 flashing bootloaders onto my SAMD21s!

 

Once I got them all flashed, I did try to do it again on my new laptop with latest AS7 and after the forced fw update, it stopped working again. I hope MicroChip fix whatever is wrong in the latest AS7 soon... but at least for now I have all of my new boards flashed and have my old PC working.

Cheers,

Seon

Unexpected Maker
http://unexpectedmaker.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

1> I foolishly updated both of my Atmel-ICE's to current version 1.29 ... on my Windows 10 laptop using AS7.

 

Using either ICE with each of my 4 SAMD21G18A Sparkfun Red board turbo, (on my Linux PC, running openOCD) ...

... I can see either programmer OK ...

... but openocd quits with:

Info : clock speed 400 kHz

in procedure 'init'

in procedure 'ocd_bouncer' 

 

 

2> When I connect any of my 4 Explained Pro with SAMD21J18A using the debug port with built in EDBG chip (same chip as ICE) ...

... all is OK.

 

The firmware in the Explained Pro EDBG chip is higher:

03.22.01B3

... but it's been on the shelf for three years untouched so they must have refactored the firmware versioning?

AS7 offers a newer version also starting with 3 which I declined.

 

 

3> when I connect my Arduino zero via debug port ...

... all works OK (same firmware version as above).

This also uses the EDBG chip on the board ... not the EDBG chip in the ICE.

 

4> using the same Arduino Zero with either ICE on the 50 mil 10 pin port ...

I see the ICE's OK but I get ...

Info : clock speed 400 kHz

in procedure 'init'

in procedure 'ocd_bouncer' 

 

 

Whaa ?,.