Obsługa pamięci masowych z USB za pomocą mikrokontrolerów LPC1300 firmy NXP
Program usbmemrom
Opisana zostanie teraz przykładowa aplikacja. Dostępne są wersje kodu (zamknięte w workspace’ach) dla trzech środowisk programistycznych: LPCXpresso, IAR oraz Keil. Mimo że kod w C jest taki sam, każdy workspace został dostosowany tak, aby bez problemu dał się otworzyć w środowisku programistycznym, dla którego został przewidziany. Zestawy uruchomieniowe, na których program został przetestowany są wymienione poniżej (w tabeli 2), ale jako że usbmemrom nie wykorzystuje żadnych peryferiów, takich jak np. diody LED, uruchomienie go na jakimkolwiek układzie z mikroprocesorem LPC1343 i połączeniem USB nie powinno sprawić problemu.
Tab. 2. Zestawy i środowiska uruchomieniowe dla przykładowej aplikacji
Środowisko programistyczne | JTAG | Zestaw uruchomieniowy |
LPCXpresso (firmy Code Red) | LPC-LINK zintegrowany z płytką LPCXpresso | Płytki: LPCXpresso oraz Embedded Artists LPCXpresso (płytka bazowa) |
LPCXpresso (Code Red) | LPC-LINK zintegrowany z płytką LPCXpresso | LPCXpresso |
IAR Embedded Workbench IDE 5.4 | J-Link zintegrowany z płytką IAR LPC1343-SK | IAR LPC1343-SK |
Keil ?Vision4 RealView MDK-ARM | ULINK2 (firmy Keil) | Keil MCB1000 |
Uruchamianie programu usbmemrom na płytce LPCXpresso LPC1343 przy użyciu środowiska LPCXpresso
Płytka LPCXpresso jest wyposażona w interfejs do debugowania LPC-LINK, pozwalający na programowanie przez USB, więc nie ma konieczności wykorzystywania dodatkowego JTAG-a.
Rys. 6. Zdjęcie płytki LPCXpresso LPC1343
Wykorzystanie LPCXpresso z płytką bazową Embedded Artists
Rys. 7. Wyjścia USB na płytce Embedded Artists
Po wlutowaniu na płytkę LPCXpresso złącza szpilkowego, należy ją podłączyć do płytki Embedded Artists, dzięki czemu można używać kabla mini-USB do połączenia płytki bazowej EA z komputerem. Aby połączenie USB było to możliwe konieczne jest także ustawienie kilku zworek na płytce EA. Należy zewrzeć nóżki 1 i 2 złącza J14 znajdującego się w pobliżu portu Ethernet oraz piny 1 i 2 w złączach J12. Zworkę można znaleźć w pobliżu potencjometru. Jest wiele innych konfiguracji zworek – w razie wątpliwości lub problemów należy się odnosić do dokumentacji płytki Embedded Artists.
Modyfikacja płytki LPCXpresso
Alternatywą do używania płytki bazowej LPCXpresso Embedded Artists jest wykonanie modyfikacji płytki LPCXpresso LPC1343 i dodanie do niej kabla USB. Jako że płytka ma wbudowane układy warstwy fizycznej USB (PHY), do podłączenia jej do portu USB konieczny jest tylko rezystor podciągający.
Uwaga: takie proste połączenie nie implementuje mechanizmu NXP Soft-Connect pozwalającego na „miękkie” podłączanie i odłączanie urządzeń USB, ani zasilania USB. W związku z tym, podłączenie płytki do komputera-hosta musi nastąpić po inicjalizacji peryferiów USB na płytce. Jeśli płytka zostanie podłączona do komputera zanim układ LPC USB się zainicjalizuje, rezystor podciągający powiadomi komputer o obecności urządzenia USB, ale układ USB na płytce nie odpowie, bo nie będzie gotowy. To z kolei spowoduje wyświetlenie w systemie Windows błędu, mówiącego o błędnie działającym urządzeniu USB. W takim przypadku należy odłączyć płytkę od komputera i podłączyć ją ponownie. |
Rys. 8. Schemat modyfikacji płytki LPCXpresso LPC1343 pod kątem połączenia USB
Uwaga: zamiast samemu okablowywać złącze USB typu A, można użyć gotowego kabla USB A-B i odciąć końcówkę typu B. Zakończenie typu A można wtedy rozebrać i wlutować na płytkę LPCXpresso. |