جلسه 24: طراحی مدار قابل اتکا و آزمون مرحلهای
در جلسهٔ 24 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «طراحی مدار قابل اتکا و آزمون مرحلهای» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: جداسازی بار پرمصرف، حفاظت ورودی، نویز تغذیه و آزمون بلوکبهبلوک. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید جداسازی بار پرمصرف، حفاظت ورودی، نویز تغذیه و آزمون بلوکبهبلوک را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «طراحی مدار قابل اتکا و آزمون مرحلهای» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
جداسازی بار پرمصرف، حفاظت ورودی، نویز تغذیه و آزمون بلوکبهبلوک. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «چکلیست تغذیه، ورودی، پردازش، خروجی و ارتباط را برای پروژه خود پر کنید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
چکلیست تغذیه، ورودی، پردازش، خروجی و ارتباط را برای پروژه خود پر کنید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
هر زیرسامانه پیش از ترکیب با بخش بعدی نتیجه قابل سنجش دارد. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
سیمکشی بلند و زمین نامناسب میتواند خطاهای متناوب ایجاد کند. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «طراحی مدار قابل اتکا و آزمون مرحلهای» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «طراحی مدار قابل اتکا و آزمون مرحلهای» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «طراحی مدار قابل اتکا و آزمون مرحلهای» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش طراحی مدار قابل اتکا و آزمون مرحلهای
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «طراحی مدار قابل اتکا و آزمون مرحلهای» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی جداسازی بار پرمصرف، حفاظت ورودی، نویز تغذیه و آزمون بلوکبهبلوک مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 22: ذخیره تنظیمات در EEPROM داخلی
در جلسهٔ 22 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «ذخیره تنظیمات در EEPROM داخلی» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: ماندگاری بعد از خاموشی، تعداد محدود چرخه نوشتن و نسخهبندی داده. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید ماندگاری بعد از خاموشی، تعداد محدود چرخه نوشتن و نسخهبندی داده را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «ذخیره تنظیمات در EEPROM داخلی» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
ماندگاری بعد از خاموشی، تعداد محدود چرخه نوشتن و نسخهبندی داده. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «یک تنظیم کوچک را تنها هنگام تغییر مقدار ذخیره و پس از راهاندازی دوباره بخوانید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
یک تنظیم کوچک را تنها هنگام تغییر مقدار ذخیره و پس از راهاندازی دوباره بخوانید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
مقدار بازیابیشده باید با مقدار نوشتهشده برابر باشد. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
نوشتن در هر دور حلقه اصلی عمر EEPROM را بیدلیل کم میکند. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «ذخیره تنظیمات در EEPROM داخلی» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «ذخیره تنظیمات در EEPROM داخلی» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «ذخیره تنظیمات در EEPROM داخلی» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش ذخیره تنظیمات در EEPROM داخلی
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «ذخیره تنظیمات در EEPROM داخلی» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی ماندگاری بعد از خاموشی، تعداد محدود چرخه نوشتن و نسخهبندی داده مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 21: گذرگاه TWI یا I2C و نشانی وسیله
در جلسهٔ 21 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «گذرگاه TWI یا I2C و نشانی وسیله» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: خطوط SDA و SCL، مقاومت پولآپ، نشانی و پاسخ ACK. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید خطوط SDA و SCL، مقاومت پولآپ، نشانی و پاسخ ACK را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «گذرگاه TWI یا I2C و نشانی وسیله» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
خطوط SDA و SCL، مقاومت پولآپ، نشانی و پاسخ ACK. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «نشانی حسگر سازگار را از راهنمای آن پیدا و حضور وسیله را با برنامه ساده تأیید کنید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
نشانی حسگر سازگار را از راهنمای آن پیدا و حضور وسیله را با برنامه ساده تأیید کنید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
اسکن نشانی فقط حضور پاسخگو را ثابت میکند، نه صحت داده حسگر. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
دو وسیله با نشانی یکسان ممکن است روی یک گذرگاه تداخل کنند. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «گذرگاه TWI یا I2C و نشانی وسیله» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «گذرگاه TWI یا I2C و نشانی وسیله» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «گذرگاه TWI یا I2C و نشانی وسیله» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش گذرگاه TWI یا I2C و نشانی وسیله
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «گذرگاه TWI یا I2C و نشانی وسیله» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی خطوط SDA و SCL، مقاومت پولآپ، نشانی و پاسخ ACK مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 20: گذرگاه SPI و انتخاب وسیله
در جلسهٔ 20 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «گذرگاه SPI و انتخاب وسیله» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: نقش master و slave، خطوط MOSI/MISO/SCK و SS و تنظیم حالت انتقال. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید نقش master و slave، خطوط MOSI/MISO/SCK و SS و تنظیم حالت انتقال را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «گذرگاه SPI و انتخاب وسیله» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
نقش master و slave، خطوط MOSI/MISO/SCK و SS و تنظیم حالت انتقال. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «برای یک ماژول SPI، ویژگیهای حالت و سطح ولتاژ را از دیتاشیت استخراج کنید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
برای یک ماژول SPI، ویژگیهای حالت و سطح ولتاژ را از دیتاشیت استخراج کنید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
انتخاب وسیله و پاسخ آن باید جدا از بقیه قطعات قابل آزمایش باشد. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
وصل کردن ماژول ۳٫۳ ولتی به سیگنال نامناسب ممکن است به آن آسیب بزند. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «گذرگاه SPI و انتخاب وسیله» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «گذرگاه SPI و انتخاب وسیله» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «گذرگاه SPI و انتخاب وسیله» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش گذرگاه SPI و انتخاب وسیله
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «گذرگاه SPI و انتخاب وسیله» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی نقش master و slave، خطوط MOSI/MISO/SCK و SS و تنظیم حالت انتقال مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 19: نمایش اطلاعات روی LCD کاراکتری
در جلسهٔ 19 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «نمایش اطلاعات روی LCD کاراکتری» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: تفاوت LCD موازی و ماژول رابط I2C، تنظیم کنتراست و مدیریت رشته. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید تفاوت LCD موازی و ماژول رابط I2C، تنظیم کنتراست و مدیریت رشته را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «نمایش اطلاعات روی LCD کاراکتری» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
تفاوت LCD موازی و ماژول رابط I2C، تنظیم کنتراست و مدیریت رشته. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «یک عدد اندازهگیری و واحد آن را در نمایشگر دوخطی نشان دهید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
یک عدد اندازهگیری و واحد آن را در نمایشگر دوخطی نشان دهید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
پاکنشدن کاراکترهای قبلی هنگام کوتاهتر شدن رشته باید بررسی شود. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
ترتیب پایهها و سطح تغذیه ماژولهای مختلف یکسان فرض نشود. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «نمایش اطلاعات روی LCD کاراکتری» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «نمایش اطلاعات روی LCD کاراکتری» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «نمایش اطلاعات روی LCD کاراکتری» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش نمایش اطلاعات روی LCD کاراکتری
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «نمایش اطلاعات روی LCD کاراکتری» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی تفاوت LCD موازی و ماژول رابط I2C، تنظیم کنتراست و مدیریت رشته مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 18: پروتکل پیام و دریافت فرمان سریال
در جلسهٔ 18 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «پروتکل پیام و دریافت فرمان سریال» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: قالب پیام، جداکننده، طول بافر، اعتبارسنجی و پاسخ خطا. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید قالب پیام، جداکننده، طول بافر، اعتبارسنجی و پاسخ خطا را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «پروتکل پیام و دریافت فرمان سریال» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
قالب پیام، جداکننده، طول بافر، اعتبارسنجی و پاسخ خطا. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «فرمان کوتاه تغییر وضعیت LED تعریف کنید و ورودی ناشناخته را رد کنید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
فرمان کوتاه تغییر وضعیت LED تعریف کنید و ورودی ناشناخته را رد کنید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
تنها فرمان معتبر باید خروجی را تغییر دهد و سایر پیامها گزارش خطا بگیرند. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
دریافت بدون کنترل طول ممکن است حافظه بافر را خراب کند. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «پروتکل پیام و دریافت فرمان سریال» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «پروتکل پیام و دریافت فرمان سریال» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «پروتکل پیام و دریافت فرمان سریال» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش پروتکل پیام و دریافت فرمان سریال
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «پروتکل پیام و دریافت فرمان سریال» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی قالب پیام، جداکننده، طول بافر، اعتبارسنجی و پاسخ خطا مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 17: ارتباط سریال USART و ارسال داده
در جلسهٔ 17 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «ارتباط سریال USART و ارسال داده» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: نرخ baud، قالب فریم، ارسال و دریافت و اهمیت F_CPU. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید نرخ baud، قالب فریم، ارسال و دریافت و اهمیت F_CPU را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «ارتباط سریال USART و ارسال داده» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
نرخ baud، قالب فریم، ارسال و دریافت و اهمیت F_CPU. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «یک مقدار شمارنده را با فرمت روشن ارسال و در ترمینال سریال مشاهده کنید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
یک مقدار شمارنده را با فرمت روشن ارسال و در ترمینال سریال مشاهده کنید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
کاراکترها باید بدون آشفتگی و با نرخ تنظیمشده ظاهر شوند. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
اتصال مستقیم سطح ولتاژ TTL به درگاه RS-232 مجاز نیست. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «ارتباط سریال USART و ارسال داده» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «ارتباط سریال USART و ارسال داده» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «ارتباط سریال USART و ارسال داده» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش ارتباط سریال USART و ارسال داده
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «ارتباط سریال USART و ارسال داده» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی نرخ baud، قالب فریم، ارسال و دریافت و اهمیت F_CPU مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 16: فیلتر نرمافزاری و کالیبراسیون حسگر
در جلسهٔ 16 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «فیلتر نرمافزاری و کالیبراسیون حسگر» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: میانگینگیری، نمونه پرت، تبدیل واحد و کالیبراسیون با نقطه مرجع. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید میانگینگیری، نمونه پرت، تبدیل واحد و کالیبراسیون با نقطه مرجع را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «فیلتر نرمافزاری و کالیبراسیون حسگر» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
میانگینگیری، نمونه پرت، تبدیل واحد و کالیبراسیون با نقطه مرجع. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «ده مقدار ADC ثبت و میانگین و دامنه تغییر را حساب کنید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
ده مقدار ADC ثبت و میانگین و دامنه تغییر را حساب کنید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
کاهش نوسان عددی نباید تغییر واقعی حسگر را کاملاً پنهان کند. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
میانگین گرفتن خطای سیمکشی یا مرجع نادرست را درمان نمیکند. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «فیلتر نرمافزاری و کالیبراسیون حسگر» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «فیلتر نرمافزاری و کالیبراسیون حسگر» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «فیلتر نرمافزاری و کالیبراسیون حسگر» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش فیلتر نرمافزاری و کالیبراسیون حسگر
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «فیلتر نرمافزاری و کالیبراسیون حسگر» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی میانگینگیری، نمونه پرت، تبدیل واحد و کالیبراسیون با نقطه مرجع مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 14: تولید PWM و کنترل روشنایی
در جلسهٔ 14 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «تولید PWM و کنترل روشنایی» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: دوره و duty cycle، تفاوت PWM با ولتاژ DC و محدودیت جریان پایه. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید دوره و duty cycle، تفاوت PWM با ولتاژ DC و محدودیت جریان پایه را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «تولید PWM و کنترل روشنایی» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
دوره و duty cycle، تفاوت PWM با ولتاژ DC و محدودیت جریان پایه. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «روشنایی LED را در چند نسبت وظیفه تغییر دهید و تفاوت دیداری را ثبت کنید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
روشنایی LED را در چند نسبت وظیفه تغییر دهید و تفاوت دیداری را ثبت کنید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
میانگین روشنایی تغییر میکند ولی خروجی دیجیتال همچنان بین دو سطح جابهجا میشود. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
موتور یا بار پرمصرف را مستقیم به پایه میکروکنترلر متصل نکنید. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «تولید PWM و کنترل روشنایی» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «تولید PWM و کنترل روشنایی» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «تولید PWM و کنترل روشنایی» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش تولید PWM و کنترل روشنایی
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «تولید PWM و کنترل روشنایی» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی دوره و duty cycle، تفاوت PWM با ولتاژ DC و محدودیت جریان پایه مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.
جلسه 15: مبدل ADC و خواندن ولتاژ آنالوگ
در جلسهٔ 15 دورهٔ آموزش میکروکنترلر ATmega32 به سراغ «مبدل ADC و خواندن ولتاژ آنالوگ» میرویم. هدف این است که مفهوم را از مشاهدهٔ واقعی جدا نکنیم: مرجع ولتاژ، رزولوشن ۱۰ بیتی، کانال ورودی و اثر نویز. این مسیر برای کسی طراحی شده که میخواهد با تراشه AVR یک پروژه قابل توضیح و قابل آزمایش بسازد، نه اینکه فقط نام رجیسترها را حفظ کند. هر بار نسخه دقیق قطعه و ابزار خود را ثبت کنید؛ نمونهٔ ATmega32A در مواردی به دیتاشیت خودش نیاز دارد.
هدف یادگیری و پیشنیاز

پس از این جلسه باید بتوانید مرجع ولتاژ، رزولوشن ۱۰ بیتی، کانال ورودی و اثر نویز را با زبان خود توضیح دهید، یک آزمون کوچک طراحی کنید و نتیجه را با انتظار مقایسه کنید. پیشنیاز شما شناخت پایههای تغذیه، روش خاموشکردن امن منبع و توانایی خواندن نقشه پایهها از دیتاشیت است. اگر یکی از این موارد را هنوز انجام ندادهاید، ابتدا جلسههای قبل را مرور کنید. نام بسته، شماره قطعه و نوع ابزار را کنار یادداشت آزمایش بنویسید؛ این سه داده در عیبیابی بعدی بسیار کمک میکنند.
وسایل و آمادهسازی
تراشه ATmega32 یا ATmega32A، منبع تغذیه تنظیمشده متناسب با نسخه تراشه، بردبورد یا برد آزمایش، پروگرامر سازگار، مولتیمتر و قطعه مرتبط با «مبدل ADC و خواندن ولتاژ آنالوگ» را آماده کنید. پیش از هر جابهجایی سیم، تغذیه را قطع کنید. جهت قرارگیری تراشه، پایههای VCC و GND و AVCC و وضعیت RESET را بر اساس دیتاشیت همان قطعه بررسی کنید. عکسهای این مقاله برای شناخت ظاهریاند و نقشه اتصال نیستند.
اصل فنی به زبان ساده
مرجع ولتاژ، رزولوشن ۱۰ بیتی، کانال ورودی و اثر نویز. در یک میکروکنترلر، نتیجهٔ نرمافزار به تنظیم سختافزار وابسته است. اگر کلاک واقعی با فرکانسی که کامپایلر فرض میکند فرق داشته باشد، زمان و ارتباطها خطا پیدا میکنند. اگر پایهای همزمان برای چند وظیفه استفاده شود، باید اولویت آنها را مشخص کرد. محدودهٔ ولتاژ و جریان را از جدول الکتریکی دیتاشیت بخوانید و هیچ خروجی را جای منبع تغذیه بار پرمصرف به کار نبرید. یک فرض را در هر مرحله تغییر دهید تا علت هر نتیجه معلوم بماند.

اجرای آزمایش مرحله به مرحله
- سؤال آزمون را بنویسید: «پتانسیومتر را با تغذیه مجاز به عنوان ورودی آنالوگ به کار ببرید و چند نمونه ثبت کنید».
- قطعات و اتصالات را با منبع خاموش و با راهنمای همان برد آماده کنید.
- ولتاژ تغذیه و زمین مشترک را پیش از پروگرام اندازه بگیرید.
- برنامه یا تنظیم لازم را تنها برای همین بخش اجرا کنید و ورودی را تغییر دهید.
- نتیجه را در جدول «ورودی، انتظار، مشاهده، توضیح» ثبت کنید.
پتانسیومتر را با تغذیه مجاز به عنوان ورودی آنالوگ به کار ببرید و چند نمونه ثبت کنید. بار اول از یک وضعیت ساده و بدون قطعات اضافی شروع کنید. بار دوم مقدار ورودی یا شرط آزمایش را تغییر دهید تا تفاوت نتیجه را ببینید. بار سوم همان آزمایش را بعد از قطع و وصل تغذیه تکرار کنید؛ پایداری رفتار از یک مشاهده تصادفی ارزشمندتر است. هنگام تغییر تنظیمات برنامه، نام فایل و تاریخ آزمایش را ثبت کنید تا نسخههای مختلف با هم اشتباه نشوند.
چه نتیجهای درست است؟
کد تبدیل با تغییر ولتاژ ورودی تغییر میکند و به مرجع وابسته است. انتظار خود را پیش از اجرای آزمایش بنویسید و بعد داده واقعی را کنار آن قرار دهید. اگر مشاهده و انتظار تفاوت دارند، ابتدا دستگاه اندازهگیری و تغذیه را بررسی کنید، سپس سراغ برنامه بروید. صرف روشن شدن LED یا نمایش یک عدد نشانه صحت کامل سیستم نیست؛ برای هر ورودی دستکم دو حالت متفاوت را امتحان کنید و مقدارهای مرزی را نیز در نظر بگیرید.

خطاهای رایج و روش پیدا کردن علت
ورودی بیش از بازه مجاز یا مرجع اشتباه نتیجه را نامعتبر میکند. برای عیبیابی، اول وجود و مقدار تغذیه را در محل تراشه بسنجید، بعد زمین، وضعیت ریست و منبع کلاک را بررسی کنید. پس از آن اتصالات رابط و نام پایهها را با دیتاشیت تطبیق دهید. اگر پیام خطای ابزار دارید، متن دقیق پیام و تنظیمات پروژه را نگه دارید. تغییر همزمان چند سیم یا چند سطر برنامه باعث میشود نفهمید کدام تغییر مشکل را حل کرده است.
تمرین تکمیلی و معیار ارزیابی
تمرین این جلسه آن است که آزمایش «مبدل ADC و خواندن ولتاژ آنالوگ» را یک بار با شرایط اولیه و یک بار با یک تغییر کنترلشده اجرا کنید. در گزارش کوتاه خود هدف، قطعات، نسخه تراشه، پیشبینی، نتیجه و علت تفاوت احتمالی را بنویسید. معیار موفقیت فقط گرفتن خروجی نیست: باید بتوانید توضیح دهید چرا نتیجه به دست آمد، کدام بخش آن را اندازه گرفتید و برای تکرار آزمون چه تنظیماتی لازم است. اگر به نتیجه نرسیدید، گزارش خطا هنوز یک خروجی آموزشی مفید است.
نکته طراحی برای پروژه واقعی
در محصول واقعی، «مبدل ADC و خواندن ولتاژ آنالوگ» باید با دیگر بخشها هماهنگ شود. مصرف حافظه، زمان پاسخ، خطای اندازهگیری، نویز و رفتار هنگام روشن شدن دوباره را جدا بررسی کنید. پایههایی که نقش جایگزین دارند را روی نقشه پروژه علامت بزنید تا هنگام افزودن نمایشگر یا ارتباط سریال تداخل ایجاد نشود. قبل از مونتاژ دائمی، یک آزمایش کوچک با همان نوع تغذیه و همان قطعات نهایی انجام دهید. عکس نمایشی قطعات جایگزین نقشه و دیتاشیت نیست.
پرسشهای کوتاه
آیا همین مراحل برای همه نسخهها یکسان است؟ خیر؛ نام دقیق تراشه، بستهبندی و دیتاشیت را ملاک بگیرید. آیا بدون ابزار اندازهگیری میتوان نتیجه را تأیید کرد؟ برای بعضی رفتارها مشاهده اولیه ممکن است، اما برای ولتاژ، زمانبندی و خطاهای متناوب اندازهگیری لازم است. اگر آزمایش کار نکرد از کجا شروع کنم؟ از تغذیه و زمین و ریست شروع کنید و تنها بعد از تأیید آنها سراغ تنظیمات کلاک و نرمافزار بروید.
جمعبندی و ادامه مسیر
در این درس، «مبدل ADC و خواندن ولتاژ آنالوگ» را به یک پرسش قابل آزمون تبدیل کردیم و معیار مشاهده را مشخص کردیم. نتیجهٔ خود را با یک عکس از چیدمان قطعات، فایل کد یا تنظیمات و جدول اندازهگیری نگه دارید. جلسه بعد بر همین نتیجه تکیه میکند؛ اگر خروجی هنوز پایدار نیست، قبل از رفتن به بخش بعدی علت را پیدا کنید. پیوندهای دوره: جلسه قبل جلسه بعد.
منبع فنی: دیتاشیت رسمی ATmega32A از Microchip. مشخصات نسخهٔ ATmega32 را با سند همان مدل تطبیق دهید.
ثبت دقیق آزمایش مبدل ADC و خواندن ولتاژ آنالوگ
برای اینکه شخص دیگری بتواند کارتان را تکرار کند، فقط نوشتن «کار کرد» کافی نیست. نام قطعه، نوع پروگرامر، منبع کلاک، ولتاژ اندازهگیریشده، نسخه برنامه و شرایط ورودی را ثبت کنید. سپس خروجی مشاهدهشده را با واحد یا وضعیت منطقی بنویسید. اگر چند بار آزمون میکنید، نتیجه هر بار را جدا بگذارید. تفاوت بین آزمونها ممکن است از تماس بردبورد، افت تغذیه یا تغییر تنظیمات باشد. گزارش دقیق به شما کمک میکند هنگام افزودن بخش بعدی، نقطهٔ سالم قبلی را بشناسید.
آزمون مرزی و بازبینی
بعد از آزمون اصلی، حالت حداقل و حداکثر ورودی مجاز را از منظر منطقی بررسی کنید؛ از حدود الکتریکی دیتاشیت فراتر نروید. سیستم را یک بار بدون ورودی اختیاری و یک بار با ورودی معتبر راهاندازی کنید. در هر دو حالت، خروجی باید تعریفشده باشد. اگر مقدار ناپایدار میبینید، قبل از افزودن تأخیر نرمافزاری، کیفیت اتصال و منبع تغذیه را بسنجید. برای «مبدل ADC و خواندن ولتاژ آنالوگ» این روش باعث میشود یک نتیجه اتفاقی را با عملکرد قابل اعتماد اشتباه نگیرید.
ارتباط این جلسه با کل دوره
کار روی مرجع ولتاژ، رزولوشن ۱۰ بیتی، کانال ورودی و اثر نویز مستقل از بقیه مدار نیست. هر تصمیم درباره پایهها، کلاک و زمان پاسخ روی ارتباط با نمایشگر، حسگر و حافظه اثر میگذارد. هنگام توسعه، یک جدول تخصیص پایه تهیه کنید و کنار هر پایه وظیفه، جهت و وضعیت شروع را بنویسید. اگر یک پایه بعداً برای قابلیت دیگری لازم شد، پیش از جابهجایی سختافزار، کاربرد آن را در همه بخشهای برنامه جستوجو کنید. این عادت از خطاهای دشوار در پروژه نهایی جلوگیری میکند.
چکلیست پایان جلسه
آیا نسخه تراشه مشخص است؟ آیا ولتاژ در محدوده مجاز اندازهگیری شده؟ آیا قطعه جانبی با سطح سیگنال سازگار است؟ آیا انتظار قبل از مشاهده ثبت شده؟ آیا دستکم دو حالت ورودی آزموده شده؟ آیا نتیجه و خطاها قابل تکرارند؟ اگر پاسخی نامشخص است، همان مورد را به تمرین بعدی تبدیل کنید. با این روش هر جلسه یک خروجی مستند به پروژه اضافه میکند و محتوای آموزش از یک توضیح صرف به راهنمای آزمایش تبدیل میشود.