# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded >  شروع کار برای برنامه نویسی usb

## siavashman

سلام.

قبل از هرچی باید بگم من با دلفی بیش از 7 ساله دارم کار میکنم و تا حالا باهاش کنترل سخت افزار انجام ندادم.


حالا میخوام با دلفی یه برنامه ای بنویسم که توسط usb بتونم 12 تا لامپ LED روی یه کیت رو به دلخواه روشن کنم. حالا سوالم اینه:

1. برای کار با usb حتما باید درایور ساخت. این کار رو چه جوری باید انجام داد؟ البته فکر کنم نرم افزارهای ساخت درایور باشن. برای اینکار چی کار باید کرد؟

2. چه جوری یه کیت رو کنترل کنیم؟

3. کسی که تا حالا کار این چنینی رو نکرده و اطلاعات پایه هم نداره برای اینکار پیشنهاد میکنید از کجا شروع کنه؟

من ته این کار میخوام فقط یه کیت داشته باشم که بتونم 12 تا لامپ روش رو با دلفی روشن و یا خاموش کنم. اگه کسی میتونه کمکم کنه ممنون میشم.

----------


## farzadsw

برای ارتباط از طریق usb باید سخت افزارتون (همون طرف led ها) قابلیت اتصال به usb رو داشته باشه . 4 تا راه دارید : 
1. استفاده از چیپ های مخصوص usb (در واقع تبدیل usb به سریال و پارالل) مثل ftdi که تو ایران هم هست . 
2. استفاده از میکروی atmega 8 به جای چیپ ftdi ، البته سرعتش کمتره و یکم هم مشکل تره
3. استفاده از کابل آماده تبدیل usb به سریال به جاب استفاده از چیپ در مدار
4. استفاده از میکرویی که usb  رو ساپورت کنه 
بین این موارد از نظر قیمت به ترتیب 2و1و3و4 هستن (2 ارزونترین) 
از نظر سادگی به ترتیب 3 و 1 و 2و 4 هستن (3 از همه آسونتره) 
با توجه به انتخابتون برای نرم افزار طرف کامپیوتر :
1. درایورش توسط خود شرکت سازنده ارائه میشه ، مثال و نمونه کدش هم اینجاست :
http://www.ftdichip.com/Projects/Cod...les/Delphi.htm
2. درایور و مثالش  رو تو اینترنت میتونید پیدا کنید(اپن سورس هست) ، فقط باید avrusb رو سرچ کنید.(البته میشه تو مد HID هم راهش انداخت که نیازی به درایور نداره ولی سرعتش خیلی کمه)
3. درایورش توی cd همراه کابل هست ، نصب که کنید یه پورت serial مجازی درست میکنه . و کافیه شما مثل پورت سریال براش برنامه بنویسید
4. بسته به اینکه از چه مدی استفاده کنید(تو میکروتون) میتونه درایور لازم نداشته باشه و یا خودتون براش بنویسید


بعد از اینکه انتخابتون رو کردید ، باید یه میکرو هم داشته باشید (مثلا atmega16 یا atmega8 یا غیره) که از طریق usart  اطلاعات رو از کامپیوتر بگیره  یا به کامپیوتر بفرسته .(در مورد های 1و2و3 )
اون led ها رو همون میکروتون کنترل میکنه . البته میتونید کار های پیچیده تری هم باهاش انجام بدید. برای نحوه ارتباط usart ، تاپیک ارتباط با کامپیوتر (سریال و پارالل ) که قبلا ایجاد شده رو بخونید

----------


## farzadsw

> چرا اینقدر قفل هستید؟ وقتی اطلاعاتی ندارید لطفا نظر ندید ، در مورد نحوه برنامه ریزی یو اس بی سوال می شه آقایون قفل در مورد تبدیل یو اس بی به سریال نظر میدن هرچند نمیشه خرده گرفت چون معمولا کسانی که اطلاعاتی دارند اونو دراختیار دیگران نمیذارن و را واسه قفلا بازه که نظرات ابلهانه ارایه کنند و واسه خودشون اظهار فضل بکنن


کی قفله ؟ اگه تاپیک قفل بوده شما چطوری پست زدید ؟

این 2 تا جمله رو دوباره بخون شاید بفهمی که منظور این تاپیک چی بوده:




> حالا میخوام با دلفی یه برنامه ای بنویسم که توسط usb بتونم 12 تا لامپ LED روی یه کیت رو به دلخواه روشن کنم.





> من ته این کار میخوام فقط یه کیت داشته باشم که بتونم 12 تا لامپ روش رو با دلفی روشن و یا خاموش کنم


در ضمن اگه طلبی چیزی از بنده یا سایت دارید ، بگید چقدر هست ، تسویه کنیم ، اعصاب شما راحت تر بشه.

----------


## msd163

سلام
برای کاری که دوستمون میخواد انجام بده بهترین راه استفاده از مبدلهای usb به  rs232 هست
اما من میخوام با میکروهایی کار کنم که مستقیما usb رو ساپورت می کنه.
از چه میکروهایی می تونم استفاده کنم ؟
شرکت سیپرس چند نمونه میکرو داره. ولی نمیدونم تو بازار ایران پیدا میشه یا نه.

لطفا اگه پیشنهاد یا راه حلی دارید بگید ...

با تشکر .

----------


## farzadsw

میکرو های بر اساس ARM ساخت شرکتهای فیلیپس ، اتمل و ST تو ایران پیدا میشن . همگی usb رو ساپورت میکنن. 
این مدلها ارزون هستن و نسبتا رحت پیدا میشن :
at91sam7s
at91sam7x

----------


## msd163

تشكر فرزاد جان
من فرومتو كه درباره arm هست تا حدودي مطالعه كردم
واقعا عاليه
---------------------------------
يه سوال...
با    net micro sdk. ميشه ميكرو رو كنترل كرد
در واقع من فقط بايد ميكرو رو با كامپيوتر كنترل كنم...
برنامه نويسي ميكرو با بقيه ي دوستانمه . 
تو اين مرحله من دنبال ميكروي مناسب ميگردم كه :
    - قابليت ساپورت يو اس بي داشته باشه
    - با sdk در C#‎ ارتباط برقرار كنه
    - تو بازار ايرانم باشه

بازم تشكر مي كنم.

----------


## farzadsw

با استفاده از net. میشه برای پورت usb برنامه نوشت (برنامه طرف pc) ، و وابسته یه نوع میکرو نیست ، فقط کافیه میکرو مورد نظر usb رو ساپورت کنه .
اون  net micro sdk. اگه اشتباه نکنم برای نوشتن برنامه مخصوص windows ce , windows mobile هست . یعنی برنامه ای که طرف میکرو اجرا میشه نه pc . یعنی ارتباطی بین pc و میکرو نخواهد بود.

برای برنامه نویسی پورت usb توسط net. کتاب زیر مفصل توضیح داده(برنامه طرف کامپیوتر):

USB Complete: The Developer’s Guide, Fourth Edition
by Jan Axelson

----------


## msd163

> برای برنامه نویسی پورت usb توسط net. کتاب زیر مفصل توضیح داده(برنامه طرف کامپیوتر):
> 
> by Jan Axelson  USB Complete: The Developer’s Guide, Fourth Edition


بابت كتاب ممنون .
دانلودش كردم.
من قبلا ويراست دوم اين كتاب خونده بودم. ويراست پنجم مثالاي كاربردي و خوبي داره. واقعا به درد بخوره.

 ..................................................  .....    اما  . . . 
يه مسئله اي هست كه هنوز حل نشده :

اين كتاب در تموم ويراستاش حرف از وسايل usb اي زده كه تو يه سري كلاسهاي استاندارد مورد حمايت api قرار دارند .
مثل : كلاس پرينتر / كلاس صوت / كلاس وسايل ذخيره سازي / و مهم تر از همه (لااقل براي من) كلاس hid .  (موس و صفحه كليد و دسته‌هاي بازي تو كلاس hid هستند )

در صورتي كه اكثر ميكروهاي بازار تو اين كلاسا نيستند و شركت سازنده اون كلاساي مجزا با توابع متفاوت براي اون تعريف كردند .
 ..................................................  ...... حالا  . . . 
من دنبال ميكروهايي هستم كه كلاسش hid هست .
چراكه هم تو وقت كد نويسي صرفه جويي ميشه هم راحت تره  و مهمتر از همه اين كه ميدوني بايد با چه توابعي كار كني.(توابعش و تعريفاش مشخصه)

ميكروي  cy7c638xx ساخت سيپرس از جمله اين ميكروهاست. اما فكر نميكنم تو بازاري ايران پيدا بشه.
 ..................................................  ...... لذا  . . . 
از تمام دوستاني كه اطلاعاتي در مورد اين ميكروها دارند و يا راه حلي سراغ دارند خواهش مي‌كنم راهنمايي كنند .

 ............... با تشكر  ............................

----------


## msd163

سلام بر همگي
.....................
چندتا ميكرو با قابليت usb و نصب firewareي كه توابع hid رو ساپورت مي‌كنه :
PIC18F2455/2550/4455/4550
..........................................
firewareش حجم زيادي داره.
از تو  سايت زير ميتونيد بگيريد :
http://www.microchip.com/stellent/idcplg
..................................................  ..........
datasheetشو بخونيد
به دردتون مي‌خوره
.........................

----------


## farzadsw

اون مدل که گفتید از usb پشتیبانی میکنه. همه میکروهای آرم هم از usb پشتیبانی میکنن .* همه میکروهایی که از usb پشتیبانی میکنن(usb کنترلر دارن) از کلاس های مختلف usb ازجمله همون hid پشتیبانی میکنن.* 
من اطلاع ندارم PIC18F2455 تو ایران هست یا نه(و بقیه میکرو های پیک که usb کنترلر دارن) ، اگه باشه با همون ها کار کنید . کارتون خیلی ساده تر میشه.
اگر نیست ، باید برید سراغ آرم، برای اونا هم مثال استفاده از HID هستش.

*برای اتمل avr ، فیرم ور نوشتن که از کلاس HID استفاده کنه (تو اینترنت به صورت اپن سورس هست) ولی سرعتش کم هست چون avr خودش usb controller نداره و از طریق نرم افزاری این کار رو میکنه.
*

----------


## behnam77

*دانلود مجموعه ای از کتاب های فارسی آموزش کار با پورت usb*

http://packbook.ir/%D9%85%D8%AC%D9%8...D8%AA-usb.html

----------


## mr13668248

تشکر از راهنماییتون

----------

