آموزش AVR – جلسه ۱۳ : ارتباط سریال USART

در جلسه سیزدهم مبحث مهم و پرکاربرد واسط ارتباط سریال (USART) تشریح شده تا برای انجام یک پروژه عملی در جلسه آینده آماده شویم.یکی از واسط های ارتباطی هر میکروکنترلر واسط ارتباط سریال است. تعداد زیادی از ماژول ها از طریق این واسط با میکرو ارتباط برقرار میکنند. همچنین دو میکروکنترلر نیز در بسیاری از اوقات از همین واسط برای اتباط و انتقال دستورات کنترلی به یکدیگر استفاده می کنند. لذا در این جلسه مفاهیم و تابع های مورد نظر به طور کامل توضیح داده شد تا در جلسه ی آینده به یک پروژه ی عملی از این مبحث پرداخته شود.

 

سرفصل های جلسه سیزدهم عبارت اند از:

  1. تفاوت ارتباط سریال و موازی
  2. نحوه ی برقراری ارتباط سریال
  3.  آموزش نحوه پیکربندی سخت افزاری واسط سریال در آی سی ATMega32
  4. تشریح توابع رابط سریال در C
  5. آموزش انجام تنظیمات در محیط Code Wizard

 

 

 

خیلی بدضعیفمتوسطخوبخیلی عالی (4 نظر, امتیاز کل: 3,50 از 5)
Loading...

14 دیدگاه ها

  1. مرتضی says:

    خیلی ممنون از توضیحات زیباتون . لطفا در مورد دیگر ارتباط سریال هم آموزش بگذارید.

  2. شهرام سياه says:

    سلام
    مثل همیشه عالی بود

    خدا خیرت بده

  3. بهي says:

    با سلام و تشکر از استاد عزیز
    میخواستم بدونم نحوه ارسال int از طریق این ارتباط توضیح بفرمایین ( به صورتی که در میکرو slave متغیر int رو داشته باشیم و بتونیم از اون در محاسباتمون استفاده کنیم مثلا زاویه استپ موتور مون باشه).
    در ضمن با تشکر فراوان از فیلمای عالیتون میخواستم اگر ممکنه بیشتر به سمت مباحث عملی برید و برای مباحث تئوری کمتر وقت بزارین (مثلا تو قسمت ١٣ شما از ۴٠ دقیقه تنها ۴ دقیقه به خود کدویزارد پرداختید)
    اگر ممکن باشه بیشتر مثال بزنید با تنوع بیشتر با استفاده از کدویزارد و پرتئوس قطعا یادگیری خیلی سریعتر و راحتر میشه
    بازهم از زحمات تون تشکر میکنم امیدوارم ناراحت نشده باشین از انتقادم

    • محمدرضا سالارباشی says:

      با سلام
      خوشحالم که مورد قبول واقع شده و اینکه امکان بهره مندی از نظرات سازنده ی شما عزیزان رو هم دارم

      در مورد سوال اول همونطور که تو جلسه هم یک مثال زده بودم به عنوان یک روش شما هر متغیری رو میتونید به فرمت رشته (String) درآورده و ارسال کنید که متغیر int هم یکی از همین موارده
      طرف گیرنده هم به صورت رشته دریافت کرده و بعد از اون تبدیل به عدد int کنید

      مثال طرف فرستنده:
      int my_number;
      printf(“%d”,my_number);

      مثال طرف گیرنده:
      اینجا باید دقت داشته باشید که چون متغیر int حجم ۳۲ بایتی داره اون رو توسط یه آرایه ۴ تایی char دریافت کنید
      int r_number;
      char r_data[4];
      gets(r_data,4);
      r_number=atoi(r_data);

      توضیح اینکه
      تابع gets دارای دو ورودی است: ورودی اول متغیری که باید دیتا درش ریخته بشه و متغیر دوم سایز دیتای دریافتی به بایت
      تابع atoi هم برای تبدیل رشته به متغیر integer هستش که برای استفاده ازش باید کتابخونه stdlib رو include کنید

      در مورد بخش دوم نظرتون باید بگم بله تا حدودی حق دارید همچین احساسی داشته باشید چون بنده برنامه و هدف این آموزش رو کامل توضیح ندادم. تو این آموزش هدف یادگیری مسایل پایه تئوری است به طوری که دانشجو در ادامه احساس سردرگمی به دلیل ضعف مباحث تئوری نکنه. مثال های برنامه نویسی و شبیه سازی هم که تو این سری گنجونده شده برای انگیزه دهی و رفع خستگی ناشی از تئوری محضه چرا که پروژه به پروژه قراره ویدیو آموزشی (از میز کار) تهیه و منتشر بشه که رسالت اصلی آموزش عملی تو این سری ویدیو ها خواهد بود.

      با تشکر از نظرات سازنده

  4. فلانی says:

    چطور توسط یک بیت parity جایگاه خطا هم مشخص میشه؟ قاعدتاً باید فقط وجود یا عدم وجود خطا رو مشخص کنه که اونم اگه دو تا خطا باشه ممکنه اشتباه تشخیص بدیم. توضیح میدید لطفا. با تشکر

    • محمدرضا سالارباشی says:

      چیزی که شما میفرمایید در علم مخابرات با نام کدینگ شناخته میشه که به بررسی روش های تشخیص و تصحیح خطا میپردازه
      به عنوان مثال برای روشن شدن مطلب، پروژه های پیاده سازی کدینگی مثل توربو کدینگ و LDPC DVBS2(استفاده شده در گیرنده های ماهواره) تا به حال انجام دادم که به بهترین نحو تصحیح خطا هم انجاممیدن اما اینجا خیر
      به سادگی با xor کردن بیت ها و با مشخص بودن نوع پریتی صحیح یا غلط بودن مسیج رو تشخیص میده و هم چنین تحمل خطای اون یک بیته ینی اگر ۲ بیت ۱ تبدیل به صفر یا دو بیت صفر تبدیل به یک بشه تشخیص نمیده
      موفق باشید

  5. فلانی says:

    گفتید جلسه آینده یه پروژه عملی انجام میدید در مورد USART

    • محمدرضا سالارباشی says:

      بله اما با تحقیق به عمل آمده نیاز به دو جلسه برای آموزش پیاده سازی احساس و پروژه عملی به جلسه ۱۶ موکول شد تا دو مبحث فیوزبیت ها و پروگرمرها قبل از پیاده سازی تدریس شود

  6. شروین says:

    با سلام ممنون از مطلب بسیار عالیتون
    من میخواهم با استفاده از avr یک فرستنده ir درست کنم که led رو بر روی پورت tx خاموش و روشن کنم و اطلاعات از این طریق منتقل بشن ولی گیرنده من در فرکانس ۳۸khz کار میکنه میخواستم بدونم همین اطلاعاتی که بصورت ۰ و ۱ از پایه tx بیرون میاد رو چجوری باید مدیریت کنم تا با فرکانس گیرنده هماهنگ بشه و بتونم از طریق گیرنده نور فرا بنفش رو دریافت کنم؟
    گیرنده ir من TSOP1738 هستش
    اگر تنها یک راهنمایی فرمایید که از چه طریق میتونم این عمل رو کنترل کنم ممنون میشم لازم به توضیح نیست خودم سرچ میکنم.
    با تشکر

    • محمدرضا سالارباشی says:

      با سلام شروین جان

      با توجه به stop bit, parity و سایر موارد که تو همین جلسه توضیح دادم شما میتونید عرض پالس و لذا فرکانس رو به دست بیارید.

      دقیق تر نقطه ابهامت رو بگو تا راههنماییت کنم

  7. سینا says:

    خدا خیرت بده. دمت گرم. عالی.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *