Announcements

Register now for the most anticipated Asia Pacific Power Seminar 2022

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

USB superspeed peripherals Forum Discussions

JCL
Level 1
5 sign-ins First reply posted First question asked
Level 1

Hi,

We will build a custom board based on an FX3 and a camera module.
The boot is done from an I2C flash and the camera is connected through GPIF like in AN75779.
The camera module consumes too much for initial bus power so we plan to control its power supply.

We have two conditions where it will be off:

  • Before the USB has negotiated 500mA current
  • When the USB goes in sleep/standby

In those cases, we need to make sure that there’s no back powering through the IOs connected to the module.

I see from AN46705 that all GPIOs of interest (about the same as in AN75779) are tristated during bootloading.

As far as some early tests on the eval board suggest:

  • CyU3PGpifLoad is actually modifying the configuration of the GPIF pins used
  • CyU3PGpifDisable seems to restore the original configuration (at least true to output used in GPIF state machine)

I have two questions:

  1. Is the tristate configuration (of GPIF pins) surviving the call of the following functions ?
    • CyU3PGpioInit
    • CyU3PPibInit
    • CyU3PDeviceConfigureIOMatrix
  2. Is CyU3PGpifDisable restoring the tristate configuration of used GPIF pins?

Thanks in advance,
Best regards,
JC

0 Likes
1 Solution
Hemanth
Moderator
Moderator First like given First question asked 750 replies posted
Moderator

Hi,


Is the tristate configuration (of GPIF pins) surviving the call of the following functions ?
    • CyU3PGpioInit
    • CyU3PPibInit
    • CyU3PDeviceConfigureIOMatrix

The above APIs does not change the state of GPIOs which was there during boot.

Regards,

 

Hemanth

View solution in original post

3 Replies
Hemanth
Moderator
Moderator First like given First question asked 750 replies posted
Moderator

Hi,


Is the tristate configuration (of GPIF pins) surviving the call of the following functions ?
    • CyU3PGpioInit
    • CyU3PPibInit
    • CyU3PDeviceConfigureIOMatrix

The above APIs does not change the state of GPIOs which was there during boot.

Regards,

 

Hemanth
JCL
Level 1
5 sign-ins First reply posted First question asked
Level 1

Hi @Hemanth,

Thanks for your answer.

Do you know whether the CyU3PGpifDisable function restores the tristate initial state of GPIF pins?
I see that it stops driving lines but I don't know if it resets them to their initial state.

Thanks in advance,
JC

0 Likes
Hemanth
Moderator
Moderator First like given First question asked 750 replies posted
Moderator

Hi,

CyU3PGpifDisable disables the GPIF hardware, so it should restore the tristate initial state of GPIF pin.

However please test the same by placing weak pull-up/ pull-down on the pin and check if the pin is going high/ low respectively which will show that the pin is trisated.

Regards,

Hemanth
0 Likes