ARMputer, część 1 AVT 922

Podobne dokumenty
STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

ZL9ARM płytka bazowa dla modułów diparm z mikrokontrolerami LPC213x/214x

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC2100, które można zastosować w zestawie ZL3ARM.

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL6ARM Zestaw uruchomieniowy dla mikrokontrolerów LPC213x. Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC213x

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

ZL10PLD. Moduł dippld z układem XC3S200

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL8AVR. Płyta bazowa dla modułów dipavr

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

ZL5ARM. Zestaw uruchomieniowy dla mikrokontrolerów LPC2119/2129 (rdzeń ARM7TMDI-S) Kompatybilność z zestawem MCB2100 firmy Keil

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

ZL11ARM. Uniwersalna płytka bazowa dla modułów diparm

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

ZL11AVR. Zestaw uruchomieniowy z mikrokontrolerem ATtiny2313

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów AVR

ADuCino 360. Zestaw uruchomieniowy dla mikrokontrolerów ADuCM360/361

Programator ZL2PRG jest uniwersalnym programatorem ISP dla mikrokontrolerów, o budowie zbliżonej do STK200/300 (produkowany przez firmę Kanda).

ZL6PLD zestaw uruchomieniowy dla układów FPGA z rodziny Spartan 3 firmy Xilinx

ZL1MSP430 Zestaw startowy dla mikrokontrolerów MSP430F11xx/11xxA ZL1MSP430

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

dokument DOK wersja 1.0

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

NXP ma nowe ARM-y. BlueStreak: co i jak

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887

MODUŁ UNIWERSALNY UNIV 3

Jednym z najlepszych sposobów poznawania nowego typu mikrokontrolera

SML3 październik

FREEboard. Zestaw startowy z mikrokontrolerem z rodziny Freescale KINETIS L (Cortex-M0+) i sensorami MEMS 7 DoF

Uniwersalny zestaw uruchomieniowy ZL4PIC

ARS3 RZC. z torem radiowym z układem CC1101, zegarem RTC, kartą Micro SD dostosowany do mikro kodu ARS3 Rxx. dokument DOK wersja 1.

ZL2ST7. Zestaw uruchomieniowy dla mikrokontrolerów ST7LITE

KAmduino UNO. Rev Źródło:

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

Rys. 1. Schemat ideowy karty przekaźników. AVT 5250 Karta przekaźników z interfejsem Ethernet

Uniwersalny adapter dla układów MSP430

8 kanałowy przedłużacz analogowy z RS485

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

System on Chip na miarę S P R Z Ę T

KAmodRPiADCDAC. Moduł przetwornika A/C i C/A dla komputerów RaspberryPi i RaspberryPi+

KA-NUCLEO-UniExp. Wielofunkcyjny ekspander dla NUCLEO i Arduino z Bluetooth, MEMS 3DoF, LED-RGB i czujnikiem temperatury

Moduł uruchomieniowy AVR ATMEGA-16 wersja 2

2. Architektura mikrokontrolerów PIC16F8x... 13

Płytka uruchomieniowa XM64

Wstęp Architektura... 13

Szkolenia specjalistyczne

Technika Mikroprocesorowa

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

Płyta uruchomieniowa EBX51

Murasaki Zou むらさきぞう v1.1 Opis programowania modułu LPC2368/LPC1768 z wykorzystaniem ISP

SPDIF_Gen generator/ tester sygnału cyfrowego S/PDIF

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

ISP ADAPTER. Instrukcja obsługi rev.1.1. Copyright 2009 SIBIT

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Płytka uruchomieniowa XM32

KA-NUCLEO-F411CE. Płytka rozwojowa z mikrokontrolerem STM32F411CE

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

Zestaw Startowy EvB. Więcej informacji na stronie:

E-TRONIX Sterownik Uniwersalny SU 1.2

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

Kod produktu: MP01611-ZK

MAXimator. Zestaw startowy z układem FPGA z rodziny MAX10 (Altera) Partnerzy technologiczni projektu:

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Tester samochodowych sond lambda

Zestaw edukacyjny dla mikrokontrolerów ST62

ZL3ST7. Zestaw uruchomieniowy dla mikrokontrolerów

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

To jeszcze prostsze, MMcc1100!

MOD STM32 explorem0 z STM32F051C8T6. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

Moduł prototypowy.. Leon Instruments. wersja 1.0

MCAR Robot mobilny z procesorem AVR Atmega32

Kod produktu: MP-1W-2480

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

MMstm32F103Vx. Instrukcja uŝytkownika REV 1.1. Many ideas one solution

Uniwersalna karta I/O

PRZYCISK DO PUSZKI UNIV x

Kod produktu: MP01611

Systemy wbudowane. Paweł Pełczyński

ZL11PRG v.2. Uniwersalny programator ISP. Odpowiednik: Byte Blaster II DLC5 Programmer AT89ISP STK-200 Lattice ISP ARM Wiggler

Zestaw uruchomieniowy USB z PIC18F4550, część 1

STEROWNIK MODUŁÓW PRZEKAŹNIKOWYCH SMP-8

KA-NUCLEO-Weather. ver. 1.0

202_NAND Moduł bramek NAND

Interfejs SPI do programatora PUNCH

Warsztatowo/ samochodowy wzmacniacz audio

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Transkrypt:

P R O J E K T Y ARMputer, część 1 AVT 922 Mikrokontrolery z rdzeniem ARM7TDMI szybko wspinają się na szczyty popularności, czego jedną z najważniejszych przyczyn są ekspresowo malejące ceny tych układów. W artykule przedstawiamy opis konstrukcji potężnego, pod względem funkcjonalności i wydajności jednostki centralnej, komputera wykonanego na procesorze z rodziny LPC2000 firmy Philips. Rekomendacje: wykonanie ARMputera polecamy fanom rozwiązań ARM owych oraz tym konstruktorom, którzy potrzebują szybkiej jednostki centralnej z bogatym zestawem modułów peryferyjnych. PODSTAWOWE PARAMETRY Zastosowano mikrokontroler LPC2294 lub LPC2292, Pojemność pamięci Flash (łącznie): 256 kb + 4 MB, Pojemność pamięci SRAM (łącznie): 16 kb + 1 MB, Maksymalna, wewnętrzna częstotliwość taktowania mikrokontrolera: 60 MHz, Zakres częstotliwości rezonansowych kwarcu: 1 30 MHz, Napięcie zasilania modułu: 5 7 V/ ok. 230 ma (przy f INT =60 MHz), Możliwość wyboru pamięci startowej (boot sector), Maksymalne napięcie wejściowe na liniach I/O: 5 V, Zakres napięć wejściowych toru A/C: 0 3 V, Częstotliwość próbkowania A/C: 400 khz, Wbudowany programator ISP, Wbudowane stabilizatory napięć dla rdzenia i linii I/O mikrokontrolera, Wbudowany kompletny port RS232, Wbudowane złącze interfejsu JTAG, Magistrale systemowe, sygnały JTAG i sterująca, a także porty I/O wyprowadzone na złącza szpilkowe (łącznie 75 linii), Trwałość wewnętrznej pamięci Flash: 100000 cykli, Trwałość zewnętrznej pamięci Flash (zgodna z CFI): 100000 cykli, Zewnętrzna pamięć Flash podzielona na 67 niezależnych sektorów, Wymiary płytki drukowanej: 116 x 114 mm Prezentowany projekt to drugie opisane na łamach EP, kompletne urządzenie wykonane na mikrokontrolerze z rdzeniem ARM7TD- MI. Wybór padł na mikrokontroler LPC2294 firmy Philips, który wyposażono m.in. w: 256 kb pamięci Flash (z możliwością programowania ISP), 16 kb pamięci SRAM, cztery kanały CAN, dwa UART y, zgodne sprzętowo z 16C550, interfejs I2C (do 400 kb/s), dwa interfejsy SPI, 8 kanałowy przetwornik A/C o rozdzielczości 10 bitów i czasie konwersji do 2,44 ms, 6 kanałowy generator PWM, dwa timery 32 bitowe, konfigurowalny kontroler przerwań, zegar czasu rzeczywistego RTC, timer watchdog, kontroler zewnętrznych pamięci SRAM i Flash, 112 uniwersalnych linii I/O z możliwością bezpośredniej współpracy z logiką zasilaną napięciem 5 V. Schemat blokowy mikrokontrolera LPC2294 pokazano na rys. 1. Jak na nim widać, zastosowany mikrokontroler jest doskonale wyposażony we wszelkiego typu peryferia najczęściej stosowane we współczesnych systemach cyfrowych, a zintegrowanie w jednej strukturze także pamięci Flash i SRAM powoduje, że w wielu sytuacjach może on pracować jako zintegrowany sterownik o dużej wydajności obliczeniowej. Rozwiązania sprzętowe zastosowane przez producenta (MAM Memory Accelerator Module) zapewniają szybki dostęp rdzenia do pamięci Flash, a jej zawartość można zabezpieczyć przed niepowołanym dostępem dzięki wbudowanemu mechanizmowi CRP (Code Read Protection). Na rys. 2 pokazano mapę wewnętrznych pamięci mikrokontrolera LPC2294. Ze względu na to, że w niektórych aplikacjach pojemność wbudowanej w mikrokontroler pamięci Flash i SRAM może okazać się zbyt mała (pomimo ich z punktu widzenia praktyki dużej pojemności), ARMputer wyposażono w zespoły zewnętrznej pamięci, w skład której wchodzą: Flash z CFI (patrz EP2/2006) o pojemności 32 Mb (w systemie pracuje jako pamięć z magistralą 16 bitową, co daje 2 Msłowa 16 bitowe), dwie pamięci SRAM połączone w zespół o 32 bitowej magistra- Narzędzia dla ARMputera są dostępne bez wyjątku bezpłatnie. Dotyczy to zarówno narzędzi do programowania pamięci mikrokontrolera (LPC2000 Flash Utility) jak i przygotowywania dla niego programów (ARM GCC). 10

WYKAZ ELEMENTÓW Rezystory R1, R2, R6 R13: 10 kv R3, R5: 33 kv R4: 22 kv Kondensatory C1 C4: 1 mf/16 V 0805 C5 C24: 100 nf 0805 CE1 CE4: 10 muf/16 V SMD A Półprzewodniki D1 D3: 1N4148 minimelf T1, T2: BC850 SOT23 U1: MAX3232 SO16 U2: LPC2294 TQFP144 U3, U5: IDT71V416S10PH U4: DS1818 SOT23 U6: M29W320DB TSOP48 U7: SPX1117 33 TO252 U8: SPX1117 18 TO252 Inne J1, J2, J3, J4, J5, J6: goldpiny 3x1 JP1, JP2: szpilki 20x2/2,54 JP3: DB9F JP4: ZWS/IDC20 S1: mikroswitch X1: 12 MHz Rys. 1. Schemat blokowy mikrokontrolera LPC2294 li danych i łącznej pojemności 8 Mb (256 k x 32 ich budowę wewnętrzną pokazano na rys. 3). D o d a t ko w y m w y p o s a ż e n i e m ARMputera jest zintegrowany na płytce programator ISP przystosowany do współpracy z dostępnym bezpłatnie programem LPC2000 Flash Utility. Korzystanie z urządzenia ułatwią zintegrowane na płytce stabilizatory napięć zasilających o wartości 1,8 V (zasilanie rdzenia mikrokontrolera) i 3,3 V (zasilanie portów I/O). Na płytce urządzenia przewidziano miejsce dla złącza JTAG, za pomocą którego można programować wewnętrzną pamięć Flash, a także zapewnić współpracę komputera (wyposażonego oczywiście w odpowiednie oprogramowanie) z blokiem EmbeddedICE, który ułatwia debugowanie programów uruchamianych na mikrokontrolerze. Opis układu Schemat elektryczny ARMputera pokazano na rys. 4. Mikrokontroler U2 jest taktowany przez wbudowany generator kwarcowy współpracujący z rezonatorem X1. W modelu zastosowano rezonator o częstotliwości 12 MHz, ale w zależności od potrzeb można stosować rezonatory o częstotliwościach od 1 do 30 MHz. Sygnał taktujący rdzeń i inne elementy wewnętrzne mikrokontrolera jest wytwarzany za pomocą powielacza częstotliwości z pętlą PLL wbudowaną w mikrokontroler. Mikrokontroler jest zasilany za pomocą dwóch stabilizatorów LDO (U7, U8), które zapewniają odpowiednie wartości napięć dla portów I/O, zewnętrznych pamięci i rdzenia mikrokontrolera. Napięcia z wyjść stabilizatorów wyprowadzono ponadto na złącze J4, które można wykorzystać do zasilania elementów współpracujących z ARMputerem. Wydajność prądowa każdego z zastosowanych stabilizatorów wynosi 800 ma. Układ U1 to typowy konwerter napięciowy stosowany w interfejsach RS232. Od popularnego MAX232 różni się tylko tym, że jest przystosowany do pracy z napięciem zasilania 3,3 V. Sygnały RxD i TxD portu UART0 wyprowadzono na zamontowane na płytce gniazdo DB9F (JP3), natomiast sygnały RxD i TxD portu UART1 są dostępne wyłącz- Tab. 1. Możliwe konfiguracje bootowania Numer konfiguracji Pozycja J5 (D26) Pozycja J6 (D27) Opis 0 1 2 1 2 Wewnętrzna pamięć Flash mikrokontrolera 1 1 2 2 3 Zewnętrzna pamięć 32 bitowa na CS0 2 2 3 1 2 Zewnętrzna pamięć 16 bitowa na CS0 3 2 3 2 3 Zewnętrzna pamięć 8 bitowa na CS0 11

Rys. 2. Mapa przestrzeni adresowej LPC2294 nie na złączu szplikowym J1. Tor UART0 jest wykorzystywany przez wbudowany fabrycznie bootloader do programowania pamięci mikrokontrolera. W tym samym celu na płytce zastosowano elementy: T1, T2, D1 D3, J2, J3, R3, R4 i R5. Spełniają one rolę programatora ISP sterowanego z portu RS232 (gniazdo JP3) przez program LPC2000 Flash Utility. Umożliwiają one całkowite zautomatyzowanie programowania, zgodnie z opisem opublikowanym w EP1/2006. Jedynym zabiegiem ze strony użytkownika ARMputera jest ustawienie w odpowiednich pozycjach zworek J2 i J3, co zostanie opisane w dalszej części artykułu. Do wyprowadzeń magistral: danych, adresowej i sterującej mikrokontrolera U2, dołączono trzy układy pamięciowe: SRAM (U3, U5) oraz Flash (U4). Jeżeli ich obecność w systemie nie jest niezbędna, lepiej ich nie montować bowiem zajmują one bardzo wiele linii I/O mikrokontrolera. Układ U4 jest wysokiej jakości generatorem sygnału zerującego, którego zadaniem jest zapewnienie poprawnej pracy mikrokontrolera U2 po włączeniu zasilania. Jak można zauważyć, tranzystor T1 może zwierać wyjście U4 do masy uważni Czytelnicy mogą zadać pytanie czy takie rozwiązanie jest poprawne? Jeżeli zostanie zastosowany układ DS1818 (lub inny układ z wyjściem OC/OD z rezystorem podciągającym) to tak! Wynika to z faktu, że stopień wyjściowy DS1818 jest zbudowany z tranzystora zwierającego wyjście #RST do masy i włączonego pomiędzy wyjście i plus zasilania rezystora (rys. 5). Specyficzna budowa tego układu powoduje, że nawet krótkotrwałe zwarcie wyjścia do masy spowoduje wygenerowanie poprawnego impulsu zerującego o odpowiednim czasie trwania. Jumpery J5 i J6 służą do wybrania pamięci bootującej i jej konfiguracji, zgodnie z tab. 1. W praktyce, w prezentowanym zestawie możliwe są do wykorzystania konfiguracje 0, 2 i 3. Zmiana trybu bootowania wymaga odpowiedniego ustawienia jumperów J5 i J6 i restartowania mikrokontrolera (np. za pomocą przycisku S1). Podobnie wygląda inicjalizacja interfejsu JTAG wbudowanego w mikrokontroler w przypadku konieczności jego aktywacji należy zewrzeć styki 2 3 J6 i zrestartować mikrokontroler. Interfejs JTAG można dołączyć do gniazda JP4, do którego doprowadzono sygnały zgodne ze standardem dużego (stosowanego w systemach z mikrokontrolerami ARM) JTAG a. W tab. 2 i 3 zestawiono możliwe położenia zworek na stykach J2 i J3, które służą do dołączania do odpowiednich wyprowadzeń mikrokontrolera elementów programatora ISP. Podczas normalnej pracy systemu elementy te należy odłączyć, w niektórych sytuacjach mogą bowiem zaburzać poprawną pracę mikrokontrolera. Montaż i uruchomienie Schemat montażowy płytki drukowanej pokazano na rys. 6. Jej wymiary jak widać są dość duże. Jest to spowodowane skomplikowaniem sieci połączeń pomiędzy mikrokontrolerem i pamięciami, oraz dołączeniem (w sensownym porządku) magistral do złączy szplikowych. Radykalne zmniejszenie wymiarów płytki wymaga zaprojektowania płytki 4 warstwowej, a na to (pod względem kosztów) jest jeszcze nieco (w naszym kraju) za wcześnie. Z drugiej strony, duże wymiary płytki umożliwiły zintegrowanie na niej elementów pozwalających traktować moduł jak kompletny minikomputer z podstawowymi interfejsami komunikacyjnymi. Rys. 3. Schemat blokowy pamięci SRAM zastosowanych w ARMputerze 12

ARMputer Rys. 4. Schemat elektryczny modułu 13

Biblioteki dla Protela Na CD EP3/2006B publikujemy biblioteki do Protela 99SE i DXP zawierające symbol schematowy oraz footprint PCB modułu opisanego w artykule. Tab. 2. Opis funkcji spełnianych przez zworkę J2 Pozycja Opis 1 2 Automatyczne zerowanie mikrokontrolera wyłączone 2 3 Automatyczne zerowanie mikrokontrolera włączone (pozycja zalecana podczas programowania pamięci mikrokontrolera) Tab. 3. Opis funkcji spełnianych przez zworkę J3 Pozycja Opis 1 2 Automatyczne przełączanie mikrokontrolera w tryb ISP wyłączone 2 3 Automatyczne przełączanie mikrokontrolera w tryb ISP włączone (pozycja zalecana podczas programowania pamięci mikrokontrolera) Elementy SMD są montowane po obydwu stronach płytki, co wymaga nieco wprawy, ale autor zmontował płytkę modelowego urządzenia z użyciem stacji lutowniczej Elwik bez stosowania specjalnych środków (poza miedzianą tasiemką rozlutowniczą). Jakość tak wykonanych połączeń jest nadspodziewanie dobra, na przeszkodzie podczas montażu nie stanęło także bezołowiowe pokrycie wyprowadzeń mikrokontrolera. Należy jednakże pamiętać o tym, że jakość lutowania ma największe znaczenie dla działania modułu! Uruchomienie ARMputera jest stosunkowo proste: po zasileniu układu napięciem 5 V należy sprawdzić wartości napięć zasilających na wyjściach stabilizatorów U7 i U8. Jeśli mają one prawidłowe wartości, do gniazda JP3 dołączamy kabel RS232 ( prosty ), a jego drugą wtyczkę dołączamy do PC, na którym jest zainstalowany program LPC2000 Flash Utility. Zworki konfiguracyjne powinny znajdować się w następujących położeniach: J2 i J3 zwarte styki 2 3 (elementy programatora ISP dołączone do mikrokontrolera), J5 i J6 zwarte styki 1 2 ( procesor startuje z wewnętrznej pamięci Flash, w obszarze której znajduje się fabryczny bootloader). Po skonfigurowaniu do pracy programu LPC2000 Flash Utility należy sprawdzić, czy pamięć mikrokontrolera programuje się prawidłowo (przebieg programowania układów LPC2000 opisano szczegółowo w EP1/2006). Jeśli tak się dzieje, można przyjąć, że urządzenie zostało zmontowane poprawnie. Dalsze testy modułu, w tym zewnętrznych pamięci, wymagają przygotowania własnych programów. Piotr Zbysiński, EP piotr.zbysinski@ep.com.pl Rys. 5. Budowa portu wyjściowego układu zerującego DS1818 Rys. 6. Schemat montażowy płytki ARMputera (widok zmniejszony o ok. 40%) 14