ADuCino360: płytka ewaluacyjna dla mikrokontrolerów ADuCM360 (Cortex-M3 z Analog Devices)
Mikrokontrolery ARM wyznaczają aktualny standard w technice mikroprocesorowej – można tak powiedzieć nie popełniając wielkiego nadużycia. Są to układy, które w różnych wersjach i odmianach znajdują się w ofertach wielu producentów. W jednym chipie, oprócz rdzenia procesora, umieszczane są najczęściej liczne układy peryferyjne decydujące o zastosowaniach danego mikrokontrolera. Jedną z ciekawszych odmian ARM-a z rdzeniem Cortex-M3 oferuje Analog Devices, a to oznacza, że można spodziewać się bardzo dobrych bloków analogowych obok bardzo wydajnego procesora.
Analog Devices to jeden z największych producentów podzespołów elektronicznych, kojarzony przede wszystkim z układami analogowymi. W trakcie wieloletniej obecności tej firmy na rynku elektronicznym, w biurach konstrukcyjnych AD opracowano szereg bardzo nowoczesnych i oryginalnych układów scalonych, znajdujących zastosowanie w najbardziej skomplikowanych urządzeniach elektroniki profesjonalnej. Analog Devices nie ogranicza się tylko do konstruowania i produkcji układów analogowych. Był jednym z prekursorów czujników MEMS, a od wielu lat produkuje również mikrokontrolery zawierające wysokiej jakości wewnętrzne peryferia analogowe. Historia rozwoju tej gałęzi produkcji sięga mikrokontrolerów rodziny MCS-51 (układy AduC8xx) i trwa do dziś. Jednym z najnowszych wyrobów Analoga jest mikrokontroler ADuCM360 z rdzeniem ARM Cortex-M3, tradycyjnie bogato wyposażony w peryferia analogowe. Mikrokontroler i opracowany dla niego starter kit były już opisywane na stronach portalu MIKROKONTROLER.pl (>>>> artykuł 1 i artykuł 2).
Korzystanie z płytki ewaluacyjnej bez debugera/programatora sprzętowego
W artykule przedstawiamy kolejną płytkę ewaluacyjną, zawierającą oprócz samego mikrokontrolera ADuCM360 dodatkowo czujnik temperatury ADT7420 obsługiwany za pośrednictwem interfejsu I2C. Przygotowano także miejsce do wlutowania akcelerometru ADXL362 sterowanego interfejsem SPI. Oba interfejsy (I2C i SPI) mają swoje gniazda umieszczone na krawędzi płytki (fotografia 1). Użytkownik ma więc możliwość dołączania również innych, zewnętrznych układów peryferyjnych. Gniazdo interfejsu SPI zawiera linie MOSI, MISO, SCLK oraz linię wyboru układu CS sterowaną linią P1.7 mikrokontrolera. Uwzględniono też wyprowadzenia napięcia zasilającego: +3,3 V i GND. Należy jednak pamiętać, że linia wyboru akcelerometru i CS zewnętrzny (w gnieździe SPI), to ten sam sygnał.
Fot. 1. Płytka ewaluacyjna dla mikrokontrolera ADuCM360
Niezależnie od wykorzystania poszczególnych portów mikrokontrolera do sterowania układami umieszczonymi na płytce, wszystkie linie, włącznie z sygnałami zerowania, napięciami referencyjnymi, wyjściem przetwornika DAC, wejściem zerowania, zostały wyprowadzone na złącza szpilkowe. Dwurzędowe gniazdo wejść analogowych wynika z możliwości konfigurowania przetworników ADC mikrokontrolera jako układów z wejściami symetrycznymi.
Płytka jest zasilana napięciem +5 V pobieranym z interfejsu USB. Wbudowany stabilizator ADP3330 wytwarza napięcie 3,3 V zasilające wszystkie komponenty. Nie przewidziano zasilania elektroniki z gniazda zasilającego – nie ma takiego na płytce. Praca jest możliwa wyłącznie po dołączeniu płytki do portu USB. Napięcie +5 V jest jednak przekazywane przez gniazdo POWER.
Interfejs USB pełni bardzo ważną rolę. Oprócz typowych zadań komunikacyjnych realizowanych w aplikacji końcowej, może być wykorzystywany do programowania mikrokontrolera. W takim przypadku wymagane jest dołączenie linii P0.1 (TXD) i P0.2 (RXD) do układu FT232R pełniącego funkcję mostka USB-UART. Do konfigurowania tych linii są wykorzystywane zworki JP1 i JP2. Programowanie przez interfejs USB nie wymaga stosowania żadnego programatora, należy jedynie zainstalować na komputerze program downloadera CM3WSD, który można pobrać np. ze strony (rysunek 2).
Rys. 2. Strona internetowa, z której można pobrać downloader CM3WSD
Pierwsze dołączenie płytki do komputera via USB wymusi instalację odpowiednich sterowników i utworzenie wirtualnego portu COM. Należy upewnić się, który numer został mu nadany, gdyż port ten będzie wykorzystywany przez program downloadera i trzeba go będzie podać w odpowiednim polu. Procedura programowania jest następująca:
- Skompilować program, generując plik HEX zawierający dane do zapisania w pamięci mikrokontrolera
- Połączyć płytkę ewaluacyjną z komputerem kablem USB
- Uruchomić program CM3WSD i sprawdzić poprawność wszystkich nastaw, ze szczególnym zwróceniem uwagi na wskazanie prawidłowego pliku HEX (rysunek 3a)
- Nacisnąć przycisk ekranowy Start
- Nacisnąć przycisk S2 (P2.2), a następnie kliknąć przyciskiem S1 (RESET) na płytce
- Ładowanie programu zostanie zainicjowane (rysunek 3b) i będzie to sygnalizowane wyświetleniem paska postępu w oknie programu CM3WSD
- Zwolnić przycisk S2
Rys. 3. Okno programu CM3WSD wykorzystywanego do ładowania programu interfejsem USB: rysunek górny – ustawienia wstępne, rysunek dolny – komunikat po zakończeniu ładowania
Jeśli została włączona opcja Autorun , to po zakończeniu procedury programowania zapisany program zostaje automatycznie uruchomiony. Niestety taka metoda pracy (bez sprzętowego debugera) nie pozwoli na krokowe wykonywanie programu, ani na podglądanie stanu rejestrów i zmiennych programu. Uruchamianie (debugowanie) programu przebiega więc wyłącznie przez programową symulację, którą można przeprowadzi na przykład w środowisku uruchomieniowym uVision4 ARM firmy Keil. Konfigurując środowisko – Options for Target należy wybrać opcję Use Simulator (rysunek 4).
Rys. 4. Konfiguracja symulatora w środowisku uVision4 dla ARM