Home - Log in

Embedded systems

173-2 Embedded systems Physical engineering and embedded systems S6
Lessons : 16 h TD : 0 h TP : 34 h Project : 0 h Total : 50 h
Co-ordinator : Dimitri Boudier
Prerequisite
- Bases in C langage (procedural langage, etc)
- Bases in software development tools (IDE, UNIX shell, Makefile, etc)
- Bases in numerical systems (combinatorial et sequential analysis, boolean algebra, etc)
- Bases in analogical systems (active and passive components, electrical diagram reading, etc)
Course Objectives
- Understand the functionning and the architecture of a CPU (Central Processing Unit) base numerical processor, like MCU family (Micro Controller Unit).
- Develop a drivers library and an embedded application on MCU
- Create the documentation of the solution
Syllabus
During main Courses (with demonstrations) :
- Introduction of embedded domain
- Heterogeneity of processors architectures
- Introduction of MCU family
- PIC18 MCU architecture from Microchip
- PIC18 MCU assembler from Microchip
- Scheduling and development of an embedded baremetal (without Operating System) application
- Introduction of communication networks (wire and wireless)

During Practical Works (development of a firmware for a bluetooth speaker) :
- Development of a BSP (Board Support Package) from scratch at the register stage
- Development, test and validation of drivers functions (GPIO, Timer, UART, Bluetooth, etc)
- Development, test and validation of an embedded application with offline scheduler (bluetooth speaker)
- Documentation of solutions
Practical work (TD or TP)
Development of a firmware for a bluetooth speaker :
- BSP development for the Microchip Curiosity HPC board
- Application development with an offline scheduler

Hardware and software tools :
- ENSICAEN Bluetooth speaker prototypes
- MPLABX IDE and XC8 C toolchain from Microchip
- Curiosity HPC (MCU PIC18F27K40) board from Microchip
- Click Board Audio bluetooth and USBtoUART from Mikroelektronika
- ENSICAEN Daughter board with LCD display
Acquired skills
- Understand hardware architecture of a CPU base numerical processor
- Assembly program analysis
- Develop assembly routines
- Develop C drivers functions (peripherals) at the register stage
- Develop baremetal C embedded application
- Test et validate units functions, then integrate some embedded software solutions
- Read and analyse processor datasheet
- Write technical documentation and software documentation
Bibliography
C LANGAGE : The C Programming Language – Kernighan et Ritchie
PROCESSOR ARCHITECTURE : Structured Computer Organization - Tanenbaun
TOOLS : https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.pdf
TECHNOLOGIES : foundry websites, forums et datasheets (https://www.microchip.com/, https://www.st.com, etc)


© 2024 - ENSICAEN ( Legal Notices - Credits )