اطلاعیه

Collapse
No announcement yet.

افزایش سرعت ارسال دیتا USB HID در LPC1768

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

    افزایش سرعت ارسال دیتا USB HID در LPC1768

    سلام

    با یه دستکاری مختصر تو برنامه USB HID که برای برد آمورشی LPC1768 هست به صورت پی در پی داده ارسال میشه و تو سمت کامپیوتر دریافت میشه تا اینجا همه چی مرتبه اما مشکلی که هست سرعت پایین در ارسال هست که تقریبا 15 بایت در هر ثانیه ارسال میشه که سرعت خیلی کمی هست
    تو دیتاشیت زمان 1ms رو برای انتقال هر فریم نوشته که متاسفانه تو ریجیسترها نتونستم نحوه تنظیم رو پیدا کنم

    #2
    پاسخ : افزایش سرعت ارسال دیتا USB HID در LPC1768

    سلامی دوباره

    با یه دستکاری دوباره درست شد

    کافیه bInterval رو با مقدار 1 - 2 - 4 - 8 - 16 - 32 - 64 - 128 جایگزین کنید
    مقدار اولیه 0x20 هست

    کد:
    const U8 USB_ConfigDescriptor[] = {
    /* Configuration 1 */
     USB_CONFIGUARTION_DESC_SIZE,    /* bLength */
     USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType */
     WBVAL(               /* wTotalLength */
      USB_CONFIGUARTION_DESC_SIZE +
      USB_INTERFACE_DESC_SIZE   +
      HID_DESC_SIZE        +
      USB_ENDPOINT_DESC_SIZE
     ),
     0x01,               /* bNumInterfaces */
     0x01,               /* bConfigurationValue: 0x01 is used to select this configuration */
     0x00,               /* iConfiguration: no string to describe this configuration */
     USB_CONFIG_BUS_POWERED /*|*/    /* bmAttributes */
    /*USB_CONFIG_REMOTE_WAKEUP*/,
     USB_CONFIG_POWER_MA(100),     /* bMaxPower, device power consumption is 100 mA */
    
    /* Interface 0, Alternate Setting 0, HID Class */
     USB_INTERFACE_DESC_SIZE,      /* bLength */
     USB_INTERFACE_DESCRIPTOR_TYPE,   /* bDescriptorType */
     0x00,               /* bInterfaceNumber */
     0x00,               /* bAlternateSetting */
     0x01,               /* bNumEndpoints */
     USB_DEVICE_CLASS_HUMAN_INTERFACE, /* bInterfaceClass */
     HID_SUBCLASS_NONE,         /* bInterfaceSubClass */
     HID_PROTOCOL_NONE,         /* bInterfaceProtocol */
     0x04,               /* iInterface */
    /* HID Class Descriptor */
    /* HID_DESC_OFFSET = 0x0012 */
     HID_DESC_SIZE,           /* bLength */
     HID_HID_DESCRIPTOR_TYPE,      /* bDescriptorType */
     WBVAL(0x0100), /* 1.00 */     /* bcdHID */
     0x00,               /* bCountryCode */
     0x01,               /* bNumDescriptors */
     HID_REPORT_DESCRIPTOR_TYPE,    /* bDescriptorType */
     WBVAL(HID_REPORT_DESC_SIZE),    /* wDescriptorLength */
    /* Endpoint, HID Interrupt In */
     USB_ENDPOINT_DESC_SIZE,      /* bLength */
     USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType */
     USB_ENDPOINT_IN(1),        /* bEndpointAddress */
     USB_ENDPOINT_TYPE_INTERRUPT,    /* bmAttributes */
     WBVAL(0x0004),           /* wMaxPacketSize */
     8,     /* 32ms */     /* bInterval */
    /* Terminator */
     0                 /* bLength */
    };

    دیدگاه


      #3
      پاسخ : افزایش سرعت ارسال دیتا USB HID در LPC1768

      اگه میشه فایل پروژتونو قرار بدین
      گفت که دیوانه نهی لایق این خانه نهی

      دیدگاه


        #4
        پاسخ : افزایش سرعت ارسال دیتا USB HID در LPC1768

        سلام

        اون دستکاری ها تو مثال خود برد آموزشی eca بود که میتونید از اینجا دانلود کنید
        http://www.eca.ir/forum2/index.php?topic=75472.0

        دیدگاه


          #5
          پاسخ : افزایش سرعت ارسال دیتا USB HID در LPC1768

          من این مثال رو اجرا کردم ولی متاسفانه هیچ داده ای رو نه دریافت می کنم توی HIDCLIENT و نه ارسال میشه
          البته من بدون پروگرمر به روش USB پروگرم کردم مثال سایت رو


          همیشه صفر ارسال می شه

          کد:
          BOOL HID_GetReport (void) {
          
          
            /* ReportID = SetupPacket.wValue.WB.L; */
            switch (SetupPacket.wValue.WB.H) {
              case HID_REPORT_INPUT:
                GetInReport();
                EP0Buf[0] = 0x55;
                break;
              case HID_REPORT_OUTPUT:
                return (__FALSE);        /* Not Supported */
              case HID_REPORT_FEATURE:
                /* EP0Buf[] = ...; */
                /* break; */
                return (__FALSE);        /* Not Supported */
            }
            return (__TRUE);
          }

          دیدگاه

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