Handson Embedded Systems with Atmel SAM4s ARM Processor

Understand the processor core and the ADC peripheral with hands-on projects using the Atmel SAM4s microcontrollers
Handson Embedded Systems with Atmel SAM4s ARM Processor
File Size :
1.35 GB
Total length :
2h 9m



Akshay Gill


Last update




Handson Embedded Systems with Atmel SAM4s ARM Processor

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

Handson Embedded Systems with Atmel SAM4s ARM Processor


Basic understanding of embedded systems, C programming
We will be using SAM4s Xplained Pro development board, it is helpful but not necessary for students to purchase it


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.


Section 1: Important points before we get started

Lecture 1 Before we get started!

Lecture 2 Course Introduction

Section 2: Getting Past Arduino

Lecture 3 Limitations of Arduino and how to surpass the learning barrier

Lecture 4 Arduino to Atmel SAM4s

Lecture 5 SAM4s Hardware

Lecture 6 Cortex-M Instruction Set

Section 3: IDE and hardware setup

Lecture 7 Atmel Studio Installation

Lecture 8 Setting up the SAM4s board in Atmel Studio

Lecture 9 Reference documents

Section 4: Learning the processor fundamentals

Lecture 10 Programmers Model

Lecture 11 Programmers Model – General Registers

Lecture 12 Programmers Model – Special Registers

Lecture 13 Exception Model

Lecture 14 High level system overview and transitioning into peripherals

Section 5: Analog to Digital Converter (ADC) Peripheral

Lecture 15 Section Introduction

Lecture 16 ADC Theory

Lecture 17 Sample and Hold Circuit Simulation

Section 6: Project 1 – ADC using Atmel Studio Framework

Lecture 18 Introduction to the first project

Lecture 19 Atmel Studio Framework (ASF) Setup

Lecture 20 Writing the ADC setup function

Lecture 21 Writing the ADC setup function – part 2

Lecture 22 Writing the ADC setup function – part 3

Lecture 23 Writing the Interrupt Handler and Running the Code

Section 7: Project 2 – ADC using direct register access

Lecture 24 Programming the ADC Control Register

Lecture 25 Programming the ADC Mode Register

Lecture 26 Programming the ADC Channel Enable and Interrupt Enable Registers

Lecture 27 Compiling and running the code!

Section 8: Project 3 – Temperature Sensing using ADCs

Lecture 28 Project Introduction

Lecture 29 Configuring the ADC to read the on-board temperature sensor

Lecture 30 Measuring room temperature

Lecture 31 Heat up the board and test the temperature sensor!

Section 9: Challenge – Temperature Sensing Using Register Access

Lecture 32 Your objective

Lecture 33 Solution and source code

Section 10: Closing Notes

Lecture 34 Congratulations and thank you!

Beginners to embedded programming, with basic understanding of code,Intermediate embedded programmers,Students wanting to explore embedded programming,ARM Cortex enthusiasts,Atmel enthusiasts

Course Information:

Udemy | English | 2h 9m | 1.35 GB
Created by: Akshay Gill

You Can See More Courses in the IT & Software >> Greetings from CourseDown.com

New Courses

Scroll to Top