Posts with «ccb protocol» label

Driving a Sony Car Radio LCD Display with Arduino

Driving the LCD display of a Sony car radio with Arduino is possible. Jose Luis Monteiro proves it on the detachable front panel of a Sony CDX-A250, talking directly to the LC75826W driver. The project gathers reverse engineering notes, the reference sketch and a guide to reproducing the experiment. The starting point is the driver datasheet alone, because the segment mapping is not documented.

The Sony CDX-A250 panel contains the LC75826W LCD driver, listed as IC901 in Sony’s service documentation. The driver exposes a serial interface on connector CN901. The wiring used in the project is direct: DATA-LCD to DI of the LC75826 on pin 11 of CN901 and pin D8 of the Arduino sketch, CE-LCD to CE on pin 12 of CN901 and pin D10, CLOCK-LCD to CL on pin 13 of CN901 and pin D9. The panel’s +B supply comes in on pin 14 of CN901 from an external bench power supply, while the panel ground stays common with the Arduino.

The CCB protocol of the LC75826W driver

The LC75826 uses SANYO’s CCB serial format. Every transfer starts with device address 41H and then sends one of four 72-bit groups, identified by the two DD bits. The groups cover the ranges D1-D52, D53-D104, D105-D152 and D153-D208. The first group also carries the control fields that configure the driver: P0-P3 for segment output or general-purpose selection, DR for LCD bias selection, DN for 200 or 208 segment selection, FC0-FC2 for frame frequency control, OC for internal or external oscillator mode, SC for display on/off and BU for normal or power-saving mode.

The reference code sends every byte starting from the least significant bit. The segment mapping, that is which visible symbol corresponds to which position in the matrix, has to be discovered experimentally because the datasheet does not provide it. The searchOfSegments() routine advances one test state at a time. A button on D2 advances the test, while the serial monitor prints the information needed to identify the current state. The sketch’s serial monitor is used at 115200 baud for debugging and for the segment identification output.

What you need to repeat the experiment

Only a few parts are needed to reproduce the project. In particular, the list includes:

  • a detachable front panel from a Sony CDX-A250
  • an Arduino-compatible board with Uno-style pin numbering
  • a bench power supply to power the panel
  • a button for the segment identification routine
  • the CN901 connector to access the panel signals

Jose Luis Monteiro’s repository collects the reference Arduino sketch and documentation files on the connections, the protocol, the segment mapping, troubleshooting and references. The Sony CDX-A250/CDX-A250EE service manual is version 1.1, dated 2006-01, publication 9-879-865-02. The project is meant to be reusable on other displays based on the same LC75826, so the reverse engineering notes apply beyond this single car radio model.

Anyone who wants to start from an Arduino board for the test bench will find several options in the catalogue. The code and the documentation remain the heart of the project anyway, because the segment mapping has to be redone by hand on your own panel.

Source: https://github.com/emsyscode/lc75826-sony-cdx-a250

The post Driving a Sony Car Radio LCD Display with Arduino appeared first on Open Electronics.