میکروکنترلر, ARM, STM32, آردوینو, توصیه شده, متفرقه

استفاده از آردوینو به عنوان Arduino TTL to USB

استفاده از آردوینو به عنوان Arduino TTL to USB

سلام.
محمدرضا هستم و در این آموزش قصد دارم با یک روش جالب شما رو از خرید یه قطعه بی نیاز کنم!
احتمالاً شما هم مثل من یه آردینو توی وسایلتون دارید و ممکنه در حال یادگیری ARM باشید و وقتی به مرحله تمرین برای بخش UART که آموزش آن هم داخل سایت هست برسید ممکنه بگید یک قطعه کم دارید و اون قطعه ساده چیزی نیست جز TTL to USB. خب آیا قراره برید داخل بازار؟ یا قراره به خاطر همین یه مورد خرید اینترنتی کنید؟ باید بگم اگر یک Arduino uno دارید خیلی راحت می‌تونید از آن استفاده کنید. در واقع از آردینو به عنوان مبدل TTL to USB استفاده می‌شود. نحوه کار خیلی سادست و شاید اگر تا به حال بهش دقت نکرده باشید براتون جالب هم باشد.

همونطور که میدونید Arduino IDE داخلش یک گزینه سریال مانیتور داره و اگر روی برد رو هم نگاه کنید TX و RX رو می‌تونید ببینید، پس کار تموم هست و چیزی که ما برای ساخت آردوینو TTL to USB دنبالش هستیم در دسترسمون هست. مثل عکس زیر کافیه تراشه روی برد Arduino رو خارج کنید (خط چین قرمز) یا با اتصال پایه RESET به زمین (سیم سبز) اون تراشه رو در حالت RESET نگه دارید.

 

برد آردینو در حالت ریست

آماده سازی برد Arduino جهت استفاده به عنوان مبدل

مرحله بعد اتصال پایه‌های RX و TX به یک تراشه مثل یک STM32f103c8t6 هست. در این حالت دقت شود که پایه TX هردو تراشه STM32 و Arduino به هم متصل شوند و پایه‌های RX هم به یکدیگر وصل شود.

نحوه اتصال برد آردینو به میکرو دیگر

نحوه اتصالات برد Arduino به تراشه دیگر

شاید از خودتون بپرسید که چرا RX به TX وصل نشده و پایه‌های هم نام به یکدیگر وصل شده‌اند. در اینجا باید بگم کار اصلی در اینجا توسط تراشه SMD که با فلش نارنجی در شکل بالا مشخص شده است انجام می‌گیرد و اگر بتوانید track ها را دنبال کنید می‌بینید که در اینجا TX به RX تراشه وصل شده است و RX به TX وصل شده است. در واقع تراشه‌ی DIP روی برد کاری انجام نمی‌دهد برای همین است که آن را خارج می‌کنیم یا در حالت ریست نگه می‌داریم.

بعد از اتصال پایه‌های RX و TX اتصال زمین‌های 2 بُرد و تغذیه 3/3 ولت را به هم برقرار می‌کنیم. در اینجا طبق آموزش داخل سایت مربوط به UART برنامه‌ی کوچکی را جهت تست، برنامه ریزی می‌کنیم.

 

تنظیمات CUbeMX

تنظیمات داخل CubeMX

 

تنظیمات را سِت می‌کنیم. مطابق شکل بالا پایه PA9 = TX و PA10 = RX است و همین پایه‌ها را به Arduino وصل می‌کنیم.

کد زیر را نیز در STM32F103C8T6 وارد می‌کنیم.

 

بعد از پروگرام کردن برنامه روی میکروکنترلر، می‌توان به کمک Arduino IDE صفحه‌ی سریال مانیتور را باز کنیم تا بتونیم از آردوینو TTL to USB که ساختیم استفاده کنیم. دقت شود که نوع بُرد و پورت را نیز به درستی و بعد از اتصال انتخاب کنید.

 

تنظیمات IDE آردینو و باز کردن سریال مانیتور

باز کردن صفحه سریال مانیتور از داخل Arduino IDE

علاوه بر این می‌توانید از نرم افزارهای مختلف مانند realterm نیز استفاده کنید. نتیجه کد بالا و سخت افزار معرفی شده به صورت زیر خواهد بود.

نتیجه ارسال اطلاعات در سریال مانیتور

عملکرد Arduino TTL to USB در پنجره سریال مانیتور

در فیلم زیر نمای واقعی مدار آردوینو TTL to USB استفاده در این بخش را ملاحظه می‌کنید. چشمک زدن چراغ TX نیز نشان دهنده تبادل اطلاعات است.

آردوینو TTL to USB

به عنوان یک چالش کوچک، برنامه را طوری تغییر دهید که هر عبارتی که در سریال مانیتور ارسال شد، همان را چاپ کند. به کمک این بخش کاربردی شما یاد می‌گیرید که به کمک Arduino TTL to USB خروجی‌های مختلف را در سریال مانیتور مشاهده کنید و به زبانی دیگر (به جز چشمک زدن LED) به دنیا سلام کنید. فراموش نکنید که هردو سیم RX و TX را نیز متصل کنید.

استفاده از آردوینو به عنوان Arduino TTL to USB

سلامی جدید به دنیا

 

اگر سوالی بود بپرسید 🙂

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

11 دیدگاه در “استفاده از آردوینو به عنوان Arduino TTL to USB

  1. Avatar for محمد محمد گفت:

    میشه با این روش ESP32COM رو برنامه نویسی کرد

  2. Avatar for Ali Ali گفت:

    سلام الان برای مثلا پروگرام atmega8 میشه بدون مبدل اینکارو انجام داد یا باید اون stmباید باشه اگه امکان داره بی زحمت روش پروگرام atmega8با همین روش بزارید

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      سلام دوست عزیز
      از این روش برای پروگرام کردن atmega8 استفاده کرد
      چرا که در میکروکنترلر های خانواده st بوت لودری وجود داره که توسط خود st توسعه داده شده برای پروگرام کردن از طریق uart ولی این قابلیت در میکروکنترلر atmega8 وجود نداره

  3. Avatar for حمید ایل‌شاهی حمید ایل‌شاهی گفت:

    سلام
    من بارها این کارو انجام دادم بدون بیرون آوردن میکرو کافیست یک پروژه تمیز داخل میکرو بارگیری شود.
    که برای اینکار کافیست دکمه NEW را زده و بدون اینکه چیزی به آن اضافه کنیم آردوینو را پروگرام کنیم.

    1. Avatar photo محمدرضا گفت:

      سلام.
      ممنون از اینکه تجربتون رو با ما به اشتراک گذاشتید.?

  4. Avatar for A A گفت:

    سلام شما موفق شدین خروجی رو تمیز دریافت کنین؟ من چند ماه پیش دقیقا همین کار رو برای چک کردن صحت خروجی UART برد STM32F3 ام انجام دادم، یعنی به Uno وصلش کردم و توی ترمینال آردوینو پرینت کردم، ولی انقدر نویزی شده بود که از هر ده تا کاراکتری که میفرستادم یکیش غلط دریافت میشد!
    یا شاید به نویز ربطی نداشت و من جایی‌شو خراب کردم؟

    1. Avatar photo محمدرضا گفت:

      سلام
      من فکر نمیکنم به نویز ربطی داشته باشد. در گام اول دقت کنید که روی برد کریستال چند مگاهرتزی قرار داده شده اگر برای مثال 8 مگ هست، داخل تنظیمات CubeMX هم همان مقدار رو تنظیم کنید. در گام بعدی همونطور که در کامنت ها هم ذکر شده، مقدار Baud rate گیرنده با فرستنده باید یکی باشد. در انتها هم از صحت کدی که استفاده کردین مطمئن بشید و اگر مشکل پابرجا بود فایل پروژه رو ارسال کنید تا تست کنم.

  5. Avatar for پرنیا پرنیا گفت:

    جالب بود، اتفاقا من نمیدونستم این قطعه رو باید بخرم اما اردینو داشتم و تست کردم باهاش و شد. فقط baud rate توی نرم افزار ide یا اون یکی realterm باید با چیزی که تنظیم میکنید برای میکرو یکی باشه که خب بدیهی هست.

    1. Avatar photo محمدرضا گفت:

      سلام
      ممنون از توجه شما و خوشحالم که مطلب مفید واقع شده.
      بله درست هست، اگر سرعت دریافت و ارسال یکی نباشد طبیعتاً اطلاعات به درستی دریافت نمیشه.

  6. Avatar for َAmir َAmir گفت:

    کار جالبی بود . منم یه تست زدم کار کرد .

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

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