MMnetSAM7x Minimoduł z mikrokontrolerem ARM AT91SAM7X i kontrolerem ETHERNET REV 1.1 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 Spis Treści... 2 Wprowadzenie... 3 1.1 Cechy minimodułu MMnetSAM7x... 4 1.2 Mikrokontroler AT91SAM7X256 (AT91SAM7X512)... 4 Budowa minimodułu MMnetSAM7x... 5 2.1 Schemat blokowy... 5 2.2 Rozmieszczenie wyprowadzeń... 7 Opis części sprzętowej MMnetSAM7x... 9 3.1 Zasilanie... 9 3.2 Pamięć FLASH... 9 3.3 Układ podciągający linię USB DDP... 10 3.4 Kontroler Ethernetowy DM9161A... 10 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
Wprowadzenie 1 MMnetSAM7x jest uniwersalnym modułem Ethernetowym. Sercem jest z mikrokontrolerem ARM7TDMI AT91SAM7X256 firmy Atmel, współpracujący z kontrolerem ETHERNET DM9161A. Minimoduł posiada pamięć szeregową DataFlash o pojemności do 64Mb na przechowywanie stron WWW, oraz dowolnych plików np. z danymi pomiarowymi. Pamięć podłączona jest do szybkiej magistrali SPI o prędkości transmisji do 8Mb/s. MMnetSAM7x pracuje pod kontrolą sytemu czasu rzeczywistego RTOS umożliwiającego budowę aplikacji z wykorzystaniem pseudo współbieżności, w której odrębne zadnia uruchamianie i wykonywane są w formie oddzielnych wątków. Pozwala to na łatwą budowę aplikacji, w których istnieje konieczność wykonywania kilku zadań równolegle, np. obsługa stosu TCP/IP oraz realizacja algorytmu sterowania procesem przemysłowym. System RTOS posiada rozszerzony interfejs do obsługi urządzeń peryferyjnych, dzięki któremu komunikacja z nimi odbywa się za pośrednictwem sterowników rejestrowanych w systemie. System posiada sterowniki dla karty sieciowej, portów szeregowych, magistrali 1-WIRE, termometru DS1820, wyświetlacza LCD, zegara RTC, pamięci DataFlash. Jądro systemu RTOS oraz stos TCP/IP wraz z zaimplementowanymi protokołami DHCP, UDP, ICMP, SMTP oraz HTTP z prostymi CGI skompilowano do bibliotek. W skład sytemu wchodzi szereg aplikacji demonstracyjnych (Serwer WWW, FTP, Telnet, klient TCP, serwer TCP, monitorowanie i regulacja temperatury, budowa aplikacji w systemie RTOS), które bazują na gotowych funkcjach zawartych w bibliotekach stosu IP oraz systemu RTOS. Dołączone biblioteki pozwalają na samodzielne eksperymenty (np. tworzenie stron wykorzystujących technikę CGI bez wnikania w niższe warstwy stosu IP oraz systemu operacyjnego RTOS). MMnetSAM7x dostarczany jest z załadowaną aplikacja Serwera WWW, oraz demonstracyjną stroną WWW z przykładami zastosowania CGI oraz Flash. Konfiguracja serwera (adres mac, IP, gateway, zmiana strony WWW) może się odbywać zdalnie poprzez łącze szeregowe RS232 lub FTP. Do systemu dołączone są źródła w języku C oraz gotowe biblioteki, które mogą być użyte do realizacji własnych projektów. Do modyfikowania i kompilacji może by zastosowany darmowy kompilator WinARM lub kompilator C firmy Rowley. Moduł MMnetSAM7x 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 MMnetSAM7x 3
1.1 Cechy minimodułu MMnetSAM7x Poniżej zostały wymienione główne cechy minimodułu MMnetSAM7x: Kompletny, gotowy do użycia system mikroprocesorowy AT91SAM7X256 - Mikrokontroler ARM TDMI7 z kontrolerem Ethernetowym Szeregowa pamięć SerialFlash AT45DB642 firmy ATMEL o pojemności 8MB (lub AT45DB321 4MB) Kontroler warstwy fizycznej Ethernetu DM9161A (100Mb/s) Wbudowany systemowy generator kwarcowy 18.432MHz Zasilacz (napięcie 3.3V dostępne na płycie) Napięcie zasilania modułu 3.3V 2 x 40 wyprowadzenia z rastrem 0.1" (2.54mm), pasujące do wszystkich druków prototypowych Diody LED do sygnalizacji pracy Małe wymiary: 56x48mm Dostępna płyta ewaluacyjna i przykładowe oprogramowanie 1.2 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
Budowa minimodułu MMnetSAM7x 2 Minimoduł składa się z płytki drukowanej, o wymiarach 56mm x 48mm. Na górnej części znajduję się mikrokontroler, kontroler Ethernet, rezonatory kwarcowe, oraz gniazdo RJ45. 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 MMnetSAM7x przedstawiono na rysunku: Rysunek 1 Schemat blokowymmnetsam7x 5
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. 6
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. 7
Złącze J1 Złącze J2 Funkcja Funkcja Pin Funkcja alternatywna Pin Funkcja alternatywna główna główna B12 PB12 ETXER 3V3 3V3 - B11 PB11 ETX3/SPI1_NPCS2 GND GND - B10 PB10 ETX2/SPI1_NPCS1 TST TEST - B3 PB3 ETX1 GND GND - B2 PB2 ETX0 /RST /RST - B1 PB1 ETXEN B14 PB14 ERX3/SPI0_NPCS2 B0 PB0 ETXCK/EREFCK/PCK0 B17 PB17 ERXCK/SPI0_NPCS3 B8 PB8 EMDC B7 PB7 ERXER A19 PA19 CANRX B15 PB15 ERXDV/ECRSDV A20 PA20 CANTX B5 PB5 ETX3/SPI1_NPCS2 A21 PA21 TF/SPI1_NPCS0 B9 PB9 EMDIO A22 PA22 TK/SPI1_SPCK B6 PB6 ETX2/SPI1_NPCS1 TDI TDI - A18 PA18 SPI0_SPCK B16 PB16 ECOL/SPI1_NPCS3 B13 PB13 ERX2/SPI0_NPCS1 B4 PB4 ECRS A16 PA16 SPI0_MISO A23 PA23 TD/SPI1_MOSI A17 PA17 SPI0_MOSI A24 PA24 RD/SPI1_MISO A14 PA14 SPI0_NPCS2/IRQ1 A25 PA25 RK/SPI1_NPCS1 A15 PA15 SPI0_NPCS3/TCLK2 A26 PA26 RF/SPI1_NPCS2 A12 PA12 SPI_NPCS0 B18 PB18 EF100/ADTRG A13 PA13 SPI0_NPCS1/PCK1 B19 PB19 PWM0/TCLK1 A10 PA10 TWD B20 PB20 PWM1/PCK0 A11 PA11 TWCK B21 PB21 PWM2/PCK1 A8 PA8 RTS1/SPI0_NPCS2 B22 PB22 PWM3/PCK2 A9 PA9 CTS1/SPI0_NPCS3 B23 PB23 TIOA0/DCD1 B29 PB29 PWM3/PCK2 B24 PB24 TIOB0/DSR1 B30 PB30 PCK2/PWM3/AD3 B25 PB25 TIOA1/DTR1 B28 PB28 TIOB2/PWM1/AD1 B26 PB26 TIOB1/RI1 VREF VREF - A27 PA27 TIOA2/PWM0/AD0 AD7 AD7 - A28 PA28 TIOB2/PWM1/AD1 B27 PB27 TIOA2/PWM0/AD0 A29 PA29 PCK1/PWM2/AD2 AD5 AD5 - TDO TDO - AD6 AD6 - JTAG_SEL JTAG_SEL - A2 PA2 - TMS TMS - AD4 AD4 - TCK TCK - D+ USB_DDP - A30 PA30 PCK2/PWM3/AD3 A4 PA4 - A0 PA0 RKD0 ERAS ERASE_FLASH - A1 PA1 TXD0 D- USP_DDM - A3 PA3 RTS0 A6 PA6 TXD1 A5 PA5 RXD1 A7 PA7 SCK1/SPI0_NPCS1 Tabela 1 Opis wyprowadzeń 8
Opis części sprzętowej MMnetSAM7x 3 3.1 Zasilanie Minimoduł MMnetSAM7x powinien być zasilany stabilizowanym napięciem 3,3V podanym na końcówkę oznaczoną jako 3V3. Dzięki wewnętrznemu stabilizatorowi 1,8V, nie jest konieczne dodatkowe źródło zasilania. Obecność napięcia zasilania sygnalizowana jest diodą LED. 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 3 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ł MMnetSAM7x został wbudowany układ podciągający, który jest przedstawiony na rysunku 5. Rysunek 4 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. Załączenie podciągania jest konieczne, do poprawnej współpracy z programem SAM-BA. 3.4 Kontroler Ethernetowy DM9161A Mikrokontroler współpracuje z kontrolerem warstwy fizycznej (PHY) DM9161A firmy Davicom. Jest to nowoczesny układ przeznaczony pracy w 100-BASE-TX i 10-BASE-T. Połączenie układu z kontrolerem MAC znajdującym się w mikrokontrolerze odbywa się poprzez magistalę MII (Media Independet Interface). Stan pracy kontrolera sygnalizują diody LED. Żółta dioda (w gnieżdzie RJ45) sygnalizuje pracę w trybie 100Mb/s. Zielona Act/Link. Na module dioda oznaczona jako FULL, sygnalizuje pracę w trybie FullDuplex 10
4 Programowanie 4 Poniższy opis przedstawia sposób zaprogramowania MMnetSAM7x 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 ARMcableI do minimodułu, przedstawiono na rysunku 6. Rysunek 5 Połączenie modułu MMnetSAM7x ze złączem JTAG. W przypadku płyty EVBmm Tm programator ARMcableI 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 MMnetSAM7x, dostępne jest na stronie www.propox.com zawarte w pliku MMnetSAM7x_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 MMnetSAM7x_Samples i wybieramy MMnetSAM7x_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
9 Dostępne wersje 5 selektora: Minimoduł można zamówić w różnych konfiguracjach według następującego MMnetSAM7x f d c Rozmiar pamięci Flash: 0 256kB 1 512kB Rozmiar pamięci DataFlash: 0 brak pamięci 1 4MB 2 8MB Złącze RJ45: 0 brak 1 ze złączem 6 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
6 Dane techniczne 7 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 Ethernet 10/100 Mb/s Auto-MDI, wbudowane złącze RJ45 Zasilanie 3.3V 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 7 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
8 Przykładowe oprogramowanie 9 Przykładowe programy i biblioteki dostępne są na stronie www.propox.com w dziale MMnetSAM7x. 10 Gwarancja 10 Moduł MMnetSAM7x 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 MMnetSAM7x. 16
17
18