Thursday, April 28, 2011

Music Player (MyMP3 v5.0) - LCD controller

The first module I built for the music player was the LCD controller for the 6" LCD I bought from a friend. The LCD I bought came with a controller board based on SED1335. The board was equipped with the CCFL inverter and the DC-DC converter needed for the LCD (5V - 30V).

The first try was to rebuild the controller using the SED1335 but discard the unusefull stuff (processors, connectors, etc.). So I designed and built the PCB and... it didn't work. Somehow the SED1335 got broken (maybe when it was unsoldered from the original board) and I couldn't write data into the memory. The initialization worked well, I could see rubish data on the screen, but I couldn't read/write to the memory.
Later Edit: It was SED1351, not SED1335!

I then saw the S1D13700 in stock at an online shop. It seemed pretty easy to use it. It also has internal 32KB ram so I decided to give it another try. I redesigned a smaller, single sided PCB around this controller and built it. The first test was using a C# application I wrote that sent commands/data to the controller via the LPT port (the controller supports 3.3V or 5V I/O). And... success. It worked like a charm.

Still, I discovered a problem that was also documented in an errata sheet. When using both text and graphics layers, the screen will flicker when writing into the memory when the screen is refreshing. There is no easy workaround. You could write into the memory when the screen isn't refreshing (hard to time that) or, as I did, you could give up the text layer and everything works well. Anyway, maybe this bug doesn't appear in the later revisions of the chip (I have the first revision S1D13700F00A).

Some pics (click to enlarge):

(LCD controller PCB)

(.25mm PCB traces)

(controller + LCD assembled and ready for test)
 (test image - C# over LPT port)

(test image - pixel size view)

 (LCD controller schematic)

Here is the source code for the LPT C# application used to test the LCD module. It's a VS2008 solution using .NET 3.5 (can use .NET 2.0). It's configured for the LCD parameters and the LCD controller I used. For other parameters, changes must be made to the application.

For any questions, suggestions, etc., post a comment below!

1 comment:

  1. Interesting one. Keep posting such kind of information on your blog. I bookmarked it for continuous visit.
    html5 audio player