FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  

News:

Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support


New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Author Topic: FT260 Protocol question  (Read 9017 times)

MattAn

  • Newbie
  • *
  • Posts: 3
    • View Profile
FT260 Protocol question
« on: December 12, 2019, 11:31:40 PM »

I'm using the FT260 to interface an I2C HID keyboard to USB and I'm not understanding one of the responses and hoping someone can help. 

When the FT260 boots, it reads my device's device descriptor, this works great.  From the device descriptor it gets the address of my report descriptor register, then requests the report descriptor from my device, this works great too.  I know this is working to this point because that second descriptor is the keyboard descriptor (describes my device as a keyboard), and it is now showing up as a keyboard in windows.  But this is where I'm stuck. 

At this point, the FT260 writes the bytes 0x60 0x00 0x00 0x01 to my device.  The 0x60 is the address of my command register, and the data is LSB so it's writing 0x0100 to my command register.  The HID over I2C specification section 7.1.1 on the command register indicates this is an opcode, but doesn't say anything about what the opcode means or how to respond to it.  My guess is it's specific to the keyboard use case, but so far my google skills have not lead to an answer.  From here the FT260 is non-responsive, when I assert the interrupt pin it does not query my device for a report as I'm expecting it to, and I suspect the problem has to do with me not responding properly to the 4 bytes described above.  Can anyone help nudge me in the right direction?  Also it repeats this whole scenario 3x very quickly, then stops.  Please help if you can!  I've copied the interaction between the FT260 and my device below:

Code: [Select]
Request - HID descriptor 0x4  --- (FT260 requests my HID descriptor at register 0x40)
Sending HID descriptor..30 bytes ..Done.
Request unknown: 0x0

I2C received 0 bytes --- (FT260 sends I2C write 0 bytes long)

Request - Report descriptor 0x10 --- (FT260 requests my report descriptor from register 0x10)
Sending HID Report descriptor..45 bytes ..Done.

Request unknown: 0x0 --- (FT260 requests register 0x00, I ignore it)

I2C received 0 bytes --- (FT260 sends I2C write 0 bytes long)

I2C received 4 bytes
0x60 0x0 0x0 0x1
Received - command register ---  (FT260 writes 0x0100 to my command register at address 0x60)

I2C received 0 bytes (FT260 sends I2C write 0 bytes long)

[ The above now repeats 2X ]

Request - HID descriptor 0x4
Sending HID descriptor..30 bytes ..Done.
Request unknown: 0x0

I2C received 0 bytes

Request - Report descriptor 0x10
Sending HID Report descriptor..45 bytes ..Done.
Request unknown: 0x0

I2C received 0 bytes

I2C received 4 bytes
0x60 0x0 0x0 0x1
Received - command register

I2C received 0 bytes
.................
Request - HID descriptor 0x4
Sending HID descriptor..30 bytes ..Done.
Request unknown: 0x0
.
I2C received 0 bytes

Request - Report descriptor 0x10
Sending HID Report descriptor..45 bytes ..Done.
Request unknown: 0x0

I2C received 0 bytes

I2C received 4 bytes
0x60 0x0 0x0 0x1
Received - command register

I2C received 0 bytes

« Last Edit: December 12, 2019, 11:48:56 PM by MattAn »
Logged

FTDI Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 891
    • View Profile
Re: FT260 Protocol question
« Reply #1 on: December 17, 2019, 01:38:13 PM »

Hello,

Could you send us a copy of the descriptor which the PC receives and also details on which keyboard chipset you use.

You can reply here or send to our support address support1@ftdichip.com if you prefer.

Thanks,
FTDI Community
Logged