Do digital pins of KL46Z have level shifters? I am 90% sure that yes but I can't find this information from documents linked with KL46Z board.
KL46 pin hasn't level shift. It has clamping circuit. Why do you want level shift?
Ok, I read about clamping and I know how it's working, when we have higher voltage on input pin than 3.3V. But what if we want work with 5V logic module, what is the value of output pin voltage KL46Z?
KL46 max supply voltage is 3.6v. So, VOH can't high than 3.6v. If you want to drive 5v device, you have to use external level shift circuit.
But I'm working with LCD 20x4 which have PCF8574 expander supplying by 5V and I2C communication between KL46Z and LCD works correctly.
EDIT: I read more about PCF8574 in datasheet and I think that voltage of KL46Z output pin falls within the tolerance range of PCF8574 expander then it's working good. I'm right?
Yes, I think so. All I/O pins are internally clamped to VSS through a ESD protection diode. There is no diode connection to VDD. I2C bus pullup to 5v will not have sink current to 3.3v. But KL46 I/O pin is not 5v tolerant. 5V pullup may harmful to the pin. I2C inputs 5v tolerant?
I think it is better if you can change to a 3.3v lcd driver.
Please correct me if I think wrong. I2C works so that LOW signal is pulling to GND, HIGH is constant pulled to VDD by pullup resistors so there is not relevant to have the same HIGH level voltage in microcontroller and driver.
Retrieving data ...