Embedded System Design using ARM Cortex

Teacher

Swarna Prabha Jena

Category

Core Courses

Course Attendees

Still no participant

Course Reviews

Still no reviews

Course Name : Embedded System Design using ARM Cortex

Code(Credit) : CUTM1039 (3-2-1)

Course Objectives

  • To allow students in Embedded System sectors to learn programming / Interfacing peripherals to ARM Cortex based Microcontroller

Course Outcomes

COs Course outcomes Mapping COs with POs (High-3, Medium-2, Low-1)
CO1 Gain Knowledge about the architectural features and instructions of 32 bit ARM Cortex M3 microcontroller. PO1(3)
CO2 Understand the basic hardware components and their selection method based on the characteristics and attributes of an Embedded System. PO2(3)
CO3 Understand various Sensors, Actuators & Interfacing Modules. PO3(2), PO5 (2)

Course Syllabus

Module I: EMBEDDED C (4 Hrs)
Embedded System, Programming Embedded system, Factor for selecting the Programing language, Embedded C programming Language, Embedded C vs C.

Practice:

  1. Familiarization with tools (Arduino IDE, Keil uVision IDE, Flash Magic & Proteus Simulator).
  2. Programming for different microcontrollers using Keil uVision & Arduino IDE

 

Module II: ARM-32 bit MICROCONTROLLER (6 Hrs)

ARM Design Philosophy & RISC Architecture, Programmer's Model. ARM Cortex M, Cortex M Architecture, ARM Cortex-M Internals & Debugging.

Practice:

  1. Familiarization with Different Processors and Controllers Boards (8, 16, 32, 64 bits)

Module III: GPIO MANAGEMENT (14 Hrs)

GPIO Configuration, Driving De-initialization, Interfacing IO devices and its type – LEDs, Switches, Buzzer, Seven Segment Display, LCD (4 bit, 8 bit Mode), Keypad (4*4), DC Motor, Stepper Motor, Servo motor, Relay.

Practice:

  1. Write an Embedded C program to interface LEDs.
  2. Write an Embedded C program to interface Switch.
  3. Write an Embedded C Program to design up counter & down counter using Seven Segment Display. (1 digit, 2 digit)
  4. Write an Embedded C program to interface buzzer to control with the help of Switch.
  5. Write an Embedded C program to display characters on Alphanumeric LCD.
  6. Write an Embedded C program to interface Keypad and LCD.
  7. Write an Embedded C program to interface DC Motors, Stepper Motor, and Servo Motor rotate clockwise, anticlockwise and in angle (45o, 90o, 180o).
  8. Write an Embedded C program to interface relay to control the AC Appliances.

Module IV: INTERRUPT MANAGEMENT & UART (14 Hrs)

NVIC Controller, Enabling Interrupt, Interrupt Priority Levels, UART Initialization, UART communication in polling Mode & in Interrupt Mode. Wireless Technologies- Bluetooth, Wi-Fi, RF.

Practice:

  1. Write an embedded C program to generate an Interrupt process.
  2. Write an Embedded C program to interface Bluetooth Module to send & receive Data.
  3. Write an Embedded C program to interface GPS module to get a Location Coordinate.
  4. Write an Embedded C program to interface GSM module to Send & Receive SMS.
  5. Write an Embedded C program RF module to send and receive the data wirelessly.
  6. Write an Embedded C program to design a system to read the RFID cards.
  7. Write an Embedded C program to connect ESP32/ESP8266 to create a Webserver.

Module V: TIMERS , ADC, & DAC (10 Hrs)

Timers Basics, General Purpose Timer, SysTick Timer, ADC & DAC Basics, Initialization, DAC Peripherals & Modules. Analog Sensors and its Types(Ultrasonic Sensor, Temperature, Humidity, Soil Moisture Sensor, PIR sensor)

Practice:

  1. Write an Embedded C Programs to generate Delay using Timer.
  2. Write an Embedded C program to display output for given analog input using internal ADC. (Use of Analog Sensors like Ultrasonic Sensor, Temperature, Humidity, Soil Moisture Sensor, PIR sensor)
  3. Write an embedded C program to generate Triangular and Square waves using DAC.

Module VI: I2C & SPI (10 Hrs)

I2C specification, Protocol configuration, I2C Peripherals. SPI Specification, Protocol configuration, it's Peripheral and Modules.

Practice:

  1. Write an Embedded C program to build I2C communication between two microcontrollers.
  2. Write an Embedded C program to build SPI communication between two microocntrollers.

Module VII: PWM & CAN (8 Hrs)

RTC feature and its Module, CAN Protocols Overview, Application, Architecture, Data Transmission & Data Frames.

Practice:

  1. Write an Embedded C program to implement a Real-Time Clock.
  2. Write an Embedded C program to Speed Control of DC motor.
  3. Write an Embedded C program to change the intensity of Light.

Text Books:

  1. Shibu K V, ―Introduction to Embedded Systems‖, Tata McGraw Hill Education Private Limited, 2nd Edition
  2. Noviello, Carmine. "Mastering STM32."  Obtenido de http://www2. keil. com/mdk5/uvision,2017.
  3. Norris, Donald. Programming with STM32: Getting Started with the Nucleo Board and C/C++. McGraw Hill Professional, 2018.

Reference Books:

  1. STM32F10xx User Manual
  2. https://www.udemy.com/course/stm32cubemx-complete-training/learn/lecture/9606338#overview

Session Plan

Session 1

Introduction to Embedded System, Building Blocks, its characteristics,  Application, Difference between Microprocessor & Microcontroller

Embedded_System

https://www.youtube.com/watch?v=tj3GmD2cXHw

Session 2

Embedded C Programing and how to program embedded System, how to select correct programming Language, how it is different from C Programming Language

Embedded C 1

https://www.youtube.com/watch?v=TfdNd2I8Dx4

Session 6

Session 7

ARM Design Philosophy & RISC Architecture: The RISC Design Philosophy, The RISC Design Philosophy, Embedded Systems with ARM Processors, memory, peripherals, Von Neumann and Harvard architecture,  Cache and Tightly Couple Memory, Memory Management extensions, Coprocessor extensions

ARM_Overview

https://www.youtube.com/watch?v=gPBsoOefyUk&list=PLc2rvfiptPSRVUXgbhJl6KUjd61JP9m6N

Session 8

ARM Programmer's Model: Data Types, Processor Modes, ARM7TDMI Registers, ARM7TDMI Vector Table, ARM Cortex-M Registers, ARM Cortex-M Vector Table, ARM Data Flow Model, The Pipeline, ARM Processor Family, ARM Cortex-A and Cortex-R, ARM Cortex-M

ARM Overview

https://www.youtube.com/watch?v=pgQgNe3q1-w

Session 9

ARM 7 vs ARM Cortex M Introduction, Architecture, Register Organization, AMBA Architecture and Its Type.

ARM Cortex

https://www.youtube.com/watch?v=sElx2zyZEvY

https://www.youtube.com/watch?v=XqZJ-hz2xjo

Session 10

ARM Cortex-M Internals & Debugging: Counting, First look at the Debug View, The Memory Views, Changes in the View, Counting version 2, How conditions behave, How conditions behave (continued), The Cortex-M Memory Map, The Cortex-M Memory Map (continued), Big Endian vs. Little Endian, Global Variables and RAM Storage, The ARM Cortex-M Internals and Debugging.

ARM Cortex MX

https://www.youtube.com/watch?v=Mm-zBVhEnFc

Session 11

Familiarization of 8-bit & 16 bit Microprocessors & Microcontroller

https://www.youtube.com/watch?v=_SkpnG571z8

11

Session 12

Familiarization of 32 bits and 64 Bits Microcontrollers & Microprocessors

https://www.youtube.com/watch?v=_SkpnG571z8

12

Session 14

Overview of Output devices interfacing with STM32

https://www.youtube.com/watch?v=Q7aAir7riiI

14

Session 16

Programming and Interfacing Switch (Digital sensor) with STM32 and controlling LEDs with the help of Switch, Pushbutton, Toggle button

https://www.youtube.com/watch?v=ZUJ5FrTLfZU

https://www.youtube.com/watch?v=IzZ28wMrFNQ&list=PLdpzYidbBvtf5Gze6T_jg1LDMFPoGOCiA&index=7

16

Session 17

Programming and Interfacing seven segment Display  with STM32 and

Test Case 1: Design up-counter and

Test case 2: Down-Counter and

Test case3: Control the SSDs with 2 switches

https://www.youtube.com/watch?v=8Qq_64qwzAI

17

Session 18

Programming and Interfacing buzzer with STM32 and creating a buzzing sound when the counter reached a final limit.

https://www.youtube.com/watch?v=6OlVD7Vm44c&list=PLdpzYidbBvtf5Gze6T_jg1LDMFPoGOCiA&index=8

18

Session 19

Programming and Interfacing LCD with STM32 and

Test Case 1: Display the characters on 16*2 LCD, 20*4 LCD,

Test Case 2: Scroll the characters on 16*2 LCD, 20*4 LCD,

Test Case 3: Display the characters on 16*2 LCD, 20*4 LCD when the switch is

pressed,

https://www.youtube.com/watch?v=4Rgag8a7AAs&list=PLdpzYidbBvtf5Gze6T_jg1LDMFPoGOCiA&index=9

19

Session 20

Programming and Interfacing 4 * 4 Keypad with STM32

Test Case 1: Display a character on LCD when a Key from a Keypad is Pressed

Test Case 2: Clear a character on LCD when a Key from a Keypad is Pressed

Test Case 3: Go to the Next Row on LCD when a Key from a Keypad is Pressed

Test Case 4: Set a Password using Keypad

https://www.youtube.com/watch?v=vcxz2Dhx5WY

19

Session 21

Interfacing and Programming DC Motor with STM32

Test Case 1: Rotate DC motor in Anticlockwise Direction

Test Case 2: Rotate DC motor in Clockwise Direction

Test Case 3: Rotate DC motor in both the direction with a Delay

Test Case 4: Rotate only when a switch is pressed

Test case 5: stops the motor when the switch is pressed

https://www.youtube.com/watch?v=GMYHOS1wvlI

21

Session 22

Interfacing and Programming Stepper Motor with STM32

Test Case 1: Rotate Stepper motor in Anticlockwise Direction

Test Case 2: Rotate Stepper motor in Clockwise Direction

Test Case 3: Rotate Stepper motor in both the direction with a Delay

Test Case 4: Rotate Stepper motor in Steps

Test Case 5: Rotate only when a switch is pressed

Test case 6: stops the motor when the switch is pressed

https://www.youtube.com/watch?v=qxSgknfQcLs&feature=youtu.be

22

Session 23

Interfacing and Programming Servo Motor with STM32

Test Case 1: Rotate Servo Motor in Anticlockwise Direction

Test Case 2: Rotate Servo Motor in Clockwise Direction

Test Case 3: Rotate Servo Motor in both the direction with a Delay

Test Case 4: Rotate Servo motor in angle 45o, 90o, 180o   

Test Case 5: Rotate only when a switch is pressed

Test case 6: stops the motor when the switch is pressed

https://www.youtube.com/watch?v=H72JgwbAlUA&feature=youtu.be

23

Session 24

Programming and Interfacing STM32 with the relay to turn on the AC appliances

Test Case 1: Control 2 FAN with Two Channel Relay

Test Case 2:Control 4 FAN with Four Channel Relay

Test Case 3: Control 4 FAN  and 4 Light with 8 Channel Relay

https://www.youtube.com/watch?v=hmdaHhhmUHM

24

Session 26

Write an embedded C program to generate an Interrupt process using STM32.

https://www.youtube.com/watch?v=ehV5z-7XDLQ&feature=youtu.be

26

Session 27

Serial Communication Parallel Communication, UART Initialization, UART communication in polling Mode & in Interrupt Mode

UART

https://www.youtube.com/watch?v=YpNvT_fqtmU&list=PLPN-43XehstMhFEXiOgJwv2Ec3vOTWpSH&index=74

Session 28

Wireless Technologies- Bluetooth, Working of Bluetooth, Architecture, Frame Format, state, Transition & connection Modes,  Different Modules available in Market,

https://www.youtube.com/watch?v=gp_X_DwoyC4&list=PLPN-43XehstMhFEXiOgJwv2Ec3vOTWpSH

https://www.youtube.com/watch?v=jzxZUJmOu3o

28

Session 29

Write an Embedded C program to interface STM32 to Bluetooth Module to send & receive Data.

Test case 1: Display the received data on the serial Monitor

Test case 2: Display the received data on the LCD

https://www.youtube.com/watch?v=iDpiH7YQxS0&feature=youtu.be

28

Session 30

Write an Embedded C program to interface STM32 to GPS module to get a Location Coordinate.

Test case 1: Display the received data on the serial Monitor

Test case 2: Display the received data on the LCD

https://www.youtube.com/watch?v=rjgWf7YKpwA

30

Session 31

Write an Embedded C program to interface STM32 to GSM module to Send & Receive SMS.

Test case 1: Display the received data on the serial Monitor

Test case 2: Display the received data on the LCD

https://www.youtube.com/watch?v=JBd7sLS2hxM&feature=youtu.be

31

Session 32

Write and Embedded C program to design a system to read the RFID cards using STM32

Test case 1: Display the received data on the serial Monitor

Test case 2: Display the received data on the LCD

https://www.youtube.com/watch?v=JBd7sLS2hxM&feature=youtu.be

32

Session 33

Wireless Technologies- Wi-Fi, its Working principle,  Different Wifi devices available in Market.

Wi-Fi

https://www.youtube.com/watch?v=co4rLn9N8OU

Session 34

Write and Embedded C program to Connect to Webserver using ESP8266

https://www.youtube.com/watch?v=Sd7xE52zL5U&feature=youtu.be

34

Session 35

Wireless Technologies- RF, its overview and Working, Overview of Different RF Modules.

https://www.youtube.com/watch?v=JjHzPR63w9A

35

Session 36

Write and Embedded C program to design a system to read the RFID cards using STM32.

https://www.youtube.com/watch?v=rFkvMxm_r_0&feature=youtu.be

336

Session 37

Timer Basics, Timer Vs Counter, General Purpose Timer, SysTick Timer.

https://www.youtube.com/watch?v=YPJlhYm5T8Y

37

Session 38

Write an Embedded C Programs to generate Delay using Timer.

Test case 1: Generate a wave with an ON time delay 20ms and off Time delay 10ms.

https://www.youtube.com/watch?v=2YSYWR309Y4&list=PLmY3zqJJdVeNIZ8z_yw7Db9ej3FVG0iLy&index=15

38

Session 39

ADC & DAC Basics, Initialization, DAC Peripherals & Modules.

39

Session 40

Analog Sensors and its Types Like Ultrasonic Sensor, Temperature, Humidity, Soil Moisture sensor, PIR sensor, Lad sensor, Color Sensor.

https://www.youtube.com/watch?v=Gy-umxT7EKk&feature=youtu.be

Session 41

Write an Embedded C program to display output for given analog input using internal ADC.

Test Case 1: Use Ultrasonic Sensor to find the distance of an object.

Test Case 2: Use Temperature and Humidity sensor to make a weather station.

Test Case 3: Use PIR sensor to identify the person in a room.

test case 4: Use a Color Sensor to identify the color of an object

Test Case 5: Use Soil Moisture Sensor to check whether a Soil is Wet or Dry.

https://www.youtube.com/watch?v=Gy-umxT7EKk&feature=youtu.be

https://www.youtube.com/watch?v=Q_EwhXbU2Cw

41

Session 42

Write an Embedded C program to display output for given analog input using internal ADC. (part2)

Test Case 1: Use the Load Sensor to find the weight of an object.

Test Case 2: Use LM35 sensor to find the temperature of a Room.

42

Session 43

Write an embedded C program to generate Triangular and Square waves using DAC.

43

Session 44

I2C specification, Protocol configuration, I2C Peripherals. Inbuilt functions.

I2C

https://www.youtube.com/watch?v=RoGNbshGM_M&t=36s

https://www.youtube.com/watch?v=1COFk1M2tak

Session 45

Write an Embedded C program to build I2C communication between STM32 and Arduino.

https://www.youtube.com/watch?v=U2-eJusGoHI&feature=youtu.be

Session 46

SPI Specification, Protocol configuration, its Peripheral, and Modules.

SPI

https://www.youtube.com/watch?v=DvuwhlREi4U&t=10s

https://www.youtube.com/watch?v=KnuAP7ga5Lw

Session 47

Write an Embedded C program to build SPI communication STM32 to the Arduino board.

https://www.youtube.com/watch?v=-E_MWULHUMQ&feature=youtu.be

Session 48

RTC feature and its Module available in Market

http://youtube.com/watch?v=JjHzPR63w9A

Session 49

Write an Embedded C program to implement a Real-Time Clock.

https://www.youtube.com/watch?v=b4cop0915j8

Session 50

Session 51

Write an Embedded C program to Speed Control of DC motor using PWM.

https://www.youtube.com/watch?v=xs9lGF--QcU

https://www.youtube.com/watch?v=K-jYSysmw9w

51

Session 52

Write an Embedded C program to change the intensity of Light using PWM.

https://www.youtube.com/watch?v=K-jYSysmw9w

52

Session 53

CAN Protocols Overview, Application, Architecture, Data Transmission & Data Frames.

CAN PPT

https://www.youtube.com/watch?v=9db-q5ffYpU&list=PLERTijJOmYrA6iGZaWGyEJXpjzY0lRTC3&index=10

Session 54

Project Execution Time

Session 55

Project Execution Time

List of Projects

  1. Door security system using Finger Print Module and solenoid lock.
  2. Implementing a sensitive and accurate weighing system using a load sensor and 16x2 LCD.
  3. ARM-Based Wireless Environmental Parameter Monitoring System displayed through Mobile devices
  4. ARM-Based Vehicle Tracking System Using GPS & Internet.
  5. Wireless robot control through Zig-Bee.
  6. Electronic Voting Machine using ARM

Our Main Teachers

Swarna Prabha Jena

Assistant Professor, Department of ECE, SoET
VIEW PROFILE

She is currently working as an Assistant Professor in the Department of Electronics & Communication Engineering under Centurion University of Technology and Management, Odisha. She is pursuing her Ph.D. in the field of IoT & Smart Agriculture at the Centurion University of Technology & Management and received, MTech Degree from SOA University in the year […]

N Jeevaratnam

Assistant professor,Department of ECE, SoET Paralakhemundi Campus,Odisha,India
VIEW PROFILE

She is Currently Working As an Assistant Professor In The Department of Electronics & Communication Engineering Under Centurion University of Technology and Management, Odisha. She Has Over 10 Years Of Teaching Experiences. She has published 5 research articles in National and International refereed journals.  She is pursuing her Ph.D. in the field of signal processing […]

Rajesh Kumar Misra

Assistant Professor in School of Engineering & Technology, Department of ECE
VIEW PROFILE

Rajesh Kumar Misra is  currently working as Assistant Professor in the Department of Electronics and Communication Engineering at Centurion University of Technology and Management, Odisha. His research interests include Embedded System Design,Internet of Things. He has received his M.Tech from Tezpur Central University ,Assam, India in the Year 2009 and Currently Pursuing his PhD. He has […]