Hands-on Embedded Systems with Atmel SAM4s ARM Processor

Understand the processor core and the ADC peripheral with hands-on projects using the Atmel SAM4s microcontrollers

This course received a major update in Feb 2018 based on the feedback provided.

What you’ll learn

  • Understand the processor and exception model for ARM Cortex processors.
  • Use ASF (Atmel Studio Framework) to write embedded code for ARM Cortex microcontrollers.
  • Handle ADC triggers and interrupts.
  • How to read digital codes and find their corresponding analog value.
  • How to read chip temperature using ADCs.
  • Understand the core concepts of analog to digital converters.
  • Directly write to registers to program ARM Cortex peripherals.
  • Understanding embedded systems.
  • Program ADCs on ARM Cortex.
  • Understand and configure various timing requirements of an ADC.

Course Content

  • Important points before we get started –> 2 lectures • 3min.
  • Getting Past Arduino –> 4 lectures • 14min.
  • IDE and hardware setup –> 3 lectures • 6min.
  • Learning the processor fundamentals –> 5 lectures • 38min.
  • Analog to Digital Converter (ADC) Peripheral –> 3 lectures • 7min.
  • Project 1 – ADC using Atmel Studio Framework –> 6 lectures • 28min.
  • Project 2 – ADC using direct register access –> 4 lectures • 21min.
  • Project 3 – Temperature Sensing using ADCs –> 4 lectures • 12min.
  • Challenge – Temperature Sensing Using Register Access –> 2 lectures • 1min.
  • Closing Notes –> 1 lecture • 1min.

Auto Draft


This course received a major update in Feb 2018 based on the feedback provided.

Welcome to this course on Hands-on Embedded Systems with Atmel SAM4s ARM Processor. At the end of this course you will be comfortable with the ARM processor core, processor model, exception model, reset sequence, general and special registers, and also a master in the ADC peripheral. This course has been made from the ground-up to help you transition from the world of Arduino into the world of 32 bit Atmel SAM4s ARM microcontrollers.


Who am I?

I’m Akshay, and I’ll be your instructor for this course. I have been fascinated with micro controllers since I was a child, and now I consider it lucky to have it as my profession. I currently write firmware for safety critical systems that go inside electric cars. With my knowledge of embedded systems over the past 10+ years, and working in Silicon Valley, I have gained a unique insight into what the industry needs and what the students are lacking.


Course Structure

This course has 8 sections.

Section 1 will help you understand the differences between Arduino and 32 bit ARM Cortex. You will also understand the Cortex-M instruction set.

Section 2 is dedicated to the setup of the development environment and hardware. This section also contains reference documents that you will be using for the rest of the course.

Section 3 is about the processor fundamentals. At the end of this section you will be comfortable with the inner workings of the processor, the general and special registers that do all the magic inside the processor. You will learn how to interpret the assembly instructions and how they work inside the processor.

Section 4 is about the peripherals. You will learn the theory behind the ADC (Analog to Digital Converter) peripheral.

Section 5 is the first project of this course where you will sample an analog voltage using ASF libraries in Atmel studio and understand how the peripheral and processor work together to convert this into a digital code.

Section 6 is the second project in this course where you will understand how an analog voltage is sampled and implement it by directly writing to the registers. (No library use here)

Section 7 is the third project in this course where you will understand how to sample real time temperature and how the processor interprets the value in degrees C of F. You will implement it using ASF code.

Section 8 is a homework project in which you will implement temperature sensing using direct register access. Solutions are provided for reference.


This course content was generated from scratch in a way to get the point across to you, in the most efficient, exciting and engaging way!

Is this course for me?

If you are an embedded systems enthusiast, professional or student who is struggling to start programming on the ARM Cortex-M platform, this course if for you. If you have worked with Arduino before, and have basic working knowledge of embedded systems, this course is for you. If you have already been working with ARM Cortex microcontrollers and want to gain a deeper understanding of the processor’s fundamentals as well as the ADC peripheral, then this course is for you!


Can I use another development board?

I use the Atmel SAM4s Xplained Pro development board in this course which houses a ARM Cortex-M4 processor. You may choose any other microcontroller of your choice that works with Atmel Studio. If you need help selecting a board, let me know and I can help you out.


My personal guarantee

I am proud to say that I stand behind this course 100%, and guarantee you that you will get valuable information from this course. There is also a 30 day money back guarantee from Udemy.

With this, you can feel confident about your purchase and know that it is a valuable find.


Get Tutorial