Skip to content

Week 6 Group Project - Richard & Alana

Group Assignment

For this week, our assignment as a group was to:

  • Browse through the datasheet for your microcontroller
  • Compare the performance and development workflows for other architectures
  • Document your work to the group work page and reflect on your individual page what you learned

Work Distribution

People Description
Richard Documentation
Richard Datasheet Browsing
Richard Performance Comparison
Richard Development Comparison
Alana Board Soldering/Creation

Specifications

For the majority of this week, I worked with the SAMD11C microcontroller. As such, I chose to catalog the specifications of that chip. The following specifications for the SAMD11C microcontroller were obtained from the SAMD11 family datasheet and the Atmel SMART SAM D11C summary.

Type Specification
Processor ARM Cortex-M0+ CPU running at up to 48MHz
Memory 16KB in-system self-programmable Flash, 4KB SRAM
Clock Up to 48MHz, supports internal and external oscillators
Sleep Modes Idle and standby
Peripherals 6-channel DMA, 6-channel Event System, two 16-bit Timer/Counters, one 24-bit Timer/Counter for Control
I/O Up to 22 programmable I/O pins
Communication One full-speed USB 2.0 interface, up to three configurable Serial Communication Interfaces (SERCOM)
Analog Features 12-bit 350ksps ADC with up to 10 channels, 10-bit 350ksps DAC, two Analog Comparators
Capacitive Touch and Proximity Sensing Peripheral Touch Controller supporting up to 72 channels
Operating Voltage 1.62V – 3.63V
Package 14-pin SOIC
Max CPU Frequency 48MHz
Oscillators Multiple options including internal and external, up to 96MHz FDPLL96M
Event System Channels 6
Debug Interface Two-pin Serial Wire Debug (SWD)
Watchdog Timer (WDT) Yes
RTC 32-bit Real-Time Counter with clock/calendar function

Performance Comparison

I compared the two microcontrollers that I worked with this week: the SAMD11C (which was the main controller I worked with) and the ATTINY412.

The SAM D11C and ATTINY412 microcontrollers cater to different applications. The SAM D11C can operate up to 48 MHz and is designed for more demanding tasks. It also has a substantial memory capacity of 16 KB of Flash and 4 KB of SRAM. The SAMD11C has advanced serial communication options including a USB 2.0 interface, and a 12-bit ADC and 10-bit DAC for improved analog input and output handling. Additionally, its low power consumption modes, Idle and Standby, enhance its efficiency, while its 22 programmable I/O pins provide greater flexibility for interfacing with external devices.

The ATTINY412 is an 8-bit AVR CPU microcontroller that operates at a maximum of 20 MHz. It offers a lower memory capacity compared to the SAM D11C, with options for 2/4 KB Flash, 64/128 B EEPROM, and 128/256 B SRAM. The ATTINY412 is better suited for low-power applications. It has 6 programmable I/O lines and supports a broader range of operating voltages (1.8V – 5.5V), which makes it versatile for various power environments.

Overall, the SAM D11C is a more powerful option, having higher CPU speeds, more memory, and a range of advanced peripherals, including USB connectivity. Its enhanced analog capabilities and more I/O pins also offer broader application possibilities. The less powerful ATTINY412 chip is better for low-power applications due to its very efficient power management system.

Development Comparison

During my work with both chips, I flashed the initial bootloader firmware onto the SAMD11C using EDBG, while JTAG was used for the ATTiny.

JTAG is a general standardized interface that allows direct writing to the memory of the microcontroller to enable the flashing of bootloader firmware. JTAG is also relatively fast and pretty reliable. JTAG usually needs a specific connector with a specific pinout configuration. Additionally, JTAG requires dedicated external debugger hardware. However, JTAG is standardized and can be used on most chips.

Alternatively, EDBG is built into the SAMD11C and doesn’t require any external hardware. In my personal opinion, EDBG was also a lot easier to use, only requiring the user to download an executable file and run it through a terminal. Unfortunately, EDBG is only compatible for a limited range of boards in the Microchip/Atmel family, but it works really well for those chips.

In terms of programming, both chips can be programmed using Arduino and both support C-based programming. Both chips also require external libraries. The SAMD11C has more memory than the ATTINY and as such can support more high-level programs.


Last update: March 23, 2024