Microchip Certified Training - PIC24/dsPIC In Depth Assembly Language Programming Workshop — A 5 day course
This hands-on course aims to provide engineers with an understanding of the PIC24/dsPIC family of microcontroller and experience of using Microchip development tools to create and debug substantial assembly language programs.
The emphasis is on providing a solid foundation of knowledge of the architecture and features of this range of microcontrollers, together with practical experience of the development tools, code structuring and code optimisation techniques.
The course includes many practical workshop exercises which are interleaved with the relevant presentation material for maximum impact and variety. These exercises are carried out using MPLAB software running on a Windows PC, an ICD programmer/debugger and a target development board containing a PIC16C / PIC16F microcontroller on which programs created during the exercises can be observed to be running in real-time.
- Understand the architecture and features of the PIC24 and dsPIC family of microcontrollers
- Gain hands-on experience of Microchip development tools for creating and debugging substantial assembly language programs on a target PIC microcontroller
- Be introduced to the use of on-chip peripherals to simplify interfaces to the outside world
After completing this course, deelgates will be able to:
- Program object code into target PIC24 / dsPIC microcontrollers using MPLAB and MPLAB ICD2
- Create, build and debug new assembly language projects using MPLAB and MPLAB ICD2
- Understand the components of an assembly source file as well as the use of the MPLAB Macro processor.
- Set the PIC24 / dsPIC configuration options appropriately for the target system.
- Understand the tradeoffs between using PIC24 and dsPIC processors in real world projects
- Understand those features of the dsPIC architecture aimed specifically at Digital Signal Processing (DSP) applications.
- Use digital I/O ports to interact with the outside world
- Manipulate data memory using direct and indirect addressing
- Create time delays using software loops and hardware timers
- Take advantage of interrupts to handle events in the background
- Understand and know how to use the PIC24 / dsPIC interrupt architecture effectively.
- Understand how to sample process continuous data signals
Overview of Microchip, and the place of the PIC24 and dsPIC microcontrollers in the Microchip product fammily
Overview of Development Tools for the PIC24 and dsPIC microcontrollers
Microchip development software: MPLAB, MPSIM and associated tools
Microchip In-Circuit Debugger (MPLAB ICD2) and In-Circuit Emulator (ICE) hardware
Device programmers, and the design option of In-Circuit Serial Programming (ICSPTM)
DSP Filter design tools.
Overview of the dsPIC and the PIC24 architectures
- Organisation of program and data memory
- Interrupt and Alternate Interrupt Vector Tables
- Direct Memory Access (DMA)
- file register / memory direct
- register direct
- register indirect
- with pre-increment / pre-decrement
- with post-increment / post-decrement
- with register offset
- with literal offset
- immediate operand
Program space mapping into data space
Pogram space data access using table instructions
DSP oriented instructions ( on dsPIC processors )
- overview of the DSP Engine and the DSP ALU
- Multiply and accumulate
- Modulo addressing
- Bit reversed addressing
- X and Y data spaces
- prioritisation scheme
- interrupt nesting
- interrupt timing and configuration
- disabling and enabling interrupts
SLEEP and IDLE instructions
Stack support on dsPIC and PIC24 microcontrollers
Stack usage in function calls and in interrupts
Overview of bootloader implementation
Overview of Signal acquisition and processing
Multi-tasking on dsPIC and PIC24 processors
- polling, interrupt driven, hybrid
Overview of scheduler implementation in assembler
Designing re-usable modules
Implementing interrupt handlers and device drivers in assembler
Implementing Assembler functions so that they can be called from C modules
Creating and using libraries based on assembler code modules
This is an advanced and fast paced course aimed at engineers with assembly language programming experience gained programming e.g. PIC16 / PIC18 microcontrollers.
Attendees, typically, will be engineers and programmers requiring a detailed understanding of the PIC24 / dsPIC architecture because they will be involved in proejects such as firmware implementation, low level digital signal processing and digital control system development, and also in code optimisation.