اطلاعیه

Collapse
No announcement yet.

یه سوال درمورد USART ---- چرا تو بعضی BuadRate ها UBRR یکسانی داریم؟؟؟؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    یه سوال درمورد USART ---- چرا تو بعضی BuadRate ها UBRR یکسانی داریم؟؟؟؟

    سلام خدمت دوستان و اساتید گل :nice:
    آقا یه سوال :redface:
    تو تصویر زیر برا فرکانس 1 میگ----و برا BuadRate های 28.8 و 38.4 مقادیر یکسانی برای UBRR داریم......که هر دو 1 هستن
    الان من اگه UBRR رو در فرکانس 1 میگ برابر 1 قرار بدم، BuadRate برابر کدوم مقدار میشه؟؟؟؟؟ oo:
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    #2
    پاسخ : یه سوال درمورد USART ---- چرا تو بعضی BuadRate ها UBRR یکسانی داریم؟؟؟؟

    سلام.
    برای محاسبه رجیستر UBRR اول فرکانس کاری میکرو ر و تقسیم بر 16 می کنند. بعد جواب رو تقسیم بر (باودریت موردنظر+1) می کنند.
    مثلا برای 1MHz، تقسیم بر 16 میشه 62.5k. حالا این مقدار تقسیم بر 28.8 میشه : 2.17 که یکی ازش کم کنی میشه 1.17 و از اونجایی که باید عدد صحیح داخل رجیستر بریزی مقدار رجیستر UBRR میشه 1. پس باود ریت اصلی شما میشه : 62.5 تقسیم بر 2 که میشه 31.25bps. اختلاف بین 31.25 و 28.8 میشه 2.45 و این تقسیم بر 28.8 و ضرب در 100 میشه %8.5. این رو داشته باش.
    برای 38.4 : 62.5 تقسیم بر 38.4 میشه 1.62، منهای یک میشه 0.62. برای رجیستر مقدار صحیح نیازه، یعنی یا 0 یا یک. اگر 0 بزاری مقدار باودریت نهایی میشه 62.5kbps و اگر 1 بزاری، باودریت نهایی میشه 31.25. تو حالتی که مقدار رجیستر صفر هستش، درصد خطا %62.7 هستش !!! و وقتی مقدار رجیستر یک هستش درصد خطا میشه %18.6- !! یعنی تو این باودریت هیچ وقت مقدار دقیق نخواهی داشت و همیشه خطای زیادی داری. حال فهمیدی چرا هر دو جا یک میزارن، چون خطای کمتری داشته باشند (اگر چه خطا باز هم زیاد هستش).
    تو این موارد با این باودریت کار نمی کنند. چون درصد خطا زیاد هستش. اما اگر با فرکانس 1MHz رجیستر UBRR رو بزاری 1، باودریتت میشه گفت به 28.8 نزدیکتره تا 38.4 !!
    ---------
    .
    .
    ...........

    دیدگاه

    لطفا صبر کنید...
    X