آموزش تسلط بر میکروکنترلر و توسعه درایورهای جاسازی شده

Mastering Microcontroller and Embedded Driver Development

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: (MCU1) توسعه درایورهای فلزی خالی را با استفاده از Embedded C بیاموزید: نوشتن درایورها برای STM32 GPIO,I2C,SPI,USART از ابتدا درک روش های صحیح مدیریت و برنامه نویسی تجهیزات جانبی MCU توسعه درایورهای جانبی برای میکروکنترلر خود درک مراحل توسعه کامل درایور از ابتدا برای GPIO ، SPI، I2C و USART. آموزش نوشتن هدر درایورهای جانبی، نمونه‌سازی APIها و پیاده‌سازی برای انجام کارها، برگه‌های داده MCU، راهنمای مرجع، کدهای راه‌اندازی را کاوش کنید روش‌های صحیح مدیریت/پیکربندی وقفه‌ها برای دستگاه‌های جانبی مختلف را بیاموزید درباره رابط‌های IRQ/Vector جدول/NVIC و بسیاری از یادگیری‌ها بیاموزید. درباره رجیسترهای پیکربندی/وضعیت/کنترل دستگاه‌های جانبی مختلف رمزگشایی از جزئیات کار پشت صحنه SPI، I2C، GPIO، USART و غیره. کاوش ترشحات پنهان رابط‌های اتوبوس MCU، منابع ساعت، تنظیمات ساعت MCU، و غیره. روش‌های صحیح فعال کردن/پیکربندی را بشناسید. ساعت‌های جانبی/ساعت‌های سریال/نرخ‌های باود پروتکل‌های سریال مختلف درباره پروتکل‌های MCU AHB، پروتکل‌های گذرگاه APB اطلاعاتی درباره ساعت‌های مختلف MCU مانند HCLK، PCLK، PLL و غیره بیاموزید یادگیری ضبط/رمزگشایی/تحلیل ردپای پروتکل‌های سریال در تحلیلگر منطقی راه های اشکال زدایی مسائل جانبی با مطالعات موردی پیش نیازها: دانش اولیه برنامه نویسی C اگر با زبان برنامه نویسی MCU و C کاملاً تازه کار هستید، به شما توصیه می شود ابتدا دوره آموزشی "Embedded C" ما را برای مبتدیان مطلق به پایان برسانید.

جستجوی شما برای دوره عمیق برنامه نویسی میکروکنترلر در اینجا به پایان می رسد !!<<

کد دوره: MCU1

با استفاده از Embedded C توسعه درایورهای فلزی خالی را بیاموزید: نوشتن درایورها برای STM32 GPIO,I2C,SPI,USART از ابتدا

زیرنویس‌های انگلیسی برای این دوره فعال هستند.

به‌روزرسانی 6: ویدیوها با جدیدترین STM32CUBEIDE به‌روزرسانی می‌شوند

به‌روزرسانی 5: همه درایورها در یک جلسه زنده با کدنویسی گام به گام و تمرین‌های ارتباطی stm32-Arduino با استفاده از SPI و I2C اضافه شده‌اند.

به روز رسانی 4: تیم پشتیبانی اختصاصی برای پاسخگویی به پرسش و پاسخ دانش آموز اختصاص داده شده است

به‌روزرسانی 3: زیرنویس‌های انگلیسی ثابت شده‌اند

به‌روزرسانی 2: اضافه شدن ماتریس گذرگاه/نقشه حافظه/جدول برداری/بحث طراحی وقفه با نمونه‌های کد.

به روز رسانی 1: راه اندازی Eclipse IDE برای MCU های مبتنی بر ARM Cortex M اضافه شد


این دوره برای مخاطبان مبتدی تا پیشرفته طراحی شده است.


توضیحات مختصر:

این دوره عملکرد داخلی میکروکنترلر و تجهیزات جانبی آن را رمزگشایی می کند.

کدنویسی گام به گام لوازم جانبی و توسعه درایورهای نرم افزار کاملاً از ابتدا با استخراج حداکثر اطلاعات از برگه های داده، دفترچه راهنمای مرجع، مشخصات، و غیره

رمزگشایی پروتکل با استفاده از تحلیلگرهای منطقی، اشکال زدایی، آزمایش به همراه نکات و نکات.


توضیحات طولانی:

یادگیری برنامه نویسی سیستم جاسازی شده می تواند یک چالش باشد. از آنجایی که این یک زمینه نسبتاً پیچیده است، هنوز هیچ استاندارد طلایی واقعی برای نحوه تمرین یا آموزش وجود ندارد، که می تواند افرادی را که فقط در تلاش برای یادگیری چیزهای جدید هستند و نمی توانند نقاط را به هم وصل کنند، ناامید کند.

این انگیزه ایجاد این دوره برای کمک به مهندسان و دانش‌آموزان برای یادگیری جنبه‌های مختلف سیستم‌های جاسازی شده با ارائه سخنرانی‌های پیشرفته با کیفیت بالا و قیمت نسبتاً پایین است.


استاد پشت صحنه کار می کند؛

این دوره را ایجاد کردم زیرا معتقدم وقت شما گرانبها است و برای به دست آوردن یک پایه عملی در برنامه نویسی سیستم جاسازی شده مجبور نیستید به دنبال آن باشید. در این دوره یاد می گیرید که درایورهای جانبی خود را برای پرکاربردترین وسایل جانبی مانند GPIO، I2C، SPI، USART و غیره بنویسید و نکته جالب این است که همه چیز را از ابتدا یاد خواهید گرفت.

کتابخانه شخص ثالث وجود ندارد!

بدون کدنویسی کور!

APIهای درایور خود را با استفاده از رجیسترهای جانبی MCU بنویسید!

APIها را از ابتدا کدنویسی و پیاده سازی کنید، در برگه داده و راهنمای مرجع MCU فرو بروید. من به طور کامل توضیح خواهم داد که چگونه می توان حداکثر اطلاعات را از دیتاشیت ها، کتابچه راهنمای مرجع فنی برای پیکربندی و مدیریت وسایل جانبی استخراج کرد. این تکنیک‌ها را می‌توانید در هر MCU که در دست دارید استفاده کنید.

در این دوره، من شما را با روش‌های گام به گام پیکربندی ابزارهای جانبی مختلف مانند GPIOs، SPI، USART، I2C با وارد کردن شما به دفترچه راهنمای مرجع و برگه اطلاعات راهنمایی می‌کنم. ما یک کد درایور کاملاً کارآمد، کنترل‌کننده‌های وقفه، نمونه‌ای از برنامه‌های کاربردی از ابتدا برای درک تصویر بزرگ ایجاد خواهیم کرد.

در هر سخنرانی، به شما اطمینان می دهم که چیز جدیدی برای استفاده در کار یا پروژه خود خواهید آموخت. خواهید دید که با وضوح بسیار بیشتری با این لوازم جانبی کار می کنید. شما می توانید به سرعت مشکل را حدس بزنید و اشکال زدایی کنید. من ترفندها و نکاتی را برای رفع اشکال رایج ترین مسائل با استفاده از ابزارهای اشکال زدایی مانند تحلیلگرهای منطقی به شما نشان خواهم داد.


این سبک برنامه نویسی آردوینو نیست:

من معتقدم آردوینو برای نمونه سازی سریع پروژه ها/محصولات است اما برای تسلط بر کار میکروکنترلرها و تجهیزات جانبی آنها نیست. برخلاف برنامه نویسی آردوینو، که در آن شما یک راه حل سریع و نمونه سازی اولیه محصولات را با استفاده از کتابخانه های شخص ثالث ایجاد می کنید، این دوره کاملاً متفاوت است. در این دوره از کتابخانه های شخص ثالث استفاده نمی شود. همه چیز را با مراجعه به راهنمای مرجع فنی MCU کدگذاری می کنیم و کتابخانه خود را ایجاد می کنیم. قدرت این رویکرد این است که شما می توانید به سرعت مشکلات را حدس بزنید و مانند یک حرفه ای زمانی که در پروژه شما به دلیل اشکالات اشتباه پیش می رود، اشکال زدایی کنید. اگر یک چیز من و دانش آموزانم در آن مهارت داریم "اشکال زدایی" است. برای دستیابی به مهارت‌های خوب اشکال‌زدایی، کدنویسی با درک نحوه عملکرد همه چیز در پشت صحنه ضروری است، اما نه با استفاده کورکورانه از برخی از کتابخانه‌های شخص ثالث، و این بزرگ‌ترین برداشت از این دوره است.

این دوره به گونه ای طراحی و توضیح داده شده است که در هر میکروکنترلر عمومی است. کدی که ما ایجاد می کنیم می تواند به عنوان الگو برای ساخت سریع یک درایور جانبی برای تجهیزات جانبی تراشه MCU شما استفاده شود.


نرم افزار/سخت افزار مورد استفاده:

در این دوره، کد به گونه ای طراحی شده است که می توان آن را به هر MCU که در دست دارید منتقل کرد. اگر برای انتقال این کدها به MCU های مختلف به کمک نیاز دارید، همیشه می توانید با من تماس بگیرید! این دوره اکیداً به هیچ نوع 1 MCU محدود نمی شود. بنابراین، اگر قبلاً هر برد توسعه‌ای دارید که با پردازنده ARM-Cortex M3/M4 کار می‌کند، توصیه می‌کنم به استفاده از آن ادامه دهید. اما اگر هیچ تابلوی توسعه ندارید، تابلوهای توسعه زیر را بررسی کنید.


1. برد Discovery مبتنی بر STM32F407xx ( این برد مورد استفاده در این دوره است)

فروشنده MCU: STMicroelectronics


IDE: STM32CUBEIDE (رایگان)


قول من:

من مطمئن هستم که این دوره ساعات زیادی از مطالعه/آزمایش/زمان گوگل را برای یادگیری در مورد برنامه نویسی MCU برای شما صرفه جویی می کند. من شخصاً به سؤالات شما در مورد این مطالب چه به صورت خصوصی یا در یک بحث گروهی پاسخ خواهم داد. اگر به هر دلیلی راضی نیستید، می توانید ظرف 30 روز از Udemy بازپرداخت کامل دریافت کنید. هیچ سوالی پرسیده نشد. اما من مطمئن هستم که شما نیازی به این کار نخواهید داشت. من 100% پشت این دوره هستم و متعهد به کمک به شما هستم.


ترتیب یادگیری دوره های FastBit Embedded Brain Academy،

اگر در زمینه سیستم های جاسازی شده مبتدی هستید، می توانید دوره های ما را به ترتیب ذکر شده در زیر بگذرانید.

این فقط یک توصیه از سوی مربی برای مبتدیان است.

1) برنامه نویسی جاسازی شده با میکروکنترلر C: مبتدیان مطلق (Embedded C)

2) برنامه نویسی سیستم های جاسازی شده در پردازنده ARM Cortex-M3/M4 (مخصوص پردازنده ARM Cortex M4)

3) تسلط بر میکروکنترلر با توسعه درایور جاسازی شده (MCU1)

4) تسلط بر میکروکنترلر: TIMERS، PWM، CAN، RTC، LOW POWER(MCU2)

5) تسلط بر میکروکنترلر: STM32-LTDC، LCD-TFT، LVGL (MCU3)

6) طراحی سیستم جاسازی شده با استفاده از ماشین‌های حالت UML (ماشین دولتی)

7) تسلط بر RTOS: FreeRTOS و STM32Fx عملی با اشکال زدایی (RTOS)

8) میکروکنترلر ARM Cortex M DMA Programming Demystified (DMA)

9) توسعه بوت لودر سفارشی میکروکنترلر STM32Fx (Bootloader)

10) لینوکس جاسازی شده گام به گام با استفاده از Beaglebone Black (Linux)

11) برنامه نویسی درایور دستگاه لینوکس با استفاده از Beaglebone Black (LDD1)


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

یادداشت ها و اطلاعات Notes and Information

  • در مورد مربی About the instructor

  • یادداشت مهم Important Note

  • این دوره در مورد چیه؟؟ What is this course all about ??

  • کد منبع و اسلایدها Source Code and Slides

  • رتبه بندی و بررسی Rating and Review

تخته توسعه مورد استفاده در دوره های ما Development board used in our courses

  • درباره هیئت توسعه MCU About MCU Development board

سخت افزار/نرم افزار مورد نیاز Hardware/Software Requirements

  • سخت افزار/نرم افزار مورد نیاز Hardware/Software Requirements

نصب IDE IDE installation

  • در حال دانلود STM32CUBEIDE Downloading STM32CUBEIDE

  • نصب-ویندوز Installation-Windows

  • نصب - اوبونتو Installation-Ubuntu

  • هدف جاسازی شده Embedded Target

  • مدارک مورد نیاز Documents required

ایجاد یک پروژه با استفاده از STM32CUBEIDE Creating a project using STM32CUBEIDE

  • ایجاد پروژه Hello-World Creating Hello-World project

  • اصل کار SWV SWV working principle

  • تست Hello-World از طریق SWV Testing Hello-World through SWV

  • OpenOCD و Semihosting برای استفاده از printf OpenOCD and Semihosting to use printf

نکات و ترفندهای رفع اشکال کد تعبیه شده Embedded Code Debugging Tips and tricks

  • گزینه های اشکال زدایی Debugging options

  • تک پله Single stepping

  • جداسازی و رجیستر کردن ویندوز Disassembly and Register windows

  • نقاط شکست Breakpoints

  • بیان و پنجره های متغیر Expression and variable windows

  • ویندوز مرورگر حافظه Memory browser windows

  • پشته تماس و تجزیه و تحلیل خطا Call stack and fault analyzers

  • نقاط مراقبت داده Data watch-points

  • ویندوزهای SFR SFR windows

  • سایر ویژگی های اساسی IDE Other basic features of IDE

آشنایی با نقشه حافظه MCU Understanding MCU Memory Map

  • درک نقشه حافظه MCU: قسمت 1 Understanding Memory Map of the MCU: Part 1

  • درک نقشه حافظه MCU: قسمت 2 Understanding Memory Map of the MCU: Part 2

  • درک نقشه حافظه MCU: قسمت 3 Understanding Memory Map of the MCU: Part 3

  • درک خود را بیازمایید Test your understanding

رابط های اتوبوس MCU MCU Bus Interfaces

  • توضیح رابط های اتوبوس MCU قسمت 1: I-Code/D-Code/S-Bus MCU Bus Interfaces Explanation Part 1: I-Code/D-Code/S-Bus

  • رابط های اتوبوس MCU توضیح قسمت 2: AHB/APB1/APB2 MCU Bus Interfaces Explanation Part 2: AHB/APB1/APB2

  • توضیح رابط های اتوبوس MCU قسمت 3: جلسه پرسش و پاسخ MCU Bus Interfaces Explanation Part 3: Q/A session

  • آشنایی با ماتریس اتوبوس MCU Understanding MCU Bus Matrix

  • درک خود را بیازمایید Test your understanding

درک ساعت ها و جزئیات MCU Understanding MCU Clocks and Details

  • آشنایی با سیستم کلاکینگ MCU: قسمت 1 Understanding MCU Clocking System:Part1

آشنایی با درخت ساعت MCU Understanding MCU Clock tree

  • آشنایی با منابع ساعت MCU و HSE Understanding MCU clock sources and HSE

  • ثبت HSI و RCC HSI and RCC registers

  • پیکربندی ساعت محیطی Peripheral clock configuration

  • تمرین: اندازه گیری HSI Exercise : HSI measurements

  • درباره آنالایزر منطقی USB About USB logic analyzer

  • پیاده سازی کد Code implementation

  • تمرین: اندازه گیری HSE Exercise : HSE measurements

آشنایی با جدول MCU Vector Understanding MCU Vector table

  • آشنایی با جدول وکتور MCU Understanding MCU Vector Table

آشنایی با طراحی وقفه MCU، NVIC، مدیریت وقفه Understanding MCU interrupt Design , NVIC, Interrupt handling

  • درک طراحی وقفه MCU، NVIC، مدیریت وقفه: قسمت 1 Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 1

  • درک طراحی وقفه MCU، NVIC، مدیریت وقفه: قسمت 2 Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 2

  • درک طراحی وقفه MCU، NVIC، مدیریت وقفه: قسمت 3 Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 3

اهمیت کلمه کلیدی "فرار". Importance of "Volatile" Keyword

  • اهمیت کلمه کلیدی "فرار": قسمت-1 Importance of "Volatile" Keyword: Part-1

  • اهمیت کلمه کلیدی "فرار" - قسمت 2 Importance of "Volatile" Keyword-Part 2

GPIO باید مفاهیم را بداند GPIO Must know concepts

  • پین GPIO و پورت GPIO GPIO pin and GPIO port

  • GPIO در پشت صحنه GPIO behind the scene

  • حالت ورودی GPIO با حالت امپدانس بالا GPIO input mode with high impedance state

  • حالت ورودی GPIO با حالت بالا/پایین GPIO input mode with pull-up/down state

  • حالت خروجی GPIO با حالت تخلیه باز GPIO output mode with open drain state

  • حالت خروجی GPIO با حالت کشش فشار GPIO output mode with push pull state

  • بهینه سازی مصرف برق ورودی/خروجی Optimizing I/O power consumption

  • درک خود را بیازمایید Test your understanding

ساختار و رجیسترهای برنامه نویسی GPIO GPIO Programming structure and Registers

  • ساختار برنامه نویسی GPIO GPIO programming structure

  • کاوش درگاه GPIO و پین های برد STM32F4xx Discovery Exploring GPIO PORT and pins of STM32F4xx Discovery board

  • ثبت حالت GPIO (برای تنظیم حالت برای پین استفاده می شود) GPIO Mode register(used to set mode for a pin)

  • پیکربندی ورودی پین GPIO میکروکنترلر Input configuration of a Microcontroller's GPIO Pin

  • پیکربندی خروجی یک پین GPIO در حالت Push pull Output Configuration of a GPIO Pin in Push pull mode

  • پیکربندی خروجی یک پین GPIO در حالت تخلیه باز Output Configuration of a GPIO Pin in open drain mode

  • مرحله ورودی یک پین GPIO در طول پیکربندی خروجی Input stage of a GPIO pin during output configuration

  • عملکرد جایگزین پیکربندی پین GPIO Alternate functionality Configuration of a GPIO pin

  • GPIO out put type register توضیح GPIO out put type register explanation

ثبت‌های GPIO: SPEED، PULL UP/DOWN، IDR و ODR GPIO Registers : SPEED, PULL UP/DOWN, IDR and ODR

  • ثبت سرعت خروجی GPIO و کاربرد آن GPIO output speed register and its applicability

  • GPIO ثبت نام را به بالا و پایین بکشید GPIO Pull up and Pull down register

  • ثبت اطلاعات ورودی GPIO GPIO input data register

  • ثبت داده های خروجی GPIO و خلاصه حالت های مختلف مورد بحث قرار گرفت GPIO output data register and summary of various modes discussed

GPIO ثبت عملکرد جایگزین و نمونه استفاده GPIO Alternate functionality register and example of usage

  • تنظیمات عملکرد جایگزین یک پین GPIO با مثال: قسمت 1 Alternate functionality settings of a GPIO pin with example : Part 1

  • تنظیمات عملکرد جایگزین یک پین GPIO با مثال: قسمت 1 Alternate functionality settings of a GPIO pin with example : Part 1

  • درخواست بررسی Request for Review

  • عملکرد جایگزین I/O را پیدا کنید Find Out I/O Alt Functionality

  • درک خود را بیازمایید Test your understanding

  • درک خود را بیازمایید Test your understanding

کنترل ساعت محیطی GPIO GPIO peripheral clock control

  • فعال و غیرفعال کردن ساعت جانبی GPIO Enabling and disabling GPIO peripheral clock

نمای کلی توسعه درایور GPIO و ایجاد پروژه GPIO driver development overview and Project creation

  • نمای کلی توسعه درایور GPIO GPIO driver development overview

  • فایل هدر خاص MCU و محتویات آن MCU Specific header file and its contents

  • ایجاد پروژه جدید و ایجاد هدرفایل خاص MCU New project creation and creating MCU specific headerfile

  • شامل تنظیمات مسیر Include path settings

  • نکته مهم در مورد استفاده از IDE Important note on IDE usage

به روز رسانی فایل هدر خاص MCU با دامنه اتوبوس و جزئیات جانبی Updating MCU specific header file with bus domain and peripheral details

  • نوشتن ماکروهای آدرس پایه C برای حافظه های جاسازی شده MCU: قسمت 1 Writing base address C macros for MCU's embedded memories : Part 1

  • نوشتن ماکروهای آدرس پایه C برای حافظه های جاسازی شده MCU: قسمت 2 Writing base address C macros for MCU's embedded memories : Part 2

  • تعریف آدرس های پایه دامنه های اتوبوس مختلف Defining base addresses of different bus domains

  • تعریف آدرس های پایه لوازم جانبی AHB1 Defining base addresses of AHB1 Peripherals

  • تعریف آدرس های پایه لوازم جانبی APB1 و APB2 Defining base addresses of APB1 and APB2 Peripherals

  • تعریف پایه به نتیجه گیری می پردازد Defining base addresses conclusion

ساختار رجیسترهای جانبی Structuring peripheral registers

  • آدرس رجیسترهای جانبی Address of peripheral registers

  • ساختار رجیسترهای جانبی Structuring peripheral registers

  • ماکروهای تعریف محیطی Peripheral definition macros

Writing Clock ماکروها را فعال و غیرفعال می کند Writing Clock enable and disable macros

  • نوشتن ساعت جانبی ماکروهای C را فعال و غیرفعال می کند Writing peripheral clock enable and disable C Macros

  • پروژه شامل تنظیمات و ساخت است Project include settings and build

الزامات API درایور GPIO و ساختار دسته GPIO driver API requirements and handle structure

  • ایجاد هدر درایور GPIO و فایل منبع Creating GPIO driver header and source file

  • تعریف دسته و ساختار پیکربندی GPIO Defining GPIO handle and configuration structure

  • الزامات API درایور و افزودن نمونه های اولیه API Driver API requirements and adding API prototypes

  • پارامترهای ورودی API درایور و انواع بازگشت Driver API input parameters and return types

  • پیاده سازی و مستندات API خالی درایور Driver empty API implementation and documentation

پیاده سازی API درایور GPIO: کنترل ساعت GPIO driver API Implementation : Clock control

  • پیاده سازی API کنترل ساعت محیطی GPIO Implementation of GPIO peripheral clock control API

پیاده سازی API درایور GPIO: GPIO init و de-init GPIO driver API Implementation : GPIO init and de-init

  • نوشتن ماکروهای قابل تنظیم توسط کاربر Writing user configurable macros

  • پیاده سازی GPIO init API Implementation of GPIO init API

  • پیاده سازی GPIO init API contd. Implementation of GPIO init API contd.

  • پیکربندی رجیسترهای تابع جایگزین Configuring Alternate function registers

  • پیاده سازی GPIO de-init API GPIO de-init API implementation

پیاده سازی API درایور GPIO: داده های GPIO خواندن و نوشتن GPIO driver API Implementation : GPIO data read and write

  • پیاده سازی API های خواندن پورت ورودی GPIO و خواندن پین ورودی Implementation of GPIO input port read and input pin read APIs

  • پیاده سازی API های نوشتن پورت خروجی GPIO و نوشتن پین خروجی Implementation of GPIO output port write and output pin write APIs

  • پیاده سازی GPIO pin toggle API Implementation of GPIO pin toggle API

ورزش Exercise

  • تمرین: USART داده ها را به arduino ارسال می کند Exercise : USART send data to arduino

  • برقراری ارتباط با کامپیوتر از طریق UART communicating with PC over UART

پین GPIO پیکربندی وقفه GPIO pin Interrupt configuration

  • پین GPIO کدگذاری پیکربندی وقفه: قسمت 1 GPIO pin Interrupt configuration coding : Part 1

  • پین GPIO کدگذاری پیکربندی وقفه: قسمت 2 GPIO pin Interrupt configuration coding : Part 2

  • پین GPIO کدگذاری پیکربندی وقفه: قسمت 3 GPIO pin Interrupt configuration coding : Part 3

  • پین GPIO کدگذاری پیکربندی وقفه: قسمت 4 GPIO pin Interrupt configuration coding : Part 4

  • پین GPIO کدگذاری پیکربندی وقفه: قسمت 5 GPIO pin Interrupt configuration coding : Part 5

  • پین GPIO کدگذاری پیکربندی وقفه: قسمت 6 GPIO pin Interrupt configuration coding : Part 6

  • پین GPIO کدگذاری پیکربندی وقفه: قسمت 7 GPIO pin Interrupt configuration coding : Part 7

تمرین: GPIO قطع می کند Exercise : GPIO interrupts

  • تمرین: اجرای وقفه دکمه خارجی Exercise : External button interrupt implementation

  • تمرین: اشکال زدایی برنامه: قسمت 1 Exercise : Debugging the application : Part 1

  • تمرین: اشکال زدایی برنامه: قسمت 2 Exercise : Debugging the application : Part 2

مشخصات پین ورودی/خروجی MCU MCU I/O Pin specifications

  • مشخصات پین STM32 STM32 Pin specifications

  • پین کردن مشخصات فعلی Pin current characteristics

  • سطوح منطقی Logic levels

معرفی SPI و جزئیات اتوبوس SPI introduction and bus details

  • مقدمه ای بر SPI Bus Introduction to SPI Bus

  • مقایسه SPI با سایر پروتکل ها SPI comparison with other protocols

  • اهمیت پین انتخاب برده SPI Importance of SPI slave select pin

  • پیکربندی حداقل باس SPI SPI Minimum bus configuration

  • اصل ارتباط داده های SPI در پشت صحنه SPI behind the scene data communication principle

پیکربندی باس SPI و بلوک دیاگرام عملکردی SPI bus configuration and functional block diagram

  • بحث پیکربندی باس SPI: دوبلکس کامل، نیمه دوبلکس و سیمپلکس SPI bus configuration discussion : full duplex, half duplex and simplex

  • توضیح بلوک دیاگرام عملکردی SPI SPI functional block diagram explanation

تنظیمات و مدیریت پین STM32 NSS STM32 NSS pin settings and management

  • تنظیمات NSS در حالت های اصلی و برده STM32 NSS settings in STM32 master and slave modes

  • مدیریت های برده سخت افزار و نرم افزار STM32 SPI STM32 SPI hardware and software slave managements

بحث SPI CPOL و CPHA SPI CPOL and CPHA discussion

  • بحث SPI CPOL و CPHA SPI CPOL and CPHA discussion

  • مثال شکل موج SPI CPOL و CPHA SPI CPOL and CPHA waveform example

بحث ساعت سریال SPI SPI serial clock discussion

  • لوازم جانبی SPI میکروکنترلر شما SPI peripherals of your Microcontroller

  • فرکانس ساعت سریال SPI SPI Serial clock frequency

SPI Driver: الزامات API و ساختار پیکربندی SPI Driver : API requirements and configuration structure

  • الزامات و موارد پیکربندی SPI API SPI API requirements and configuration items

  • به روز رسانی فایل هدر خاص MCU با جزئیات مربوط به SPI updating MCU specific header file with SPI related details

  • SPI در حال افزودن نمونه های اولیه API به فایل هدر درایور SPI adding API prototypes to driver header file

پیاده سازی API درایور SPI: کنترل ساعت SPI Driver API Implementation : Clock control

  • پیاده سازی API کنترل ساعت محیطی SPI Implementation of SPI peripheral clock control API

SPI Driver API Implementation: SPI init SPI Driver API Implementation : SPI init

  • گزینه های پیکربندی کاربر SPI برای نوشتن و ثبت ماکروهای تعریف بیت SPI user configuration options writing and register bit definition macros

  • پیاده سازی SPI init API: قسمت 1 Implementation of SPI init API : Part 1

  • پیاده سازی SPI init API: قسمت 2 Implementation of SPI init API : Part 2

پیاده سازی API درایور SPI: داده ها را ارسال کنید SPI Driver API Implementation : Send Data

  • پیاده سازی SPI send data API: قسمت 1 Implementation of SPI send data API : Part 1

  • پیاده سازی SPI send data API: قسمت 2 Implementation of SPI send data API : Part 2

  • پیاده سازی SPI send data API: قسمت 3 Implementation of SPI send data API : Part 3

  • پیاده سازی SPI send data API: قسمت 4 Implementation of SPI send data API : Part 4

تمرین: SPI Send Data Exercise : SPI Send Data

  • تمرینی برای آزمایش SPI Send Data API Exercise to test SPI Send Data API

  • پیدا کردن پین های میکروکنترلر برای برقراری ارتباط از طریق SPI2 Finding out microcontroller pins to communicate over SPI2

  • تمرین: اجرای کد: قسمت 1 Exercise : Code implementation : Part 1

  • تمرین: اجرای کد: قسمت 2 Exercise : Code implementation : Part 2

  • تمرین: اجرای کد: قسمت 3 Exercise : Code implementation : Part 3

  • تمرین: تست کردن Exercise : Testing

تمرین: ارتباط استاد STM32 و Arduino Slave Exercise : STM32 master and Arduino Slave communication

  • تمرین: ارتباط با آردوینو اسلیو Exercise : Communicating with Arduino slave

  • تمرین: کدگذاری قسمت 1 Exercise : Coding Part 1

  • تمرین: کدگذاری قسمت 2 Exercise : Coding Part 2

  • تمرین: کدگذاری قسمت 3 Exercise : Coding Part 3

  • تمرین: تست کردن Exercise : Testing

SPI Driver API: دریافت اطلاعات SPI Driver API : Receive data

  • اجرای API دریافت داده های SPI: قسمت 1 Implementation of SPI data receive API : Part 1

  • اجرای API دریافت داده های SPI: قسمت 2 Implementation of SPI data receive API : Part 2

تمرین: SPI داده ها را دریافت می کند Exercise : SPI receive data

  • تمرین: ارتباط مبتنی بر فرمان و پاسخ SPI Exercise : SPI command and response based communication

  • تمرین: کدگذاری قسمت 1 Exercise : Coding Part 1

  • تمرین: کدگذاری قسمت 2 Exercise : Coding Part 2

  • تمرین: کدگذاری قسمت 3 Exercise : Coding Part 3

SPI قطع می شود SPI interrupts

  • SPI جانبی پردازنده را قطع می کند SPI peripheral interrupting the processor

APIهای حالت وقفه SPI SPI interrupt mode APIs

  • اجرای API حالت وقفه SPI و تغییرات در ساختار دسته SPI interrupt mode API implementation and changes to handle structure

  • SPI داده ها را با اجرای API وقفه ارسال می کند SPI send data with interrupt API implementation

  • SPI داده ها را با اجرای وقفه دریافت می کند SPI receive data with interrupt implementation

SPI Driver API: IRQ handling SPI Driver API : IRQ handling

  • SPI: مدیریت وقفه ها SPI : Handling of interrupts

  • پیاده سازی کنترل کننده SPI IRQ: قسمت 1 SPI IRQ handler implementation : Part 1

  • پیاده سازی کنترل کننده SPI IRQ: قسمت 2 SPI IRQ handler implementation : Part 2

  • پیاده سازی کنترل کننده SPI IRQ: قسمت 3 SPI IRQ handler implementation : Part 3

  • ورزش Exercise

مشکلات رایج در SPI Common problems in SPI

  • مشکلات رایج در SPI و نکات اشکال زدایی Common problems in SPI and Debugging Tips

معرفی I2C و سیگنال های I2C I2C introduction and I2C signals

  • معرفی I2C و تفاوت با SPI I2C introduction and differences with SPI

  • سیگنال های I2C SDA و SCL I2C SDA and SCL signals

حالت های I2C I2C modes

  • حالت استاندارد و سریع I2C I2C standard and fast mode

آشنایی با پروتکل I2C Understanding I2C Protocol

  • توضیح پروتکل I2C I2C Protocol explanation

  • شرایط شروع و توقف I2C I2C START and STOP conditions

  • I2C ACK و NACK I2C ACK and NACK

  • اعتبار داده های I2C I2C Data validity

  • آزمون SPI و I2C Quiz SPI and I2C

ارتباط استاد و برده I2C I2C master and slave communication

  • نمونه استاد نوشتن به برده Example of master writing to slave

  • درک شرایط START مکرر Understanding repeated START condition

بلوک دیاگرام عملکردی STM32 I2C STM32 I2C functional block diagram

  • بلوک دیاگرام عملکردی I2C I2C functional block diagram

الزامات API درایور I2C و ساختارهای پیکربندی I2C driver API requirements and config structures

  • الزامات API درایور I2C I2C driver API requirements

  • دسته و ساختار پیکربندی I2C I2C handle and configuration structure

  • ماکروهای قابل تنظیم کاربر I2C I2C user configurable macros

  • نمونه های اولیه I2C API I2C API prototypes

  • مراحل پیاده سازی اولیه I2C Steps for I2C init implementation

بحث ساعت سریال I2C (SCLK) I2C serial clock discussion(SCLK)

  • تنظیمات ساعت سریال I2C با توضیح I2C serial clock settings with explanation

  • کشش ساعت Clock Stretching

I2C Driver API: I2C Init I2C Driver API : I2C Init

  • پیاده سازی I2C init API: قسمت 1 Implementation of I2C init API : Part 1

  • پیاده سازی I2C init API: قسمت 2 Implementation of I2C init API : Part 2

  • پیاده سازی I2C init API: قسمت 3 Implementation of I2C init API : Part 3

I2C Driver API: I2C Master داده ها را ارسال می کند I2C Driver API : I2C Master send data

  • نمودار توالی انتقال I2C برای ارسال اصلی داده ها I2C transfer sequence diagram for master sending data

  • پیاده‌سازی API ارسال داده اصلی I2C: قسمت 1 Implementation of I2C master sending data API : Part 1

  • اجرای API اصلی ارسال داده I2C: قسمت 2 Implementation of I2C master sending data API : Part 2

  • پیاده‌سازی API ارسال داده اصلی I2C: قسمت 3 Implementation of I2C master sending data API : Part 3

  • پیاده‌سازی API ارسال داده اصلی I2C: قسمت 4 Implementation of I2C master sending data API : Part 4

  • پیاده‌سازی API ارسال داده اصلی I2C: قسمت 5 Implementation of I2C master sending data API : Part 5

مقاومت بالا آمدن I2C، زمان افزایش و ظرفیت باس I2C pull up resistance , rise time and bus capacitance

  • بحث مقاومت I2C، زمان افزایش و ظرفیت باس بالا می رود I2C pull up resistance , rise time and bus capacitance discussion

  • محاسبه زمان افزایش I2C I2C rise time calculation

I2C Driver API: I2C Master داده ها را دریافت می کند I2C Driver API : I2C Master receive data

  • نمودار توالی انتقال I2C برای دریافت اصلی داده ها I2C transfer sequence diagram for master receiving data

  • تکلیف: I2C استاد اجرای API داده را دریافت می کند Assignment : I2C master receive data API implementation

  • پیاده سازی I2C Master Receive Data API : قسمت 1 Implementation of I2C master receive data API : Part 1

  • پیاده سازی I2C Master Receive Data API: Part 2 Implementation of I2C master receive data API : Part 2

وقفه های I2C و شماره های IRQ I2C Interrupts and IRQ numbers

  • I2C IRQ و قطع بحث I2C IRQ and interrupt discussion

  • خطاهای I2C و اهمیت پرچم BUSY I2C errors and importance of BUSY flag

  • اصلاح ساختار دسته I2C I2C handle structure modification

  • I2C اضافه کردن ماکروهای مرتبط با وقفه و APIهای وقفه I2C adding interrupt related macros and interrupt APIs

API های مبتنی بر وقفه I2C I2C interrupt based APIs

  • تکلیف: اجرای APIهای I2C قطع می شود Assignment : I2C interrupt APIs implementation

  • پیاده سازی API های مبتنی بر وقفه I2C Implementation of I2C interrupt based APIs

پیاده سازی کنترل کننده I2C IRQ I2C IRQ handler implementation

  • اجرای کنترلر I2C IRQ قسمت 1 I2C IRQ handler implementation Part 1

  • اجرای کنترلر I2C IRQ قسمت 2 I2C IRQ handler implementation Part 2

  • اجرای کنترلر I2C IRQ قسمت 3 I2C IRQ handler implementation Part 3

  • اجرای کنترلر I2C IRQ قسمت 4 I2C IRQ handler implementation Part 4

  • اجرای کنترلر I2C IRQ قسمت 5 I2C IRQ handler implementation Part 5

  • اجرای کنترلر I2C IRQ قسمت 6 I2C IRQ handler implementation Part 6

  • اجرای کنترلر I2C IRQ قسمت 7 I2C IRQ handler implementation Part 7

  • اجرای کنترلر I2C IRQ قسمت 8 I2C IRQ handler implementation Part 8

  • اجرای کنترل کننده خطای I2C IRQ I2C error IRQ handler implementation

برنامه نویسی برده I2C I2C slave programming

  • بحث برنامه نویسی برده I2C I2C slave programming discussion

  • نمودار توالی انتقال I2C برای فرستنده برده I2C transfer sequence diagram for slave transmitter

  • پشتیبانی از I2C Slave در درایور I2C slave support in driver

مشکلات رایج در I2C Common problems in I2C

  • مشکلات رایج در I2C و نکات رفع اشکال Common Problems in I2C and Debugging Tips

UART Essentials UART Essentials

  • معرفی UART در مقابل USART Intro UART vs USART

  • درک پین های UART Understanding UART pins

  • فرمت های فریم UART UART frame formats

  • نرخ باد Baud Rate

  • بیت های همگام سازی Synchronization bits

  • برابری UART UART Parity

بلوک عملکردی UART و ساعت محیطی UART functional block and Peripheral Clock

  • کاوش بلوک عملکردی UART Exploring UART functional block

  • ساعت محیطی UART UART peripheral clock

ارتباط UART UART Communication

  • فرستنده UART UART Transmitter

  • گیرنده Uart Uart Receiver

  • تشخیص بیت شروع UART UART Start bit Detection

توسعه درایور USART USART driver development

  • موارد قابل تنظیم توسعه درایور USART USART driver development confiugrable items

  • نمونه های اولیه API های درایور USART USART driver APIs prototypes

  • گزینه های پیکربندی و ثبت نام های USART Configuration options and USART registers

  • USART Driver API: USART Init USART Driver API : USART Init

  • USART Driver API: تخصیص Tx و Rx USART Driver API : Tx and Rx assignment

  • USART Driver API: ارسال داده USART Driver API : Send data

نمونه برداری بیش از حد USART و بادریت USART oversampling and baudrate

  • نمونه برداری بیش از حد USART USART oversampling

  • محاسبه نرخ Baud USART قسمت 2 USART Baud rate calculation Part-2

  • محاسبه نرخ Baud USART قسمت 2 USART Baud rate calculation Part-2

  • کدنویسی بادریت USART USART baudrate coding

USART قطع می کند USART interrupts

  • USART بحث را قطع می کند USART interrupt discussion

  • ورزش Exercise

  • پیاده سازی کنترل کننده USART IRQ: تخصیص USART IRQ handler implementation : Assignment

تمرین: RTC روی LCD Exercise : RTC on LCD

  • ساعت واقعی بر روی LCD Real time clock on LCD

  • DS1307 RTC رجیستر می کند DS1307 RTC registers

  • پیاده سازی کد RTC RTC code implementation

  • کدگذاری RTC برای زمان و تاریخ تعیین شده RTC coding for set time and date

  • کدگذاری RTC برای دریافت زمان و تاریخ RTC coding for get time and date

  • توابع دستکاری BCD و باینری BCD and Binary manipulation functions

  • نوشتن برنامه RTC Writing RTC application

  • RTC و Systick RTC and Systick

  • اتصالات LCD LCD connections

  • اهمیت پین های LCD Significance of LCD pins

  • مقداردهی اولیه LCD LCD initialization

  • نمودار جریان اولیه سازی LCD LCD initialization flowchart

  • ارسال فرمان و داده به LCD Sending command and data to LCD

  • ایجاد کد فرمان LCD Creating LCD command code

  • آزمایش کردن Testing

سخنرانی جایزه BONUS LECTURE

  • سخنرانی جایزه BONUS LECTURE

نمایش نظرات

نظری ارسال نشده است.

آموزش تسلط بر میکروکنترلر و توسعه درایورهای جاسازی شده
خرید اشتراک و دانلود خرید تکی و دانلود | 320,000 تومان (5 روز مهلت دانلود) در صورت خرید اشتراک، این آموزش بدلیل حجم بالا معادل 2 دوره است و 2 دوره از اشتراک شما کم می شود. زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
28.5 hours
278
Udemy (یودمی) udemy-small
14 فروردین 1402 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
47,355
4.6 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

FastBit Embedded Brain Academy FastBit Embedded Brain Academy

روی Firmware و Embedded Engineering کار می کند

Kiran Nayak Kiran Nayak

نرم افزار تعبیه شده

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.