1
\$\begingroup\$

I am trying to interface a micro-controller (LPC11C14) to a LCD. The LCD has Vih = 3.5V so I cannot directly connect the uC pin to the LCD. For this, I found a GTL2000 chip which looks like it might do the job. But here is the issue that i am not sure about.

I want bi-directional voltage translation because I want R/W facility with the LCD (for reading Status Read). I know that I can set the outputs of this CMOS microcontroller to open-drain, but I am not sure about the LCD (I don't think they are open drains). So I modified the bi-directional circuit shown in the datasheet to include resistors on the open drain side. The clamp resistors are calculated through specified formulas in the datasheet. GTL 2000 Example circuit

My question is this circuit likely to work?

Also, if I don't put the uC pins in open drain mode, I can remove the pull-up resistors on that side. Is that possible as well? The datasheet does not talk about standard GPIO behavior.

Thanks,

The LCD being is NHD-12864WG-BTGH-T#N, which has a Voh of 3.5V.

\$\endgroup\$
2
  • \$\begingroup\$ Is it safe to assume you rejected NHD's 3.3V-logic display(s) for some reason? \$\endgroup\$
    – gwideman
    Commented Mar 6, 2013 at 6:46
  • \$\begingroup\$ Hi gwideman, I am using a 5V LCD, because they appear to be very popular. There is no reason why I should be ruling out 3.3V LCD solution, yet I am. A common workaround to the problem stated in the original q seems to be choosing the LCD with low VIH ~ 2V (lowest I have found) and moderate/high VOH ~ 2.4V (highest I have discovered. These are the 2 LCDs I found that provide desirable properties: NewHaven's NHD‐12864WG‐BTFH‐V#N and Amotec's ADM12864H-FSY-YBS/Z. Here is a mbed project with NewHaven's LCD mbed.org/users/DimiterK/notebook/ks0108-library connected to LPC1768. \$\endgroup\$
    – John
    Commented Mar 6, 2013 at 11:10

1 Answer 1

0
\$\begingroup\$

You'd have to provide additional information about which LCD you're using. In general, though, what you are proposing will not work.

You can connect multiple open drain outputs together because open drain logic is essentially an OR of all the outputs. Each output only sets logic 0 or a don't care condition, so it's safe to connect multiple drivers together, and there is no contention. You cannot do this with a regular output (what the datasheet calls a totem pole output), because such an output asserts both logic 0 and logic 1. This means that there is scope for significant contention between the two sides. In your case, the circuit will simply not work, and likely cause a fair bit of damage.

Parallel buses are very rarely open drain. Just because you can set an output as open drain does not mean that it will remain open drain if you enable a bus controlling peripheral like an SMC (Static Memory Controller) and/or DMA. I haven't used the LPC myself, but I'd be very careful with it. Generally, as long as you use it as a GPIO it'll honour the open drain setting. Once you enable a peripheral, then it depends on the peripheral's requirements. Usually, open drain isn't fast enough a high speed parallel bus, and therefore they aren't designed to handle open drain.

The general way to handle voltage translation for such applications is to use high speed logic, and a combination of the WR/RD and CS pulses to set the direction of a more traditional level translating buffer like the SN74LVC1T45 and it's 2, 8, 16 bit variants. Given information about which lines need reversing and when, you can work out a scheme which does what you require.

\$\endgroup\$
2
  • \$\begingroup\$ Hi Chintalagiri, thanks for your response! It has clarified some of the datasheet details (first time i am dealing with level translation). I have now specified the LCD as well. Say, If I use SN74LVC1T45, i may have to proceed also with SN74LVCH245 (transceiver). This may be important because when I am changing the direction of 1T45 there will be an unknown state when the direction cannot be determined. For this purpose, I should have LCD (5V) <-> SN74LVCH245 <-> SN74LVC1T45 <-> MCU (3.3V). Does that sound right? \$\endgroup\$
    – John
    Commented Mar 5, 2013 at 10:50
  • \$\begingroup\$ Using the WR/RD signal of the data bus with the 74LVC1T45 (though you probably need the 8T45, the 8 bit version) should be sufficient. There is a brief period where the direction is unspecified, but as I said, some external logic will be necessary to make sure you switch direction at the correct time. You could use AND / NOR condition on your LCD's CS1, CS2 (or some combination of) and R/W (1 when read) to set the direction of buffer to LCD -> MCU in the only condition you want it that way, ie, when trying to read from LCD. The buffers should be in the MCU->LCD direction in all other cases. \$\endgroup\$ Commented Mar 5, 2013 at 11:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.