cancel
Showing results for 
Search instead for 
Did you mean: 

USB Low-Full-High Speed Peripherals

Anonymous
Not applicable

Hello,

My application uses CY7C65211 GPIOs to perform JTAG emulation. It's using Cypress USB library and CySetGpioValue/CyGetGpioValue APIs from Windows command-line executable.

The maximum toggling GPIO speed I'm measuring is 4ms (or 250Hz). This is too high for my application, and I'm looking for ways to decrease this number to hundreds of usec.

I wasn't able to find GPIO toggling performance in the available documentation. Can anybody provide any pointers? Also, any suggestions how to increase GPIO toggling speed are welcome.

Thanks,

Evgeni

0 Likes
Reply
1 Solution
Anonymous
Not applicable

Hi Hemanth,

I further investigated this issue.

I captured USB traffic using protocol analyzer. Because it's a USB1.1 device, it's operating at 1ms resolution. There are USB SETUP transactions used to set/clear GPIOs. Each SETUP transaction has a couple of request-response phases, and each one takes about 1.9ms.

So toggle speed is limited by the fact that it's a USB1.1 device. It's a fundamental limitation of the chip and the speed cannot be improved.

I tried similar FTDI chip, which is USB2.0 device. Did the same GPIO bit-banging, and got 50-70us latencies.

Thanks,

Evgeni

View solution in original post

0 Likes
Reply
2 Replies
Hemanth
Moderator
Moderator

Hi Evgeni,

- Bit banging using Cypress USB serial bridge is not recommended. You may have to look for PSoC products for the same.

- For improving the toggling speed, what you can try is to use the CySetGpioValue/CyGetGpioValue APIs in a separate thread in your command line application. BUT NOTE that the performance of the main features of USB-Serial bridge(as mentioned in the datasheet) may be affected by this approach (which is creating a dedicated thread for bit banging a GPIO)

Regards,

Hemanth 

Hemanth
Anonymous
Not applicable

Hi Hemanth,

I further investigated this issue.

I captured USB traffic using protocol analyzer. Because it's a USB1.1 device, it's operating at 1ms resolution. There are USB SETUP transactions used to set/clear GPIOs. Each SETUP transaction has a couple of request-response phases, and each one takes about 1.9ms.

So toggle speed is limited by the fact that it's a USB1.1 device. It's a fundamental limitation of the chip and the speed cannot be improved.

I tried similar FTDI chip, which is USB2.0 device. Did the same GPIO bit-banging, and got 50-70us latencies.

Thanks,

Evgeni

View solution in original post

0 Likes
Reply