7 Replies Latest reply on Mar 13, 2013 4:41 AM by content.librarian

    fx3's cyusb3014 io toogle speed

    barasc.liu

      anyone can tell me the maximum gpio's toggle speed of the cyusb3014?

        • 1. Re: fx3's cyusb3014 io toogle speed
          anand.srinivasan.asokan

          It should be around 720kHz using the SDK. 1MHz should be the max possible we're trying to provide register access to do that.

             

          Regards,

             

          Anand

          • 2. Re: fx3's cyusb3014 io toogle speed
            barasc.liu

            ASSI,i think it must be higher than 1mhz.

               

            Atmel's arm926ej-s SoC or sam7 Soc has a io toggle speed at about  1/4~1/5 of the system clock.

               

            So I think that fx3's io toggle speed is the same(at about 25mhz).But now i has not the chip,can't test it.

               

            anyone has the real result?

            • 3. Re: fx3's cyusb3014 io toogle speed
              barasc.liu

              write "00101010101010..." to the pin

              • 4. Re: fx3's cyusb3014 io toogle speed
                content.librarian

                I have tested it with a fx3 DVK and measured GPIO toggle speed with an oscilloscope. The max. toggle freq is about 270 kHz write a sequence of 0101010 to a GPIO Pin via SDK. If you want to simulate a SPI-Readaccess then this toggle frequence is only 210 kHz because of the needed GPIO-Reads. Perhaps there is a faster way to implement and someone has a good idea.

                   

                Regards Uli

                • 5. Re: fx3's cyusb3014 io toogle speed
                  jaroslav.halas

                  Sadly all my tests reveal max toggle speed is 1MHz for a single GPIO pin,... if you play with more then one GPIO then you must divide this frequency by number of changed pins, which sucks. there is no possible paralell output for GPIOs ... on the other hand fo GPIO inputs you can read GPIO (00-31, and 32-59) pins at once  so whole 60 inputs at 2 steps (500KHz)

                     

                  also i tested if MCU thread sheduling mess things up ... it seems that not (you achieve the same speed with or without threads usage)

                     

                  change of GPIO clock settings do not change things .... i assume its only for GPIO contorler interface and have absolutely nothing with GPIO in/out operation speed

                     

                  there is only one possible speed up and that is: direct register access which i donot know how to achieve on this platform (there is no source code ,... and SDK is only in object files so no diging there too, and i am used to use asm for MCUs, and also more familiar with Atmel then Cypress), but anyway the output registers are not groupped together as input registers so the division of max frequency stands there. ... speeding up with this aproach would be posible only if there is some kind of bug in SDK API

                     

                  P.S. I am using CYUSB3014 (DVK board CYUSB3KIT-001)

                     

                  ARM clock `200MHz

                     

                  GPIO clock `200MHz    .... as i mentioned before this has nothing to dowith input/output speed

                  • 6. Re: fx3's cyusb3014 io toogle speed
                    rama.sai.krishna.vakkantula

                    Hi Hali,

                       

                    You are right. Please let me know if you want to do the register level access to improve the speed by a little bit.

                       

                    FX3 GPIO Registers are described in the section 9.2 of Programmers manual of FX3.

                       

                    Thanks,

                       

                    Sai Krishna.

                    • 7. Re: fx3's cyusb3014 io toogle speed
                      content.librarian

                      Hi Hali,

                         

                      did you already have seen the SPI GPIO example in the instatlation folder <FX3 SDK\firmware\serialif_examples\cyfxusbspigpiomode> ? There is a define which uses direct register success or API success.

                         

                      regards,

                         

                      lumpi