Skocz do zawartości

[Programowanie] Jak rozpocząć przygodę z ARM-ami cz.2 (wersja tańsza)


Elvis

Pomocna odpowiedź

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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.