UART - komunikacja uP/PC z panelem

UART - komunikacja uP/PC z panelem

1. Wstęp

Niniejsza instrukcja pokazuje komunikację z wyświetlaczem DWIN za pośrednictwem interfejsu UART. Wszystkie komendy sterujące będą wysyłane do wyświetlacza za pośrednictwem modułu HDL662. Jest to konwerter USB (wirtualny COM) na UART zakończony złączem na taśmę FCC 10 pin 1.0mm. Potrzebny będzie również terminal UART pozwalający na wysyłanie danych w postaci liczb szesnastkowych.

Dołożyliśmy wszelkich starań aby opis był jak najbardziej dokładny i rzetelny jednak nie ponosimy żadnej odpowiedzialności za ewentualne błędy w opisie oraz za niewłaściwe działanie lub szkody spowodowane przez używanie oprogramowania.

2. Ramka danych

Komunikacja pomiędzy wyświetlaczem a komputerem lub uP odbywa się poprzez port UART o domyślnych parametrach 115200 8N1 bez sygnałów sterujących przepływem. W razie potrzeby przepływność można zmienić generując plik config.txt w środowisku SDK.

Baud rate

Każda ramka zaczyna się dwoma bajtami nagłówka. Domyślnie jest to #5A#A5. Wartość tych bajtów w razie potrzeby można zmienić w środowisku SDK.

header byte

Następnie podawana jest ilość bajtów jaka będzie dalej wysyłana.

Kolejny bajt to informacja na jakiej części pamięci chcemy pracować i czy ma to być zapis czy odczyt.

#80 – zapis do rejestru wyświetlacza

#81 – odczyt rejestru wyświetlacza

#82 – zapis do pamięci zmiennych

#83 – odczyt z pamięci zmiennych

#84 – zapis do pamięci wykresów

Kolejne bajty to adres rejestru lub pamięci na której chcemy pracować.


3. Przełączanie/odczyt wyświetlanego obrazu

Zapis

#5A#A5 #04 #80 #03 #00#01

#5A#A5 – nagłówek ramki

#04 – ilość bajtów jaka będzie dalej wysłana

#80 – zapis do rejestru wyświetlacza

#03 – numer rejestru do zapisania (numeru wyświetlanej strony)

#00#01 – numer strony jaka ma być wyświetlona.

Odczyt

#5A#A5 #03 #81 #03 #02

#5A#A5 – nagłówek ramki

#03 – ilość bajtów jaka będzie dalej wysłana

#81 – odczyt rejestru wyświetlacza

#03 – numer rejestru do odczytania (numeru wyświetlanej strony)

#02 – ile bajtów ma być odczytane

W odpowiedzi od wyświetlacza otrzymujemy:

#5A#A5 #05 #81 #03 #02 #00#07

#5A#A5 – nagłówek ramki

#05 – ilość bajtów jaka będzie dalej odebrana

#81 – odczyt rejestru wyświetlacza

#03 – numer rejestru do odczytania (numeru wyświetlanej strony)

#02 – ile bajtów będzie odczytanych

#00#07 – odczytane wartości (numer aktualnie wyświetlanej strony)


4. Zapis/Odczyt zmiennej

Zapis

#5A#A5 #05 #82 #00#10 #00#20

#5A#A5 – nagłówek ramki

#05 – ilość bajtów jaka będzie dalej wysłana

#82 – zapis do pamięci zmiennych

#00#10 – adres zmiennej

#00#20 – wartość zmiennej

Odczyt

#5A#A5 #04 #83 #00#10 #01

#5A#A5 – nagłówek ramki

#04 – ilość bajtów jaka będzie dalej wysłana

#83 – odczyt pamięci zmiennych

#00#10 – adres zmiennej

#01 – ile słów ma być odczytane – każde słowo składa się z dwóch bajtów

W odpowiedzi od wyświetlacza otrzymujemy:

#5A#A5 #06 #83 #00#10 #01 #00#03

#5A#A5 – nagłówek ramki

#06 – ilość bajtów jaka będzie dalej odebrana

#83 – odczyt pamięci zmiennych

#00#10 – adres zmiennej

#0 – ile słów będzie odczytanych – każde słowo składa się z dwóch bajtów

#00#07 – odczytane wartości


5. W praktyce

Na potrzeby tego ćwiczenia załadujemy projekt Inc_dec.zip.

W projekcie tym jest zdefiniowana jedna zmienna „Data Variable” o adresie 0x0010.

VP

Możemy zmieniać jej wartość przyciskami +/-. Zobaczmy jak można zmienić jej wartość z poziomu portu UART.

Wysyłamy ramkę:

#5A#A5 #05 #82 #00#10 #00#03

write

Widzimy, że zmienna na wyświetlaczu uległa zmianie. Teraz przyciskami przestawmy na wartość 4 i spróbujmy odczytać daną z wyświetlacza.

Wysyłamy ramkę:

#5A#A5 #04 #83 #00#10 #01

A w odpowiedzi otrzymujemy

#5A#A5 #06 #83 #00#10 #01 #00#04

read

Related Posts:

Odpowiedz

* Imię
* E-mail: (Nie publikowane)
   Strona www URL strony: http://)
* Komentarz
Wpisz kod z obrazka