Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

LCD 2x16 na HD66710FS od drukarki HP LaserJet

velsper 16 Wrz 2008 17:23 16528 13
  • #1 16 Wrz 2008 17:23
    velsper
    Poziom 29  

    Ponieważ udało mi się zdobyć 3 sztuki takich wyświetlaczy, więc spróbowałem coś z nich zrobić. Jest to wyświetlacz dość nietypowy i bardzo mało informacji można znaleźć na jego temat. Posiada 20-pinowe złącze. Symbole wyświetlaczy to S-11404E (firma nieznana), LCM-WM001A (Wintek ?) i LCM-WM002. Ponieważ na tym ostatnim cała cyfrówka umieszczona jest pod kroplą żywicy, narazie odłożyłem go na bok.

    Nietypowość tego wyświetlacza polega na tym, iż oprócz układu HD66710FS (notabene zgodnym z HD44780) na module wyświetlacza występuje jeszcze jeden układ o oznaczeniu BU12445-00 (RH45358-01). Noty katalogowej oczywiście brak.

    Zrysowałem w uproszczeniu schemat modułu (na podstawie S-11404E). LCM-WM001 ma w zasadzie podobny, prócz kilku szczegółów.
    LCD 2x16 na HD66710FS od drukarki HP LaserJet
    (Schemat rysowałem w "standardowym" edytorze graficznym Microsoft-u, chwilowo nie miałem dostępu do lepszych programów).

    HP poszedł na łatwiznę, i w scalaku BU zamknięta jest także logika sterująca LED-ami i przyciskami na panelu drukarki. Stąd wszystkie te diody i przyciski podpięte są do wyświetlacza. Do płyty głównej idzie w zasadzie zasilanie (+3.3V), napięcie od podświetlenia (+5V) i 4 linie danych (być może transmisja szeregowa, tego już nie wiem, a Service Manual od LJ4000 milczy na ten temat).

    Co zatem zrobiłem ? :arrow: Usunąłem układ BU z płytki i dostałem się w ten sposób do linii DB4-DB7 (DB0-DB3 są niepodłączone na module), linii E i RS. Aby dostać się do R/W (standardowo jest zwarta do masy) trzeba było delikatnie unieść nogę 71 układu i do niej podłączyć sygnał R/W.

    Po podłączeniu wyświetlacza do testowej aplikacji (zegarek na AT89C2051 stąd) wyświetlacz ożył, ale miał za silny kontrast. Przy okazji wyszło na jaw, iż ten wyświetlacz wyświetla dobrze, ale przy 3.3V. HD66710 ma dodatkową przetwornicę, która zwiększa Ucc około 2-3 razy aby uzyskać 13V potrzebne do sterowania segmentów LCD). 5V x3 = 15V, a to już nieco za dużo (w nocie HD66710 jest napisane, że w takim wypadku 4.3V Ucc to maksimum). Wyświetlaczy pod 3.3V nie sprawdzałem, bo nie mam na czym (trzeba było by dorobić do AT89C2051 konwerter poziomów, bo samo obniżenie Vcc nie pomoże).

    Piszę tego posta, bo może ktoś ma takie wyświetlacze, i chciałby coś pokombinować z nimi. Ja niestety pozbyłem się jednego modułu (poodchodziły ścieżki od PCB od kombinowania z S-11404E), drugi z BU narazie odkładam na bok, póki nie znajdę czegoś opartego na logice 3.3V (chciałem przerobić na standardowe 5V, pomijając przetwornicę, ale wygląda na to, iż tu jest trochę innaczej, niż w HD44780).

  • #2 14 Lis 2008 01:27
    velsper
    Poziom 29  

    Ostatnio dostałem jeszcze trzy takie wyświetlacze i podjąłem próby ich uruchomienia. Co już wiem :

    - Do modułu wyświetlacza podłączone są 3 diody LED (pin1-3) oraz 9 przycisków (piny 5-13) jako iż całość (płytka z klawiaturą i LED oraz wyświetlacz) stanowi kompletny panel kontrolny drukarki HP LaserJet 4000)

    - Moduł wyświetlacza komunikuje się z płytą drukarki za pomocą czterech linii sygnałowych :

    Pin17 = CLK (zegar),
    Pin15 = DATA_IN (wejście danych),
    Pin16 = DATA_OUT (wyjście danych),
    Pin14 = DSEL (wybór linii danych)

    (sygnały nazwane umownie)

    Gdy DSEL=1, odcięta jest linia danych DATA_IN - wyświetlacz nie przyjmuje danych (DSEL=1 ustawia się zapewne podczas odczytu stanu przycisków (wyprowadzenia 5-13 modułu LCD). Gdy DSEL=0 : DATA_OUT nie jest wykorzystana, dane wprowadzane są do modułu poprzez DATA_IN i taktowane zegarem CLK.

    Do testowania użyłem ATTiny2313, ze względu na możliwość pracy przy napięciu 3.3V (z takim napięciem pracują te wyświetlacze). Napisałem prosty program wysyłający pojedyńcze bajty szeregowo (odstęp czasu pomiędzy impulsami zegara = 100µs). Dane wysyłane są w paczkach 8-bitowych.

    Co zaobserwowałem :

    * 3 ostatnie bity wysyłanej informacji służą do sterowania diod LED podłączonych do wyświetlacza (0- zapalone, 1 - zgaszone)
    * 4 bit steruje włączeniem podświetlania matrycy LCD (1=zapalona, 0=zgaszona)
    * pozostałe bity wysyłają informację (dane/kody sterujące) do HD66710. I tak po wysłaniu 255 (11111111) i 192 (11000000) uzyskałem migający kursor na pierwszej pozycji wyświetlacza.

    Problemem pozostaje dalej sposób transkodowania danych przez dodatkowy µC (BU12445-00), a przez to długość słowa do wysłania (w 4 bitach raczej nie zmieści się informacja np. o kodzie znaku).

    Jak znajdę trochę wolnego czasu, to będę eksperymentował dalej z tymi wyświetlaczami.

    PS. Zawsze zostaje możliwość wylutowania BU12445 i dobrania się bezpośrednio do linii sterujących - dostaniemy wówczas DB4-DB7, E i RS prosto z HD66710 (R/W jest na masie).

  • #3 20 Gru 2008 13:14
    melon
    Poziom 26  

    Witam
    Też zdobyłem wyświetlacz LCD 2x16 na HD66710FS (WM-001A Rev 1.4)
    Po usunięciu kostki BU12445 i podłączeniu bezpośrednim do Atmega8
    wszystko zaczęło działać oprócz tego że był za duży kontrast.
    Problem rozwiązałem przez wymianę opornika R6 11k na 22k.
    Na schemacie kolegi Velspel jest on oznaczony jako Rc.
    Można też zastosować potencjometr 47k i płynnie regulować kontrast.
    Wyświetlacz znakomicie działa przy sterowaniu i zasilaniu 5V.
    Mam jeszcze dwa takie wyświetlacze ale niestety chipy są zalane klejem.
    pozdrawiam

  • #4 20 Gru 2008 17:28
    velsper
    Poziom 29  

    melon napisał:

    (...)
    Mam jeszcze dwa takie wyświetlacze ale niestety chipy są zalane klejem.
    pozdrawiam


    Też mam taki (LCM-WM002A, REV1.2), dlatego też chciałbym poznać protokół transmisji szeregowej sterujący tym wyświetlaczem - trochę szkoda jest wywalać kompletnego modułu, zwłaszcza, że jest sprawny.

    Moje LCD-ki to :

    LCM-WM002 REV1.2 (Ra=6k2 Rb=3k3 Rc=11k), scalak zalany żywicą
    LCM-WM001A REV1.4 (Ra,Rb,Rc j/w)
    LCM-WM001A REV1.5 (Ra,Rb,Rc j/w)
    RCM7089V-1B (ROHM) (Ra=6k8, Rb=3k3, Rc=6k8)

    Nie wiem, czy BU przeżyje podłączenie go do 5V zasilania, bo zmieniłbym uC na ATmega8 (ze względu na wbudowany TWI), bo Tiny2313 + emulacja programowa transmisji szeregowej może powodować to, że z tych wszystkich wyświetlaczy jedynie WM001A REV1.4 coś próbuje wyświetlać. Pozostałe nie chcą.

    Drugą sprawą jest to, że ten wyświetlacz posiada nieco inną mapę znaków (wersja ROMu jest B03, w "normalnym" HD44780/66710 powinna być A00 lub A02), stąd też pewne znaki są, a pewnych nie ma (z tego co się orientuję, to mapa znaków nie uwzględnia wogóle małych liter, ale za to posiada różne znaki narodowe, w tym prawdopodobnie także polskie litery).

    W każdym razie w wolnym czasie spróbuję jeszcze się z nimi pobawić.

    PS. Na zdjęciu wyświetlacze, o których jest mowa w temacie :

    LCD 2x16 na HD66710FS od drukarki HP LaserJet

    Od lewej od góry RCM7089V-1B, LCM-WM001 REV1.5 (widok od strony matrycy), pod spodem od lewej : płytka sterująca front-panela drukarki LJ4000 (widok od strony opisu), LCM-WM001 REV1.4, potem REV1.5 i LCM-WM002 z zalanym układem.

    LCD 2x16 na HD66710FS od drukarki HP LaserJet

    Płytka front-panela LJ4000, widok od strony elementów. 3 diody LED, 9 przycisków, kilka drobnych elementów (R,C) i złącze IDC-10 z sygnałami DATA IN, DATA OUT, SCLK, DSEL i zasilanie. Pozostałe piny złącza nie wiem jaką mają funkcję, ale nie łączą się w żaden sposób z modułem LCD.

  • #5 15 Kwi 2012 02:52
    medicb
    Poziom 28  

    Po podniesieniu układu BU i dolutowaniu się bezpośrednio do wyprowadzeń HD66710 układ rusza pod bascomem. Elektronikę wyświetlacza zasilam z 3,3V a podświetlenie (niebieskie) z 5V. Co ważne u mnie ten wyświetlacz obsługuje tylko duże litery i standardowe znaki interpunkcyjne.

  • #6 15 Kwi 2012 04:01
    velsper
    Poziom 29  

    Ramka danych sterująca tymi wyświetlaczami ma 16 bitów. Jak to wygląda w praktyce to do końca nie wiem. Jeżeli założymy numery bitów (0-15) i wysyłamy w kolejności od 0 do 15 to :

    - ostatni (15) załącza podswietlenie. 0 - brak, 1 - włączone;
    - bity 14-13 - nie wiem;
    - bity 10-11-12 zapalają LEDy podłączone do panelu (z przyciskami). 0- zapalone, 1- zgaszone;
    - bit 9 - nie wiem;
    - bit 8 - określa stan na linii RS układu HD66710: 0: RS=1, 1: RS=0;
    - bity 0-7 - nie wiem;

    Stan linii E układu 66710 zmienia się po wysłaniu ramki do LCD. Nie jest przypisany do konkretnego bitu, po prostu pojawia się krótki impuls na tej linii, jak wyświetlacz odbiera ramkę. To co pojawia się na liniach D0-D3 też nie jest przypisane do konkretnych bitów paczki i jest w jakiś sposób wyliczane na podstawie tego co jest na pozycjach 0-7 i na podstawie tego zmienia się również stan linii E sterownika.

    Dane które udało mi się ustalić są powtarzalne dla każdego wyświetlacza i z różnymi prędkościami zegara. Częstotliwość zegara (chyba) nie ma znaczenia, wyświetlacz reagował tak samo zarówno na zegar ~20kHz jak i na ~1MHz.

    Temat póki co chwilowo odpuściłem, być może wrócę do niego, jak znajdę trochę czasu. Przydałby się jakiś logger+kompletna drukarka, aby sprawdzić co jest przesyłane między LCD a płytą główną. Z pozbyciem się BU i podpięciem pod mikrokontroler nie ma problemu, ale mam kilka z jednym zalanym układem i szkoda jest je wyrzucić. Jak na razie tylko próbowałem metody "brute-force", wysyłając sekwencje 16 bitów, modyfikując poszczególne pozycje i sprawdzając stan linii D0-D3, E i RS na wyjściu BU12445, ale chyba trzeba jeszcze nad nią popracować.

  • #7 15 Kwi 2012 11:12
    medicb
    Poziom 28  

    A posiadasz może rozpiskę oryginalnych wyprowadzeń tego wyświetlacza? U mnie ma 20 pinów. Bez układu BU śmiga aż miło, jest po całej nocy. Ma ładny kontrast, musiałem zmienić R6 przy zasilaniu 3,3V na 7,2kΩ

  • #8 15 Kwi 2012 17:44
    velsper
    Poziom 29  

    1,2,3 - LED (3 sztuki)
    4 - n/c
    5-13 - przyciski (9 sztuk)
    14 - wybór zapis/odczyt (/SEL) : 0 - zapis do LCD; 1 - odczyt z LCD
    15 - szeregowe wejscie danych (SIN)
    16 - szeregowe wyjście danych (SOUT)
    17 - zegar (SCLK)
    18 - Vdd (+3.3V)
    19 - masa
    20 - +Vp (podświetlenie)

    Nazwy sygnałów (SEL, SIN, SOUT, SCLK) wyszperałem w instrukcji serwisowej do HP LJ 4000 (akurat nie dotyczyły tam wyświetlacza, ale przypuszczam, że to jest to samo), natomiast rozmieszczenie ich fizycznie na złączu modułu udało się znaleźć kombinując z ustawianiem różnych stanów na nich i obserwując zachowanie wyświetlacza.

    LEDy są podpięte od strony katod (anody przez 82om do +3.3V). Przyciski zwierają odpowiednie wyprowadzenie do masy (są też podciągnięte do +3.3V przez rezystory 47k). Napięcie podświetlenia jest wyprowadzone osobno z płytki panelu, ale przy podaniu 3.3V świeci dobrze.

    Wyprowadzenia na wyświetlaczu są liczone od strony układu HD66710 w lewą stronę (pin 1 jest po prawej, najbliżej HD66710).

  • Pomocny post
    #9 25 Lis 2012 21:32
    kokosoft
    Poziom 14  

    Ostatnio wpadły mi w ręce dwa takie wyświetlacze RCM7089V-1B (z układem BU12445-00) oraz LCM-WM002 (scalak zalany czarną żywicą). Ponieważ stwierdziłem, że wbudowana obsługa diod LED, oraz przycisków jest bardzo wygodna postanowiłem zbadać sprawę.

    Przede wszystkim wcześniej opisane wyprowadzenia zawierają poważne błędy. Poniżej umieszczam prawidłową rozpiskę pinów:

    Wyprowadzenia są liczone od lewej strony patrząc na elektronikę wyświetlaczy.

    Cytat:
    Pin 1 - LED 1. Diody podłączone od strony Katod (-)
    Pin 2 - LED 2
    Pin 3 - LED 3
    Pin 4 - nie podłączony
    Pin 5 - Przycisk 9. Oryginalnie wyprowadzenia są podciągnięte do zasilania a przyciski zwierają je do masy, ale jak ktoś woli może zrobić odwrotnie.
    Pin 6 - Przycisk 8
    Pin 7 - Przycisk 7
    Pin 8 - Przycisk 6
    Pin 9 - Przycisk 5
    Pin 10 - Przycisk 4
    Pin 11 - Przycisk 3
    Pin 12 - Przycisk 2
    Pin 13 - Przycisk 1

    Pin 14 - !CS - Wybór układu, stan niski uaktywnia komunikację ze światem
    Pin 15 - CLK - Sygnał zegarowy
    Pin 16 - MISO - Szeregowe wyjście danych
    Pin 17 - MOSI - Szeregowe wejście danych

    Pin 18 - 3,3V - Zasilanie elektroniki
    Pin 19 - GND
    Pin 20 - +5V - Podświetlenie ekranu


    Mając już poprawną rozpiskę wyprowadzeń (sprawdzana na obu modułach) możemy zająć się komunikacją.
    Prędkość transmisji danych praktycznie nie ma znaczenia, należy tylko zastosować odpowiednie zwłoki czasowe pomiędzy pakietami kierowanymi do sterownika wyświetlacza LCD, oraz dać mu odpowiedni czas na inicjalizacje.

    Ramka danych ma 16 bitów, w pierwszej kolejności wysyłamy najbardziej znaczący bit.
    Cytat:
    Bit 0 (LSB) - Podświetlenie panelu (0 - zgaszone; 1 - zapalone)

    Bit 1 - LED 5 (0 - zapalona; 1 - zgaszona)
    Bit 2 - LED 4
    Bit 3 - LED 3
    Bit 4 - LED 2
    Bit 5 - LED 1

    Bit 6 - Stan linii E w HD66710 (0 - Wysyła dane; 1 - nie wysyła)
    Bit 7 - Stan linii RS (0 - Dane; 1 - Instrukcje)

    Bity 8-15 - ZANEGOWANE dane dla wyświetlacza. Bit 15 jest najbardziej znaczący oraz w nim zapisujemy MSB danych dla HD66710.


    Sygnał na linie strobującą (E) jest podawany 2 krotnie (transmisja 4 bitowa) tylko gdy bit 6 jest w stanie niskim. Jak wiadomo najpierw są przesyłane 4 starsze bity, a następnie 4 młodsze.

    Ponieważ bity 8 - 15 są negowane, oraz 1 - 7 również wydają się takie być (mało logiczne zapalanie diod LED, oraz odwrócony sygnał RS) bity 1 do 15 neguję przed wysłaniem (XOR 0xFFFE). Stworzyłem sobie więc następujące stałe:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Odczytywanie danych dokonuje się równocześnie z wysyłaniem danych do układu. Warto zwrócić uwagę, aby wejście naszego procesora nie było podciągane w żadnym kierunku. Przynajmniej u mnie podciągnięcie wejścia w dowolnym kierunku było silniejsze od wyjścia wyświetlacza. Może to być spowodowane tymi 100Ohm rezystorami na liniach danych wyświetlaczy. Zakładając, że najpierw transmitowany jest najstarszy bit, ramka danych wygląda następująco:




    Cytat:

    Bit 15 - Stan przycisku 1
    Bit 14 - Stan przycisku 2
    .
    .
    .
    Bit 4 - Stan przycisku 12
    Bity 3 - 0 - nie używane, zawsze (0).


    Stan przycisku zależy od sposobu jego podłączenia. Jeśli wejście zostanie podciągnięte do zasilania, a przycisk będzie je zwierał do masy, wówczas naciśnięcie przycisku wymusi stan 0 na odpowiednim bicie.

    Uważni czytelnicy z pewnością zauważyli, że opisując ramki danych, opisałem 2 diody oraz 3 przyciski za dużo. Okazuje się, że niektóre wyprowadzenia układu BU12445-00 nie zostały wyprowadzone na złącze do panelu z przyciskami i diodami.
    Diodę 4 możemy podłączyć do pinu 31 (numeracja zgodna ze schematem z pierwszego postu). Diodę 5 podłączamy do 23 nogi.
    Przycisk 10 jest na pinie 29, przycisk 11 pin 37 a przycisk 12 znajduje się na 36 wyprowadzeniu układu.

    Niestety z przyciskami sprawa nie jest taka łatwa jak z diodami, ponieważ wszystkie 3 wyprowadzenia są połączone razem i podciągnięte przez R6 (10K) do zasilania. Ja podniosłem nogę 29, 36 i wylutowałem rezystor R6 podłączając się w te miejsca przewodami.

    Na schemacie jest błąd, pin 37 nie jest podłączony do masy. Pin 38 jest podłączony do masy, a pin 39 zasila cały scalak. Pin 9 jest zanegowanym sygnałem RESET, jeśli komuś będzie potrzebny ;) Oba wyświetlacza przeżyły zasilenie z 5V, ale występował problem z kontrastem.

    Układ HD66710 faktycznie posiada inny zestaw znaków (nie mogłem znaleźć w internecie wyglądu zestawu B03). Różnice zaczynają się od znaku 0x60 gdzie zamiast małych liter znajdują się różne znaki narodowe. Ciągną się one aż do znaku 0xBD. Od znaku 0xC0 znajdują się krzaczki zgodne z tymi z dokumentacji od adresu 0xA0 (Czyli są przesunięte o 32 znaki).

    Nasze polskie znaki można znaleźć pod kodami:
    Cytat:

    Ą = 0x67
    Ć = 0x6A
    Ę = 0x74
    Ł = 0x7C
    Ń = 0x7F
    Ó = 0x83
    Ś = 0x8C
    Ź = 0x9A
    Ż = 0x9C


    Mam nadzieje, że powyższy opis będzie dla kogoś pomocny oraz nie zrobiłem żadnych błędów w opisie. Gdyby ktoś miał zbędę takie wyświetlacze (chodź po tak dokładnym opisie wątpię aby ktoś chciał się ich pozbyć) bardzo chętnie je przygarnę.

    Pozdrawiam
    Koko Software

  • #10 26 Lis 2012 01:36
    velsper
    Poziom 29  

    Już myślałem, że temat odejdzie w zapomnienie, a wyświetlacze poleżą w pudełku w oczekiwaniu na przypływ czasu i chęci do dalszej zabawy. Dziękuję zatem koledze kokosoft za podjęcie tematu dalej i rozgryzienie komunikacji z modułami.

    kokosoft napisał:
    Przede wszystkim wcześniej opisane wyprowadzenia zawierają poważne błędy.

    Mój błąd - zamieniłem piny 15 i 17. Jeżeli chodzi o nazwy sygnałów to zapozyczyłem z serwisówki HP.
    Podświetlanie powinno chodzić również z zasilaniem 3.3V.

    Cytat:
    Bity 8-15 - ZANEGOWANE dane dla wyświetlacza. Bit 15 jest najbardziej znaczący oraz w nim zapisujemy MSB danych dla HD66710.

    Cytat:
    Ponieważ bity 8 - 15 są negowane, oraz 1 - 7 również wydają się takie być (mało logiczne zapalanie diod LED, oraz odwrócony sygnał RS)

    Raczej cała ramka będzie zanegowana.
    Na linii E pojawia się impuls dwukrotnie w czasie wysyłania 16-bitowej paczki do wyświetlacza (między 11 a 12 bitem), nie pomyślałem tylko o tym, że układ BU neguje informacje i nie miałem wówczas możliwości dokładniejszego sprawdzenia, w jaki sposób są tłumaczone bity 8-15 na to, co pojawia się na liniach DB4-DB7 kontrolera LCD.

    Cytat:
    Na schemacie jest błąd, pin 37 nie jest podłączony do masy. Pin 38 jest podłączony do masy, a pin 39 zasila cały scalak.

    Rzeczywiście, przesunąłem się o jeden pin na BU.

    Cytat:
    Układ HD66710 faktycznie posiada inny zestaw znaków (nie mogłem znaleźć w internecie wyglądu zestawu B03). Różnice zaczynają się od znaku 0x60 gdzie zamiast małych liter znajdują się różne znaki narodowe.

    Zestaw znaków pewnie jest specjalnie przygotowany przez HP do celów obsługi drukarki, stąd brak jakichkolwiek informacji na jego temat. Niemniej jednak myślę, że to co tam jest, spokojnie wystarczy do różnych zastosowań.

  • #11 26 Lis 2012 12:30
    kokosoft
    Poziom 14  

    velsper napisał:

    Raczej cała ramka będzie zanegowana.
    Na linii E pojawia się impuls dwukrotnie w czasie wysyłania 16-bitowej paczki do wyświetlacza (między 11 a 12 bitem), nie pomyślałem tylko o tym, że układ BU neguje informacje i nie miałem wówczas możliwości dokładniejszego sprawdzenia, w jaki sposób są tłumaczone bity 8-15 na to, co pojawia się na liniach DB4-DB7 kontrolera LCD.


    W zasadzie zanegowana jest cała ramka, poza podświetleniem ekranu. W każdym razie opisałem bity tak jak funkcjonują, zaproponowałem negacje wszystkich poza pierwszym przed wysłaniem.

    Tak dokładnie linii E nie badałem, bo dysponuje tylko multimetrem. Wysyłając np 100 ramek na sekundę, na lini E dostawałem 200 Hz. W podobny sposób doszedłem do negacji danych do wyświetlacza.

    Dla dociekliwych dołączam skan mapy znaków romu B03 którą zrobiłem.

  • #12 26 Lis 2012 13:29
    velsper
    Poziom 29  

    Zmianę stanu na linii E zaobserwowałem wysyłając pojedynczą ramkę z bardzo małą prędkością (rzędu kilku bitów/s) i podpinając się z bardzo prostym analizatorem (dioda LED+tranzystor+rezystor) pod BU (E/RS/D4-D7). Wyszedłem z założenia, że BU12445 jest tylko "garścią rejestrów" (co jest poniekąd prawdą), więc mniejsza prędkość mu nie zaszkodzi, a jak rozszyfruje się strukturę ramki, można będzie kombinować wówczas z szybszą transmisją do sterownika LCD.

    Udało się dojść tą metodą do określenia, który bit steruje RS bezpośrednio (i LEDami na płycie). Na E zawsze miałem zmianę stanu w trakcie wysyłania ramki. Być może trzeba było zjechać z prędkością jeszcze trochę i podpiąć jeszcze cztery LEDy pod D4-D7 i badać jednocześnie, co zmienia się na liniach danych przed i po zmianie na linii E.

  • #13 30 Gru 2012 19:56
    kokosoft
    Poziom 14  

    Właśnie podłączałem ten wyświetlacz pod sprzętowe SPI, i miałem problem. Nie mogłem odczytać stanów przycisków oraz wyświetlić nic na ekranie. Obsługa diod działała bez problemu. Okazało się, że linią !CS trzeba machać. Tzn ustawiać ją w stan niski TYLKO gdy chce się coś przesłać, a następnie znowu podawać tam stan wysoki. Sprzętowe sterowanie linią NSS podawało tam zawsze stan niski po uaktywnieniu interface.

  • #14 03 Kwi 2017 17:08
    retroelectron2
    Poziom 1  

    I'm finding this topic very interesting as I have a complete set of electronics from a freshly dismantled HP Laser Jet 4000 ;-)
    my display board is a S-11404C

    Velsper,

    Thank you in advance for your 2008 work you've posted here.
    Also thanks to the other posters. :-)

    MY goal is to use your work to get me into the HP LJ4000 formater board which has a NEC Vr4300 CPU among a host of other things.
    Most promising is your info on the :odule display communicates with the disc printer using four signal lines:

    Pin17 = CLK (clock),
    Pin15 = DATA_IN (input data)
    Pin16 = DATA_OUT (output data)
    PIN 14 = DSEL (line selection data)

    (signals called conventionally)

    I'm able to power it all up :-) getting all the standard HP messages. (up to: put in the toner cartage.)

    for now,

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME