AnsweredAssumed Answered

Custom HID sending more tha 1 bytes [Solved]

Question asked by bielak.lukas on Nov 7, 2011
I have problem with sending report bigger than 1 bytes. I have configured descriptor 
and endpoints buffers address  ( I am using 2 endpoints because i develop Composite device HID + MSC which is working properly when using 1 bytes reports ). Now device enumarate and I can write to it but sending not invoke endpoint callback.

Did anyone has similar problems ?

report descriptor :
const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC] =
  {
          0x06, 0x00, 0xff,              // USAGE_PAGE (Vendor Defined Page 1)
              0x09, 0x01,                    // USAGE (Vendor Usage 1)
              0xa1, 0x01,                    // COLLECTION (Application)
              0x85, 0x01,                    //   REPORT_ID (1)
              0x09, 0x01,                    //   USAGE (Vendor Usage 1)
              0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
              0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255)
              0x75, 0x08,                    //   REPORT_SIZE (8)
              0x95, 0x05,                    //   REPORT_COUNT (5)
              0x91, 0x82,                     //   OUTPUT (Data,Var,Abs,Vol)
              0xc0                           // END_COLLECTION
  }; /* CustomHID_ReportDescriptor */

buffors

#define BTABLE_ADDRESS      (0x00)

//Konfiguracja buforów do ENDPOINT`ow
/* EP0  */
/* rx/tx buffer base address */
//EP0 kontrolny
#define ENDP0_RXADDR        (0x18)
#define ENDP0_TXADDR        (0x58)

/* EP1  */
//EP1 MASS STORAGE (bufory po 40)
/* tx buffer base address */
#define ENDP1_TXADDR        (0x98)
#define ENDP1_RXADDR        (0xD8)        //TODO:modyfikacja endp1

//EP2 HID bufory po 40
#define ENDP2_TXADDR        (0x118)
#define ENDP2_RXADDR        (0x158)        //TODO:modyfikacja endp1

Outcomes