Getting Started with Writing Code for the Microchip ARM® Cortex® Microcontrollers

Getting Started with Writing Code for the Microchip ARM® Cortex® Microcontrollers

Learn how to get started writing code and operating peripherals on the Microchip SAM ARM Cortex M0+, M23 and M4 microcontrollers.

rate limit

Code not recognized.

About this course

The objective of this class is to enable you to quickly get started with embedded development using the SAM ARM® Cortex® M0+, M23 and M4 microcontrollers.  This class enables you to start from the ground-up with code development on these devices.  You will set up the clocking structure and access peripherals including the system interrupt controller, external pin interrupt controller, analog-to-digital converter, input/output pin control, timers and output waveform generators.  You will access all appropriate header files to access the microcontroller registers.  You will be able to setup the digital frequency locked loop (DFLL) clocking in both open- and closed-loop modes and use the Direct Memory Access Controller to perform data transfers between memory and peripherals.  You will also learn how to use the powerful Event System to perform complex functionality without any intervention from the CPU.  This lecture and instructor-led hands-on lab class focuses on using bare metal C code (no code configurator or library framework) to write firmware for these devices.  The ATSAME54 M4 microcontroller is used in this class, but the material also applies to the core and peripheral setup on most of the SAM ARM® Cortex® M0+, M23 and M4 microcontrollers.   You will use MPLAB® X to program and debug hardware on the SAME54 Xplained PRO board.  This is not an in-depth Cortex® hardware architecture class, but many architecture basics will be covered. Attendees registering for this class should have some experience using the C programming language to write firmware for embedded microcontrollers.  

Curriculum183 min

  • Introduction
  • Syllabus
  • Lab Manual And Lab Files
  • Class Agenda and Hardware Description 8 min
  • ARM Architecture and Microchip Families 4 min
  • Clock Structure
  • Clock Domains and Bus Types 12 min
  • Compiler Specifics
  • MPLAB® XC32 Compiler Header File Structure 7 min
  • Introduction Lab: Project and Header File Structure 10 min
  • Clock Synchronization
  • Synchronous and Asynchronous Clocks 10 min
  • Internal Oscillator Setup
  • Digital Frequency Locked Loop (DFLL) 3 min
  • GPIO and Peripherals
  • GPIO Port Control 11 min
  • Nested Vector Interrupt Controller (NVIC) 3 min
  • Timer Counters 5 min
  • Lab 1: Blink an LED 17 min
  • Real-Time Counter (RTC) 4 min
  • Lab 2: Real-Time Clock 7 min
  • Analog to Digital Converter (ADC) 2 min
  • Data Transfers and Peripheral Triggering
  • Direct Memory Access (DMA) 11 min
  • DMA Data Transfers 8 min
  • Lab 3: DMA 19 min
  • Event System 9 min
  • External Interface with Data Triggers and Transfers
  • External Interrupt Controller (EIC) 5 min
  • Lab 4: Event System 15 min
  • Lab 5: ADC with DMA Transfers 8 min
  • SAMD Cortex® M0+ Architecture and Clocking Differences 4 min
  • Additional Material
  • Helpful Links
  • Your Feedback
  • We need your Feedback!

About this course

The objective of this class is to enable you to quickly get started with embedded development using the SAM ARM® Cortex® M0+, M23 and M4 microcontrollers.  This class enables you to start from the ground-up with code development on these devices.  You will set up the clocking structure and access peripherals including the system interrupt controller, external pin interrupt controller, analog-to-digital converter, input/output pin control, timers and output waveform generators.  You will access all appropriate header files to access the microcontroller registers.  You will be able to setup the digital frequency locked loop (DFLL) clocking in both open- and closed-loop modes and use the Direct Memory Access Controller to perform data transfers between memory and peripherals.  You will also learn how to use the powerful Event System to perform complex functionality without any intervention from the CPU.  This lecture and instructor-led hands-on lab class focuses on using bare metal C code (no code configurator or library framework) to write firmware for these devices.  The ATSAME54 M4 microcontroller is used in this class, but the material also applies to the core and peripheral setup on most of the SAM ARM® Cortex® M0+, M23 and M4 microcontrollers.   You will use MPLAB® X to program and debug hardware on the SAME54 Xplained PRO board.  This is not an in-depth Cortex® hardware architecture class, but many architecture basics will be covered. Attendees registering for this class should have some experience using the C programming language to write firmware for embedded microcontrollers.  

Curriculum183 min

  • Introduction
  • Syllabus
  • Lab Manual And Lab Files
  • Class Agenda and Hardware Description 8 min
  • ARM Architecture and Microchip Families 4 min
  • Clock Structure
  • Clock Domains and Bus Types 12 min
  • Compiler Specifics
  • MPLAB® XC32 Compiler Header File Structure 7 min
  • Introduction Lab: Project and Header File Structure 10 min
  • Clock Synchronization
  • Synchronous and Asynchronous Clocks 10 min
  • Internal Oscillator Setup
  • Digital Frequency Locked Loop (DFLL) 3 min
  • GPIO and Peripherals
  • GPIO Port Control 11 min
  • Nested Vector Interrupt Controller (NVIC) 3 min
  • Timer Counters 5 min
  • Lab 1: Blink an LED 17 min
  • Real-Time Counter (RTC) 4 min
  • Lab 2: Real-Time Clock 7 min
  • Analog to Digital Converter (ADC) 2 min
  • Data Transfers and Peripheral Triggering
  • Direct Memory Access (DMA) 11 min
  • DMA Data Transfers 8 min
  • Lab 3: DMA 19 min
  • Event System 9 min
  • External Interface with Data Triggers and Transfers
  • External Interrupt Controller (EIC) 5 min
  • Lab 4: Event System 15 min
  • Lab 5: ADC with DMA Transfers 8 min
  • SAMD Cortex® M0+ Architecture and Clocking Differences 4 min
  • Additional Material
  • Helpful Links
  • Your Feedback
  • We need your Feedback!