Instytut Cybernetyki Technicznej Systemy Mikroprocesorowe Moduł uruchomieniowy mikrokontrolera MC68HC912B32 Grzegorz Cielniak Wrocław 1999
1. Informacje ogólne Moduł uruchomieniowy jest tanim i prostym narzędziem używanym przy projektowaniu i uruchamianiu oprogramowania dla mikrokontrolera MC68HC912B32. Możliwość dołączania dodatkowych modułów sprzętowych pozwala na konstruowanie prototypów urządzeń, co jest szczególnie przydatne w laboratorium. Prezentowane tu rozwiązanie modułu, bazuje na fabrycznym produkcie EVB (Evaluation Board) firmy Motorola, a rozszerzenie jego możliwości polega na dostosowaniu wyprowadzeń złączy do standardów obowiązujących w laboratorium s. 010 Instytutu Cybernetyki Technicznej Politechniki Wrocławskiej. Dodatkowo istnieje możliwość wykorzystania urządzenia do komunikacji w standardzie MIDI (Musical Instrument Digital Interface) z urządzeniami i instrumentami muzycznymi. Opisywany moduł zawiera: mikrokontroler MC68HC912B32 firmy Motorola, asynchroniczny interfejs szeregowy RS 232C, asynchroniczny interfejs szeregowy w standardzie MIDI (opcjonalnie), interfejs SPI (Serial Peripheral Interface), interfejs wyświetlacza ciekłokrystalicznego LCD, złącze portu przetwornika analogowo-cyfrowego AD PORT, złącze interfejsu BDM (Background Debug Mode), złącza wszystkich wyprowadzeń mikrokontrolera, zasilacz stabilizowany (napięcia 5-15 V AC/DC). Do zmontowania całości zaprojektowano płytkę drukowaną o wymiarach 13,1 x 8,64 cm. Można pominąć montaż nie wykorzystywanych części układu (złącza wszystkich wyprowadzeń mikrokontrolera (P1-P4), czy też interfejs MIDI). Schemat urządzenia, oraz rozmieszczenie elementów na płytce zamieszczono w rozdziale Schematy i rysunki. 2
2. Opis wyprowadzeń mikrokontroler MC68HC912B32 MC68HC912B32 jest 16-bitowym mikrokontrolerem firmy Motorola. Jest rozwinięciem wcześniejszych, bardzo popularnych, mikrokontrolerów z rodziny HC11 i jest z nimi całkowicie zgodny programowo. Ważniejsze zasoby sprzętowe mikrokontrolera: 16-bitowa jednostka centralna (CPU12), multipleksowana magistrala wewnętrzna, pamięć: 32 kb Flash EEPROM, 768 B EEPROM, 1kB RAM, 8-bitowy, 8-kanałowy przetwornik analogowo-cyfrowy, 8-kanałowy układ timera, synchroniczny interfejs transmisji szeregowej (SPI), asynchroniczny interfejs transmisji szeregowej (SCI), interfejs BDM, funkcja Watchdog, obudowa QFP 80. interfejs szeregowy RS 232C Aby umożliwić podłączenie komputera wyposażonego w złącze szeregowe, lub też zewnętrznego terminala do urządzenia wyposażono je w interfejs szeregowy standardu RS 232C. Numeracja końcówek złącza P51 odpowiada numeracji w typowym złączu DB-9, które należy podłączyć kablem taśmowym 10-żyłowym. Można zastosować również złącze DB-25. Tabela 1: Złącze interfejsu RS 232C (P51) GND 1 2 - TxD 3 4 - RxD 5 6 - - 7 8 [NC] * - 9 10 [NC] * [NC] - nie podłączone 3
interfejs szeregowy MIDI Urządzenie można wykorzystać również do transmisji w standardzie MIDI. Jest to transmisja szeregowa, w której dane są przesyłane z prędkością 31250 (+/- 196) bitów na sekundę. Słowo ma długość osiem bitów z bitem startu i jednym bitem stopu, bez bitu parzystości. Standard definiuje trzy rodzaje złącz: MIDI IN przeznaczone do odbierania komunikatów, MIDI OUT przeznaczone do wysyłania komunikatów, MIDI THRU będące powieleniem sygnału MIDI IN, a tym samym umożliwiające przesyłanie sygnału do innego urządzenia, bez konieczności wykonywania dodatkowych przejściówek. Złącza te są gniazdami typu DIN-5. Połączenia z portem P52 należy dokonać kablem taśmowym 8-żyłowym (rys. 2. 1). Rys. 2.1. Sposób podłączenia gniazd interfejsu MIDI do złącza P52 Tabela 2: Złącze interfejsu MIDI (P52) MIDI IN_1 1 2 MIDI IN_2 MIDI OUT_1 3 4 MIDI OUT_2 MIDI THRU_1 5 6 MIDI THRU_2 VCC 7 8 GND interfejs SPI Złącze SPI służy do szeregowej synchronicznej wymiany danych pomiędzy mikrokontrolerami i urządzeniami zewnętrznymi. Dzięki niemu, do opisywanego urządzenia, można podłączyć istniejące już moduły laboratoryjne SPI (m. in. pamięć EEPROM, przetwornik AC). 4
Sygnały wykorzystywane w transmisji: SCK zegar synchronizujący transmisję, MOSI przesyłanie danych od jednostki nadrzędnej do podporządkowanej, MISO przesyłanie danych od jednostki podporządkowanej do nadrzednej, PCSx linie wyboru urządzenia zewnętrznego. Tabela 3: Złącze interfejsu SPI (P7) GND 1 2 VCC PCS0 3 4 PCS1 PCS2 5 6 PCS3 SCK 7 8 MISO MOSI 9 10 GND interfejs wyświetlacza ciekłokrystalicznego LCD Do złącza tego interfejsu można podłączyć typowy alfanumeryczny wyświetlacz LCD wyposażony w sterownik HD44780A00 firmy Hitachi. Tabela 4: Złącze wyświetlacza LCD (P9) GND 1 2 VCC CV 3 4 RS R/W 5 6 E D0 7 8 D1 D2 9 10 D3 D4 11 12 D5 D6 13 14 D7 złącze portu przetwornika AD PORT Mikrokontroler MC68HC912B32 posiada 8-bitowy, 8 kanałowy przetwornik analogowo-cyfrowy. Dostęp do tego portu jest realizowany poprzez złącze AD PORT (P8). Tabela 5: Złącze przetwornika ADC (P9) GND 1 2 AIN0 GND 3 4 AIN1 GND 5 6 AIN2 GND 7 8 AIN3 GND 9 10 AIN4 GND 11 12 AIN5 GND 13 14 AIN6 GND 15 16 AIN7 GND 17 18 [NC] GND 19 20 [NC] 5
Napięcie odniesienia dla przetwornika można dostarczyć wprost ze źródła zasilania, lub też z układu zewnętrznego. Służy do tego zwora J10. W przypadku wykorzystania napięcia zasilania należy połączyć końcówki 1-2 i 5-6. W przypadku korzystania z zewnętrznego napięcia odniesienia do jego doprowadzenia służą końcówki 2, 4, 6. Tabela 6: Zwora napięcia odniesienia (J10) VCC 1 2 REF+ VCC 3 4 GND GND 5 6 REFzłącza interfejsu BDM Komunikacja w trybie BDM jest możliwa poprzez złącza BDMIN (P5) i BDMOUT (P6). Interfejs BDM w module uruchomieniowym może pracować w dwóch trybach: obsługiwany jest mikrokontroler modułu (konieczne jest wykorzystanie SDI (Serial Debug Interface) firmy Motorola) moduł obsługuje inne urządzenie zawierające mikrokontroler z rodziny HC12 Tabela 7: Złącze BDMIN (P5) BKGD IN 1 2 VCC [NC] 3 4 RESET [NC] 5 6 VCC Tabela 8: Złącze BDMOUT (P6) BKGD OUT 1 2 VCC [NC] 3 4 RESET [NC] 5 6 VCC 6
złącza wszystkich wyprowadzeń mikrokontrolera Wszystkie wyprowadzenia mikrokontrolera MC68HC912B32, są dostępne poprzez złącza P1-P4. Takie rozwiązanie miało na celu umożliwienie budowy własnych urządzeń opartych na tym mikrokontrolerze. Tabela 9: Złącze wyprowadzeń mikrokontrolera (P1) PP5 1 2 PP4 PP3 3 4 PP2 PP1 5 6 PP0 PT0 7 8 PT1 PT2 9 10 VDD10 VSS11 11 12 PT3 PT4 13 14 PT5 PT6 15 16 PT7 BKGD 17 18 PB0 PB1 19 20 PB2 Tabela 10: Złącze wyprowadzeń mikrokontrolera (P2) PA2 1 2 PA3 PA4 3 4 PA5 PA6 5 6 PA7 VDD47 7 8 VSS48 VRH 9 10 VRL PAD0 11 12 PAD1 PAD2 13 14 PAD3 PAD4 15 16 PAD5 PAD6 17 18 PAD7 VDDAD 19 20 VSSAD Tabela 11: Złącze wyprowadzeń mikrokontrolera (P3) PS0/RX 1 2 PS1/TX PS2 3 4 PS3 PS4/MISO 5 6 PS5/MOSI PS6/SCK 7 8 PS7/SS VFP 9 10 PDLC6 PDLC5 11 12 PDLC4 PDLC3 13 14 PDLC2 PDLC1 15 16 PDLC0 VSSX77 17 18 VDDX78 PP7 19 20 PP6 Tabela 12: Złącze wyprowadzeń mikrokontrolera (P4) PB3 1 2 PB4 PB5 3 4 PB6 PB7 5 6 PE7 PE6/MODB 7 8 PE5/MODA PE4 9 10 VSSX30 VDDX31 11 12 RESET EXTAL 13 14 XTAL PE3 15 16 PE2 PE1 17 18 PE0 PA0 19 20 PA1 7
zasilacz stabilizowany Zasilacz stabilizowany dostarcza napięcie +5V do układów urządzenia. Jego konstrukcja umożliwia dostarczenie zewnętrznego napięcia 9 15V prądu stałego, lub zmiennego, przy czym polaryzacja napięcia stałego jest bez znaczenia. Rozwiązanie takie bardzo dobrze zabezpiecza urządzenie w przypadku zastosowania nieodpowiedniego zasilacza zewnętrznego. 3. Konfiguracja modułu Moduł uruchomieniowy mikrokontrolera MC68HC912B32 może pracować w czterech trybach pracy: EVB wykonywany jest program znajdujący się w pamięci Flash EEPROM (program użytkownika, D-Bug12), skok do EEPROM wykonywany jest program znajdujący się w pamięci EEPROM, POD moduł obsługuje urządzenie zewnętrzne poprzez interfejs BDM, BOOTLOAD tryb programowania pamięci Flash EEPROM, EEPROM. Poniżej zamieszczono opis wszystkich zwór modułu konfiguracyjnego Tabela 13: Opis zwór konfiguracyjnych Połączenia Opis J 51 wybór trybu pracy wyjścia portu szeregowego TxD 1-2 [def.] * RS 232C OUT 2-3 MIDI OUT J 52 wybór trybu pracy wejścia portu szeregowego RxD 1-2 [def.] RS 232C IN 2-3 MIDI IN J 1 RESET generowany z powodu niskiego napięcia zasilania 1-2 [def.] włączony przerwa odłączony J 2 wybór źródła taktującego podawanego na EXTAL mikrokontrolera 1-2 [def.] wewnętrzny (16 MHz) przerwa zewnętrzny J 3 włączenie napięcia programowania VPP pamięci EEPROM 1-2 [def.] VPP odłączone 2-3 VPP podłączone (programowanie) J 4, J 5 tryb pracy modułu J 4: 1-2, J 5: 1-2 tryb BOOTLOAD J 4: 1-2, J 5: 2-3 tryb POD J 4: 2-3, J 5: 1-2 tryb skoku do EEPROM J 4: 2-3, J 5: 2-3 [def.] tryb EVB * [def.] ustawienie domyślne 8
Połączenia Opis J 6, J 7 tryb pracy mikrokontrolera J 6: 1-2, J 7 1-2 [def.] tryb Single Chip inne połączenia tryby nie zalecane J 8 podłączenie VCC do BDMOUT 1-2 [def.] VCC podłączone przerwa VCC odłączone J 9 podłączenie RESET do BDMOUT 1-2 [def.] RESET generowany przerwa RESET odłączony J 10 wybór napięcia odniesienia VREF dla ADC 1-2, 5-6 [def.] VREF = VCC brak połączeń VREF zewnętrzne 4. Oprogramowanie Do pracy z urządzeniem zalecane jest wykorzystanie istniejącego oprogramowania dla mikrokontrolerów z rodziny MC68HC12, w tym: D-Bug 12 rezydentny program monitora i debugera (umieszczany w pamięci Flash EEPROM mikrokontrolera), asembler dla mikrokontrolerów z rodziny HC12, pakiet oprogramowania MCUez zunifikowane środowisko zawierające asembler, kompilator języka C, linker, monitor i debuger. 9
5. Schematy i rysunki Rys. 5.1. Schemat modułu uruchomieniowego. 10
Rys. 5.2. Schemat zasilacza. Rys. 5.3. Schemat interfejsu szeregowego. 11
Rys. 5.4. Rozmieszczenie elementów. 12
6. Literatura M68EVB912B32 User Manual, Motorola Inc. 1997 M68HC912B32 Technical Summary, Motorola Inc. 1997 CPU 12 Reference Manual, Motorola Inc. 1997 Systemy Mikroprocesorowe - materały pomocnicze, M. Wnuk, Wrocław 1999 MIDI muzyczny standard dla komputerów, W. Nowak, W. Homan, DMM Kraków 1994 Większość informacji dotyczących mikrokontrolerów z rodziny HC12 jest dostępnych na stronie firmy Motorola http://www.mcu.motsps.com. 13