My DSE kit doesn't do this, but according to the errata there was a
timing issue with certain displays that was "fixed" by the replacement
of the 470pF capacitor on the E* input with a .0022uF capacitor. The
symptom was a blank display.
- Franc Zabkar
Thanks Franc.
Interesting - they actually specifically mention the extra character
before "HIGH" on the display. I located this on the SC web site under
Notes and Errata:
"The 470pF capacitor between pin 6 of the LCD and ground may need to
be larger in value for the display to operate. A value up to 2.2nF may
be required if the display does not show any characters. This value of
capacitance may cause the character preceding the word "HIGH" when the
Resolution switch is pressed to have a couple of bars instead of a
blank space. The normal frequency display when the switch is released
will not show any abnormalities."
The capacitor they are referring to is connected between the LCD
ENABLE pin and ground. The original article says that this capacitor
is needed to "slow down the rise and fall times of the square wave
from (the PIC), which are nominally too fast for the LCD module to
handle ..."
I think what SC are saying is nominally bollocks. Heck, I have built
my own projects with PICs driving those LCDs and never found it
necessary to add a capacitor like that. The LCD specifications give no
minimum rise/fall times for ENABLE, but do give a *maximum* (25ns), so
too much capacitance there is likely to cause trouble.
History:
I bought one of the kits for this meter from DSE when they were having
the kit fire sale earlier this year. That was actually at about the
time the MK2 version was published in SC. When I got it assembled it
did not work properly - the display would freeze. I did not think to
go and look for errata published by SC.
I found that a finger on some of the tracks on the PCB could make the
problem go away, but I could not find any bad connections. I located
the source code for the PIC program on the SC web site and after some
checking with a scope I suspected that code was getting stuck in a
loop checking LCD 'busy'.
I tried a different LCD and it seemed to work OK. So far so good.
However, over time, when using the meter I found it would occasionally
have some problems a bit like the original trouble. I did nothing
about this until now when I decided to look at it again.
The LCD is used in four-bit mode (using only 4 data lines, so each
byte to and from the LCD has to be transferred in two nybbles). I
noticed that in the routine that checks if the LCD is busy, named
BUS_CK, it does not always access two nybbles when reading the busy
flag. I could not find anything to suggest that it is OK to do this,
so I decided to try a modified version of the code.
I put back the original LCD and confirmed that it still would not work
at all. I then changed the BUS_CK routine so that it always accesses
two nybbles, and also threw in a couple of NOPs to make 100% sure the
timing was right. I reprogrammed the PIC and after that the meter was
working perfectly with the original LCD - except that I noticed the
strange character on the display when changing the resolution. I took
a look at the SC code and found a pretty obvious bug that would cause
this problem (a stray call to the LCD-write routine, not in the area
of code I had touched).
I did not remember seeing that spurious character on the display
before so that is why I was asking here.
I see that in the code for the Mk2 meter, the BUS_CK routine is
completely different - it doesn't check the LCD busy at all, it is
just a delay. The old code is actually still in there but cannot be
executed. It seems they knew it was a problem area but perhaps did not
know why.
When I get a chance I will remove that capacitor. I'm pretty sure that
with the code changed it is not needed.