آموزش بررسی عمیق آردوینو: AVR برای حرفه‌ای‌ها - آخرین آپدیت

دانلود Arduino under the Hood - AVR for Professionals

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

از C، Makefiles و کامپایلر تا تمامی رجیسترها، قطعات جانبی، فیوزها، ترفندهای کاهش مصرف برق، ISP، DebugWIRE و LockBits

بهینه‌سازی برنامه و نرم‌افزار برای کاهش مصرف برق

حذف کتابخانه آردوینو: ATmega چگونه از درون کار می‌کند؟

تمامی قطعات جانبی: تایمرها، Watchdog، ریست، Brown-Out، رجیسترهای مدیریت کلاک، ADC، سنسور دما (داخلی) و غیره

محاسبات کارآمد برای سیستم‌های نهفته و پلتفرم آردوینو

اشاره‌گرها به رجیسترها در C: راهنمای آسان دسترسی به رجیسترها. کد خود را کارآمد کنید.

مراحل در زنجیره کامپایلر GNU: سفر از کد منبع تا فایل اجرایی

ساده‌سازی فرآیند کامپایل: Makefile چیست و چگونه از آن استفاده کنیم؟

پروتکل‌های ارتباطی (TWI/I2C, SPI U(S)ART, debugWIRE, Bit Banging) سیستم‌های نهفته: MCU چگونه ارتباط برقرار می‌کند و چگونه آن را پیکربندی کنیم؟

چگونه AVR را با استفاده از debugWIRE اشکال‌زدایی کنیم؟ (چگونه محتویات رجیستر را بخوانیم، گام به گام برنامه را اجرا کنیم؟)

هدف Boot Loader چیست؟ چگونه AVR را بدون آن برنامه‌نویسی کنیم؟ (از طریق ISP)

از مالکیت فکری (IP) خود محافظت کنید: فیوزها و قفل‌های AVR

مهارت‌های توسعه سیستم‌های نهفته خود را ارتقا دهید و با اطمینان گام‌های بعدی را بردارید.

مستندات گسترده است، اما ترسناک نیست. بیاموزید چگونه اطلاعات مورد نیاز خود را به دست آورید.

پیش نیازها:

  • دانش کاری در C یا آردوینو
  • مهارت‌های لحیم‌کاری/کار با بِرِدبورد برای مثال‌ها و تمرین‌ها
  • توانایی کار با مولتی‌متر و خواندن دیاگرام‌های مدار

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

مزیت بزرگ پلتفرم AVR این است که بسیاری از مفاهیم معرفی شده در این دوره برای سایر میکروکنترلرها نیز کاربرد دارند. بنابراین، مجموعه‌ای کامل از میکروکنترلرها، از ATtiny کوچک تا سری ATmega بزرگتر، قابل دسترسی می‌شوند. ATmega328P استفاده شده در این دوره تنها یک مثال است و دانش کسب شده برای بسیاری از سیستم‌های نهفته که محدود به پلتفرم آردوینو نیستند، قابل اعمال است. این امر با جلسات عملی و تمرین‌ها که در آن‌ها مشکلات واقعی حل می‌شوند، تقویت می‌گردد. در صورت بروز سوالات در حین پیاده‌سازی، دانشجو می‌تواند به راهنمایی‌ها و نکات نگاهی بیندازد و اگر هیچ چیز کار نکرد، به راه‌حل‌ها با توضیحات فراوان در کد منبع نیز دسترسی دارد.

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

  1. مجموعه کامپایلر GNU و آنچه در هر مرحله و چرا اتفاق می‌افتد

  2. مقدمه‌ای کوتاه بر C و اشاره‌گرها

  3. انتقال از کتابخانه آردوینو به AVR: تجمل کمتر، اجرای سریع‌تر، منابع کمتر

  4. چگونه با Makefiles کامپایل کنیم؟ اهداف، قوانین و میانبرها

  5. اشتباهات رایج در C و نحوه اجتناب از آن‌ها

    1. بردارهای حمله

  6. قطعات جانبی:

    1. تایمرها، شمارنده‌ها و مدولاسیون عرض پالس (PWM)

    2. وقفه‌ها (Interrupts)

  7. پروتکل‌های ارتباطی

    1. UART/USART

    2. I2C/TWI

    3. SPI

    4. DHT و 1-Wire

    5. USI

    6. چگونه پروتکل‌های دیگر، که قبلاً ناسازگار و پشتیبانی‌نشده بودند را شبیه‌سازی کنیم؟

  8. مبدل آنالوگ به دیجیتال (ADC)

    1. چگونه کار می‌کند؟

    2. اندازه‌گیری دما بدون قطعات خارجی

    3. اندازه‌گیری سطح باتری با ADC

  9. مقایسه‌گر آنالوگ

  10. حافظه‌های غیر فرار

    1. فلش

      1. چگونه از فلش (حافظه برنامه) برای ثابت‌ها استفاده کنیم؟

      2. چگونه از فلش در حین اجرای برنامه استفاده کنیم؟

    2. EEPROM

    3. فیوزها

      1. منابع کلاک

      2. بیت‌های قفل (Lock Bits)

      3. اشکال‌زدایی

  11. راه‌اندازی AVR روی بِرِدبورد

  12. صرفه‌جویی در مصرف برق

    1. حالت Sleep

    2. فرکانس کلاک پویا

    3. خاموش کردن قطعات غیرضروری

    4. منابع بیدار شدن

  13. اشکال‌زدایی (با مثال‌های عملی)

    1. شبیه‌سازها

    2. JTAG

    3. debugWIRE

  14. فصل جایزه: اجرای موازی وظایف

پس از اتمام این دوره، دانشجو موفق تجربه کافی را برای ارزیابی نرم‌افزارهای موجود و همچنین ایجاد پیاده‌سازی‌هایی که به شدت بهینه شده‌اند تا روی میکروکنترلرهای کوچک مستقر شوند و هر ذره از عملکرد و عمر باتری را استخراج کنند، خواهد داشت.


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

Welcome

  • خوش آمدید! Welcome!

  • به‌روزرسانی‌ها در شبکه‌های اجتماعی Updates on Social Media

  • فصل جایزه Bonus Chapter

مجموعه کامپایلر گنو The GNU Compiler Collection

  • مقدمه Introduction

  • مقدمه Introduction

  • پیش‌پردازنده The Preprocessor

  • دیباگر The Debugger

  • دیباگر The Debugger

  • کامپایلر The Compiler

  • اسمبلر The Assembler

  • لینکر The Linker

  • لینکر The Linker

  • کپی شیء The Object Copy

  • کپی شیء The Object Copy

  • آپلودر The Uploader

  • خلاصه Summary

  • تمرین Exercise

مقدمه‌ای بر C Introduction into C

  • انواع داده پایه و جریان کنترل Basic Types and Control Flow

  • انواع داده پایه و جریان کنترل Basic Types and Control Flow

  • آرایه‌ها و اشاره‌گرها Arrays and Pointers

  • تمرین: الحاق رشته Exercise: String Concatenation

  • Enum، Union و Struct Enum, Union, and Struct

  • تمرین‌ها: اندازه‌های نوع Exercises: Type Sizes

  • Enum، Union و Struct The Enum, Union, and Struct

  • فراخوانی با مقدار/ارجاع Call by Value/Reference

  • تمرین: فراخوانی با مقدار/ارجاع Exercise: Call by Value/Reference

آردوینو به AVR Arduino -> AVR

  • آردوینو به AVR Arduino -> AVR

  • آردوینو به AVR Arduino -> AVR

  • عملکرد داخلی یک پین چگونه است؟ How does a Pin work internally?

  • عملکرد داخلی یک پین چگونه است؟ How does a Pin work internally?

  • فضای حافظه، رجیسترها و اشاره‌گرها Memory Space, Registers, and Pointers

  • فضای حافظه، رجیسترها و اشاره‌گرها Memory Space, Registers, and Pointers

  • تمرین: فضای حافظه، رجیسترها و اشاره‌گرها Exercise: Memory Space, Registers, and Pointers

  • کتابخانه AVR The AVR Library

  • کتابخانه AVR The AVR Library

  • تمرین: کتابخانه AVR Exercise: The AVR Library

Makefile Makefile

  • چرا Makefile؟ اصول آن Why Makefile? Its Basics

  • چرا Makefile؟ اصول آن Why Makefile? Its Basics

  • بیایید بریانی بپزیم - مثالی کاربردی و خوشمزه برای Makefiles Let's cook Biryani - A practical and tasty Example for Makefiles

  • بیایید بریانی بپزیم - مثالی کاربردی و خوشمزه برای Makefiles Let's cook Biryani - A practical and tasty Example for Makefiles

  • AVR-GCC The AVR-GCC

  • AVR-GCC The AVR-GCC

  • main() و دستورات #include کجا هستند؟ Where is the main() and #include directives?

  • تمرین: Makefile و چشمک‌زن فقط با استفاده از کتابخانه AVR Exercise: Makefile and Blink using only the AVR Library

  • آپلود با استفاده از AVRDUDE Uploading using AVRDUDE

  • تمرین: Makefile و آپلود Exercise: Makefile and Upload

  • خلاصه Summary

اشتباهات رایج در C Easy Mistakes in C

  • مثال کلاسیک: سرریز بافر Classic Example: Buffer Overflow

  • مثال کلاسیک: سرریز بافر Classic Example: Buffer Overflow

  • دموی سرریز بافر و مقدمه‌ای بر GDB Buffer Overflow Demo and Introduction into GDB

  • کاهش سرریز بافر Buffer Overflow Mitigation

  • تمرین: printf ناامن؟ Exercise: Unsafe printf?

  • تمرین: سرریز بافر و GDB Exercise: Buffer Overflow and GDB

  • استاندارد کدنویسی SEI CERT C/C++ SEI CERT C/C++ Coding Standard

  • استاندارد کدنویسی SEI CERT C/C++ SEI CERT C/C++ Coding Standard

  • DCL30-C (اعلام اشیاء با دوره‌های ذخیره‌سازی مناسب) DCL30-C (Declare Objects with Appropriate Storage Durations)

  • DCL30-C (اعلام اشیاء با دوره‌های ذخیره‌سازی مناسب) DCL30-C (Declare Objects with Appropriate Storage Durations)

  • تمرین: DCL30-C (اعلام اشیاء با دوره‌های ذخیره‌سازی مناسب) Exercise: DCL30-C (Declare Objects with Appropriate Storage Durations)

  • EXP33-C (حافظه غیراولیه را نخوانید) EXP33-C (Do not read uninitialized Memory)

  • EXP33-C (حافظه غیراولیه را نخوانید) EXP33-C (Do not read uninitialized Memory)

  • EXP34-C (اشاره‌گرهای NULL را از ارجاع خارج نکنید) EXP34-C (Do not dereference NULL Pointers)

  • EXP34-C (اشاره‌گرهای NULL را از ارجاع خارج نکنید) EXP34-C (Do not dereference NULL Pointers)

  • EXP42-C (داده‌های پدینگ را مقایسه نکنید) EXP42-C (Do not compare padding Data)

  • EXP42-C (داده‌های پدینگ را مقایسه نکنید) EXP42-C (Do not compare padding Data)

  • STR31-C (فضای ذخیره‌سازی برای رشته‌ها دارای فضای کافی برای داده و NULL است) STR31-C (Storage for Strings has sufficient Space for Data and NULL)

  • STR31-C (فضای ذخیره‌سازی برای رشته‌ها دارای فضای کافی برای داده و NULL است) STR31-C (Storage for Strings has sufficient Space for Data and NULL)

  • MEM30-C (به حافظه آزاد شده دسترسی پیدا نکنید) MEM30-C (Do not access freed Memory)

  • MEM30-C (به حافظه آزاد شده دسترسی پیدا نکنید) MEM30-C (Do not access freed Memory)

  • FIO47-C (از رشته‌های فرمت معتبر استفاده کنید) FIO47-C (Use valid Format Strings)

  • ENV33-C (تابع system() را فراخوانی نکنید) ENV33-C (Do not call system())

  • ENV33-C (تابع system() را فراخوانی نکنید) ENV33-C (Do not call system())

  • MSC30-C/MSC32-C (تولیدکننده‌های اعداد شبه‌تصادفی) MSC30-C/MSC32-C (Pseudorandom Number Generators)

  • MSC30-C/MSC32-C (تولیدکننده‌های اعداد شبه‌تصادفی) MSC30-C/MSC32-C (Pseudorandom Number Generators)

  • FLP30-C (از متغیرهای ممیز شناور به عنوان شمارنده حلقه استفاده نکنید) FLP30-C (Do not use Floating-Point Variables as Loop Counters)

  • FLP30-C (از متغیرهای ممیز شناور به عنوان شمارنده حلقه استفاده نکنید) FLP30-C (Do not use Floating-Point Variables as Loop Counters)

  • خلاصه Summary

تایمرها، شمارنده‌ها و PWM (مدولاسیون عرض پالس) Timers, Counters, and PWM (Pulse Width Modulation)

  • مقدمه‌ای بر تایمرها/شمارنده‌ها Introduction into Timers/Counters

  • مقدمه‌ای بر تایمرها/شمارنده‌ها Introduction into Timers/Counters

  • کلاک‌های تایمر و پیش‌مقیاس‌کننده‌ها (CSn2:0)، پین‌های Tn و TOSC Timer Clocks and Prescalers (CSn2:0), Tn and TOSC pins

  • کلاک‌های تایمر و پیش‌مقیاس‌کننده‌ها (CSn2:0)، پین‌های Tn و TOSC Timer Clocks and Prescalers (CSn2:0), Tn and TOSC pins

  • حالت عادی Normal Mode

  • حالت عادی Normal Mode

  • حالت پاک کردن تایمر در تطابق مقایسه (CTC) Clear Timer on Compare Match (CTC) Mode

  • حالت پاک کردن تایمر در تطابق مقایسه (CTC) Clear Timer on Compare Match (CTC) Mode

  • تمرین: حالت پاک کردن تایمر در تطابق مقایسه (CTC) Exercise: Clear Timer on Compare Match (CTC) Mode

  • مدولاسیون عرض پالس سریع (PWM) Fast Pulse Width Modulation (PWM)

  • تمرین: مدولاسیون عرض پالس سریع (PWM) Exercise: Fast Pulse Width Modulation (PWM)

  • مدولاسیون عرض پالس با فاز صحیح (PWM) Phase Correct Pulse Width Modulation (PWM)

  • مدولاسیون عرض پالس با فاز و فرکانس صحیح (PWM) Phase and Frequency Correct Pulse Width Modulation (PWM)

  • حالت‌های تایمر Timer Modes

  • تفاوت‌های تایمرها و واحد ضبط ورودی Differences of the Timers and the Input Capture Unit

  • تفاوت‌های تایمرها و واحد ضبط ورودی Differences of the Timers and the Input Capture Unit

  • خلاصه Summary

IRQ (وقفه‌ها) IRQ (Interrupts)

  • وقفه‌ها در مقابل نظرسنجی Interrupts versus Polling

  • مثال عملی: وقفه در مقابل نظرسنجی Practical Example: Interrupt versus Polling

  • وقفه در مقابل نظرسنجی Interrupt versus Polling

  • زیربرنامه وقفه (ISR) Interrupt Subroutine (ISR)

  • فعال‌سازی وقفه‌های محلی و جهانی Activation of local and global Interrupts

  • جدول بردار وقفه (IVT) Interrupt Vector Table (IVT)

  • جدول بردار وقفه (IVT) Interrupt Vector Table (IVT)

  • دموی عملی: جدول بردار وقفه (IVT) Practical Demo: Interrupt Vector Table (IVT)

  • صفت volatile چیست؟ What is the attribute volatile?

  • وقفه‌های داخلی و خارجی، PCINTn و گروه‌ها، INTn Internal and External Interrupts, PCINTn and Groups, INTn

  • وقفه‌های داخلی و خارجی، PCINTn و گروه‌ها، INTn Internal and External Interrupts, PCINTn and Groups, INTn

  • اولویت وقفه‌ها Priority of Interrupts

  • وقفه‌های تودرتو Nested Interrupts

  • وقفه‌های تودرتو Nested Interrupts

  • تمرین کدنویسی در زیربرنامه‌های وقفه Code Coding Practice in Interrupt Subroutines

  • خلاصه Summary

  • تمرین: صدای ATmega Exercise: ATmega Sound

ارتباط: فرستنده گیرنده ناهمزمان جهانی (UART, USART) Communication: The Universal Asynchronous Receiver Transmitter (UART, USART)

  • پروتکل UART The UART Protocol

  • پروتکل UART/USART The UART/USART Protocol

  • پروتکل USART The USART Protocol

  • پروتکل USART The USART Protocol

  • بیت پاریتی The Parity Bit

  • بیت پاریتی The Parity Bit

  • دوبلکس، نیمه‌دوبلکس و سیمپلکس در UART/USART Duplex, Half-Duplex and Simplex in UART/USART

  • UART: بلوک‌ها (تولیدکننده کلاک، فرستنده، گیرنده، پیکربندی) UART: The Blocks (Clock Generator, Transmitter, Receiver, Configuration)

  • UCSRnA، UCSRnB و UCSRnC UCSRnA, UCSRnB, and UCSRnC

  • پیکربندی سرعت انتقال (UBRRn, U2Xn) Configuration of the Transfer Speed (UBRRn, U2Xn)

  • مثال: بیایید یک UART سیمپلکس کدنویسی کنیم Example: Let's code a Simplex UART

  • تمرین: UART Exercise: UART

  • خلاصه Summary

  • تمرین: UART و اعداد صحیح Exercise: UART and integers

ارتباط: I2C Communication: I2C

  • مقدمه‌ای بر I2C/TWI Introduction into I2C/TWI

  • سیستم باس I2C/TWI The I2C/TWI Bus System

  • انتقال: Master به Slave و بالعکس Transfer: Master to Slave and vice versa

  • آدرس‌دهی I2C/TWI I2C/TWI Addressing

  • آدرس‌دهی I2C/TWI I2C/TWI Addressing

  • حل تضاد در I2C/TWI Conflict Resolution in I2C/TWI

  • حل تضاد در I2C/TWI Conflict resolution in I2C/TWI

  • I2C/TWI در ATmega328P (رجیسترها، کنترل، وضعیت) I2C/TWI in the ATmega328P (Registers, Control, Status)

  • I2C/TWI در ATmega328P (رجیسترها، کنترل، وضعیت) I2C/TWI in the ATmega328P (Registers, Control, Status)

  • I2C: جلسه عملی، قسمت 1 (انتخاب اندازه‌های مقاومت Pull-Up) I2C: Practical Session, Part 1 (Coosing Pull-Up Resistor Sizes)

  • I2C: جلسه عملی، قسمت 2 (I2C Master) I2C: Practical Session, Part 2 (I2C Master)

  • I2C: جلسه عملی، قسمت 2 (I2C Master) I2C: Practical Session, Part 2 (I2C Master)

  • I2C: جلسه عملی، قسمت 3 (ساخت یک کتابخانه استاتیک) I2C: Practical Session, Part 3 (Building a static Library)

  • تمرین: اسکنر آدرس I2C Exercise: I2C Address Scanner

  • تمرین: خواندن Master I2C Exercise: I2C Master Read

  • خلاصه Summary

ارتباط: رابط جانبی سریال (SPI) Communication: Serial Peripheral Interface (SPI)

  • مقدمه‌ای بر SPI (رابط جانبی سریال) Introduction into SPI (Serial Peripheral Interface)

  • توپولوژی‌های SPI SPI Topologies

  • رجیستر کنترل SPI (SPCR) The SPI Control Register (SPCR)

  • رجیستر وضعیت SPI (SPSR) و رجیستر داده SPI (SPDR) The SPI Status Register (SPSR) and the SPI Data Register (SPDR)

  • جلسه عملی: Master SPI و Slave SPI Practical Session: Master SPI and Slave SPI

  • تمرین: انتقال داده SPI موازی Exercise: Parallel SPI Data Transfer

  • خلاصه Summary

ارتباط: 1-Wire Communication: 1-Wire

  • DHT11/22 یک دستگاه 1-Wire نیست The DHT11/22 is not a 1-Wire device

  • توان انگل‌گونه در 1-Wire Parasitic Power in 1-Wire

  • باس 1-Wire The 1-Wire Bus

  • پروتکل 1-Wire The 1-Wire Protocol

  • دستور Search ROM The Search ROM Command

  • پشتیبانی کتابخانه و اسیلوسکوپ Library Support and Oscilloscope

  • تمرین قسمت اول: چگونه از اسیلوسکوپ Atmega استفاده کنیم؟ Exercise Part I: How to use the Atmega Oscilloscope?

  • تمرین قسمت دوم: پیاده‌سازی یک DHT Master Exercise Part II: Implement a DHT Master

ارتباط: رابط سریال جهانی (USI در ATtiny) Communication: the Universal Serial Interface (USI in the ATtiny)

  • 1-Wire و UART 1-Wire and UART

  • UART، I2C و SPI به USI UART, I2C, and SPI to USI

  • USI در ATtiny USI in ATtiny

مبدل آنالوگ به دیجیتال (ADC) Analog-to-Digital Converter (ADC)

  • دنیای آنالوگ (مقدمه‌ای بر مبدل آنالوگ به دیجیتال [ADC]) The Analog World (Analog-to-Digital Converter [ADC] Introduction)

  • ADC: ولتاژهای مرجع ADC: Reference Voltages

  • ADC: حسگر دما و کالیبراسیون آن ADC: The Temperature Sensor and its Calibration

  • ADC: مرجع Bandgap (اندازه‌گیری وضعیت باتری) ADC: The Bandgap Reference (Measuring the State of the Battery)

  • ADC در AVR: ADMUX (قسمت 1، ولتاژ مرجع) ADC in the AVR: ADMUX (Part 1, Reference Voltage)

  • ADC در AVR: ADMUX (قسمت 2، کانال‌های ورودی) ADC in the AVR: ADMUX (Part 2, Input Channels)

  • ADC در AVR: ADSC در ADCSRA (رجیستر پیکربندی و وضعیت A) ADC in the AVR: ADSC in ADCSRA (Configuration and Status Register A)

  • ADC در AVR: نرخ نمونه‌برداری ADC in the AVR: Sample Rate

  • ADC در AVR: منابع راه‌اندازی خودکار (ADATE) ADC in the AVR: Autotriggering Sources (ADATE)

  • ADC در AVR: منابع راه‌اندازی خودکار (ADATE) ADC in the AVR: Autotriggering Sources (ADATE)

  • ADC در AVR: کاهش نویز/توان (DIDR) و تصادفی بودن ADC in the AVR: Reducing Noise/Power (DIDR) and Randomness

  • تمرین: اسیلوسکوپ دیجیتال ATmega Exercise: The ATmega Digital Oscilloscope

  • تمرین: اسیلوسکوپ آنالوگ ATmega Exercise: The ATmega Analogue Oscilloscope

مقایسه‌کننده آنالوگ (AC) Analog Comparator (AC)

  • مقایسه‌کننده آنالوگ در ATmega The Analog Comparator in the ATmega

  • تمرین: حسگرهای مجاورت با مقایسه‌کننده آنالوگ Exercise: Proximity Senors with the Analog Comparator

  • تمرین جایگزین: یافتن ولتاژ مرجع Bandgap Alternative Exercise: Find the Bandgap Reference Voltage

فلش و EEPROM در ATmega Flash and EEPROM in the ATmega

  • حافظه ناپایدار: ذخیره‌سازی داده‌ها به عنوان ثابت در فلش (فضای برنامه) Non-Volatile Memory: Storing Data as Constants in the Flash (Program Space)

  • ذخیره‌سازی ثابت‌های رشته‌ای در یک آرایه در فضای برنامه Storing String Constants in an Array in the Program Space

  • کلمه کلیدی __flash به جای PROGMEM The __flash keyword instead of PROGMEM

  • فلش: No-Read-While-Write (NRWW)، Read-While-Write (RWW) و BOOTSZ Flash: No-Read-While-Write (NRWW), Read-While-Write (RWW) and BOOTSZ

  • تعیین تنظیمات BOOTSZ Determining BOOTSZ Settings

  • ذخیره‌سازی داده در فلش (مثال عملی) Storing Data in the Flash (Practical Example)

  • یافتن صفحات آزاد در فلش Locating free Pages in the Flash

  • یافتن صفحات آزاد در فلش Locating free Pages in the Flash

  • تمرین: برنامه‌ریزی فلش و ذخیره ثابت‌ها در فلش (حافظه برنامه) Exercise: Program the Flash and store constants in the Flash (Program Memory)

  • EEPROM در ATmega (توضیحات رجیستر) EEPROM of the ATmega (Register Description)

  • زمان‌بندی‌های نوشتن EEPROM و اولیه سازی EEPROM Writing Timings and Initialization

  • اولیه سازی EEPROM (جلسه عملی) Initialization of the EEPROM (Practical Session)

  • خلاصه: فلش و EEPROM (مقایسه سریع) Summary: Flash and EEPROM (Quick Comparison)

  • تمرین: داده‌های کالیبراسیون حسگر دمای داخلی ذخیره‌شده در EEPROM Exercise: Internal Temperature Sensor Calibration Data stored in the EEPROM

AVR مستقل Standalone AVR

  • قابلیت‌های ارائه شده توسط برد آردوینو The Functionalities provided by an Arduino Board

  • منبع تغذیه و ریست خودمان برای ATmega Our own Power Supply and Reset for the ATmega

  • کلاک سیستم خودمان و LFuse Our own System Clock and the LFuse

  • برنامه‌ریز درون‌سیستمی (ISP)/برنامه‌ریز سریال درون‌مدار (ICSP) The In-System Programmer (ISP)/In-Circuit Serial Programmer (ICSP)

  • Bit-Banging ISP از طریق FTDI232 و سایر تنظیمات Arduino ISP (کانکتور X3) Bit-Banging ISP through FTDI232 and other Arduino ISP Settings (X3 Connector)

  • تمرین: ATmega مستقل Exercise: Standalone ATmega

SLEEP (خواب) SLEEP

  • فرکانس کلاک در برابر VCC در برابر جریان Clock Frequency vs VCC vs Current

  • فرکانس کلاک در برابر VCC در برابر جریان Clock Frequency vs VCC vc Current

  • رجیستر کاهش توان (PRR) The Power Reduction Register (PRR)

  • حالت‌های خواب و انرژی: کلاک سریع و خواب طولانی یا کلاک آهسته و خواب کوتاه؟ Sleep Modes and Energy: Fast Clock and long Sleep or slow Clock and short Sleep?

  • یک مورد استفاده برای رجیستر ورودی/خروجی عمومی A Use Case for the General Purpose I/O Register

  • پین‌های شناور و خوابیده Floating and Sleeping Pins

  • واتچ‌داگ (ریست سیستم یا بیدارباش یا هر دو) The Watchdog (System Reset or Wake-Up or Both)

  • آشکارساز Brown-Out The Brown-Out Detector

  • آشکارساز Brown-Out The Brown-Out Detector

  • مقایسه در جلسه عملی Show Down in the Practical Session

  • تمرین: کاهش مصرف توان Exercise: Reduce the Power Consumption

  • خلاصه Summary

دیباگینگ با debugWIRE Debugging with debugWIRE

  • شبیه‌سازی میکروکنترلر ATmega Simulating the ATmega MCU

  • JTAG، debugWIRE، ریست و High Fuse JTAG, debugWIRE, Reset and the High Fuse

  • دیباگرهای سخت‌افزاری: ATMEL-ICE، JTAG ICE MKII، AVR Dragon Hardware Debuggers: ATMEL-ICE, JTAG ICE MKII, AVR Dragon

  • برنامه‌ریز/دیباگر debugWIRE متن باز (راه حل همه‌کاره) Open Source DebugWireDebuggerProgrammer (all in one solution)

  • نقطه‌های توقف سخت‌افزاری و خلاصه Hardware Breakpoints and Summary

  • تمرین: بررسی یک برنامه Exercise: Examining a Program

  • چالش: برنامه‌ریز/دیباگر DebugWire Quest: DebugWireDebuggerProgrammer

حفاظت از برنامه شما - بیت‌های قفل Protecting your Program - Lock Bits

  • حفاظت از برنامه شما از داخل - بیت‌های قفل بوت (BLB) Protecting your Program from the Inside - Boot Lock Bits (BLB)

  • حفاظت از برنامه شما از خارج - بیت‌های قفل (LB) Protecting your Program from the Outside - Lock Bits (LB)

  • پاک کردن تراشه The Chip Erase

  • تمرین: بیت‌های قفل Exercise: Lock Bits

پایان The End

  • پایان The End

نمایش نظرات

آموزش بررسی عمیق آردوینو: AVR برای حرفه‌ای‌ها
جزییات دوره
19.5 hours
173
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
607
4.3 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar