سلام.
محمدرضا هستم و در این آموزش قصد دارم با یک روش جالب شما رو از خرید یه قطعه بی نیاز کنم!
احتمالاً شما هم مثل من یه آردینو توی وسایلتون دارید و ممکنه در حال یادگیری ARM باشید و وقتی به مرحله تمرین برای بخش UART که آموزش آن هم داخل سایت هست برسید ممکنه بگید یک قطعه کم دارید و اون قطعه ساده چیزی نیست جز TTL to USB. خب آیا قراره برید داخل بازار؟ یا قراره به خاطر همین یه مورد خرید اینترنتی کنید؟ باید بگم اگر یک Arduino uno دارید خیلی راحت میتونید از آن استفاده کنید. در واقع از آردینو به عنوان مبدل TTL to USB استفاده میشود. نحوه کار خیلی سادست و شاید اگر تا به حال بهش دقت نکرده باشید براتون جالب هم باشد.
همونطور که میدونید Arduino IDE داخلش یک گزینه سریال مانیتور داره و اگر روی برد رو هم نگاه کنید TX و RX رو میتونید ببینید، پس کار تموم هست و چیزی که ما برای ساخت آردوینو TTL to USB دنبالش هستیم در دسترسمون هست. مثل عکس زیر کافیه تراشه روی برد Arduino رو خارج کنید (خط چین قرمز) یا با اتصال پایه RESET به زمین (سیم سبز) اون تراشه رو در حالت RESET نگه دارید.
مرحله بعد اتصال پایههای RX و TX به یک تراشه مثل یک STM32f103c8t6 هست. در این حالت دقت شود که پایه TX هردو تراشه STM32 و Arduino به هم متصل شوند و پایههای RX هم به یکدیگر وصل شود.
شاید از خودتون بپرسید که چرا RX به TX وصل نشده و پایههای هم نام به یکدیگر وصل شدهاند. در اینجا باید بگم کار اصلی در اینجا توسط تراشه SMD که با فلش نارنجی در شکل بالا مشخص شده است انجام میگیرد و اگر بتوانید track ها را دنبال کنید میبینید که در اینجا TX به RX تراشه وصل شده است و RX به TX وصل شده است. در واقع تراشهی DIP روی برد کاری انجام نمیدهد برای همین است که آن را خارج میکنیم یا در حالت ریست نگه میداریم.
بعد از اتصال پایههای RX و TX اتصال زمینهای 2 بُرد و تغذیه 3/3 ولت را به هم برقرار میکنیم. در اینجا طبق آموزش داخل سایت مربوط به UART برنامهی کوچکی را جهت تست، برنامه ریزی میکنیم.
تنظیمات را سِت میکنیم. مطابق شکل بالا پایه PA9 = TX و PA10 = RX است و همین پایهها را به Arduino وصل میکنیم.
کد زیر را نیز در STM32F103C8T6 وارد میکنیم.
const char Name[4]={'A','d','i','b'}; uint8_t i=0 ; while (1) { LL_USART_TransmitData8(USART1, Name[i++]); while(!LL_USART_IsActiveFlag_TXE(USART1)); if(i == 4) { i = 0; }
بعد از پروگرام کردن برنامه روی میکروکنترلر، میتوان به کمک Arduino IDE صفحهی سریال مانیتور را باز کنیم تا بتونیم از آردوینو TTL to USB که ساختیم استفاده کنیم. دقت شود که نوع بُرد و پورت را نیز به درستی و بعد از اتصال انتخاب کنید.
علاوه بر این میتوانید از نرم افزارهای مختلف مانند realterm نیز استفاده کنید. نتیجه کد بالا و سخت افزار معرفی شده به صورت زیر خواهد بود.
در فیلم زیر نمای واقعی مدار آردوینو TTL to USB استفاده در این بخش را ملاحظه میکنید. چشمک زدن چراغ TX نیز نشان دهنده تبادل اطلاعات است.
به عنوان یک چالش کوچک، برنامه را طوری تغییر دهید که هر عبارتی که در سریال مانیتور ارسال شد، همان را چاپ کند. به کمک این بخش کاربردی شما یاد میگیرید که به کمک Arduino TTL to USB خروجیهای مختلف را در سریال مانیتور مشاهده کنید و به زبانی دیگر (به جز چشمک زدن LED) به دنیا سلام کنید. فراموش نکنید که هردو سیم RX و TX را نیز متصل کنید.
اگر سوالی بود بپرسید
منبع:سیسوگ