2 Replies Latest reply on Oct 5, 2017 5:53 AM by Evgeni Stavinov

    CY7C65211 GPIO max toggling speed

    Evgeni Stavinov

      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

        • 1. Re: CY7C65211 GPIO max toggling speed
          hman

          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 

          • 2. Re: CY7C65211 GPIO max toggling speed
            Evgeni Stavinov

            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