اطلاعیه

Collapse
No announcement yet.

کمک به شروع یادگیری ارتباط usb با میکروکنترلر lpc1768

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمک به شروع یادگیری ارتباط usb با میکروکنترلر lpc1768

    دوستان من میخوام با میکروی lpc1768 با کامپیوتر ارتباط usb برقرار کنم. و تو این زیمنه تقریبا هیچی نمی دونم :NO:
    حالا چند تا سوال داشتم :
    1. برای اینکه با usb به میکرو ارسال کنم یا از میکرو اطلاعات بگیرم، باید قسمت usb host میکروی lpc1768 رو راه بندازم یا usb device ؟
    2. از کجا باید شروع کنم ؟ یعنی منبعی هست که این ارتباط بین میکروکنترلر و کامپیوتر رو توضیح داده باشه ؟
    3. برای شروع و آشنایی با پروتکل usb، منبع آموزشی pdf سراغ دارید یا سایتی رو می شناسید بهم معرفی کنید ؟
    ممنون.
    ---------
    .
    .
    ...........

    #2
    پاسخ : کمک به شروع یادگیری ارتباط usb با میکروکنترلر lpc1768

    راستش منم همین سوال دوستمون رو دارم . ممنون میشم اگه کسی کمک کنه
    به نظر کار سخت تر از راه اندازی usb خود میکرو هست . ارتباط با کامپیوتر خودش یک سری دردسر های دیگه ای داره
    ولی به هر حال اگه کسی کمک کنه خیلی به ما لطف کرده
    چي کار کنيم ديگه ، بيسواديم !

    دیدگاه


      #3
      پاسخ : کمک به شروع یادگیری ارتباط usb با میکروکنترلر lpc1768

      کسی نبود برای شروع کمکی کنه ؟
      ثواب داره ها :biggrin:
      ---------
      .
      .
      ...........

      دیدگاه


        #4
        پاسخ : کمک به شروع یادگیری ارتباط usb با میکروکنترلر lpc1768

        سلام
        خود nxp یه لایبرری برای usb داره. ولی من اونو استفاده نکردم :mrgreen: چون می خواستم بفهمم دقیقا usb چطوری کار می کنه
        برای اینکه بخواید با کامپیوتر ارتباط برقرار کنید دستگاهتون دیوایس و کامپیوتر هاست هستش.
        اگر شما هم نمی خواید از کتابخونه استفاده کنید :biggrin: :
        اول از همه به سایت زیر برید و اصطلاحات usb رو یاد بگیرید.(مثلا configuration ,interface ,endpoint اینا چی هستند)
        http://www.usbmadesimple.co.uk
        اگر به usermanual خود LPC1768 نگاه کنید مرحله به مرحله توضیح داده برای فعال کردن usb و فرستادن اطلاعات باید چیکار کرد. من یه کد توی اینترنت پیدا کردم که دقیقا همون کارا رو کرده بود ولی الان نمی تونم پیداش کنم. :cry2:
        بعد از اینکه usb میکرو رو راه بندازید باید طبق پروتوکول usb هاست یه سری درخواست ها رو از دیوایس می کنه که دیوایس شما باید بتونه به اون ها جواب بده.( بخش 4 همون لینک راجع به این درخواست ها توضیح داده) این در خواست ها شامل اینکه دستگاه شما pid و vid ش چین چند تا کانفیگوریشن داره چند تا اینترفیس داره چند endpoint داره چه کانفیگوریشنی الان فعاله کلاس اینترفیس چی هست و.... بعد از اون هاست میره براساس pid و vid دستگاه شما درایور مناسب رو انتخاب می کنه و فعالش می کنه. بعد از اون کار ها رو درایور شما در هاست انجام می ده و دیگه بقیش بستگی به خودتون داره که چی رو می خواید با usb بفرستید.
        چون من می خواستم درایور نویسی رو هم یاد بگیرم خودم درایورش رو نوشتم ولی نمی دونم آیا راه ساده تری هم هست یا نه

        دیدگاه


          #5
          پاسخ : کمک به شروع یادگیری ارتباط usb با میکروکنترلر lpc1768

          دقیقا من هم می خوام از این پروتکل سر در بیارم تا بعدا بتونم جاهای دیگه هم ازش استفاده کنم.
          یعنی بعد ارسال بایت های کنترلی و ... ، اطلاعات رو تو فرمت عادی 8 بیتی می فرستیم ؟ یعنی دیگه لازم نیست هر بار بایت های دیگه رو هم بفرستیم ؟
          ---------
          .
          .
          ...........

          دیدگاه


            #6
            پاسخ : کمک به شروع یادگیری ارتباط usb با میکروکنترلر lpc1768

            می تونید 8 بیتی هم بفرستید. در اصل خودتون تعیینش می کنید

            دیدگاه


              #7
              پاسخ : کمک به شروع یادگیری ارتباط usb با میکروکنترلر lpc1768

              سلام
              (تو مد HID) هر بار که device یه بسته می فرسته و ارسال تموم میشه، host یه درخواست دیگه میده برای اطلاعات بعدی، اگه بافر پر باشه ارسال میشه و اگر نه NAK ارسال میشه و در این صورت host تا زمان bInterval که توی فایل description تعریف شده صبر می کنه و بعد دوباره درخواست میده.رد و بدل اطعالات از طریق endpoint ها صورت می گیرن که شماره 0 برای پیام های کنترلی و دیتا و بقیه برای دیتا هستند.
              مثلا در مثال کیل اندپوینت 0 دیتا های دریافتی رو توی OutReport قرار میده و دیتاهای ارسالی رو از inReport میخونه.توی روتین اینتراپت اندپوینت 1 هم flag خروجی USB_EVT_In رو چک میکنه و جواب رو میفرسته، چون همیشه داره بافر رو پر می کنه، پس همیشه دیتا ارسال میشه. میشه USB_EVT_OUT رو که flag ورودی است رو چک کنه و بعد دیتا بفرسته. البته خوندن و نوشتن لزوما نباید توی اینتراپت اندپوینت انجام بشه، بلکه هر جایی میتونه باشه.
              تعداد بایت ارسال و دریافتی هم توسط کاربر قابل تنظیمه.
              کلا اولش یکم گیج کنندس اما دو،سه روز وقت بذارین دستتون میاد.
              اطلاعاتی دست پا شکسته ای بود که داشتم، امیدوارم کمک کنه. :question:
              The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

              دیدگاه

              لطفا صبر کنید...
              X