ايران ويج

نسخه‌ی کامل: USB TO SERIAL
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
بنده سوالی از خدمت شما دوستان عزیز داشتم
بنده به وسیله وقفه پرت سریال میکرو(avr-atmega32) با نرم افزاری که به زبان c# نوشته شده با کامپیوتر در ارتباط هستم البته باید به این نکته اشاره کنم که چون با کامپیوتر در ارتباط هستم و نوع کامپیوتر از نوع لپ تاپ است و فاقد پرت سریال، در نتیجه مجبور شدم از کابل rs232 to usb مارک omega استفاده نمایم.(که طبق تحقیقات بنده بهترین در ایران است)
ولی با توجه به پروتکل ارتباطی که خودم در نظر گرفتم بعضی اوقات recive دارم ولی send از طرف avr ندارم این مشکل در طول 24 ساعت گاها 3 الی 4 بار به صورت پشت سر هم روی می دهد، و گاهی با reset کردن درست و گاهی هم درست نمی شود و وقتی این مشکل حل می شود که چند بار میکرو را reset کنم یا اتصال کابل را جدا کنم و از اول لحیم کاری پرت را انجام دهم (منظور از لحیم کاری باز و بسته کردن سیم های rx و tx از DB9 هست و نه صرفا جدا کردن کابل از کامپیوتر، و منظور از send/recive اینه که گاهی اوقات از سمت کامپیوتر مثلا دستور حرکت موتور را دریافت می کنم (recive) حالا که می خوام به کامپیوتر بگم که من این دستور را گرفتم(Send) یا به عبارتی به کامپیوتر ACK بدم گاهی اوقات میکرو نمی فرسته در نتیجه موتور همین طور حرکت می کنه و چون کامپیوتر ack را نگرفته و مطمئن نشده که من دستور حرکت موتور را گرفتم یا نه همین طور دستور حرکت موتور را می فرسته البته همان طور که گفتم تو 24 ساعت 2 تا 3 مرتبه ابن اتفاق می افته)
کابل تبدیل(usb to serial) را تعویض ، DB9 را تعویض ، سیم های ارتباطی را تعویض،MAX232 را تعویض کردم ولی همچنان این مشکل بر طرف نشده و چون مدار جنبه صنعتی دارد نمی توانم از این مشکل،که در طول 24 ساعت 3 الی 4 مرتبه اتفاق می افتد صرف نظر کنمShy
همچنین باید به این نکته هم اشاره کنم که
با توجه به کامپایلر قوی c# من در این وضعیت بحرانی که قرار می گیرم رجسترهای سریال برنامه c# هیچی دریافت نمی کنند و این رچسترها قابل دیدن هستند و می توانم عینا ببینم که رجسترهاخالی هستند پس مطمئن شدم که نویز یا اعداد اشتباهی از سمت میکرو به کامپیوتر منتقل نمی شه ،حالا نمی دونم عیب از میکرو یا کابل usb to serial یا برنامه؟؟؟آیا برنامه c# ممکنه که گاها پرت را باز نکنه یا نویز بگیره یا ...؟؟؟
راستی اسم نرم افزار درایور usb to serial هست PL2303_Prolific_DriverInstaller_v1.6.0
و boadrate=19200,طول کابل 1.5 متر و تغذیه هم سوئیچینگ با lm2576-5v
از شما دوستان خواهشمندم که بنده را راهنمایی کنید
با تشکر
در لحظه ای که این اتفاق می افته یه فرکانس متر روی پایه TXD میکرو بزارید ببینید خروجی میده یا نه
بعد هم بعد از MAX232 بزارید ببینید خروجی میده یا نه
اگه اولی خروجی نداشت که برنامه میکرو مشکل داره
اگه دومی خروجی نداشت مدار مشکل داره
اگه هر دو سالم بود حالا باید توی رایانه یه برنامه نصب کنید که داده های سریال رو لاگ کنه برای این کار برنامه خدتون رو ببندید و اونو باز کنید (یا کلا یه برنامه ی اسنیف نصب کنید) اگه اون خروجی رو نشون میداد مشکل از برنامه رایانه اگه اونم نشون نمی داد
برید سراغ درایور USB2SERIAL اگه از نصب صحیحش مطمئن شدید (بهره به وب سایتش برید و جدید ترین نسخش رو بگیرید که باگ های احتمالی رفع شده باشه) دیگه مشکل از خود ماژول هست
كدهاتون هم بايستي امن تر كنيد. براي گرفتن يا فرستادن ACK و امثالهم ، يه TimeOut تعيين كنيد. اگر TimeOut رخ داد ، مثلا فرستنده چيزي نفرسته ، يا موتور با اولويت بالاتري متوقف بشه ( بسته به كدتون )
البته اونجا گفتم Wink
اینجا هم بگم Biggrin
-----------------
نقل قول: راستی اسم نرم افزار درایور usb to serial هست PL2303_Prolific_DriverInstaller_v1.6.0

این درایور همون درایوری هست که من تو تاپیک زیر، در بارش گفتم...
http://www.iranled.com/forum/thread-26436.html


باز قضیه بر میگرده به همون آیسی های تقلبی مبدل های usb2serial

Biggrin
با تشکر از همه دوستان
متاسفانه مشکل حل نشد با اینکه تمام راه کارها را چک کردم
دوستان اگر برند و یا نوعی از کابل
usb to serial را می شناسند که چینی نباشه و مشکلاتی که دوستمون اشاره کردند را نداشته باشه [/code]ممنون می شم راهنمایی فرمایند
با تشکر
من با همین مدل کابل کار می کنم و نسبت به بقیه خیلی خوبه و مشکلی نداره
به نظر من اشکال از دقیق نبودن بادریت ارسالی avr شماست که باید کریستال مخصوص اون رو استفاده کنی که خطای کمتری داشته باشه
دوم پروتکل باید به شکلی باشه که اگر قطع شد برای دستگاه مشکلی پیش نیاد
(۳۰-بهمن-۱۳۹۲, ۱۰:۴۷:۰۹)ha_60 نوشته است: [ -> ]من با همین مدل کابل کار می کنم و نسبت به بقیه خیلی خوبه و مشکلی نداره
به نظر من اشکال از دقیق نبودن بادریت ارسالی avr شماست که باید کریستال مخصوص اون رو استفاده کنی که خطای کمتری داشته باشه
دوم پروتکل باید به شکلی باشه که اگر قطع شد برای دستگاه مشکلی پیش نیاد

boad rate=19200 و کرسیتالم هم 11.0592 و از آن مطمئن هستم مشکل من اینه که گاها (در 24 ساعت یکی دو بار یا گاهی هم اتفاق نمی افته وقتی هم که اتفاق می افته با reset شدن و یا خارج کردن کابل درست می شه و گاهی هم با این که مدار reset یا خاموش و روشن شده و یا کابل را خارج کردم و دوباره وصل کردم باز این مشکل در آن هست)
موضوع بعد اینه که من در مواقعی که این مشکل پیش می آید دریافت دارم ولی ارسال ندارم اگه boadrate و یا کریستال ایراد داشته باشه نباید حداقل دریافت درستی داشته باشم
دوست خوبم منطور شما از مورد دوم چیست؟؟؟
با تشکر