Hi all - thanks in advance for any help or suggestion.
I’m referring to the schematics below, used for level conversion of a Nucleo L432KC board 3.3v logic to 5v, for an external old CMOS circuitry sharing in and out on a single line (CONV_OUT). Please don’t ask why conversion is done like that. Let me just say it’s for a project now on PCB, so relatively hard to change…
Setting the input pin mode to “pull none”:
DigitalIn in_D_OUT (PC_1);
DigitalOut out_D_OUT (D11);
...
in_D_OUT.mode(PullNone);
Then, setting the output pin values, I measure on CONV_OUT:
out_D_OUT = 0 --> 0.00 V
out_D_OUT = 1 --> 3.76 V
I expected the high level to be about 4.3 V (considering the 0.7 drop over the diode), while it’s actually much lower than that. This unfortunately is not enough, for a reliable behavior on the external device.
Irrespective of how I set in_D_OUT.mode ( PullNone, PullUp, PullDown ), I always get out 3.76 V high level.
Only if I physically UNPLUG the in_D_OUT pin from Nucleo, I get the expected levels:
out_D_OUT = 0 --> 0.0V
out_D_OUT = 1 --> 4.33V
I thought “PullNone” mode to be equivalent to virtually unplugging the GPIO pins, but that does not seems to be the case.
Am I doing, or evaluating, something wrong?