Adjusting the linker for use of the EEPROM on SAM M0 devices

There’s an interesting “thought” left out of application notes and driver when it comes to using the “EEPROM” on a SAM Cortex M0 device like the SAMD21 or SAMD20. You have to modify the linker to keep your program safe! What do I mean? Flash Organization The basic flash memory is like this (using 256kb flash as an example): |-------------- 0x00000 | | | | FLASH | | | | |-------------- ‭0x40000‬ However “EEPROM” uses flash space from the bottom up!

Read more

SAMC20/SAMC21 AC Comparator stuck syncing

So here I was, trying to get even the simple Analog Comparator (AC) example projects (i.e. “Quick Start for the SAM AC Driver”) in Studio on both a custom board and a SAM C21 Xplained Pro eval board. And for some reason it always got stuck syncing.



Read more

SAMC21 / SAME70 / SAMV71 CANBus Lessons Learned

After going through both the SAMC21 and the SAME70 family CANBus peripherals in some designs. Here are some lessons learned. The peripheral itself Atmel did not design the peripheral. They licensed Bosch’s “M-CAN” peripheral IP and put it into the chip. There is absolutely nothing wrong with this and what better than using the silicon design from the vendor that also creates the CANbus spec? They appeared to license it to gain CAN-FD capability.

Read more

Cortex-M7s in Atmel Studio 7.0.1417, debugging failure and TCM configuration/linker mismatch

There was a subtle bug introduced in Atmel Studio 7.0.1417 when attempting to debug a Cortex-M7 (SAME70,SAMS70,SAMV70). The programmer will alter the GPNVMBITs without user action and reason. This also reveals a problem with the default linker script that Atmel provides. What is the bug? The programmer changes the GPNVMBITs value to 0x82 everytime you go to debug. You can view the GPNVMBITs using the Device Programming window like this:

Read more

docker for windows using msi hack on windows server 2016

It turns out through whatever shengigans docker has going on with Microsoft theres some annoyance trying to run Linux containers on Windows Servers. The “docker for windows” package you download on docker.com rejects installation on Windows Server 2016 but allows installation on Windows 10. Even though Server 2016 supports Hyper-V and containers like Windows 10. Microsoft on the other hand provides a nuget package that one can install on Server 2016 to install Docker with only Windows container support and Docker offers that same packge on their website.

Read more