This is a small Development / braedboard board for Atmels's SAM D20 / D21 microcontroller. It was designed for the square inch project prize. But its also very useful beside that. Some features:
- ARM Cortex M0+ CPU
- running at 48 MHz
- USB device (Host also possible)
- Programmable via USB with a bootloader
- Arduino compatible (same chip as Arduino M0 pro and should be compatible to #JACK)
Beside the Microcontroler there is also on the board:
- mini USB connector and protection diodes
- Linear power regulator (1117-3.3) to create 3.3V from USB or Vin Pin
- reset switch
- power LED
- user LED connected to one IO
- connector for external Power supply (up to 12V possible)
With these features this is a powerful tool for embedded development. It can be easily plugged into a breadboard. So it can be used similar to the Arduino nano, but with much more processor power.
What is part of this project?
This project is only about the hardware. All software used and shown is just to demonstrate that the hardware works.
Design files can be found in the bitbucket repository (link on the left). There is also a link to the PCB at OSH-park for faster ordering. please let me know or post some photos if you rebuilt this.
How to test and use this Board
The easiest way to use this board is to burn a bootloader to the chip so that you can program it via USB. There is a free bootloader available by Atmel (see links below). To program the bootloader you need a SWD programmer. I used the Atmel ICE for that. There is an small bug on the board. For using SWD you need an reset wire, but the reset is not connect to any pin of the PCB. You need to solder an wire temporally either at the reset switch or at R1/R2.
When the bootloader is on the chip you can remove the reset wire. Now you can program this board via USB. To use the bootloader you must compile your programs with an specific start address (0x2000). If using Atmel Studio you must add :
-Wl,--section-start=.text=0x2000Take also a look at this on page 4 it is shown in detail. And in the bitbucket repository you can also find the working blink example project created with Atmel Studio 6.2.
When your project is compiled I used the program found here to program the microcontroller. There fore you must connect it to your USB and enter the bootloader mode. Entering the the bootloader mode is don by pulling PA15 low during reset. Your PC should recognize the miniSAM as USB Device.
There are some other similar project here on hackaday.io, which inspired this project:
- #Arduino Zero - SAM D20/D21 Breakout Board by @TomBates very similar project
- #JACK by @Michele Perla very similar project
- #Sam DEV similar project I started together with @Ethon
Helpful links when working on/with this
- Atmel - AT07175: SAM -BA Bootloader for SAM D21
- Atmel - AT04189: UART Based SAM -BA Bootloader for SAM D20
- Atmel ICE - Connecting to a SWD Target
- no reset pin (needed for SWD programming)
Workaround: attached wire direct on PCB to reset switch or R1/R2
- fix the issue with the ESD protection diodes. I think I will used NUF2221 next time not diodes, which look similar to me
- Add second switch for easy entering the bootloader ( PA15 <-> GND )