cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

New Contributor

We are using the CYBLE-214015-01 microcontroller, in one of its pins we configure it as "High Impediance" or "Open Drain" and connect it to an LED, the power of the microcontroller is 2.5V, and for the LED it is 5V Then according to the configuration that we have adjusted when a 1 or 0 is sent to the pin output, it should be floating, that is, the LED should be completely off or on depending on the configured mode, but it happens that when we want to turn off the LED (with any of the settings), it remains illuminated. Could someone explain to me why this happens?

And how to fix it?

We already know that there will be two protection diodes in each GPIO that connect to VDDIO and connect to ground. But we believe that this is not the problem, if not you could not say Open Drain or High Impediance.

0 Likes
Reply
1 Solution
Employee

Adra,

Can you please describe, or attach a schematic of the LED circuit? It sounds like you may have the GPIO pulled high to 5V externally?  and are using open drain DRIVES LOW.  In this config when your write a 0, you should pull GPIO to ground, and assume the other side of the LED is tied to 5V you would see the LED turn on.  Then by writing 1, it would put the pin in high-z mode, and if it is pulled up externally you would see the LED turn OFF.

BUT, if the micro controller is only powered at 2.5V you cannot apply 5V to the GPIO in this way.  If you do one of two things will happen:

1) If the current is above 100uA (spec for I diode) you will damage the device as this is higher than VDD+.5V (spec for VGPIO absolutel MAX)

2) If the current is below 100uA, the ESD protection diodes will clamp the input voltage to VDD.  So it will be at 2.5V

I am guessing #2 is happening here and the LED is still getting biased and not turning on.  You can do some tests by putting a DMM on the GPIO in order to see what the voltage is at.  Please look at the specs of your LED as well.

-Kevin

View solution in original post

0 Likes
Reply
1 Reply
Employee

Adra,

Can you please describe, or attach a schematic of the LED circuit? It sounds like you may have the GPIO pulled high to 5V externally?  and are using open drain DRIVES LOW.  In this config when your write a 0, you should pull GPIO to ground, and assume the other side of the LED is tied to 5V you would see the LED turn on.  Then by writing 1, it would put the pin in high-z mode, and if it is pulled up externally you would see the LED turn OFF.

BUT, if the micro controller is only powered at 2.5V you cannot apply 5V to the GPIO in this way.  If you do one of two things will happen:

1) If the current is above 100uA (spec for I diode) you will damage the device as this is higher than VDD+.5V (spec for VGPIO absolutel MAX)

2) If the current is below 100uA, the ESD protection diodes will clamp the input voltage to VDD.  So it will be at 2.5V

I am guessing #2 is happening here and the LED is still getting biased and not turning on.  You can do some tests by putting a DMM on the GPIO in order to see what the voltage is at.  Please look at the specs of your LED as well.

-Kevin

View solution in original post

0 Likes
Reply