Emulator EMX-11 Handledning 2000-09-13 MICRONYM
2 Emulator EMX-11
Innehåll 1 Allmänt...4 2 Emulering...5 2.1 Beskrivning av emulatorn...5 2.1.1 Emulatorkortet...7 2.1.2 Emuleringskontakten...9 2.2 Anslutningar...11 3 Emulatorns funktion...12 3.1 Minnesarkitektur...12 3.2 Emulering av PORTB och PORTC...13 3.3 Automatisk start av användarprogram...15 4 Utveckling av konstruktioner i expanderad mod...16 Emulator EMX-11 3
1 Allmänt 1 Allmänt EMX-11 är ett utvecklingssystem för konstruktion med enkapseldatorn MC68HC11. Systemet är en vidareutveckling av den populära skolemulatorn EM-11. Det består av en ICE (In Circuit Emulator) med nödvändiga program för att testa den egna konstruktionen. I en emulator är alla provkörningar helt verklighetstrogna, vilket innebär att alla tester sker i full fart och med den egna kretskonstruktionen inkopplad. Förutom testning (eller sk avlusning) kan man även programmera in det färdiga programmet i flera typer av 68HC11. Denna handledning beskriver hur emulatorn är uppbyggd och hur den kan användas. Vid konstruktionsarbetet bör man ha tillgång till någon av de manualer som finns för 68HC11. Den mest användbara är databoken 'MC68HC11 E SERIES, Technical Data' som innehåller all teknisk information man behöver. Behöver man djupare insikter eller utförliga beskrivningar av assemblyspråket, kan man använda 'M68HC11 REFERENCE MANUAL'. För den vane kan 'PROGRAMMING REFERENCE GUIDE' räcka; det är en liten bok i fickformat som innehåller allt väsentligt i kortfattad form. Den finns liksom databoken i en speciell upplaga för varje HC11-typ. EMX-11 kan användas på 2 olika sätt: Med monitorprogrammet Bug-11: EMX-11 direkt. Med hjälp av endast terminal eller terminalemuleringsprogram kan emulatorn användas för fullständig programutveckling och testning. Dock blir editeringsmöjligheterna primitiva och begränsade till enklare assemblerprogram. En av de viktigare användningarna här är att programmera HC11:s EEPROM eller EPROM. Med programmet HC11PDS (freeware) har man ett enkelt och pedagogiskt hjälpmedel för grundläggande assemblerprogrammering och naturligtvis direktkontakt med emulatorn. Med monitorprogrammet C-SPY: C-SPY, högnivådebugger utvecklad av uppsalaföretaget IAR. Används för testning och felsökning när man också behöver programmera i C. Med en switch ställer man enkelt om vilket monitorprogram som ska användas. 4 Emulator EMX-11
2.1 Beskrivning av emulatorn 2 Emulering 2.1 Beskrivning av emulatorn En emulator är en anordning som via en emuleringskabel exakt kan uppföra sig som en mikroprocessor eller annan avancerad krets i en konstruktion. Emulera betyder härma. Utan att ha den färdiga kretsen med dess program, ska man kunna manipulera med kretsens in- och utsignaler och laborera med programmet. Vidare ska det finnas stöd för mer eller mindre avancerad felsökning i konstruktion och program. Ett viktigt krav är att emulatorn ska uppföra sig helt verklighetstroget; dvs köra med full klockfrekvens och ge de rätta logiska nivåerna till kringkonstruktionen. I denna emulator, som emulerar 68HC11, utförs emuleringen av just en 68HC11. I emulatorn arbetar HC11:an med externa minnen och vissa andra komponenter. Därför måste den använda två portar (PORTB och PORTC) och två kontrollsignaler för att kunna använda extern data- och adressbuss. De förlorade portarna återskapas i en speciell emuleringskrets, TK68HC24, som har konstruerats speciellt för att uppföra sig som en HC11. Därmed kommer signalerna på emuleringskontakten att bete sig som en enchipsdator. Eftersom HC11:an kan användas med externa minnen, kan man egentligen använda den som en vanlig mikroprocessor, ovanligt rikt utrustad med inbyggda periferienheter. I sådana konstruktioner kan man emellertid inte emulera det externa minnet via emuleringskontakten, utan får göra sin utveckling i emulatorns minne. EMX-11 emulerar alla HC11-typer kapslade i 52-pinnars PLCC: MC68HC11A1 (utgående typ, ersätts av E1) MC68HC811E2 MC68HC11E1 MC68HC11E9 MC68HC711E9 MC68HC711E20 Emulator EMX-11 5
2 Emulering Man bör utnyttja den unika möjligheten att emulera med just den HC11-typ man senare ska ha i sin konstruktion; dock kan man vara försiktig med att använda en dyr HC11 om man experimenterar mycket. Ett önskemål är att en emulator helt ska lämna alla kretsens funktioner ifred och inte heller inkräkta på kretsens egen minnesarea. EMX-11 uppfyller detta önskemål med ett undantag: 9 byte av stackarean måste reserveras. Denna area används vid programbrytning för att kunna avläsa CPU:s interna register. Denna inskränkning har sällan någon praktisk betydelse. FFFF F000 E000 Emuleringsminne Emuleringsminne D000 C000 B000 A000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0000 I/O eller RAM Figur 1. Plan över emulatorns adressarea. Figuren ovan visar den del av den totala minnesarean som är tillgänglig för emulering. Som synes kan mer än 20 kbyte stora program emuleras och både I/O-arean och RAM-minnet kan ges alternativa basadresser. 6 Emulator EMX-11
2.1.1 Emulatorkortet 2.1.1 Emulatorkortet + 5V i mitten Kontakt för seriekanal MAX203 XR-88C681 PAL16L8 CSPY Bug11 Sockel för EEPROM Emuleringsminne MONITOR-program EXT-X-INT PROG 68HC24 68HC11 EMUL EXTXIRQ +5V OUT Emuleringskontakt Resetknapp --> Figur 2: Plan över emulatorn EMX-11 Figur 2 visar en schematisk bild av emulatorn. I den stora nollkraftsockeln sitter en 68HC11. Kretsen 68HC24 är en emuleringskrets, som återskapar de portar, B och C, som i emulatorn tjänstgör som adress- och databuss. Tack vare denna krets kommer emuleringskontakten att se ut som en HC11 enchipsdator. Emulator EMX-11 7
2 Emulering Kretsarna XR88C681 och MAX203 sköter kommunikationen med terminal eller arbetsstation. Vidare finns minneskretsar för systemprogram och arbetsminne. Emulatorn innehåller ett antal switchar. På fronten sitter en reset-knapp som återstartar emulatorn på samma sätt som vid spänningspåslag. Nerladdad kod försvinner dock inte. Tre skjutomkopplare är viktiga för emulatorns funktion: EMUL Denna omkopplare bestämmer om emulatorn ska användas med något av monitorprogrammen eller köras som en fristående enkortsdator. Se kap. 3.3 EXT-X-INT Man kan välja mellan att köra med den interna kristallen eller den man har på sitt målsystem. Har man inget yttre målsystem med fungerande kristall ska läget INT väljas. CSPY- - Bug11 Används IAR:s debugger, ska läget CSPY väljas. Vill man ha direktkontakt med emulatorn via terminalprogram, väljs Bug11. Två byglingar för emuleringskabeln sitter i kortets främre vänstra kant. 5V_OUT ger en möjlighet att stänga av spänningsmatningen genom emuleringskabeln. Den är praktisk att ha i när man använder enkla laborationskort som inte kräver egen spänningsmatning. Vid mer omfattande målsystem, är det olämpligt att spänningsmata via den relativt klena emuleringskabeln. Speciellt bör ej emulatorn spänningsmatas genom denna. EXTXIRQ gör det möjligt att använda XIRQ på målsystemet. Eftersom detta är den enda signal som både målsystemet och emulatorn använder, kan det ibland finnas önskemål att bryta målsystemets inverkan på den. 8 Emulator EMX-11
2.1.2 Emuleringskontakten 2.1.2 Emuleringskontakten Emuleringskontakten ersätter HC11:an under utvecklingsarbetet. Målsystemet, den egna konstruktionen, ska fungera som om det satt en färdigprogrammerad HC11:a på kontaktens plats. Vissa signaler har dock en något begränsad funktion. Anledningen är att kunna säkerställa emulatorns funktion, även om målsystemet konstruerats felaktigt. Emuleringskontakten som den ser ut i emulatorn: *5 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PE0 PE1 PE2 PE3 VRL VRH VSS MODB PE4 PE5 PE6 PE7 VDD PD5 PD4 PD3 PD2 PD1 PD0 IRQ XIRQ RESET PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 XTAL EXTAL STRB E STRA *1 *2 *3 *4 *6 Vid emulering bör man lägga märke till följande: *1 Spänningsmatningen +5V bör helst ske separat. Emulatorns funktion kan ej garanteras om den strömförsörjs utifrån via emuleringskabeln. Å andra sidan kan enkla inkopplingar strömförsörjas från emulatorn. En bygling i emulatorn kan bryta förbindelsen. *2 Signalen XIRQ kan kopplas ur om man ej behöver den på målsystemet. Se byglingen 'EXT XIRQ' under beskrivningen av emulatorkortet. *3 Resetsignalen i emuleringskabeln är enkelriktad: Reset kan inte fås att verka från målsystemet in till emulatorn; däremot släpps HC11:ans egen reset ut till målsystemet. *4 Med en omkopplare kan man välja mellan att driva HC11:an med emulatorns kristall eller med den på målsystemet. Har man en speciell kristall på sitt målsystem så bör man tänka på att använda den. Funktioner som är relaterade till kristallfrekvensen blir annars helt felaktiga. *5 MODB-signalen bestämmer om HC11:ans 'bootstrap'-mode eller normala 'single chip'-mode ska emuleras. Det går naturligtvis att utveckla program också i bootstrap mode. *6 Signalen MODA är inte alls utdragen till emuleringskontakten. Med den väljer man ju om HC11:n ska arbeta i Single Chip eller Expanded Mode och processorn i emulatorn arbetar egentligen alltid i expanderad mode; medan den emulerar enchipsmod. På målsystemet ska alltid denna signal vara ansluten till GND. Emulator EMX-11 9
2 Emulering På målsystemet har man i regel en kontakt som passar en PLCC-sockel men man kan också använda en 48-polig emuleringskontakt. Emuleringskontakten på målsystemet: 1 EMX-11 PLCC pod micronym 2000 Emuleringskontakten för HC11 i 52-pinnarskapsel. Var noga med att orientera kontakten rätt! 10 Emulator EMX-11
2.2 Anslutningar 2.2 Anslutningar Spänningsmatning sker med +5 volt på emulatorns baksida med ett switchat spänningsaggregat (batterieliminator ELFA) som medföljer emulatorn. Om annan spänningsmatning väljs, observera att kontakten är av typ plus i mitten. Den medföljande eliminatorn ger 1 A vilket räcker för både emulator (strömförbrukning 160 ma) och ev. labbkort. Den medföljande batterieliminatorn är i första hand avsedd för utbildningsändamål; för krävande konstruktionsarbete bör ett bättre spänningsaggregat väljas. Emulatorn är överströmsskyddad vilket hindrar större strömförbrukning än 700 ma. Detta skyddar emulatorn ifall felaktig spänning har använts eller en kortslutning har uppträtt på målsystemet. På baksidan finns också en kontakt för seriekommunikation med PC. Använder man enkel terminalkommunikation, exempelvis hyperterminal, med Bug-11, får man direkt ett meddelande: Bug-11 v.x11 HC711E9 Om så inte sker, trycker man på emulatorns resetknapp. Händer fortfarande inget kan det finnas en del förklaringar: Är omkopplaren C-SPY Bug11 i läge Bug11? Är seriekanalen rätt inställd? Den ska stå på 9600 baud, 8 bitar XON- XOFF. Är spänningen OK? (lyser lysdioden på framsidan?) Är kristallomkopplaren i läge INT? Är omkopplaren EMUL i läge EMUL? Sitter HC11:an i?! Normalt får man alltså ett meddelande som talar om att programmet Bug-11 är igång. Programmet Bug-11 beskrivs i en separat manual Använder man HC11PDS eller C-SPY får man besked direkt efter start av debugprogrammet att kommunikationen är OK. Emulator EMX-11 11
3 Emulatorns funktion 3 Emulatorns funktion 3.1 Minnesarkitektur FFFF EMULERING FFFF UPPSTART F000 E000 Emuleringsminne F000 E000 2864 D000 D000 C000 B000 A000 Emuleringsminne C000 B000 A000 Systemprogram 9000 9000 8000 8000 7000 7000 6000 6000 5000 4000 Systemprogram 5000 4000 3000 3000 2000 2000 1000 1000 0000 0000 När man startar emulatorn, hämtas resetvektor på adress BFFE. Därför måste en bit av systemprogrammet finnas på dessa adresser. Att resetvektorn hämtas på denna adress, styrs av att man låter den starta i 'Special Test Mode' och detta bestäms av omkopplaren 'EMUL'. Med omkopplaren i frånläge, sker start i normal mod, d.v.s. resetvektor hämtas på adress FFFE. Då kan man använda ett externt minne eller minnet ombord på HC11:an för uppstart. Man låter då emulatorn exekvera det färdiga programmet från spänningspåslag. Se kapitel 3.3. 12 Emulator EMX-11
3.2 Emulering av PORTB och PORTC 3.2 Emulering av PORTB och PORTC IRQ XIRQ RESET Interrupt Logic ROM 12 kbyte EXTAL XTAL E MODA MODB Periodic Interrupt Watchdog EEPROM 512 byte Clock Logic Mode Control Pulse Accumulator Output Compare OC1 Input Capture IC 1 2 3 4 5 4 1 2 3 RAM 512 byte CPU Address/Data Bus R/W AS Serial Peripheral Interface SPI Serial Communication Interface A/D Converter SCI DDRD PORTA A15 A8 A7 A0 / D7-D0 PORTD PORTE Strobe and Handshake Parallel I/O STRB STRA PORTB DDRC PORTC HC24 Emulatorn innehåller ju en mängd kretsar såsom minnen för programutveckling och andra kretsar som behövs för att den ska kunna kommunicera med terminal eller arbetsstation. HC11:an använder således yttre komponenter som måste kopplas in på adress- och databuss. 16 anslutningar som annars används som port B och C, fungerar som emulatorns interna adress- och databuss. Signalerna STRA och STRB används i emulatorn som adresstrob (AS) och läs/skrivsignal (R/W). För att kunna använda PORTB och PORTC även i konstruktioner där HC11:an måste använda yttre minnen, har Motorola konstruerat en speciell Emulator EMX-11 13
3 Emulatorns funktion emuleringskrets, 68HC24, som återskapar dessa portar och de register som har någon anknytning till dem. I emulatorns emuleringskabel är det HC24:an som genererar alla signaler som har med PORTB och PORTC att göra. Följande register är implementerade i 68HC24: PIOC PORTC PORTB PORTCL DDRC HPRIO: Enbart kontrollbitarna SMOD och IRV. INIT: De fyra lägsta bitarna REG3 - REG0 Det finns några marginella skillnader mellan HC24:s register och motsvarande i HC11: Eftersom HC24 ej har tillgång till kristallfrekvensen direkt, utan klockas av E-signalen från HC11, skiljer sig tidsspecifikationerna något för STRA och STRB. Normalt behöver man inte bry sig om detta. I en HC11 är registret INIT skrivskyddat efter 64 klockcykler; i HC24 skrivskyddas det först efter en skrivning. Den som vill veta mer om funktionen hos 68HC24, kan läsa i 'MC68HC24 PRU Technical Data' 14 Emulator EMX-11
3.3 Automatisk start av användarprogram 3.3 Automatisk start av användarprogram Ett intressant sätt att använda emulatorn är att låta det egna programmet helt överta kontrollen från start. Detta sker med hjälp av omkopplaren EMUL. Med omkopplaren i läge EMUL startar emulatorn i Special Test Mode och ett av monitorprogrammen går igång. I det andra läget startar HC11:an i Expanded Mode, varvid man kan få sitt eget applikationsprogram att köra igång. Maskinkod i HC11:an: Om man programmerar en HC11:a (HC811 eller HC711) och låter den sitta kvar i emulatorn, kan man få detta program att starta när man sätter igång emulatorn. Man måste då sätta biten EEON eller ROMON i CONFIGregistret. Programmering kan ske med kommandot PROG i Bug-11. Maskinkod i EEPROM: Låter man HC11:ans interna minne vara bortkopplat, läses resetvektor från område 3 i det externa EEPROMet. Med kommandot PUT (i Bug-11) kan man överföra maskinkoden hit från emuleringsminnet. Emulator EMX-11 15
4 Utveckling av konstruktioner i expanderad mod 4 Utveckling av konstruktioner i expanderad mod IRQ XIRQ RESET Interrupt Logic ROM 12 kbyte EXTAL XTAL E MODA MODB Periodic Interrupt Watchdog EEPROM 512 byte Clock Logic Mode Control Pulse Accumulator Output Compare OC1 Input Capture IC 1 2 3 4 5 4 1 2 3 RAM 512 byte CPU Address/Data Bus R/W AS Serial Peripheral Interface SPI Serial Communication Interface A/D Converter SCI DDRD PORTA A15 A8 A7 A0 / D7-D0 PORTD PORTE 74HC573 CS A15 A8 A7 A0 D7 D0 WE OE Kopplingsförslag för externa minnen. Fastän EMX-11 inte kan emulera HC11 i expanderad mod, kan man lätt utveckla program för att köras expanderat. Inkoppling görs då enligt figuren ovan. Från adressledningarna A15 och A14 kan en enkel avkodning göras, som placerar programminnet i området C000 - FFFF. Ett ev. skrivminne kan också avkodas direkt från en adressledning (t.ex. A15). 16 Emulator EMX-11