[sdiy] Odd problem with LCD

Tom Wiltshire tom at electricdruid.net
Sun Apr 5 21:24:05 CEST 2009


Hi all,

If anyone can give me a clue to help with the following problem, I'd  
be grateful.

I'm working on testing the main processor board of my monosynth. It  
has a PIC 16F74 that deals with MIDI, scanning the keyboard, the  
buttons, etc etc. It also has an LCD display attached.

The LCD display is working fine, but the least-significant-bit seems  
to always be high. This means letters with an even-numbered ascii  
code finish up getting shifted up one place (L becomes M, but E is  
ok, D becomes E, but U is ok, etc).

I have an 8-bit databus to which most of these parts are attached via  
74HC541 buffer chips - the button matrix and the keyboard matrix both  
work like this. The LCD data lines (all 8 of them) is connected  
directly to this bus, since unless its clock and enable lines are  
pulsed, it will ignore data on the bus. The databus is connected to  
Port B on the PIC, which also has control of the chip select lines  
for all the '541s so it can choose which data to read, or can write  
to the LCD.

Testing the troublesome databus line with a voltmeter shows 1.64V,  
which is what you'd expect for a line which was floating. But it  
shouldn't be floating, since the PIC should be pulling it high or  
low. Which it does for the other seven lines.

I've tested the board without the PIC in place and both 74HC541  
buffers are fine. I've tested the LCD on another board, and it's  
fine. I've tested the relevant pins of the PIC by making it switch  
LEDs on and off on my breadboard, and it's fine too. There's nothing  
special about that Port B pin except that it's the one used for  
external interrupts (INT).

So why does this one line seem to float? Where's the problem likely  
to be? I've been round and round it, but I'm pretty much out of ideas  
now.

Thanks,
Tom





More information about the Synth-diy mailing list