Elvis Napisano Sierpień 20, 2009 Udostępnij Napisano Sierpień 20, 2009 W poprzednim artykule opisałem sposób na błyskawiczne napisanie pierwszego programu na procesor ARM. Teraz postaram się wyjaśnić, w jaki sposób można zaprogramować układ bez wykorzystania JTAG-a. W moim układzie nadal wykorzystuję moduł olimex-a (LPC-H2148), jednak bez problemu można wykorzystać tańszy, np. produkcji propox, czy kakami. Ja wybrałem olimex, ponieważ: 1) Programy piszę używając JTAG-a, a moduł ma już odpowiednie łącze 2) Moduł wyprowadza napięcie 3.3V, więc nie muszę mieć dwóch stabilizatorów 3) Na module jest już przycisk reset 4) Moduł wyposażony jest w diodę LED Dla innych modułów konieczne będzie dodanie tych elementów na płytce. Jeśli poważnie myślimy o programowaniu na ARM warto zainwestować w JTAG. Jednak na początek wystarczy nam złącze RS-232. Nawet jeśli ktoś kupił już JTAG-a (lub zamierza kupić) zachęcam do wykonania kabla łączącego z RS-232. Powody są dwa. Pierwszy jest bardziej oczywisty. Za pomocą tego kabla można się komunikować między PC, a ARM-em, więc można dodać sterowanie układem, czy po prostu komunikaty testowe. Drugi powód jest nieco dziwny. JTAG dla ARMów (na pewno LPC21xx, nie wiem jak innych) ma dużą wadę. Mianowicie startuje nieco po starcie procesora. Wygląda to tak, że po resecie program zaczyna być wykonywany, a dopiero po chwili kontrolę przejmuje JTAG. Niestety, jeśli program, który wgraliśmy wykonuje coś bardzo niedobrego na początku (wystarczy żeby usypiał procesor), nie będziemy mieli możliwości przeprogramowania układu przez JTAG. W skrajnym przypadku może to doprowadzić nawet do wymiany procesora. Na szczęście nadal pozostanie możliwość przeprogramowania układu przez RS-232. Więc taki programator zawsze warto mieć jako koło ratunkowe. Do zaprogramowania procesora potrzebujemy: 1) Translator napięć z RS-232 (np. MAX232) 2) Reset 3) Możliwość zwarcia pinu 0.14 procesora do masy podczas resetu Większość dostępnych programatorów oprócz układu typu max232 posiada 2 tranzystory, które pozwalają na resetowanie procesora oraz zwieranie 0.14 do masy. Ja proponuję nieco łatwiejszą wersję. Wykonamy tylko układ translacji napięć. Do resetowania wykorzystamy switch już obecny na module (LPC-H2148), a do zwierania pinu 0.14 dodamy kolejny switch. Takie rozwiązanie ma jedną zaletę – wykonany translator można wykorzystywać do różnych układów, nie tylko jako programator ARM. Możemy za jego pomocą komunikować się np. z naszym ulubionym AVR. Ja zmontowałem układ na dwóch płytkach. Translator napięć jest na oddzielnej płytce, którą mogę wykorzystać później (przyznaję, zmontowałem ją już dawno i wiele razy z niej korzystałem). Moduł z procesorem podłączyłem do płytki uniwersalnej. Na zdjęciach widać zmontowany zestaw. Płytka translatora bazuje na układzie ST3232CD i standardowym schemacie z noty aplikacyjnej. Więcej w dokumentacji układu http://www.us.st.com/stonline/products/literature/ds/7454/st3232b.pdf . Z jednej strony podłączyłem standardowy kabel RS232, z drugiej 4 pinową wtyczkę. Jej wyjścia to: 1) Masa 2) TX 3) RX 4) Zasilanie Zasilanie jest niezbędne dla układu ST3232CD. Przy okazji, układ LPC2148 powinien tolerować 5V na większości pinów, ja jednak pozostaję ostrożny, więc zastosowałem układ, który może pracować od 3V do 5V. Dzięki temu translator napięć mogę zasilać z 3.3V. Poniżej schemat układu: Całość zasilana jest z zewnętrznego źródła 5V. W przyszłości planuję dodać stabilizator, na razie działa bez niego. Poniżej schemat płytki: Mamy już sprzęt, teraz kolej na oprogramowanie. W załączniku do artykułu znajduje się plik .hex z programem mrugającym diodą (opisany w poprzednim artykule). Do wgrywania użyjemy programu FlashMagic. Do pobrania pod adresem: http://www.flashmagictool.com/ . Programowanie przebiega następująco. 1) Uruchamiamy FlashMagic 2) Konfigurujemy program: 2.1) Wybieramy procesor (Select Device): LPC2148 2.2) Numer portu do którego podłączyliśmy układ 2.3) Prędkość (na początek radzę 9600, później można zwiększyć) 2.4) Częstotliwość: 12MHz 2.5) Zaznaczamy opcję „Erase all Flash” 2.6) Wybieramy plik hex z programem 3) Podłączamy zasilanie do naszej płytki 4) Przyciskamy switch podłączony do 0.14 5) Ciągle przyciskając switch z pkt.4 naciskamy reset 6) Klikamy „Start” w programie FlashMagic Program powinien się załadować. Po wgraniu naciskamy „Reset” i oglądamy pięknie migającą diodę. Led_v1.zip Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »