gpio simulation i2c problem

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

cross mob
chsh_1759911
Level 3
Level 3
10 sign-ins 10 replies posted 10 questions asked

i try to usb GPIO to simulate i2c peripheral

send data is fine but i cant read SDA value

this how i init SDA pin

apiRetStatus = CyU3PDeviceGpioOverride(25, CyTrue);

if (apiRetStatus != 0) {

CyU3PDebugPrint(4, "CyU3PDeviceGpioOverride failed, error code = %d\n", apiRetStatus);

}

gpioConfig.outValue = CyTrue;

gpioConfig.driveLowEn = CyTrue;

gpioConfig.driveHighEn = CyTrue;

gpioConfig.inputEn = CyTrue;

gpioConfig.intrMode = CY_U3P_GPIO_NO_INTR;

apiRetStatus = CyU3PGpioSetSimpleConfig(25, &gpioConfig);

if (apiRetStatus != CY_U3P_SUCCESS) {

}

CyU3PThreadSleep(10);

CyU3PGpioSetValue(25, CyTrue);

while i call CyU3PGpioGetValue function it always return 0;

0 Likes
1 Solution

We can not configure the GPIO in both input and output.

It can only work as either of two.

If you want this functionality, you have to modify the GPIO configuration whenever you want to switch to another mode (Input to Output or Vice versa).

FX3 comes with one I2C Master. Is this not meeting your requirements?

Why do you need another I2C Master here?

View solution in original post

0 Likes
5 Replies