بیت UDRE:
این بیت،پرچم خالی بودن یا پر بودن بافر رو نشون میده به این معنیه که اگه بافر پر باشه و آماده نوشتن(در ارسال) یا آماده خواندن (در دریافت) از طریق پورت ارتباط سریال USART باشه،این بیت فعال میشه(یک میشه) و اگه بافر خالی باشه (یعنی اطلاعاتی برای خواندن یا نوشتن موجود نباشه) این بیت صفر میشه و همچنین این بیت به محض نوشتن اطلاعات یا خواندن اطلاعات صفر میشه.
بیت FE :
این بیت خطای قالب بندی که در ابتدای مطلب بحث کردبم رو میگه که اگه در قالب بندی مشکلی وجود داشته باشه این بیت یک میشه که لازمه برای مطلع بودن از خطا ی قالب بندی،ابتدا مقدار این بیت رو صفر قرار بدیم تا در صورت وجود خطا مطلع بشیم.
بیت DOR :
هنگامی که بافر دریافت (رجیسترUDR) پر بشه و اطلاعات جدید وارد بافر بشه،اطلاعات قبلی از بین رفته و این پرچم یک میشه و تا وقتی که اطلاعات از بافر خوانده نشده باشه این بیت همچنان صفر باقی میمونه.این بیت هم باید در ابندا صفر کنیم.
بیت PE :
این بیت زمانی یک میشه که خطای توازن در داده دریافتی رخ بده.
بیت U2X :
این بیت سرعت ارسال داده رو فقط در حالت آسنکرون دو برابر میکنه و که برای استفاده ازین قابلیت باید این بیت یک بشه و درحالت سنکرون نمیشه سرعت ارسال رو دو برابر کرد بنابرین باید این بیت رو در این حالت صفر کنیم.
بیت MPCM :
ازین بیت زمانی که میخواییم چن تا میکرو رو بهم وصل کنیم،استفاده میکنیم و با یک کردن این بیت،ارتباط شبکه ایی بین میکروکنترلرها فعال میشه.
بیت های U2X و MPCM کاربرد عمومی چندانی تو پروژه ها ندارن.
[ads1]
رجیستر UCSRB:
USART CONTROL STATUS REGISTER B
بیت RXCIE:
این بیت وقفه ی دریافت رو فعال وغیرفعال میکنه.اگه این بیت یک باشه وقفه دریافت داده فعال شده و اگه اطلاعاتی از طریق ارتباط سریال USART برسه،به آدرس وقفه ی دریافت پرش کرده و روتین سوریس وقفه رو اجرا میکنه.
بیت TXCIE :
این بیت هم مثل بیت RXCIE عمل میکنه که اگه این بیت فعال باشه و ارسال اطلاعات به پایان برسه،به این وقفه پرش کرده و برنامه ای این وقفه رو اجرا میکنه.
بیت UDRIE:
این بیت برای فعال سازی وقفه پرچم UDRE در رجیستر UCSRA به کار میره،یعنی اگه رجستر دیتا(UDR) خالی باشه(بافر خالی باشه)،وقفه ی خالی بودن اجرا میشه.
بیت RXEN:
در صورت یک بودن این بیت،گیرنده ارتباط سریال USART فعال میشه.
بیت TXEN :
در صورت یک بودن این بیت،فرستنده ارتباط سریال USART،فعال میشه.
بیت UCSZ2 :
این بیت و بیت های UCSZ1 و UCSZ0 (این دو بیت تو رجیستر بعدی قرار داره) برا تنظیم قالب بندی به کار میرن.
بیت RXB8 :
این بیت زمانی که از قالب ۹ بیتی استفاده کنیم بیت نهم دریافتی در این بیت ذخیره شده و قابل خواندنه و باید قبل از خواندن هشت بیت دیگر در UDR این بیت خوانده بشه.
بیت TXB8 :
این بیت هم زمانی قابل استفاده اس که از قالب نه بیتی استفاده کنیم و برای ارسال بیت نهم کاربرد داره و باید برای ارسال بیت نهم، اول بیت نهم در این بیت نوشته بشه و سپس هشت بیت دیگر و در رجیستر UDR نوشته بشه.
[ads1]
رجیستر UCSRC:
USART CONTROL STATUS REGISTER C
بیت URSEL:
برای انتخاب و تنظیم رجیستر UCSRC باید این بیت رو یک کنیم زیرا آدرس I/Oاین رجیستر باUBRRH یکسان بوده و اگه این بیت یک باشه میتونیم این رجیستر رو تنظیم کنیم.
بیت UMSEL:
این بیت مد ارتباط سریال USARTرو انتخاب میکنه.اگه این بیت یک باشه مد سنکرون انتخاب میشه و اگه صفر باشه حالت آسنکرون انتخاب میشه.
بیت های UPM1,UPM0:
این بیت،میتونه بیت توازن را غیرفعال یا فعال کنه و در واحد فرستنده،بیت توازن زوج و یا فرد ایجاد کنه.
همانطوری که گفته شد یک بودن بیت PE،خطا رو نشون میده و اگه در توازن هم خطایی بود تو این بیت ثبت میشه.
بیت USBS:
این بیت ،تعداد بیت های STOP رو مشخص میکنه اگه این بیت صفر باشه یک بیت STOPداریم و اگه یک باشه،دو بیت STOP داریم.
بیت های UCSZ2 و UCSZ1 و UCSZ0:
این بیت ها سایز کاراکترها(داده ها)رو تعیین میکنه
بیت UCPOL:
این بیت در حالت سنکرون کاربرد داشته و تعیین میکنه که از حالت پایین رونده نمونه برداری کنه یا از حالت بالارونده.
[ads1]
رجیستر UBRR:
USART BUAD RATE REGISTER
از این رجیستر برای تنظیم نرخ انتقال(Bd rate) استفاده میشه که یه رجیستر 16 بیتی بوده که از دو رجیستر UBRRH و UBRRL تشکیل میشه.
بیت URSEL:
همونطور که قبلا گفته شد،آدرس رجیستر UBRRH با آدرس رجیستر UCSRC یکسان بوده و برای تنظیم و انتخاب رجیستر UCSRC ،بیت URSEL رو یک میکنیم و برای انتخاب و تنظیم رجیستر UBRRH ،این بیت رو صفر میکنیم.
بیت های 0 تا 11:
تو این بیت ها اعدادی متناسب با باود ریت نوشته میشه که از فرمول زیر بدست میاد.
Buad rate=1200 , 2400 , 4800 , 9600 , 19200 , 38400 , 57600 , 115200 , 000
[ads1]
مثال)مقدار رجیستر UBRR با باودریت 2400 و با فرکانس 16مگا هرتز برابر خواهد بود با:
این عدد رو رند کرده و تو رجیستر UBRR قرار میدیم که تو این رند کردن مقدار خطا ظاهر میشه که باید کمتر از2 درصد باشه.
همونطوری می بینین میزان خطا 0.16درصد بوده و این مقدار هم کمتر از 2درصد میشه که یه مقدار مقبولی هستش.
پس مقدار 415 رو تو این رجیستر مینویسیم.عدد 415 به باینری بصورت 1111 1001 0001میشه که خواهیم داش:
در صورتی که عدد کمتر از 255 باشه مقدار UBRRH برابر صفره.
ارتباط سریال USART در میکروکنترلر AVR - خانه الکترونیک
آموزش رجیستر های ارتباط سریال usart در میکروکنترلر AVR - برای وصل کردن کامپیوتر و میکروکنترلر بهم و یا وصل کردن چن تا میکروکنترلر به هم دیگه از ارتباط سریال
elho.ir