Programowy UART w trybie full-duplex dla LPC111x oraz LPC13xx

Środowisko programistyczne

W omawianym przykładzie wykorzystano kilka wersji projektów oprogramowania. Zostały one przetestowane w środowiskach i na  platformach sprzętowych wymienionych w tabeli 4. Pierwotne (tj. bez optymalizacji) rozmiary przykładowych projektów znajdują się w tabeli 5.

 

Tabela 4. Wersje używanych narzędzi

Narzędzie Numer wersji LPC1114 PCB LPC1343 PCB
LPCXpresso v3.3.4 LPCXpresso LPC1114 Rev. A, LPCXpresso Base Board Rev. A LPCXpresso LPC1343 Rev A. LPCXpresso Base Board Rev. A
ompilator IAR C/C++ od ARM 5.50.0.31878 LPC1114-SK Rev. B LPC1343-SK Rev. B
Kompilator Keil C/C++ V4.0.0.728 LPC1114-SK Rev. B LPC1343-SK Rev. B

 

Tabela 5. Szacowany rozmiar programu

Narzędzie Układ Rozmiar pliku (bajty)
LPCXpresso LPC1114 3632
LPCXpresso LPC1343 5236
IAR LPC1114 3636
IAR LPC1343 3710
Keil LPC1114 3796
Keil LPC1343 4216

 

Konfiguracja sprzętu – IAR LPC1114 SK

Przykładowe połączenie sprzętowe pokazano na rysunku 1. Warto zwrócić uwagę, iż zworki łączące porty P.0.11 oraz P1.7 ingerują w standardowe łącze 20-pinowe przeznaczone do debugowania. Nie wpływa to na proces debugowania poprzez wbudowany programator i debuger Jlink, jednak w przypadku wykorzystania zewnętrznych debugerów, takich jak Keil ULINK2, wymagane jest stosowanie 10-pinowego interfejsu SWD.

 

Rys. 1. Połączenie sprzętowe na płytce IAR LPC1114 SK

Rys. 1. Połączenie sprzętowe na płytce IAR LPC1114 SK

 

 

Konfiguracja sprzętu – LPC1114 LPCXpresso

Na rysunku 2 zilustrowano sposób połączenia sygnałów UART do kontrolera USB na płytce LPC1114 LPCXpresso i na płytce bazowej.

 

Rys. 2. Połączenie sprzętowe na płytce LPC1114 LPCXpresso i na płytce bazowej

Rys. 2. Połączenie sprzętowe na płytce LPC1114 LPCXpresso i na płytce bazowej

 

 

Praca systemu

Program demonstracyjny dla rodziny LPC13XX był testowany w następujących warunkach: w systemie z zewnętrznym oscylatorem krystalicznym o częstotliwości 12 MHz bez użycia pętli PLL, w systemach wykorzystujących PLL w celu generacji zegarów 24 MHz, 60 MHz i 72 MHz. Rodzina LPC111X została przetestowana w systemie z zewnętrznym oscylatorem 12 MHz, a także systemie z PLL generującym zegary 24 MHz i 48 MHz.

Warto zauważyć, że szybkość transferu układu UART zależna jest od częstotliwości zegara systemowego. Z tego powodu w systemach pracujących z zegarem innym, niż 48 MHz / 72 MHz użytych w  przykładach, należy ustawić ręcznie wartość zmiennej BIT_LENGTH w kodzie źródłowym. Na przykład w systemie 12 MHz przesyłającym dane z prędkością 9600 bit/s, BIT_LENGTH będzie równe 12000000/9600 = 1250. Jeśli zegar systemowy zostanie przestawiony na 48 MHz, BIT_LENGTH należy zmienić na 48000000/9600 = 5000.

Aplikacja demonstracyjna wyświetli wiadomość dla użytkownika, a następnie wejdzie do nieskończonej pętli, w której otrzymywane znaki będą przekazywane z powrotem do użytkownika. Pokazuje to rysunek 3.

 

Rys. 3. Przykładowa odpowiedź programu

Rys. 3. Przykładowa odpowiedź programu

 

 

O autorze