Sunday, March 20, 2016

Atmel SAM D09 Development Board

In this post I will document a development board that I designed for the Atmel SAM D09 microcontroller.

A fun little development board for the Atmel SAM D09.

Introduction


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).


Features of the SAM D09 devices in SOIC and QFN packages.


Development Board


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!

Parts List:
  • Microcontroller: Atmel SAM D09C 14SOIC
  • CrystalCitizen CM200C32768
  • Reset ButtonC&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.


Atmel SAM D09C development board schematic.

Atmel SAM D09C development board layout.

Here's a straight-on shot of the board to help with assembly.

Wrap Up


Let me know if you order PCBs and make your own development boards! This is a fun little board, and I'm looking forward to doing some projects based around this very capable microcontroller.

Please post any questions and comments below.

Thanks for reading!

- Dan W.

13 comments:

  1. Great looking board, Dan. I marvel at all the projects you find time to do. I enjoy reading your posts. 73, Randy, N4TVC

    ReplyDelete
  2. Neat job Dan, I have also been looking at the Cortex M0+ parts in small packages as Arduino "replacements". There's now several manufacturers offering these small ARM devices up to 48MHz. And you can't beat the prices compared to the older 8-bit parts.

    ReplyDelete
    Replies
    1. Also check out ST devices. The STM32 line-up is pretty much my favorite in the 32-bit world. The Discovery boards they sell for ~$10 pack 10x what an Arduino offers and have a great programmer built in.


      Dan

      Delete
  3. That's a very nice looking board. Thanks for sharing it!

    I had totally missed that there were SAM Ds in SOIC, this is very cool! I've been playing with the STM32F042, in TSSOP-20, but this appeals to me even more. It looks like the SAM D11 has USB support, I think I'm going to have to try it out.

    ReplyDelete
    Replies
    1. I didn't know about this SOIC chip either until a couple of weeks ago. I'm really liking it. I have played with the SAM D11 and actually made a breakout for that too. It's a fine chip.

      Dan

      Delete
  4. Dan
    A few months back you were testing a GPS receiver that was not a timing type as a possible replacement for the older 8 channel one in the Lucent GPSDO. If you remember you and we're getting our Ref 0 boards up and running about the same time. Since then I got deep into a project using. STM32F407 and only just wrapped it up. My Lucent box is doing well but I wondered what you found.
    Thanks
    Fred WA7AII

    ReplyDelete
  5. Hi, Dan. I recently made a samd09 dev board as well. It's on hackaday.IO MiniSam. I'm trying to create a usart boot loader for the device and have it partially ready. Curious if you have any information on this or would be willing to look at the code?

    Awsome blog btw

    ReplyDelete
    Replies
    1. Great looking board! Looks like you have had success with your bootloader, awesome stuff. It will be a great resource for people working with this chip. I look forward to trying it out.

      Thanks,

      Dan

      Delete
  6. Thank you very much. Hopefully it will at least form the basis for a more advanced bootloader in the future. I may try to go the Arduino ide compatible route.. not sure, I like atmel studio 7 but not everyone else does :) plus I think that would make it more accessible.

    Do let me know what you think if and when you test drive the bootloader.

    Jeremy.

    ReplyDelete
  7. Thank you very much. Hopefully at least it will provide a basis for a more advanced bootloader in the future.

    I may try to make the board arduino IDE compatible sometime to make it more accessible to others. I'll stick with atmel studio 7 for now.

    Do let me know what you think if and when you test drive the bootloader.

    ReplyDelete
  8. this is great stuff man!!! i had no idea atmel made this chip, i have a bunch of tqfp32 but this is even easier to work with!!! I will surely reproduce your board!!

    ReplyDelete
  9. Just assembled my first board! Can't wait to test it!

    ReplyDelete