MMsam7x Minimoduł z mikrokontrolerem ARM AT91SAM7X firmy ATMEL REV 1.0 Instrukcja użytkownika E val a t io u s n fo B P r oard I C 5 1, rte m r i K c AV rs i R ts, u P E S l r e o m T, n s t o et fo b edded e d c r ont m typing rocontrollers B S A In ic V oards W ta- M R S r o e i, ystem cont b c P d r M S o I rollers, esi C R er pr, S p F in i v 5 g T r o I D m e 1, ni gr m H rollers, od- le ng a ocesor ic m i r A g h S s V E r o m er S R cont er S t pe- ether- n v a, s i m er rter S T, valuation system s rollers fo e odul s r t h P K P I C, er B P S n es its E m peed oards C et m ic B for b r rs o m edded cont o fo l In rototyping for le r ic r B P r A S o oards rol- C s V cont W a B M R, ystem controllers, e r d d P R m b s ro s IC, p F r I D i- cont fo r esigning S o d T gr H rollers, ded `51, m am i B rollers g h AV icroprocesor E i oar W m c e- ont d eb S R s, tarter S valuation H S system i g ro M erw T, crocontrl- s m h l lers, in i P B, er S m e r K s IC o- s peed P its m c fo r o E i r m c ont t - AV In ethernet odules b R S for e- ro l, m lers P otyping I ic C ystem r S M o, S p - yst ic T r o e r o m controllers, gr m pr s, o ic a cesor r m n P o co- - i n C g B E D esi B g oar - valuation d s M a n y i d e a s o n e s o l u t i o n R
Spis Treści Wprowadzenie... 3 1.1 Cechy minimodułu MMsam7x... 4 2.4 Mikrokontroler AT91SAM7X256 (AT91SAM7X512)... 4 Budowa minimodułu MMsam7x... 5 2.1 Schemat blokowy... 5 2.2 Rozmieszczenie wyprowadzeń... 6 Opis części sprzętowej MMsam7x... 8 3.1 Układ zasilania... 8 3.2 Pamięć FLASH... 9 3.3 Układ podciągający linię USB DDP... 10 4 Programowanie... 11 4.1 Podłączenie programatora... 11 4.2 Konfiguracja środowiska programistycznego... 12 Dostępne wersje... 14 Dostępne akcesoria... 14 Dane techniczne... 15 Pomoc techniczna... 15 Przykładowe oprogramowanie... 16 Gwarancja... 16 2
1 Wprowadzenie MMsam7x jest uniwersalnym minimodułem dla mikrokontrolerów ARM7TDMI AT91SAM7X256 lub AT91SAM7X512 firmy Atmel. Mikrokontroler ten jest dostępny w obudowie LQFP100, która ze względu na zagęszczony układ wyprowadzeń utrudnia stosowanie go w układach prototypowych i amatorskich. My podjęliśmy próbę umieszczenia go na płytce o wymiarach 56x48,5mm z układem wyprowadzeń pasującym do ogólnie dostępnych druków prototypowych. Dodatkowo dodaliśmy stabilizator 3.3V, pamięć szeregową DataFlash o pojemności do 8MB oraz układ załączania trybu USB2.0. Wszystkie porty i sygnały mikrokontrolera wyprowadziliśmy przy pomocy dwurzędowych złącz szpilkowych o rastrze 0,1. Wystarczy podłączyć napięcie zasilania, złącze JTAG i możemy zacząć ładować 256kB (512kB dla AT91SAM7X512) pamięci FLASH mikrokontrolera. Dzięki zintegrowaniu peryferii z mikrokontrolerem na jednej płytce, zastosowanie modułu może skrócić czas projektowania i ułatwić budowę systemów bazujących na mikrokontrolerach AT91SAM, eliminując konieczność projektowania obwodu drukowanego. Do modułu dostarczone jest przykładowe oprogramowanie. Moduł MMsam7x może również znaleźć zastosowanie w pracowniach dydaktycznych uczelni informatycznych i elektronicznych, jak również posłużyć do realizacji prac dyplomowych. Życzymy samych sukcesów i dużo satysfakcji przy projektowaniu i konstruowaniu nowych urządzeń elektronicznych w oparciu o MMsam7x 3
1.1 Cechy minimodułu MMsam7x Poniżej zostały wymienione główne cechy minimodułu MMsam7x: Kompletny, gotowy do użycia system mikroprocesorowy Szybki mikrokontroler ARM TDMI7 AT91SAM7X256 Szeregowa pamięć DataFlash AT41DB642 firmy ATMEL o pojemności do 64Mbity (8MB) Wbudowany systemowy generator kwarcowy 18.432MHz Zasilacz (napięcie 3.3V dostępne na płycie) Wbudowany stabilizator 3.3V 400mA Napięcie zasilania modułu 3.3V lub 3.8-16V 2 x 40 wyprowadzenia z rastrem 0.1" (2.54mm), pasujące do wszystkich druków prototypowych Małe wymiary: 56x48mm Dostępna płyta ewaluacyjna i przykładowe oprogramowanie 2.4 Mikrokontroler AT91SAM7X256 (AT91SAM7X512) 32-bitowy ARM7TDMI Zewnętrzny oscylator 18.432MHz 256kB (512kB) programowanej w systemie pamięci programu typu FLASH 64kB (128kB) pamięci SRAM Kontroler RESETu 20-bitowy, programowany licznik 2 interfejsy USART Interfejs TWI 2 interfejsy SPI Interfejs USB Interfejs CAN Interfejs Ethernet zgodny z MII oraz RMII Jeden 8-kanałowy 10-bitowy przetwornik A/C do 62 linii I/O z 5.0V tolerancją Zaawansowany kontroler przerwań Tryby obniżonego poboru mocy Znakomity stosunek wydajności do poboru mocy Interfejs JTAG Szczegółowy opis mikrokontrolera znajduje się na stronie firmy Atmel: www.atmel.com. 4
2 Budowa minimodułu MMsam7x Minimoduł składa się z płytki drukowanej, o wymiarach XxnaXX. Na górnej części znajduję się mikrokontroler, rezonator kwarcowy, oraz stabilizator. Miejsce z drugiej strony płytki przeznaczono na pamięć FLASH, oraz układ podciągania linii USB D+. 2.1 Schemat blokowy Schemat blokowy minimodułu MMsam7x przedstawiono na rysunku: Rysunek 1 Schemat blokowymmsam7x Układ AT91SAM7X256 (AT91SAM7X512) zawiera dwa porty 31bitowe ogólnego zastosowania, którego wszystkie wyprowadzenia są dostępne na złączach minimodułu. Dostępne są także, dedykowane linie dla interfejsu USB, przetwornika ADC oraz JTAG. Mikrokontroler współpracuje z generatorem zbudowanym na kwarcu 18,432MHz. Zewnętrzna pamięć FLASH podłączona jest do interfejsu SPI. Minimoduł wyposażona także w układ podciągania linii USB D+, pozwalającym na pracę w trybie full-speed. Stabilizator 3,3V pozwala na pracę w szerokim zakresie napięć zasilających 5
2.2 Rozmieszczenie wyprowadzeń Piny mikrokontrolera zostały wyprowadzone na dwa złącza Goldpin 2x20. Rysunek 2 Rozmieszczenie wyprowadzeń - widok z góry Porty mikrokontrolera oprócz funkcji głównej, mogą pełnić funkcje alternatywne. Przedstawia to tabela 1. 6
Złącze J1 Złącze J2 Funkcja Funkcja Pin Funkcja alternatywna Pin Funkcja alternatywna główna główna B7 PB7 ERXER 3V3 3V3 - B12 PB12 ETXER GND GND - B0 PB0 ETXCK/EREFCK/PCK0 - - - B1 PB1 ETXEN VCC Input VCC -- B2 PB2 ETX0 B15 PB15 ERXDV/ECRSDV B3 PB3 ETX1 B17 PB17 ERXCK/SPI0_NPCS3 B10 PB10 ETX2/SPI1_NPCS1 B6 PB6 ETX2/SPI1_NPCS1 B11 PB11 ETX3/SPI1_NPCS2 B5 PB5 ETX3/SPI1_NPCS2 A19 PA19 CANRX B14 PB14 ERX3/SPI0_NPCS2 A20 PA20 CANTX B13 PB13 ERX2/SPI0_NPCS1 A21 PA21 TF/SPI1_NPCS0 B9 PB9 EMDIO A22 PA22 TK/SPI1_SPCK B8 PB8 EMDC TDI TDI - A17 PA17 SPI0_MOSI B16 PB16 ECOL/SPI1_NPCS3 A18 PA18 SPI0_SPCK B4 PB4 ECRS A15 PA15 SPI0_NPCS3/TCLK2 A23 PA23 TD/SPI1_MOSI A16 PA16 SPI0_MISO A24 PA24 RD/SPI1_MISO A13 PA13 SPI0_NPCS1/PCK1 /RST /RST - A14 PA14 SPI0_NPCS2/IRQ1 A25 PA25 RK/SPI1_NPCS1 A11 PA11 TWCK A26 PA26 RF/SPI1_NPCS2 A12 PA12 SPI_NPCS0 B18 PB18 EF100/ADTRG A9 PA9 CTS1/SPI0_NPCS3 B19 PB19 PWM0/TCLK1 A10 PA10 TWD B20 PB20 PWM1/PCK0 VREF VREF B21 PB21 PWM2/PCK1 A8 PA8 RTS1/SPI0_NPCS2 B22 PB22 PWM3/PCK2 B29 PB29 PWM3/PCK2 B23 PB23 TIOA0/DCD1 B30 PB30 PCK2/PWM3/AD3 B24 PB24 TIOB0/DSR1 B27 PB27 TIOA2/PWM0/AD0 B25 PB25 TIOA1/DTR1 B28 PB28 TIOB2/PWM1/AD1 B26 PB26 TIOB1/RI1 AD6 AD6 - A27 PA27 TIOA2/PWM0/AD0 AD7 AD7 - A28 PA28 TIOB2/PWM1/AD1 AD4 AD4 - A29 PA29 PCK1/PWM2/AD2 AD5 AD5 - TDO TDO - D- USP_DDM - JTAG_SEL JTAG_SEL - D+ USB_DDP - TMS TMS - A7 PA7 SCK1/SPI0_NPCS1 TCK TCK - ERAS ERASE_FLASH - A30 PA30 PCK2/PWM3/AD3 A5 PA5 RXD1 A0 PA0 RKD0 A6 PA6 TXD1 A1 PA1 TXD0 A2 PA2 - A3 PA3 RTS0 A4 PA4 - Tabela 1 Opis wyprowadzeń 7
3 Opis części sprzętowej MMsam7x 3.1 Układ zasilania Minimoduł MMsam7x może być zasilany na dwa sposoby: Stabilizowanym napięciem 3,3V podanym na końcówkę oznaczoną jako 3V3 Napięciem niestabilizowanym w zakresie 3,8V do 16V podanym na końcówkę oznaczoną jako VCC. Rysunek 3 Stabilizator 3.3V Jeżeli zasilamy minimoduł przez końcówkę VCC, to napięcie 3.3V wytwarzane jest na module za pomocą stabilizatora U3. Napięcie 3.3V może w takiej sytuacji być również używane na zewnątrz modułu pod warunkiem, że pobór prądu nie przekroczy ok. 300mA. UWAGA! Używanie jednocześnie dwóch sposobów zasilania, grozi uszkodzeniem sprzętu. 8
3.2 Pamięć FLASH Minimoduł może zostać wyposażony w pamięć SerialFlash AT41DB642D firmy ATMEL o pojemności 8MB. Pamięć podłączona jest do szybkiej magistrali SPI. o prędkości transmisji do 10Mb/s. Układ pamięci aktywowany jest po podaniu niskiego poziomu logicznego na wejście /CS. Wyprowadzenie /CS podłączone jest do portu PA12 mikrokontrolera. Poza PA12 magistrala SPI zajmuje trzy końcówki procesora: PA16, PA17, PA18. Należy pamiętać, że jeżeli zamontowana jest pamięć DataFlash, to wymienione końcówki portów nie mogą być używane na zewnątrz modułu. Oczywiście magistrala SPI może być wykorzystana do komunikacji z zewnętrznymi peryferiami, pod warunkiem, że będą one posiadały wejścia wyboru układu (CS). Poniższy schemat przedstawia połączenie pamięci DataFlash wewnątrz modułu. Rysunek 4 Podłączenie pamięci Serial Flash Pamięć jest dostępna bezpośrednio poprzez odpowiednie wyprowadzenia minimodułu: PA12 SPI /CS PA18 SPI_SCK PA16 SPI_MISO PA17 SPI_MOSI Linia wyboru układu Wejście Zegarowe Wyjście Danych Wejście Danych Wlutowanie rezystora R10 (stan niski na wyprowadzeniu /WP) zabezpiecza pamięć przed zapisem. Opis pamięci Serial Flash znajduje się na stronie firmy Atmel: www.atmel.com. 9
3.3 Układ podciągający linię USB DDP Host USB rozpoznaje obecność urządzenia full-speed na magistrali na podstawie podciągania linii USB_DDP do wysokiego poziomu logicznego. W moduł MMsam7x został wbudowany układ podciągający, który jest przedstawiony na rysunku 5. Rysunek 5 Układ podciągający linię USB_DDP Podciąganie jest domyślnie wyłączone. Wlutowanie rezystora R5 pozwala na sterowanie poprzez port PA1 mikrokontrolera. Wlutowanie rezystora R6 pozwala na stałe włączyć podciąganie linii USB_DDP. 10
4 4 Programowanie Poniższy opis przedstawia sposób zaprogramowania MMsam7x za pomocą programatora ARMcable I firmy Propox i za pomocą środowiska Crossworks for ARM. 4.1 Podłączenie programatora JTAG jest czteroprzewodowym interfejsem umożliwiającym przejęcie kontroli nad rdzeniem procesora. Możliwości oferowane przez ten interfejs to m.in.: praca krokowa, praca z pełną szybkością, pułapki sprzętowe oraz programowe, podgląd oraz modyfikacja zawartości rejestrów i pamięci. Sposób bezpośredniego podłączenia programatora ARMcable I do minimodułu, przedstawiono na rysunku 6. Rysunek 6 Połączenie modułu MMsam7x ze złączem JTAG. W przypadku płyty EVBmm Tm programator ARMcable I podłączamy do złącza IDC20 na płycie. Od tej pory wszystkie sygnały programatora-debbugera dostępne są na złączu goldpin opisanym jako JTAG. Połączenia pomiędzy minimodułem a złączem JTAG należy wykonać tak jak przedstawia to rysunek 7 11
4.2 Konfiguracja środowiska programistycznego Poniższy przykład opisuje konfiguracje środowiska Crossworks for ARM firmy Rowley w wersji 1.5. Wersja demonstracyjna jest dostępna na stronie producenta oprogramowania http://www.rowley.co.uk/arm/index.htm. Przykładowe oprogramowanie do minimodułu MMsam7x, dostępne jest na stronie www.propox.com zawarte w pliku MMsam7x_Samples. Mając zainstalowane środowisko Crossworks oraz podłączony programator, należy postępować z poniższymi wskazówkami: Uruchamiamy środowisko Crossworks for ARM Z zakładki Tools wybieramy Download package from Web Otworzy się okno, w którym rozwijamy CPU Support Packages i wybieramy ATMEL, a następnie AT91SAM7 Ściągamy plik na : Atmel_AT91SAM7S_AT91SAM7X_AT91SAM7A3.hzq i zapisujemy na dysku W programie Crossworks, w zakładce Tools wybieramy Instal packages.. i wskazujemy ścieżkę do ściągniętego pliku. 12
Jeśli prawidłowo zostanie zainstalowana paczka, to ujrzymy okno z informacją o zainstalowanych paczkach. Otwieramy przykładowy projekt klikając na File/Open Solution. Podajemy ścieżkę dostępu do zapisanego na dysku katalogu z przykładami MMsam7x_Samples i wybieramy MMsam7x_Samples.hzp W okienku Project Explorer pokaże się drzewo programów jakie wchodzą w skład AT91SAM7_Samples.hzp Dwukrotnie klikamy na program LED uaktywniając w ten sposób program zapalający diody LED podłączone do portów PA1-PA8 Aktywny program zaznaczony jest wytłuszczoną czcionką. W zakładce Target wybieramy Connect Macraigor Wiggler (20pin) łącząc się przy tym z programatorem JTAG Następnie z zakładki Build wybieramy Build and Run Po wykonaniu tych czynności na portach portów PA1-PA8 będą się zmieniały stany logiczne w okresie 1sek. 13
5 Dostępne wersje selektora: Minimoduł można zamówić w różnych konfiguracjach według następującego MMsam7x f d Rozmiar pamięci Flash: 0 256kB 1 512kB Rozmiar pamięci DataFlash: 0 brak pamięci 1 4MB (AT45DB321) 2 8MB (AT45DB642) Dostępne akcesoria 6 Do minimodułu MMsam7, dostępne są następujące akcesoria: przewody peryferyjne jednożyłowe płyta ewaluacyjna EVBmm Tm programator ARMcable I, ARMcable II 14
7 Dane techniczne Mikrokontroler AT91SAM7x Pamięć programu do 512kB Pamięć danych do 128kB Pamięć DataFlash do 8MB Ilość wejść/wyjść cyfrowych do 60 Ilość wejść analogowych do 8 Zasilanie 3.8V do 16.5V Maksymalny pobór prądu 300mA Wymiary 56mm x 48mm Waga ok. 100g Zakres temperatur pracy -40 85ºC Wilgotność 5 95% Złącza Dwa złącza szpilkowe 2x40 wyprowadzenia Pomoc techniczna 8 W celu uzyskania pomocy technicznej prosimy o kontakt support@propox.com. W pytaniu prosimy o umieszczenie następujących informacji: Numer wersji minimodułu Kompletnej nazwy używanego układu mikrokontrolera Sposób zasilania Rodzaj środowiska i programatora Szczegółowego opisu problemu 15
9 Przykładowe oprogramowanie Przykładowe programy i biblioteki dostępne są na stronie www.propox.com w dziale MMsam7x. Gwarancja 10 Moduł MMsam7x objęty jest sześciomiesięczną gwarancją. Wszystkie wady i uszkodzenia nie spowodowanie przez użytkownika zostaną usunięte na koszt producenta. Koszt transportu ponoszony jest przez kupującego. Producent nie ponosi żadnej odpowiedzialności za zniszczeni i uszkodzenia powstałe w wyniku użytkowania systemu MMsam7x. 16
17