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

QT5 LinuxFB rotation for LCDs patch

I wrote up this patch as I needed to get a landscape display on a LCD which was actually intended for portrait (and so its resolution and framebuffer had to be setup for portrait, it was just physically oriented as landscape). This is a common problem for people using ILI9341/ILI9340 controllers found on cheapo TFT LCDs. These LCDs come setup for a portrait mode on the RGB interface with no option to change it, they do have an SPI interface where you can alter the settings but the display data must always be sent over SPI.

Read more