The Atmel SAM D series of 32-bit microcontrollers includes several devices, each with a long list of features at great prices. Perhaps the best known of the series in the maker community is the SAM D21 due to its use on the Arduino Zero. However, there are several other devices in the product line that are worth taking a look at. The smallest of the bunch is the SAM D09 that comes in a 14-pin SOIC package. The 14SOIC package is one of my favorites. It is easy to solder, easy to break out on a PCB, and takes up little board space. I decided to order some SAM D09C chips and design a small development board in order to learn more about the capabilities of the device.
Atmel SAM D09C
The SAM D09C in the 14-pin SOIC package is capable of running at 48 MHz, includes 8K of FLASH and 4K of SRAM, and has 12 GPIO pins with numerous peripherals. Despite the significant upgrades compared to similarly-sized 8-bit AVR microcontrollers, it is actually cheaper! For example, when purchased in single quantities the SAM D09C costs $1.15 USD, versus an ATtiny841 which is $1.67 USD. (Prices from Digikey, 3/20/2016). The ATtiny841 is one of my favorite AVR devices, and quickly replaced the use of the venerable ATtiny84A in my projects when it came out. However, this SAM D09C has me considering yet another update for my projects that need a 14-pin microcontroller. Once you are familiar with programming ARM Cortex-M devices, upgrading to feature-packed 32-bit microcontrollers makes sense for numerous reasons.
Let’s take a look at the pinout and a table of features for the SAM D09.
Pinout for the Atmel SAM D09C (14SOIC).
Source: SAM D09 Datasheet
Features of the SAM D09 devices in SOIC and QFN packages.
Source: SAM D09 Datasheet
The development board that I designed for the SAM D09C makes it very easy to work with the device. The pins of the microcontroller are broken out to standard 0.1″ headers. I included a high-quality 32.768 kHz external crystal, which can be used with the on-board DFLL or DPLL to generate system clock frequencies up to 48 MHz. You can also use it with the Real-Time Counter (RTC) in the SAM D09 for accurate timekeeping. Additionally, I included a reset button, power LED, and a user LED connected to pin A25. The chip is programmed via a 10-pin Cortex Debug header.
Connect an Atmel ICE to the Cortex Debug header for programming and debugging.
For powering the board, I added a spot for a CR2032 coin cell battery holder on the bottom. This is a nice solution for testing low-power configurations and/or using the board without power supply wires attached. The supply voltage range of the SAM D09 is 2.4V to 3.6V, and this matches nicely with the output voltage of a CR2032 over its discharge cycle. You can also power the development board with an external power supply by connecting to the VDD and Ground pins on the headers. Make sure to remove the CR2032 battery before connecting an external power supply!
CR2032 battery holder on the bottom of the development board.
Programing the device is quite easy in Atmel Studio. The Atmel ICE integrates nicely with the IDE, and the Atmel Software Framework (ASF) helps you to develop programs rapidly. Programming 32-bit microcontrollers is much more complex than programming 8-bit devices, and a good set of libraries is important when you are getting started. The development board does need to be powered externally for programming. I found that throwing in a coin cell battery to power the SAM D09 and upload my program was quite handy.
Atmel ICE programmer/debugger connected to the development board.
Assemble Your Own
Here is the information you need if you’d like to make your own development boards for the Atmel SAM D09C.
Atmel SAM D09C Development Board: Order PCBs on OSHPark!
- Microcontroller: Atmel SAM D09C 14SOIC
- Crystal: Citizen CM200C32768
- Reset Button: C&K PTS525SM15SMTR2 LFS
- C1: 10uF 1206 Tantalum SMD capacitor, 10V rated minimum
- C2, C3: 100nF 0603 Ceramic SMD capacitor
- C4, C5: 22pF 0603 Ceramic SMD capacitors
- LEDs: 0805, colors of your choice
- R1: 10k ohm 0603
- R2, R3, R4: 560 ohm 0603 (adjust values of R3 and R4 to change brightness of LEDs)
- Battery Holder: MPD BK-912 CR2032 Holder
- Debug Header: Amphenol FCI 20021111-00010T4LF
- Headers: 2x 7 pin standard 0.1″ headers (your choice of male or female)
- Screws and Standoffs: Sized for M3 screws, standoff length is your choice.
Notes: If you want to do away with the power LED for low-power testing, you can also omit R3. The value of R2 is not critical, use whatever value you pick for the LEDs. There are various stability and load capacitance options for the CM200C 32kHz crystal. I picked the +/- 5ppm version with 12.5pF load capacitance.
Assembly Note: Before soldering on the CR2032 holder, tin the square ground pad in the middle of the footprint. It should have a little mound of solder on it to ensure good contact with the battery.
For More Details: Atmel SAM D09 Development board