Toggling the CY7C64113's GPIO

Question: I would like to rapidly change the CY7C64113's GPIO lines between input and output to implement a bi-directional bus. Is there any problem in switching between in and out or is there a limit to the rate this can be done?

 

Answer:

To switch between input and output, you need to change the GPIO configuration which might take about 8 instructions, each instruction typically takes 5 clock cycles (each clock cyle is 1/12MHz). Therefore, to change the GPIOs from one mode to another, the processor would need about 40 clock cycles + trise/fall (each clock cyle is 1/12MHz). Sum all these up, the total time needed is approximately 3.3us.