۱-۸ ارتباط سریال USART
۲۸ بهمن ۱۳۹۷۳-۸ معرفی توابع مفید در CodeVision برای ارسال و دریافت اطلاعات
۲۸ بهمن ۱۳۹۷همانطور که در قسمت قبل گفته شد میکروکنترلرهای AVR از پروتکل USART پشتیبانی میکنند.
در پروتکل USART دو بخش وجود دارد:
۱- بخش فرستنده که با حرف TX نمایش داده میشود.
۲- بخش گیرنده که با عبارت RX نمایش داده میشود.
اگر به شکل ۱ که مربوط به یک میکروکنترلر ATmega16 است نگاه کنید این دو پایه را مشاهده خواهید کرد. همانطور که میبینید پایهی شمارهی ۱۴ مربوط به پایهی دریافت کنندهی اطلاعات و پایهی ۱۵ مربوط به ارسال اطلاعات است.
انجام تنظیمات اولیه ارتباط USART در نرم افزار CodeVision :
پس از وارد شدن به مرحلهی ساخت پروژه در محیط Code Wizard به منوی chip رفته و فرکانس میکرو را روی 1MHz تنظیم کنید. سپس همانند شکل ۲ به منوی USART بروید. همانطور که در شکل ۲ مشاهده میکنید با دو بخش مواجه اید:
۱- بخش Receiver که برای انتخاب کردن میکرو به عنوان یک دریافت کنندهی اطلاعات است.
۲- بخش Transmitter که برای انتخاب میکرو به عنوان یک ارسال کنندهی اطلاعات است.
اگر هر دو گزینه را انتخاب کنید به شکلی مشابه شکل ۳ برخورد میکنید. همانطور که در شکل ۳ میبینید میکروکنترلر به عنوان هم دریافت کننده و هم ارسال کننده اطلاعات در نظر گرفته شده است.
حال اگر کمی بیشتر به این قسمت دقت کنید متوجه بخش Baud Rate خواهید شد. این بخش مربوط به نرخ انتقال اطلاعات در واحد زمان یا همان سرعت ارسال اطلاعات است. در این قسمت این مقدار برابر ۹۶۰۰ بیت بر ثانیه در نظر گرفته شده است.
از آنجا که فرکانس میکرو برابر 1MHz درنظر گرفته شد، امکان ارسال این حجم اطلاعات با این نرخ بدون خطا امکان پذیر نیست و همانطور که میبینید در بخش قرمز رنگ میزان Baud Rate Error برابر با ۷.۵ درصد تخمین زده شده است که میزان بالا و قابل توجهی است.
ارسال اطلاعات با این نرخ و این فرکانس برای ما مقدور نیست، بنابراین با انتخاب بخش Baud Rate میزان آن را به ۴۸۰۰ کاهش میدهیم (شکل ۴). در شکل ۴ همان طور که میبینید با تغییر میزان Baud Rate به مقدار ۴۸۰۰ میزان خطا به مقدار ۰.۲ درصد کاهش پیدا کرده که مقدار قابل قبولی برای ما است.
در بخش Communication Parameters تنظیمات مربوط به نحوهی بسته بندی و ارسال اطلاعات وجود دارد که ما آن را دست نخورده باقی میگذاریم. حال با انجام این تنظیمات میکروکنترلر شما آمادهی ارسال و دریافت اطلاعات از سایر میکروکنترلرهای دیگر و یا کامپیوتر است.