I had an app, working on a FRDM-K64F, which used a home-brew LCD carrier board and the Sunplus LCD. Needing more and not wanting to do more hand-wiring, I saw that the K64F outer pins are Arduino-compatible and bought 3 OSEPP-LCD-01 modules with the Sunplus chip for my 3 K64Fs.
I soon found that the GPIO bits are not contiguous where the Arduino-type LCD wants to see them, so I wrote code to shuffle them around and have that working fine. Foolishly I decided to eliminate the use of delay loops that I had been using at the same time!
I read from the data sheet that the chip does not set the BUSY bit until after three 0x30s are sent, so I used delay loops for that. I read the delay times from the data sheet and implemented them precisely.
Most init codes decoding properly, according to my Logic8 analyser with built in 44870 decoder, however, no matter what delay I put after issuing a 0x01 Clear Screen, I cannot sync on to anything past that - getting nibble shift errors in the data that the Logic8 decodes. e.g. 0F is decoded as F8, 8 being the first nibble of the next command. Obviously it is missing one nibble and decoding the rest offset, but no timing changes I do seem to fix it!
Waiting for the busy bit to clear doesn't work either.
Has anybody done any work with these LCDs?
cheers,
Nigel
Update: Yes, I know the stock LCD module has the R/-W line grounded, I have broken that connection and wired it to a GPIO pin.
Thanks for the reply. I managed to get it going using my existing HD44780 code and fiddling a lot with the delay loops. I wasn't able to get it working by using the BUSY bit though. I've moved on right now to the actual app and will have to go back and perfect the driver later - right now it is useful as a debugging aid to get on with the project!