Pilotare il display LCD di un’autoradio Sony con Arduino

Pilotare il display LCD di un’autoradio Sony con Arduino si può fare. Jose Luis Monteiro lo dimostra sul pannello frontale amovibile di una Sony CDX-A250, dialogando direttamente con il driver LC75826W. Il progetto raccoglie note di reverse engineering, lo sketch di riferimento e la guida alla riproduzione dell’esperimento. Il punto di partenza è il solo datasheet del driver, perché la mappatura dei segmenti non è documentata.

Il pannello Sony CDX-A250 contiene il driver LCD LC75826W, indicato come IC901 nella documentazione di servizio Sony. Il driver espone un’interfaccia seriale sul connettore CN901. Il collegamento usato nel progetto è diretto: DATA-LCD verso DI del LC75826 sul pin 11 di CN901 e pin D8 dello sketch Arduino, CE-LCD verso CE sul pin 12 di CN901 e pin D10, CLOCK-LCD verso CL sul pin 13 di CN901 e pin D9. L’alimentazione +B del pannello arriva sul pin 14 di CN901 da un alimentatore da banco esterno, mentre la massa del pannello resta in comune con Arduino.

Il protocollo CCB del driver LC75826W

Il LC75826 usa il formato seriale CCB di SANYO. Ogni trasferimento inizia con l’indirizzo di dispositivo 41H e poi invia uno di quattro gruppi da 72 bit, identificati dai due bit DD. I gruppi coprono gli intervalli D1-D52, D53-D104, D105-D152 e D153-D208. Il primo gruppo porta anche i campi di controllo che configurano il driver: P0-P3 per la selezione uscita segmento o uso generale, DR per la selezione bias LCD, DN per la selezione 200 o 208 segmenti, FC0-FC2 per il controllo della frequenza di frame, OC per il modo oscillatore interno o esterno, SC per il display on/off e BU per il modo normale o risparmio energetico.

Il codice di riferimento invia ogni byte a partire dal bit meno significativo. La mappatura dei segmenti, cioè quale simbolo visibile corrisponde a quale posizione della matrice, va scoperta sperimentalmente perché il datasheet non la fornisce. La routine searchOfSegments() avanza uno stato di test alla volta. Un pulsante su D2 fa avanzare il test, mentre il monitor seriale stampa le informazioni per identificare lo stato corrente. Il monitor seriale dello sketch viene usato a 115200 baud per il debug e l’output di identificazione dei segmenti.

Cosa serve per rifare l’esperimento

Per riprodurre il progetto servono pochi pezzi. In particolare, la lista comprende:

  • un pannello frontale amovibile di una Sony CDX-A250
  • una scheda compatibile Arduino con numerazione pin stile Uno
  • un alimentatore da banco per alimentare il pannello
  • un pulsante per la routine di identificazione dei segmenti
  • il connettore CN901 per accedere ai segnali del pannello

Il repository di Jose Luis Monteiro raccoglie lo sketch Arduino di riferimento, i file di documentazione sulle connessioni, sul protocollo, sulla mappatura dei segmenti, sul troubleshooting e sui riferimenti. Il manuale di servizio Sony CDX-A250/CDX-A250EE è la versione 1.1, del 2006-01, pubblicazione 9-879-865-02. Il progetto è pensato per essere riutilizzabile su altri display basati sullo stesso LC75826, quindi le note di reverse engineering valgono anche oltre il singolo modello di autoradio.

Chi vuole partire da una scheda Arduino per il banco di prova trova diverse opzioni nel catalogo. Il codice e la documentazione restano comunque il cuore del progetto, perché la mappatura dei segmenti va rifatta a mano sul proprio pannello.


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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Menu