در این پست از سایت اِمیک, ماژول مبدل USB به سریال (TTL) با تراشه PL2303 را با استفاده از میکروکنترلر AVR راه اندازی خواهیم کرد. در واقع در این پروژه ما نحوه ارتباط میکروکنترلر AVR با کامپیوتر و ارسال و دریافت اطلاعات بین انها را یاد خواهیم گرفت. به کمک ماژول مبدل USB به سریال, به راحتی میتوانیم پروژه یا محصول خود را به رابط USB مجهز کنیم. در مورد مشخصات این ماژول می توانید در اینترنت سرچ کنید, بنابراین در این پست من راه اندازی این ماژول را توضیح خواهم داد و یک پروژه ساده نیز با این ماژول انجام می دهیم تا به صورت عملی با نحوه راه اندازی ان اشنا شوید. در ابتدا بهتر است شکل ظاهری ماژول و همچنین ترتیب پایه های ان را مشاهده کنید:
همانطور که مشاهده می کنید این ماژول دارای 5 پایه خروجی است. از این 5 پایه دو پایه TXD و RXD مربوط به ارتباط سریال هستند و در واقع این دو پایه مهمترین پایه های این ماژول می باشند. تغذیه این ماژول از طریق پورت USB تأمین می شود و نیاز به اتصال به منبع تغذیه ندارد. سه پایه دیگر GND, 3V3 و 5V+ نام دارند که این ماژول علاوه بر اینکه تغذیه خود را از طریق پورت USB تأمین می کند در خروجی خود دو ولتاژ 5 ولت و 3.3 ولت نیز به ما می دهد که می توانیم در پروژه خود از انها استفاده کنیم.
در صورتی که پروژه ما جریان زیادی مصرف نمی کند می توانیم از این پایه ها به عنوان تغذیه پروژه استفاده کنیم و دیگر نیازی به منبع تغذیه نمی باشد. به عنوان مثال اگر بخواهیم از تغذیه 5 ولت ماژول استفاده کنیم از پایه GND که همان زمین یا صفر ولت است به همراه پایه 5V+ استفاده می کنیم و درصورتی که نیاز به تغذیه 3.3 ولت داشتید از پایه GND به همراه 3V3 استفاده کنید. ولی دقت کنید که در صورتی که جریان مصرفی پروژه شما زیاد است از تغذیه این ماژول استفاده نکنید چون باعث اسیب رسیدن به ان می شود. زمانی که جریان مصرفی پروژه شما زیاد است از منبع تغذیه جدا استفاده کنید و در این حالت حتما پایه GND ماژول را به GND یا منفی منبع تغذیه مورد نظر متصل کنید. من در پروژه ای که در ادامه مشاهده می کنید به دلیل اینکه جریان زیادی نیاز ندارد از تغذیه 5 ولت ماژول استفاده کردم.
راه اندازی ماژول مبدل USB به سریال PL2303 :
در ابتدا برای راه اندازی این ماژول ما باید درایور ان را روی کامپیوتر نصب کنیم. من از انجایی که قبلا درایور پروگرامر STK500 را نصب کرده بودم بعد از اتصال ماژول به کامپیوتر دیدم که درایور ماژول نصب هست و دلیل ان هم این می باشد که پروگرامر STK500 از تراشه PL2303 برای ارتباط با کامپیوتر استفاده می کند. بنابراین اگر شما هم قبلا درایور پروگرامر STK500 را نصب کرده اید, احتمالا نیاز نیست درایور این ماژول را نصب کنید و این درایور از قبل روی سیستم شما نصب می باشد.
البته من در ادامه نحوه نصب این درایور را به همراه لینک دانلود ان قرار میدم تا دوستانی هم که درایور این ماژول روی کامپیوترشون نصب نیست, بتونند به راحتی نصب کنند.
در ادامه برای کار با این ماژول ما نیاز به یک نرم افزار روی کامپیوتر داریم. نرم افزار Terminal را می توانید از طریق لینک زیر دانلود کنید. پس از دانلود فایل ان را از حالت فشرده (Zip) خارج کنید. این نرم افزار به صورت پرتابل بوده و نیازی به نصب ندارد.
شماتیک پروژه:
در زیر شماتیک پروژه راه اندازی ماژول مبدل USB به سریال PL2303 را مشاهده می کنید:
عملکرد پروژه به این صورت می باشد که ما از طریق نرم افزار Terminal می توانیم یک کاراکتر یا متن را از کامپیوتر به میکروکنترلر ارسال کنیم و میکرو این متن را روی LCD کاراکتری نمایش می دهد. میکروکنترلر به ازای هر کاراکتری که دریافت می کند یک کاراکتر @ به کامپیوتر ارسال می کند که درون نرم افزار Terminal به نمایش در می اید. همچنین با ارسال کاراکتر * از کامپیوتر به میکرو, LCD کاراکتری پاک می شود. در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید و با عملکرد این پروژه بیشتر اشنا شوید.
همانطور که مشاهده می کنید در این پروژه از میکروکنترلر ATmega16 استفاده کرده ایم. فقط دو پایه TXD و RXD از ماژول مبدل USB به سریال به میکروکنترلر متصل شده است. که پایه TXD ماژول به پایه 14 (پایه RXD میکرو) و پایه RXD ماژول نیز به پایه 15 (پایه TXD میکرو) متصل شده است. همانطور که گفته شد در این پروژه ما از تغذیه 5 ولت خود ماژول برای تغذیه پروژه استفاده می کنیم, البته من در شماتیک بالا پایه های GND و 5V+ را بجایی متصل نکرده ام که شما خودتون در عمل از این دو پایه ماژول برای تغذیه پروژه استفاده کنید.
از یک LCD کاراکتری 2*16 نیز برای نمایش متن استفاده شده است. پتانسیومتر RV1 برای تنظیم کنتراست یا روشنایی LCD کاراکتری استفاده شده است. توجه کنید که پایه های تغذیه میکروکنترلر (پایه 10 و 11) را که در شماتیک بالا نیست, فراموش نکنید به تغذیه 5 ولت متصل کنید.
برنامه کدویژن :
در این پروژه فرکانس میکروکنترلر 8 مگاهرتز تنظیم شده است. در زیر برنامه نوشته شده به زبان C و کامپایلر کدویژن را مشاهده می کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
////////// WWW.EMIC.IR ////////// #include <mega16a.h> #include <delay.h> #include <alcd.h> #include <stdio.h> void main(void) { char str[1]; //تعريف متغير براي ذخيره کاراکتر دريافتي در ان// //ميکرو را براي اتصال به ال سي دي خروجي مي کنيم A در دو خط زير پورت// DDRA=(1<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1) | (1<<DDA0); PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); //مي باشند که با توجه به تنظيمات اعمال شده در محيط کدويزارد ايجاد مي شوند USART رجيسترهاي زير مربوط به تنظيمات ارتباط// UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM); UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8); UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL); UBRRH=0x00; UBRRL=0x33; lcd_init(16); //پيکره بندي ال سي دي کاراکتري// lcd_gotoxy(2,0); //رفتن به ستون 2 و سطر 0 از ال سي دي// lcd_putsf("www.emic.ir"); //روي ال سي دي www.emic.ir نمايش عبارت// delay_ms(1500); //ايجاد تاخير به مدت 1.5 ثانيه// gets(str,1); lcd_clear(); lcd_gotoxy(0,0); while (1) { gets(str,1); //ذخيره مي کند str دستور روبرو يک کاراکتر را دريافت کرده و درون متغير// if(str[0]=='*'){lcd_clear();} //در صورتي که کاراکتر دريافتي برابر * بود ال سي دي را پاک مي کند// else {lcd_puts(str);} //ذخيره شده روي ال سي دي نمايش مي دهد str در غير اين صورت کاراکتر دريافتي را که درون متغير// putchar('@'); //با هر بار دريافت يک کاراکتر, يک کراکتر @ ارسال مي کند که در محيط نرم افزار ترمينال نمايش داده مي شود// } } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید. تنظیمات بخش USART در محیط کدویزارد بصورت زیر می باشد:
برقراری ارتباط:
برای ارسال متن به میکروکنترلر وارد برنامه Terminal شوید, محیط این نرم افزار به صورت زیر است:
تنظیمات نرم افزار Terminal را بصورت بالا (کادر ابی) قرار دهید, فقط قسمت COM Port را باید با توجه به شماره COM که در Device Manger کامپیوتر خود جلوی درایور ماژول نوشته شده انتخاب کنید. در قسمت آموزش نصب درایور ماژول مبدل USB به سریال PL2303 در این مورد توضیح دادم.
بعد انجام تنظیمات روی Connect کلیک کنید تا ارتباط برقرار شود. در صورتی که درایور ماژول را بدرستی نصب کرده باشید و شماره COM را هم بدرستی انتخاب کرده باشید, ارتباط برقرار شده و چهار چراغی که در کادر نارنجی مشخص شده اند باید سبز شوند.
در ادامه فقط کافی است که برای ارسال متن به میکروکنترلر در کادری که با فلش سبز مشخص شده, متن یا کاراکتر مورد نظر خود را تایپ کنید و با فشار دادن کلید Enter یا کلیک بر روی دکمه Send متن ارسال می شود و روی LCD کاراکتری نمایش داده می شود.
این پست خیلی طولانی شد و ممکنه نکاتی را فراموش کرده باشم بگم, بنابراین اگر دیدید نکته ای را من فراموش کردم می تونید در بخش نظرات به این مطلب اضافه کنید و همچنین سوالاتتون را هم می تونید مطرح کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…
سلام مهندس خدا قوت 🌹
من توضیحات کد هایی که داخل حلقه وایل تعریف کردید رو خوب متوجه نشدم
سئوال اولم اینه که اصلا str چیه ؟ چیز خاصیه ؟ چون چند جا دیدمش
سئوال دوم اینکه اون علامت @و علامت * کارشون اونجا چیه متوجه نشدم برای چی ازشون استفاده کردید ؟
سئوال سوم اینکه من ماژول usb to ttl دارم از اینا که یدونه جامپر زرد رنگ روش داره ، اینم همینطوری کار میکنه مثل مال شما؟ باهاشون کار کردید ؟
آقا وری وری گود کارم راه افتاد. با موبایل هم میشه کار کرد؟ لطفا پاسخ به ایمیل . سپاس فراوان
سلام
خسته نباشید
عالی انجام شد
ممنونم
سلام در حالی که من تحصیلاتم پنجم ابتدایی است جالب بودبرام مخوام باهاش ماژول سیم 800 ال راه اندازی کنم با رله هاش
سلام و عرض ادب
مهندس من همه چیز رو چندین بار کنترل کردم ولی بازهم مشکلی هست
عبارت اولیه نمایش داده میشه ولی بعد از چند ثانیه حروف اجق وجق نشون میده
سلام, وقتی که اسم سایت را در ابتدا به درستی نمایش میده یعنی که میکرو بدرستی پروگرام شده, مشکل شما احتمالا در تنظیمات نرم افزار Terminal باشه. همچنین بررسی کنید که حتما درایور ماژول PL2303 روی کامپیوتر شما نصب شده باشه
سلام،خسته نباشید
ببشخید من این مدار رو بستم البته با ماژول CP2102 اما جواب نمیگیرم و ال سی دی حروف ارسالی را درست نمایش نمیدهد.اتصالات،پروگرم کردن،ال سی دی درسته و بقیه پروژه ها رو جواب میگیرم.
در برنامه Terminal هنگامیکه ماژول متصل نیست دو چراغ CD,RI روشنه و هنگامیکه ماژول را وصل میکنم و Connect رو میزنم هیچ چراغی روشن نیست
ممنون میشم راهنمایی کنید
باتشکر
سلام, با ماژول مورد نظر شما کار نکردم و اطلاعی در موردش ندارم. بررسی کنید که شماره com را بدرستی در برنامه ترمینال انتخاب کرده باشید
سلام و خسته نباشید
خیلی ممنونم بابت پروژه عالیتون
من یه مشکل دارم تو کل پروژه ها
من در کد ویژن وقتی میخوام فایل HEX رو ایجاد کنم از قسمت build…. هم میزنم ولی تو پوشه exe فقط یک فایل اضافه میشه اونم با پسوند A لطفا در این مورد راهنماییم کنید متشکرم
سلام, Build all را بزنید و ببینید که کدویژنتون به درستی کرک شده باشه و همچنین ورژن جدید کدویژن که در سایت هست رو نصب کنید
سلام مجدد
مشکل فایل HEX به کمک شما حل شد
فقط دو تا مشکل جدید
یکی اینکه من هرچی تو Terminal مینویسم فقط حروف اجق وجق میاره رو lcd
دوم اینکه وقتی میخوام تو کد نویسی تغییر بدم مثلا بجای سایت اسم خودم, دیگه lcd هیچی نمیاره
ممنون میشم دوباره راهنماییم کنید
سلام, اتصالاتتون را بررسی کنید و برای پروگرام کردن میکرو از نرم افزار AVR Studio استفاده کنید. می تونید در لینک زیر نحوه پروگرام کردن میکرو با نرم افزار AVR Studio را مشاهده کنید. شما اول مشکل اولتون را حل کنید و از پروژه جواب بگیرید بعد اونو تغیر بدید
اموزش پروگرام کردن میکرو با نرم افزار AVR Studio