PDA

View Full Version : usb in c#



Niloofar_Aria
جمعه 01 آبان 1388, 20:25 عصر
با سلام
می خواستم از طریق usb با برنامه c#
, LEDرو روشن کنم ممنون می شم یه نمونه کد ازC# و اینکه از کدوم فایل dll باید در برنامم واسه شناخت usb استفاده کنم بزارین؟
سخت افزارش از کدوم IC و وسایل دیگه باید استفاده کنم با چه مشخصاتی
اگه ممکنه کامل در این زمینه توضیح بدین که چه جوری می تونم اطلاعات از کامپیوتر به سخت افزار انتقال بدم از طریق usb

Mehran.GH
یک شنبه 03 آبان 1388, 02:47 صبح
http://www.vsj.co.uk/articles/display.asp?id=600

http://khason.net/blog/read-and-use-fm-radio-or-any-other-usb-hid-device-from-c/

http://www.icsharpcode.net/OpenSource/SharpUSBLib/default.aspx

Niloofar_Aria
سه شنبه 05 آبان 1388, 02:10 صبح
ممنون از راهنماییتون دوست خوبم
بایدازفایل ftdxx.dll در برنامه c# استفاده کنم ازIC ft232استفاده می کنم ممنون میشم سورس برتامه رو بهم بدین.

Mehran.GH
سه شنبه 05 آبان 1388, 23:31 عصر
دوست عزیز
شما اگر زحمت بکشید و اندکی جستجو کنید در سایت مورد نظرتان می توانید اطلاعات مورد نیاز را پیدا کنید.
می دانم که حوصله نصیحت گوش دادن ندارید بنابراین فقط برای پیشرفت خودتان پیشنهاد می کنم در آینده اگر سوال فنی دارید ابتدا اندکی جستجو کنید و دقیق متوجه باشید چه کاری می خواهید انجام دهید و اجزاء کارتان را دقیق بشناسید و بعد برای سوال پرسیدن بگویید چه کاری انجام دادید و بعد در یک مورد مشخص بنویسد کجا به مشکل برخوردید و آن می شود سوال که اگر اینجا هم کسی نداند در هر فروم تخصصی خارجی هم مطرح کنید جواب می گیرید اما اینکه نوشته بودین "اگه ممکنه کامل در این زمینه توضیح بدین که چه جوری ....... " معمولا برای کسانی که در رشته فنی فعالیت می کنند و باید مشکلی را حل کنند جالب نیست!

به هر حال

مثالهای C#‎‎ اینجا هست:
http://www.ftdichip.com/Projects/CodeExamples/CSharp.htm

Niloofar_Aria
پنج شنبه 07 آبان 1388, 00:31 صبح
سلام دوست خوبم
من می خوام تو برنامه ام به c# وقتی رو checkbox کلیک کردم تیک دار شدLED روشن بشه
نمی دونم دستور write که ورودیش checkboxeچی میشه کدش؟
example ها رو دیده بودم قبلا بازم ممنون از لطفتون
ftd driverهمون f ile ftdxx.net.dll هست که تو برنامم استفاده کردم؟
چه طوری می تونم ICATMEGA8رو به ICFT232 وصل کنم؟
ممنون میشم راهنماییم کنین

Mehran.GH
پنج شنبه 07 آبان 1388, 12:39 عصر
سوال : من می خوام تو برنامه ام به C#‎‎‎‎‎ وقتی رو checkbox کلیک کردم تیک دار شدLED روشن بشه
نمی دونم دستور write که ورودیش checkboxeچی میشه کدش؟

پاسخ: باید در EVENT مربوط به CheckedChanged کد را بنویسید مثلا


private void chkBox_CheckedChanged(object sender, System.EventArgs e)
{
if (sender is CheckBox)
{
CheckBox checkbox = sender as CheckBox;
if (checkbox.Checked)
{
checkbox.Text = "Checked";
}
else
{
checkbox.Text = "UnChecked";
}
}
}

سوال :ftd driverهمون f ile ftdxx.net.dll هست که تو برنامم استفاده کردم؟

پاسخ: بله یک روش استفاده از درایور D2xx است که مستنداتش را در این فایل می توانید بخوانید http://www.ftdichip.com/Documents/ProgramGuides/D2XXPG34.pdf

برای بررسی روشها و درایورهای دیگر هم این صفحه
http://www.ftdichip.com/Drivers/D2XX.htm

سوال:چه طوری می تونم IC ATMEGA8رو به ICFT232 وصل کنم؟

پاسخ:یک روش استفاده از چیپ FT-232BM می باشد
این چیپ که برای اتصال سریال به FT-232 کاربرد دارد و در این روش باید پینهای یک پورت سریال آزاد در میکروکنترل IC ATMEGA8 را به FT-232BM متصل کرد.

http://privateimage.com/images/gpwvz0lmk7eyhtlr9mhs.jpg

Niloofar_Aria
یک شنبه 10 آبان 1388, 00:18 صبح
سلام دوست خوبم

1) دستور ft_write(write data to devic)که ورودیش میشه checkbox رو می خواستم ؟؟؟ورودی که checboxe باید با یه دستوری به ft232فرستاده بشه که درآخرled روشن بشه؟

2)فایل ftd232.dllرو از لینکی بهم دادین گرفتم ولی به refrence برنامم که با vsبه زبان C#‎هست اضافه می کنم اضافه نمیشه؟؟؟؟ یه drivere ftdxx.net.dll قبلا گرفته بودم که به refrence برنامم اضافه شده بود این driverبرای ftd232bm استفاده میشه؟؟

3)شماتیک مال ft232r هست که فرستادین .میشه شماتیکی که طریقه اتصال ft232bm به atmega8 نمایش میده رو بهم بدین ممنون میشم.

Mehran.GH
یک شنبه 10 آبان 1388, 12:17 عصر
شما مستندات را مطالعه نکردی و دستورات C#‎‎‎‎‎‎‎ را هم مشکل داری به نظر من در این مرحله باید برگردی عقب یعنی اینکه بشینی موضوعاتی که نیاز داری برای کارت مطالعه کنی و بعد ابزار مناسب را انتخاب کنی , منظور از ابزار این است که بدانی چه IC برای کارت مناسب است چه درایوری مناسب است چه روشی برای نوشتن نرم افزار در pc مناسب است و چگونه باید به آن دست یافت اینها را باید بعد از اینکه اجزا را خوب فهمیدی پیدا کنی. تفاوت فهمیدن و دانستن در این است که شما وقتی موضوعی را بفهمید می توانید برای موارد و مشکلات مشابه هم منطبق کنید اما وقتی موضوعی را بدانید فقط در همان مورد می توانید دانسته ها را به کار ببرید. از نوع سوالات شما معلوم است که کار خود را نفهمیده اید و دنبال راه حل آسان و تمام شده هستید!
البته در مورد این تمرین ساده شانس با شما بوده و تمامی اطلاعات در سایت اصلی موجود است و فقط باید اندکی وقت گذاشت و پیدا کرد اما در یک پروژه در دنیای واقعی اینگونه نخواهد بود!

به هر حال

1- دستوری که ورودیش Checkbox بشود یعنی چی؟!!!

وقتی روی Checkbox کلیک کنید یک Event اتفاق میفتد و در این CheckedChanged شما می توانید محتوای Chechbox.text را مثلا به USB بفرستید و یا هر کار دیگر که نیاز هست انجام دهید. یک بار دقیق properties و Event های checkbox را نگاه کن .

2 - استفاده از درایور را با توجه به اینکه برای تازه کارها مشکل است توصیه نمی کنم و پیشنهاد می کنم از روش دیگر که در سایت آمده استفاده کنید یعنی Virtual COM Port

در این روش USB device شما همانند یک پورت سریال مجازی شناخته می شود و استفاده از آن در C#‎‎‎‎‎‎‎ هم همانند ارتباط با یک COM است و بسیار ساده است و نمونه برنامه هم در سایت اصلی وجود دارد.

3- چیپ ft232r مدل بعدی ft232bm هستش و یک مزیت دارد نسبت به bm که از آنجا که هیچ فعالیتی نشان ندادی برای کار خودت تفاوتش را باید خودت پیدا کنی! :متفکر:

شماتیک کامل برای تمامی چیپ ها در این سایت وجود دارد
http://www.ftdichip.com/Documents/Schematics.htm

روش اتصال به میکرو هم اگر نگاهی به میکرو انداخته بودی متوجه می شدی که پایه های Tx و RX در میکرو وجود دارد و در مداری که تصویرش را ارسال کردم هم همینطور و باید این پینها با ترتیبی که باز هم باید خودت پیدا کنی به هم متصل شوند :لبخندساده:

msd163
جمعه 06 فروردین 1389, 19:41 عصر
سلام دوستان
بحث جالب و به درد بخوري بود
من هم نياز به برقراري ارتباط با ميكرو از طريق usb دارم
ميكروهاي سري ez-usb سيپرس اين قابليتو دارند
at6c711 هم همينطوره
اما هرچي سرچ كردم اطلاعات به درد بخوري براي اينا پيدا نكردم

اگه ممكنه چندتا ميكرو كه تو بازاراي ايران به راحتي ميشه تهيه كرد و قابليت ارتباط با usb رو داره معرفي كنيد

با تشكر

farzadsw
شنبه 07 فروردین 1389, 02:26 صبح
اگه منظورتون اینه که خود میکرو کنترلر از پورت usb پشتیبانی کنه ، یه سری از میکرو کنترلر های avr این قابلیت رو دارن (avrusb ) ولی فکر نکنم تو ایران آورده باشن.
تمام میکرو هایی که بر اساس arm ساخته شدن ، usb رو پشتیبانی میکنن . چندتا از سری های اونا تو ایران هست.

اگه منظورتون اینه که از یه میکروی avr به عنوان مبدل سریال usb استفاده کنید ، چند تا پروژه اپن سورس در این زمینه انجام شده ، کافیه جستجو کنید.

اگرم منظورتون استفاده از ic های مبدل به usb هست (rs232, spi , parallel ) ، چند تا شرکت چیپ مخصوص این کار زدن ، یکی از اونا ftdi هست که تو همینجا درموردش صحبت شد. سیپرس و Prolific هم چیپ های مشابه و ارزونی زدن ولی فکر نکنم تو ایران گیر بیاد.

msd163
یک شنبه 08 فروردین 1389, 11:55 صبح
:متفکر:



به هر حال

مثالهای C#‎‎‎‎ اینجا هست:
http://www.ftdichip.com/Projects/Cod...les/CSharp.htm (http://www.ftdichip.com/Projects/CodeExamples/CSharp.htm)

من مثال C#‎ رو گرفتم ولي به يه dll گير ميده:
FTChipIDNet.dll
اين فايل بايد تو reference اضافه بشه.
تو اينترنت سرچ كردم ولي چيزي پيدا نكردم

در ضمن FTD2XX.DLL هم تو reference اضافه نميشه.
راه حلش استفاده از [dll import ] هست يا اينكه بايد كار ديگه اي بكنم؟
-----------------------------------------------
لطفا راهنمايي كنيد...

farzadsw
یک شنبه 08 فروردین 1389, 15:07 عصر
طبق همین رفتید اضافه نشد؟:

A reference should be added to the FTD2XX_NET.DLL file in the Solution Explorer. Simply right-click on the References item in the Solution Explorer in your Visual Studio project, select "Add Reference" then "Browse" and locate the DLL. The XML file should be placed in the same location


درایورش رو نصب کردید ؟
http://www.ftdichip.com/Drivers/D2XX.htm

msd163
یک شنبه 08 فروردین 1389, 23:53 عصر
طبق همین رفتید اضافه نشد؟:
بله . پيغامش اينه :
the reference to ' ...\ftd2xx.dll ' could not be added .
please sure that the file is accessible, and that it is a valid assembly or COM component

اين پيغاميه كه هنگام لود كردن فايلهاي api هم ميده .



درایورش رو نصب کردید ؟
اما در مورد درايورش بايد بگم كه من هنوز هيچ ميكرويي تهيه نكردم.
در واقع بدون استفاده از ميكروي ft232 ميخوام كد نويسي كنم.
امكانش هست ؟
البته بعدا حتما تهيه مي‌كنم .
-----------
اصلا ميشه از يه درايور مجازي استفاده كرد كه براي تست برنامه هم بشه ازش استفاده كرد ؟

farzadsw
سه شنبه 10 فروردین 1389, 01:07 صبح
درایورش باید نصب باشه ، طبق دستور العملی که گفته. من خودم این کار رو نکردم و از همون درایوری که یه پورت مجازی میسازه استفاده کردم(VCP)، ولی به هر حال خودش گفته بود برای استفاده از حالت FTD2XX.DLL (نه ساخت درایو مجازی ، یعنی در کل 2 نوع درایور داره یکی برای FTD2XX.DLL و یکی برای vcp) باید درایور مخصوص اون رو نصب کنید که من لینکش رو گذاشتم.
کام مجازی که درایور (درایور مخصوص کام مجازی یا VCP) درست میکنه ، وقتی قطعه رو به کامپیوتر وصل میکنید فعال میشه و بدون قطعه نمیشه ازش استفاده کرد.

اگه میخواید از حالت کام مجازی استفاده کنید (نه FTD2XX.DLL ) ، برنامه نویسی اون دقیقا مشابه برنامه نویسی برای کام واقعی هست که بسیار هم سادس تو 4 خط خلاصه میشه. تو تاپیکی که تو امضام هست در اون مورد توضیح داده شده.

msd163
چهارشنبه 11 فروردین 1389, 10:02 صبح
تشكر

مشكل من جاي ديگه بود كه خوشبختانه حل شد .
...........................
جريان از اين قراره ...
dll هايي كه براي ارتباط استفاده مي‌شند دو نوعند :
1. win32
و
2. net.

فايلهاي win32 از توي reference اضافه نمي‌شند.
من فايلهاي net. پيدا كردم و اضافش كردم.
الان ديگه تو برنامه نويسي مشكلي نيست.

براي استفاده از توابع win32 هم بايد از [dllimport] استفاده كرد .
............................
نسخه نتشو تو اين لينك گذاشتم :
http://www.4shared.com/file/253396209/57acbfa6/FTD2XX_NET_106.html

msd163
یک شنبه 15 فروردین 1389, 11:56 صبح
اصفهانیای عزیز ...
کسی نمیدونه کجا میشه FT232R پیدا کرد؟
FT232BL هست ولی R پیدا نکردم .

تشکر.

msd163
جمعه 24 اردیبهشت 1389, 17:30 عصر
بالاخره تموم شد
برنامشو نوشتم
اگه کسی کمک خواست می تونم کمکش کنم .

M_Ali_Safdari
شنبه 01 خرداد 1389, 20:00 عصر
از طریق میکرو های AVR معمولی هم میتوان با USB ارتباط بر قرار کرد.
البته فقط بسته های Token,Control میشه ارسال کرد والبته با LOW Speed یعنی سرعت 1.5MBit/sec
من اینکار رو با Mega8 انجام دادم و خیلی خوب هم کار می کنه .چند ساله دارم ازش به عنوان USB به سریال و Generic I/O تو کارهام استفاده می کنم و مشکل خاصی نداره

abasfar
پنج شنبه 29 اردیبهشت 1390, 16:17 عصر
سلام من هم دقیقا میخوام اینکار را انجام بدم اما نقشه مدار را ندارم میشه به من هم کمک کنید