Hi, I need a little discussion that my conclusions are right - and maybe ideas what I could try in addition.
Here is the core of the unlocking test sequence to enables the panel:
echo g0000 >dcs # write address shift register echo gff128301 >dcs # write FF00h
echo g0000 >dcs # write address shift register echo gff12 >dcs # write FF00h echo g0001 >dcs # write address shift register echo gff83 >dcs # write FF01h echo g0002 >dcs # write address shift register echo gff01 >dcs # write FF02h echo g0002 >dcs # write address shift register echo gff01 >dcs # write FF02h echo more panel commands >dcs
This sequence makes the panel work. If the panel would not be unlocked by this sequence, I would see some flickering because its unflashed default is not optimal.
So I have a simple visual feedback if the unlock command was ok or failed.
The theory behind this command sequence is that any multi-byte command can be split up into separate single-byte write commands (with “manually” incrementing the register address). And that it does not harm to unlock twice (for testing).
Now here some results from modifying the sequence:
echo g0000 >dcs # write address shift register echo gff128301 >dcs # write FF00h
If I remove or change any bit of the sequence above, the panel flickers indicating that the unlock key was not written correctly and the second command can’t “repair” it.
Moving this code behind the following three write commands remains ok.
Removing it completely makes the panel flicker, indicating that only this 3-byte sequence works but not if split into three.
echo g0000 >dcs # write address shift register echo gff12 >dcs # write FF00h echo g0001 >dcs # write address shift register echo gff83 >dcs # write FF01h echo g0002 >dcs # write address shift register echo gff01 >dcs # write FF02h echo g0002 >dcs # write address shift register echo gff01 >dcs # write FF02h
If I change any bit of the byte behind “ff” the panel flickers, indicating that I have successfully overwritten the enable key in register 0ff00 .. 0ff02
If I write a 00 to FF02h the panel flickers, even if I try to overwrite it with 01 again. This means once locked I can’t unlock by writing a single byte.
If I change any upper 8 bits of an address (e.g. ff to fe) the panel does not flicker, because I don’t overwrite the unlock register.
So my conclusion is: * before the panel is unlocked, it is not possible to split commands and write single bytes. * maybe, because even the address shift command is locked (which is something we would have to consult the ORISE VHDL,,,)
As a consequence the unlock command must be a multi-byte sequence - which we are not able to pass through the ssd2858.
So do you agree with my conclusions? Or am I missing some test or idea?
Since I have now built up and tested 3 units of the prototypes it coul even be possible to share one set to someone with an OMAP5432EVM for doing his own experiments - if there is interest.
I am so persistent to find an answer (even if we decide to completely work around this problem by flashing the panel) because I always want to know why it fails :)
BR, Nikolaus