وب سایت تخصصی شرکت فرین
دسته بندی دوره ها

Mastering Microcontroller and Embedded Driver Development

سرفصل های دوره

(MCU1) Learn bare metal driver development using Embedded C: Writing drivers for STM32 GPIO,I2C,SPI,USART from scratch


01 - Notes and Information
  • 001 About the instructor.html
  • 002 Important Note.html
  • 003 What is this course all about
  • 004 PPT.pdf
  • 004 Source Code and Slides.html
  • 005 Rating and Review.html

  • 02 - Development board used in our courses
  • 001 About MCU Development board
  • external-links.zip

  • 03 - HardwareSoftware Requirements
  • 001 HardwareSoftware Requirements.html
  • 001 Hardware-and-software-used-in-MCU1.pdf

  • 04 - IDE installation
  • 001 Downloading STM32CUBEIDE
  • 002 Installation-Windows
  • 003 Installation-Ubuntu
  • 004 Embedded Target
  • 005 Documents required
  • external-links.zip

  • 05 - Creating a project using STM32CUBEIDE
  • 001 Creating Hello-World project
  • 002 SWV working principle
  • 003 Testing Hello-World through SWV
  • 004 OpenOCD and Semihosting to use printf
  • 004 openocd-semihosting-commands.zip
  • external-links.zip

  • 06 - Embedded Code Debugging Tips and tricks
  • 001 Debugging options
  • 001 main.zip
  • 002 Single stepping
  • 003 Disassembly and Register windows
  • 004 Breakpoints
  • 005 Expression and variable windows
  • 006 Memory browser windows
  • 007 Call stack and fault analyzers
  • 008 Data watch-points
  • 009 SFR windows
  • 010 Other basic features of IDE

  • 07 - Understanding MCU Memory Map
  • 001 Understanding Memory Map of the MCU Part 1
  • 002 Understanding Memory Map of the MCU Part 2
  • 003 Understanding Memory Map of the MCU Part 3

  • 08 - MCU Bus Interfaces
  • 001 MCU Bus Interfaces Explanation Part 1 I-CodeD-CodeS-Bus
  • 002 MCU Bus Interfaces Explanation Part 2 AHBAPB1APB2
  • 003 MCU Bus Interfaces Explanation Part 3 QA session
  • 004 Understanding MCU Bus Matrix
  • 004 Using-the-STM32F2-and-STM32F4-DMA-controller.pdf

  • 09 - Understanding MCU Clocks and Details
  • 001 Understanding MCU Clocking SystemPart1

  • 10 - Understanding MCU Clock tree
  • 001 Understanding MCU clock sources and HSE
  • 002 HSI and RCC registers
  • 003 Peripheral clock configuration
  • 003 main.zip
  • 004 Exercise HSI measurements
  • 005 About USB logic analyzer
  • 006 Code implementation
  • 006 main.zip
  • 007 Exercise HSE measurements
  • 007 main.zip

  • 11 - Understanding MCU Vector table
  • 001 Understanding MCU Vector Table
  • external-links.zip

  • 12 - Understanding MCU interrupt Design , NVIC, Interrupt handling
  • 001 Understanding MCU interrupt Design , NVIC, Interrupt handling Part 1
  • 002 Understanding MCU interrupt Design , NVIC, Interrupt handling Part 2
  • 003 Understanding MCU interrupt Design , NVIC, Interrupt handling Part 3

  • 13 - Importance of Volatile Keyword
  • 001 Importance of Volatile Keyword Part-1
  • 002 Importance of Volatile Keyword-Part 2
  • 002 volatile-experiment-Eclipse.zip
  • 002 volatile-experiment-Keil.zip

  • 14 - GPIO Must know concepts
  • 001 GPIO pin and GPIO port
  • 002 GPIO behind the scene
  • 003 GPIO input mode with high impedance state
  • 004 GPIO input mode with pull-updown state
  • 005 GPIO output mode with open drain state
  • 006 GPIO output mode with push pull state
  • 007 Optimizing IO power consumption

  • 15 - GPIO Programming structure and Registers
  • 001 GPIO programming structure
  • 002 Exploring GPIO PORT and pins of STM32F4xx Discovery board
  • 003 GPIO Mode register(used to set mode for a pin)
  • 004 Input configuration of a Microcontrollers GPIO Pin
  • 005 Output Configuration of a GPIO Pin in Push pull mode
  • 006 Output Configuration of a GPIO Pin in open drain mode
  • 007 Input stage of a GPIO pin during output configuration
  • 008 Alternate functionality Configuration of a GPIO pin
  • 009 GPIO out put type register explanation

  • 16 - GPIO Registers SPEED, PULL UPDOWN, IDR and ODR
  • 001 GPIO output speed register and its applicability
  • 002 GPIO Pull up and Pull down register
  • 003 GPIO input data register
  • 004 GPIO output data register and summary of various modes discussed

  • 17 - GPIO Alternate functionality register and example of usage
  • 001 Alternate functionality settings of a GPIO pin with example Part 1
  • 002 Alternate functionality settings of a GPIO pin with example Part 1
  • 003 Request for Review.html

  • 18 - GPIO peripheral clock control
  • 001 Enabling and disabling GPIO peripheral clock

  • 19 - GPIO driver development overview and Project creation
  • 001 GPIO driver development overview
  • 002 MCU Specific header file and its contents
  • 003 New project creation and creating MCU specific headerfile
  • 004 Include path settings
  • 005 Important note on IDE usage.html

  • 20 - Updating MCU specific header file with bus domain and peripheral details
  • 001 Writing base address C macros for MCUs embedded memories Part 1
  • 002 Writing base address C macros for MCUs embedded memories Part 2
  • 003 Defining base addresses of different bus domains
  • 004 Defining base addresses of AHB1 Peripherals
  • 005 Defining base addresses of APB1 and APB2 Peripherals
  • 006 Defining base addresses conclusion

  • 21 - Structuring peripheral registers
  • 001 Address of peripheral registers
  • 002 Structuring peripheral registers
  • 003 Peripheral definition macros

  • 22 - Writing Clock enable and disable macros
  • 001 Writing peripheral clock enable and disable C Macros
  • 002 Project include settings and build

  • 23 - GPIO driver API requirements and handle structure
  • 001 Creating GPIO driver header and source file
  • 002 Defining GPIO handle and configuration structure
  • 003 Driver API requirements and adding API prototypes
  • 004 Driver API input parameters and return types
  • 005 Driver empty API implementation and documentation

  • 24 - GPIO driver API Implementation Clock control
  • 001 Implementation of GPIO peripheral clock control API

  • 25 - GPIO driver API Implementation GPIO init and de-init
  • 001 Writing user configurable macros
  • 002 Implementation of GPIO init API
  • 003 Implementation of GPIO init API contd
  • 004 Configuring Alternate function registers
  • 005 GPIO de-init API implementation

  • 26 - GPIO driver API Implementation GPIO data read and write
  • 001 Implementation of GPIO input port read and input pin read APIs
  • 002 Implementation of GPIO output port write and output pin write APIs
  • 003 Implementation of GPIO pin toggle API

  • 27 - Exercise
  • 001 Exercise LED toggling with PUSH PULL configuration
  • 002 Exercise LED toggling with OPEN DRAIN configuration
  • 003 Exercise Handling on board LED and Button
  • 004 Exercise Connecting external button and circuit explanation
  • 005 Exercise Testing button interface
  • 006 Exercise Button interrupt introduction

  • 28 - GPIO pin Interrupt configuration
  • 001 GPIO pin Interrupt configuration coding Part 1
  • 002 GPIO pin Interrupt configuration coding Part 2
  • 003 GPIO pin Interrupt configuration coding Part 3
  • 004 GPIO pin Interrupt configuration coding Part 4
  • 005 GPIO pin Interrupt configuration coding Part 5
  • 006 GPIO pin Interrupt configuration coding Part 6
  • 007 GPIO pin Interrupt configuration coding Part 7

  • 29 - Exercise GPIO interrupts
  • 001 Exercise External button interrupt implementation
  • 002 Exercise Debugging the application Part 1
  • 003 Exercise Debugging the application Part 2

  • 30 - MCU IO Pin specifications
  • 001 STM32 Pin specifications
  • 002 Pin current characteristics
  • 003 Logic levels

  • 31 - SPI introduction and bus details
  • 001 Introduction to SPI Bus
  • 002 SPI comparison with other protocols
  • 003 Importance of SPI slave select pin
  • 004 SPI Minimum bus configuration
  • 005 SPI behind the scene data communication principle

  • 32 - SPI bus configuration and functional block diagram
  • 001 SPI bus configuration discussion full duplex, half duplex and simplex
  • 002 SPI functional block diagram explanation

  • 33 - STM32 NSS pin settings and management
  • 001 NSS settings in STM32 master and slave modes
  • 002 STM32 SPI hardware and software slave managements

  • 34 - SPI CPOL and CPHA discussion
  • 001 SPI CPOL and CPHA discussion
  • 002 SPI CPOL and CPHA waveform example

  • 35 - SPI serial clock discussion
  • 001 SPI peripherals of your Microcontroller
  • 002 SPI Serial clock frequency

  • 36 - SPI Driver API requirements and configuration structure
  • 001 SPI API requirements and configuration items
  • 002 updating MCU specific header file with SPI related details
  • 003 SPI adding API prototypes to driver header file

  • 37 - SPI Driver API Implementation Clock control
  • 001 Implementation of SPI peripheral clock control API

  • 38 - SPI Driver API Implementation SPI init
  • 001 SPI user configuration options writing and register bit definition macros
  • 002 Implementation of SPI init API Part 1
  • 003 Implementation of SPI init API Part 2

  • 39 - SPI Driver API Implementation Send Data
  • 001 Implementation of SPI send data API Part 1
  • 002 Implementation of SPI send data API Part 2
  • 003 Implementation of SPI send data API Part 3
  • 004 Implementation of SPI send data API Part 4

  • 40 - Exercise SPI Send Data
  • 001 Exercise to test SPI Send Data API
  • 002 Finding out microcontroller pins to communicate over SPI2
  • 003 Exercise Code implementation Part 1
  • 004 Exercise Code implementation Part 2
  • 005 Exercise Code implementation Part 3
  • 006 Exercise Testing

  • 41 - Exercise STM32 master and Arduino Slave communication
  • 001 Exercise Communicating with Arduino slave
  • 002 Exercise Coding Part 1
  • 003 Exercise Coding Part 2
  • 004 Exercise Coding Part 3
  • 005 Exercise Testing

  • 42 - SPI Driver API Receive data
  • 001 Implementation of SPI data receive API Part 1
  • 002 Implementation of SPI data receive API Part 2

  • 43 - Exercise SPI receive data
  • 001 Exercise SPI command and response based communication
  • 002 Exercise Coding Part 1
  • 003 Exercise Coding Part 2
  • 004 Exercise Coding Part 3

  • 44 - SPI interrupts
  • 001 SPI peripheral interrupting the processor

  • 45 - SPI interrupt mode APIs
  • 001 SPI interrupt mode API implementation and changes to handle structure
  • 002 SPI send data with interrupt API implementation
  • 003 SPI receive data with interrupt implementation

  • 46 - SPI Driver API IRQ handling
  • 001 SPI Handling of interrupts
  • 002 SPI IRQ handler implementation Part 1
  • 003 SPI IRQ handler implementation Part 2
  • 004 SPI IRQ handler implementation Part 3
  • 005 Exercise

  • 47 - Common problems in SPI
  • 001 Common problems in SPI and Debugging Tips

  • 48 - I2C introduction and I2C signals
  • 001 I2C introduction and differences with SPI
  • 002 I2C SDA and SCL signals

  • 49 - I2C modes
  • 001 I2C standard and fast mode

  • 50 - Understanding I2C Protocol
  • 001 I2C Protocol explanation
  • 002 I2C START and STOP conditions
  • 003 I2C ACK and NACK
  • 004 I2C Data validity

  • 51 - I2C master and slave communication
  • 001 Example of master writing to slave
  • 002 Understanding repeated START condition

  • 52 - STM32 I2C functional block diagram
  • 001 I2C functional block diagram

  • 53 - I2C driver API requirements and config structures
  • 001 I2C driver API requirements
  • 002 I2C handle and configuration structure
  • 003 I2C user configurable macros
  • 004 I2C API prototypes
  • 005 Steps for I2C init implementation

  • 54 - I2C serial clock discussion(SCLK)
  • 001 I2C serial clock settings with explanation
  • 002 Clock Stretching

  • 55 - I2C Driver API I2C Init
  • 001 Implementation of I2C init API Part 1
  • 002 Implementation of I2C init API Part 2
  • 003 Implementation of I2C init API Part 3

  • 56 - I2C Driver API I2C Master send data
  • 001 I2C transfer sequence diagram for master sending data
  • 002 Implementation of I2C master sending data API Part 1
  • 003 Implementation of I2C master sending data API Part 2
  • 004 Implementation of I2C master sending data API Part 3
  • 005 Implementation of I2C master sending data API Part 4
  • 006 Implementation of I2C master sending data API Part 5

  • 57 - I2C pull up resistance , rise time and bus capacitance
  • 001 I2C pull up resistance , rise time and bus capacitance discussion
  • 002 I2C rise time calculation

  • 58 - Exercise
  • 001 Exercise Introduction
  • 002 Exercise Coding Part 1
  • 003 Exercise Coding Part 2
  • 004 Exercise Testing

  • 59 - I2C Driver API I2C Master receive data
  • 001 I2C transfer sequence diagram for master receiving data
  • 002 Assignment I2C master receive data API implementation
  • 003 Implementation of I2C master receive data API Part 1
  • 004 Implementation of I2C master receive data API Part 2

  • 60 - Exercise
  • 001 Exercise Reading data from the I2C slave
  • 002 Exercise Coding Part 1
  • 003 Exercise Coding Part 2
  • 004 Exercise Coding Part 3
  • 005 Exercise Testing repeated start

  • 61 - I2C Interrupts and IRQ numbers
  • 001 I2C IRQ and interrupt discussion
  • 002 I2C errors and importance of BUSY flag
  • 003 I2C handle structure modification
  • 004 I2C adding interrupt related macros and interrupt APIs

  • 62 - I2C interrupt based APIs
  • 001 Assignment I2C interrupt APIs implementation
  • 001 i2c-masterreceivedatait.zip
  • 001 i2c-mastersenddatait.zip
  • 002 Implementation of I2C interrupt based APIs

  • 63 - I2C IRQ handler implementation
  • 001 I2C IRQ handler implementation Part 1
  • 001 i2c-ev-irqhandling.zip
  • 002 I2C IRQ handler implementation Part 2
  • 003 I2C IRQ handler implementation Part 3
  • 004 I2C IRQ handler implementation Part 4
  • 005 I2C IRQ handler implementation Part 5
  • 006 I2C IRQ handler implementation Part 6
  • 007 I2C IRQ handler implementation Part 7
  • 008 I2C IRQ handler implementation Part 8
  • 009 I2C error IRQ handler implementation
  • 009 i2c-er-irqhandling.zip

  • 64 - Exercise
  • 001 Exercise Testing I2C interrupt APIs part 1
  • 002 Exercise Testing I2C interrupt APIs part 2

  • 65 - I2C slave programming
  • 001 I2C slave programming discussion
  • 002 I2C transfer sequence diagram for slave transmitter
  • 003 I2C slave support in driver

  • 66 - Exercise
  • 001 Exercise I2C slave programming
  • 002 Exercise Coding Part 1
  • 003 Exercise Testing
  • 004 Exercise Modifying I2C transactions

  • 67 - Common problems in I2C
  • 001 Common Problems in I2C and Debugging Tips

  • 68 - UART Essentials
  • 001 Intro UART vs USART
  • 002 Understanding UART pins
  • 003 UART frame formats
  • 004 Baud Rate
  • 005 Synchronization bits
  • 006 UART Parity

  • 69 - UART functional block and Peripheral Clock
  • 001 Exploring UART functional block
  • 002 UART peripheral clock

  • 70 - UART Communication
  • 001 UART Transmitter
  • 002 Uart Receiver

  • 71 - USART driver development
  • 001 USART driver development confiugrable items
  • 002 USART driver APIs prototypes
  • 002 usart-api-prototype.zip
  • 003 Configuration options and USART registers
  • 004 USART Driver API USART Init
  • 004 usart-init.zip
  • 005 USART Driver API Tx and Rx assignment
  • 005 usart-datatxrxapis.zip
  • 006 USART Driver API Send data

  • 72 - USART oversampling and baudrate
  • 001 USART oversampling
  • 002 USART Baud rate calculation Part-2
  • 003 USART Baud rate calculation Part-2
  • 004 USART baudrate coding
  • 004 usart-baudcalculation.zip

  • 73 - Exercise
  • 001 Exercise USART send data to arduino
  • 002 communicating with PC over UART

  • 74 - USART interrupts
  • 001 USART interrupt discussion
  • 002 Exercise
  • 003 USART IRQ handler implementation Assignment.html
  • 003 usart-irqhandling.zip

  • 75 - Exercise RTC on LCD
  • 001 DS1307.pdf
  • 001 HD44780.pdf
  • 001 RTC-and-LCD-interfacing.pdf
  • 001 Real time clock on LCD
  • 002 DS1307 RTC registers
  • 003 RTC code implementation
  • 004 RTC coding for set time and date
  • 005 RTC coding for get time and date
  • 006 BCD and Binary manipulation functions
  • 007 Writing RTC application
  • 008 RTC and Systick
  • 008 systick.zip
  • 009 LCD connections
  • 010 Significance of LCD pins
  • 011 LCD initialization
  • 012 LCD initialization flowchart
  • 013 Sending command and data to LCD
  • 014 Creating LCD command code
  • 015 Testing

  • 76 - BONUS LECTURE
  • 001 BONUS LECTURE.html
  • 139,000 تومان
    بیش از یک محصول به صورت دانلودی میخواهید؟ محصول را به سبد خرید اضافه کنید.
    خرید دانلودی فوری

    در این روش نیاز به افزودن محصول به سبد خرید و تکمیل اطلاعات نیست و شما پس از وارد کردن ایمیل خود و طی کردن مراحل پرداخت لینک های دریافت محصولات را در ایمیل خود دریافت خواهید کرد.

    ایمیل شما:
    تولید کننده:
    شناسه: 9617
    حجم: 10480 مگابایت
    مدت زمان: 1710 دقیقه
    تاریخ انتشار: 26 فروردین 1402
    طراحی سایت و خدمات سئو

    139,000 تومان
    افزودن به سبد خرید