I have a device with 4x20 generic LCD display controlled by arm STR750 processor which is working well.

According to IEC EN 61000-6-4 standart criteia B display of device should be recovered in a while after any static discharge. ESD tests are done with 4kV per second to contact and 8kV per second for 10 seconds to glass surface of LCD and my LCD fails on both. My LCD chars displays wrongly and garbled ter a static discharge -my processor works normally-.

It keeps wrong display until end-user reset the ARM processor but IEC EN 61000-6-4 standard criteria B says it should be recovered without user interaction. So I should recover that malfunction with STR750 arm processor. Simple reinit of LCD makes it work good again.

How can I understand any malfunction occurs on my LCD that makes wrongly display by ARM processor? And Is there any robust way to recover it? I can sense it by STR750 arm processor with readback just after a write to LCD register for everytime but it is not robust.

I am asking for a method or procedure that helps me to write C code to my arm processor or a hardware trick for recovery after LCD malfunction because LCD is generic and have no info about ESD so I cant make any changes on LCD.

  • 1
    \$\begingroup\$ How long does the reinit process take? If it's fast enough to not be visible, maybe you could just do it every few seconds? \$\endgroup\$ – Justin Mar 10 at 14:34
  • \$\begingroup\$ CE has no standards! It has directives. You have to comply to the directive. You may use standards to make plausible you satisfied the directives. \$\endgroup\$ – Huisman Mar 10 at 14:57
  • 1
    \$\begingroup\$ The IEC EN 61000-6-4 standard says if you may apply Performance criterion C (Temporary loss of function is allowed, provided the function is selfrecoverable or can be restored by the operation of the controls.) then your application satisfies this standard, because (I think) resetting the device equals "can be restored by the operation of the controls" \$\endgroup\$ – Huisman Mar 10 at 15:07
  • \$\begingroup\$ @Huisman just edit the question according to your correction. So you are saying the case that we faced does not prevent CE certification? \$\endgroup\$ – Hakan Ulusoy Mar 10 at 16:02
  • \$\begingroup\$ @Justin The test lab said, 1 minute is OK. I though your suggestion at the begining of the case but display have user interface and refreshing the page rapidly discomforts the usage. \$\endgroup\$ – Hakan Ulusoy Mar 10 at 16:06

The ESD pulse causes the LCD 4-bit nybble based comms to go out of sync by a nybble. If you perform the sequence to resync it every time you update the display it will solve your problem.

| improve this answer | |
  • \$\begingroup\$ What you mean by "resync it". \$\endgroup\$ – Hakan Ulusoy Mar 11 at 10:02
  • \$\begingroup\$ Set the display to 8-bit mode and then back to 4-bit mode, and the MCU and LCD will again agree which nybble is which. The proper init sequence how to do that so it works every time is in the HD44780 datasheets. \$\endgroup\$ – Justme Mar 11 at 10:12
  • \$\begingroup\$ I got your point but if I send init sequence I lost address counter. \$\endgroup\$ – Hakan Ulusoy Mar 11 at 10:25
  • \$\begingroup\$ No you don't if you don't do operations that would change it so there is no problem. And you can set the address counter yourself at any time so there is no problem either. And if the comms were already out of sync then you already have lost the address counter and have garbage characters so the whole screen must be redrawn. \$\endgroup\$ – Justme Mar 11 at 10:33
  • \$\begingroup\$ I dont make any adress change operation but when I send 0x03-0x03-0x02 (makes 4bit mode again) display shows garbage chars at several addresses until I redrawn all lines. If I do resync everytime it creates a bad view even if there is no ESD \$\endgroup\$ – Hakan Ulusoy Mar 11 at 13:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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