CX3 GPIO configuration with CyU3PDeviceConfigureIOMatrix returns ERROR

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

cross mob
Anonymous
Not applicable

 Hi,

   

is it not necessary to set simple or complex GPIO in CX3? Are the GPIO's already enabled after the call of CyU3PDeviceConfigureIOMatrix?

   

 

   

I get an error if I try to configure GPIO17... GPIO19 to simple gpio from CyU3PDeviceConfigureIOMatrix.

   

thanks,

   

lumpi

0 Likes
1 Solution
Anonymous
Not applicable

 You can manually override the pin for use as Simple or Complex GPIO.

   

 

   

To do that, you need to call CyU3PDeviceGpioOverride just before configuring the pin (using CyU3PGpioSetSimpleConfig).

   

 

   

i.e

   

CyU3PDeviceGpioOverride (17, CyTrue);

   

gpioConfig.outValue = ....;
gpioConfig.inputEn = ....;
gpioConfig.driveLowEn = ....;
gpioConfig.driveHighEn = ....;
gpioConfig.intrMode = ....;
apiRetStatus = CyU3PGpioSetSimpleConfig(17, &gpioConfig);
if (apiRetStatus != CY_U3P_SUCCESS)
{
   ......
}

View solution in original post

0 Likes
3 Replies
Anonymous
Not applicable

 I have the same problem.... Who knows solution?

0 Likes
Anonymous
Not applicable

 You can manually override the pin for use as Simple or Complex GPIO.

   

 

   

To do that, you need to call CyU3PDeviceGpioOverride just before configuring the pin (using CyU3PGpioSetSimpleConfig).

   

 

   

i.e

   

CyU3PDeviceGpioOverride (17, CyTrue);

   

gpioConfig.outValue = ....;
gpioConfig.inputEn = ....;
gpioConfig.driveLowEn = ....;
gpioConfig.driveHighEn = ....;
gpioConfig.intrMode = ....;
apiRetStatus = CyU3PGpioSetSimpleConfig(17, &gpioConfig);
if (apiRetStatus != CY_U3P_SUCCESS)
{
   ......
}

0 Likes

Hi, I also have this issue.

Here I find, you cannot use API CyU3PDeviceConfigureIOMatrix to configure GPIO17. Just only using CyU3PDeviceGpioOverride API to control this GPIO. Otherwise, CX3 will crash.

Angus

0 Likes