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

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
  • 179,000 تومان
    بیش از یک محصول به صورت دانلودی میخواهید؟ محصول را به سبد خرید اضافه کنید.
    افزودن به سبد خرید
    خرید دانلودی فوری

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

    ایمیل شما:
    تولید کننده:
    شناسه: 9617
    حجم: 10480 مگابایت
    مدت زمان: 1710 دقیقه
    تاریخ انتشار: ۲۶ فروردین ۱۴۰۲
    طراحی سایت و خدمات سئو

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