Obsługa pamięci masowych z USB za pomocą mikrokontrolerów LPC1300 firmy NXP
Uruchamianie programu usbmemrom w środowisku programistycznym LPCXpresso
Aby rozpakować przykładowy projekt załączony do tej noty aplikacyjnej można, po uruchomieniu LPCXpresso IDE, skorzystać z opcji Import Example Projects z panelu Quickstart (wybierając plik LPCXpresso_usbmemrom.zip). Trzeba zwrócić uwagę na to, żeby zaimportować zarówno projekt usbmemrom, jak i CMSIS, o ile nie znajduje się on jeszcze w naszym workspace.
Następnie należy podłączyć płytkę LPCXpresso poprzez zintegrowany interfejs LPC-LINK do komputera, przy użyciu kabla mini-USB.
Jeśli wykorzystywana jest płytka LPCXpresso zmodyfikowana wg instrukcji z punktu 4.1.2, nie należy jej jeszcze podłączać do komputera. Jako że ta modyfikacja wykorzystuje wlutowany na stałe rezystor podciągający 1,5k?, komputer będzie widział płytkę jako urządzenie pracujące błędnie, gdyż nie będzie ona odpowiadać zanim nie wykona się procedura inicjalizacji. W przypadku zmodyfikowanej płytki LPC1343, najlepiej jest więc podłączyć kabel USB do komputera tuż po inicjalizacji USB na płytce. Nie jest to problemem, jeśli do płytki został dodany tranzystor aktywujący NXP Soft-Connect. Płytki Embedded Artists, Keil oraz IAR są wyposażone w taki tranzystor, dzięki czemu urządzenie USB można podłączyć do komputera-hosta w dowolnym momencie, a host zacznie się z nim komunikować dopiero po zakończeniu inicjalizacji.
Po upewnieniu się, że usbmemrom jest aktywnym aktualnie projektem w LPCXpresso, można wybrać opcję Debug ‘usbmemrom’ (Debug) z panelu Quickstart. Program skompiluje i zbuduje cały projekt, wprowadzi go na płytkę i uruchomi, zatrzymując wykonywanie na pierwszej linijce funkcji main(). Należy wtedy uruchomić kod w trybie ciągłym (Run) lub pracy korkowej (Step Through) i dotrzeć do wywołania funkcji connect(TRUE). Gdy się ona wykona, można podłączyć kabel USB płytki (ten, który został dołożony w wyniku modyfikacji) do komputera. Jeśli komputer ma włączone głośniki (lub podłączone słuchawki), powinno dać się słyszeć komunikat o nowym urządzeniu LPC1300 MSC w systemie. W tym momencie można przejść do rozdziału 4.4 Używanie programu usbmemrom.
Uruchamianie programu usbmemrom na płytce IAR LPC1343-SK przy użyciu środowiska IAR Embedded Workbench
Zestaw uruchomieniowy LPC1343-SK firmy IAR jest wyposażony we wbudowany interfejs do debugowania, JLINK, więc nie ma konieczności stosowania zewnętrznego JTAGa.
Rys. 9. Zdjęcie płytki IAR LPC1343-SK
Konfiguracja płytki IAR LPC1343-SK
Do poprawnego uruchomienia programu usbmemrom konieczne jest ustawienie kilku zworek na płytce. Po pierwsze, zworka J_LINK_D, zlokalizowana między dwoma gniazdami USB, musi pozostać rozwarta, aby umożliwić działanie wbudowanego debugera JLINK. Po drugie, zworki 3.3V_CORE_E i AVCC_E muszą być połączone. Po trzecie, zworka PIO1_LOW ma być rozwarta – jeśli jest inaczej, mikrokontroler LPC1343 wchodzi po resecie w tryb In-System Programming (ISP), zamiast wykonywać kod z pamięci Flash. Ostatnią zworką do ustawienia jest PIO3_E. Musi ona być zwarta, co pozwala na podłączenie USB VBUS.
Start programu usbmemrom w środowisku IAR Embedded Workbench IDE 5.4
Płytka IAR LPC1343-SK ma dwa gniazda USB. Gniazdo oznaczone JLINK połączone jest z wbudowanym debugerem JTAG, natomiast gniazdo oznaczone USB jest połączone z mikrokontrolerem i służy do komunikacji lub np. programowania wbudowanej pamięci Flash. Oba gniazda należy połączyć z komputerem przy użyciu standardowych kabli USB.
Po rozpakowaniu przykładowych projektów załączonych do noty aplikacyjnej i uruchomieniu programu IAR Embedded Workbench 5.4, trzeba otworzyć wersję projektu dla tego środowiska za pomocą polecenia Open Workspace z menu pliku (File). Następnie należy wybrać opcję make z menu projektu (Project) i uruchomić debugowanie projektu za pomocą polecenia Download and Debug z tego samego menu. W czasie debugowania trzeba przejść krokowo aż do wywołania funkcji connect(TRUE). Gdy się ona wykona, jeśli komputer ma włączone głośniki (lub podłączone słuchawki), powinno się dać słyszeć komunikat o nowym urządzeniu LPC1300 MSC w systemie. W tym momencie można przejść do rozdziału 4.4 Używanie programu usbmemrom.
Uruchamianie programu usbmemrom na płytce Keil MCB100 przy użyciu środowiska Keil ?Vision4
Aby zdebugować kod na płytce MCB1000, konieczne jest podłączenie zewnętrznego debugera JTAG/SWO, np. ULINK 2 firmy Keil.
Łączenie płytki MCB1000 z debugerem ULINK 2
Rys. 10. Zdjęcie płytki Keil MCB1000
Po podłączeniu ULINK-a do komputera przy użyciu standardowego kabla USB należy połączyć go z płytką MCB1000 za pomocą 10-pinowej taśmy. Interfejsy ULINK 2 przez długi czas były dostarczane tylko z dużą, 20-pinową taśmą i możliwe, że mniejszy kabel trzeba będzie kupić lub zrobić na własną rękę. Aby podłączyć taśmę do interfejsu, trzeba zdjąć część obudowy, odkręcając śrubkę umieszczona pod spodem. Wewnątrz znajduje się 5 złącz do różnych typów okablowania. Po podłączeniu 10-pinowej taśmy do właściwego złącza, trzeba ją podłączyć do płytki MCB1000.
Rys. 11. Zdjęcie interfejsu JTAG/SWO Keil ULINK 2 po zdjęciu obudowy
Płytkę MCB100 należy z kolei połączyć z komputerem za pomocą standardowego kabla mikro-USB.