pico-tracker/_posts/0001-01-01-armcortex.markdown

1.8 KiB

title tagline linkname x y
ARM Cortex M0+ Atmel SAM D20 E armcortex 49% 47%

The board is centred around the Atmel SAM D20 microcontroller. We use the smallest E variant in a QFN-32 package (-M)

The firmware is written in C and can be built using GNU Tools for ARM Embedded Processors See README-samd20-gcc-blackmagic.md for more details.

From the datasheet we can see there's a few RAM/ROM size options:

Variant Flash (KBytes) SRAM KBytes
-14 16 KBytes 2 KBytes
-15 32 KBytes 4 KBytes
-16 64 KBytes 8 KBytes
-17 128 KBytes 16 KBytes
-18 256 KBytes 32 KBytes

We've been using the -17 variant so far, but may upgrade to the -18 variant if we need more Flash for geofencing or SRAM for backlog.

The SAM D series implements Generic Clocks (GCLKs) which allow us to divide, route and disable clock signals internally as required. These are used particularly for APRS.

Thanks to an error in Revision C silicon we can't configure the correct pin layout for the SERCOM used to talk to the radio. Currently it's just being bit-banged as both Mouser and Farnell appear to have bought large quantities of Revision C silicon. TODO: Fix in future board revision??