HW-proj ver 3, ett kortsystem (C) Francis Görmarker 199 Detta dokument beskriver projektet där hårdvara för ett generellt mikrodatorkort och ett bussystem för diverse styrsystem, MIDI mm konstrueras. Korten följer enkel Europastandard med måtten 100 x 160 mm och 64 poliga Europadon enligt byggform C används. Ett passivt bakplan används för att förbinda korten i systemet. Version 90217
Innehåll 1.0 Inledning...3 1.1 Krav...3 1.2 Systemöversikt...3 1.3 Bakplansbuss...4 1.4 Design av CPU-kortet...5 1.4.1 Blockschema...5 1.4.2 Avkodare F1...6 1.4.3 Avkodare F2...7 1.4.4 Avkodare F3...7 1.4.5 Bussdrivkretsar... 2.0 Prototyp2...9 2.1 I/O-adresser...9 2.1.1 Klockgenerator, CPU...9 2.1.2 Komponentlista...10 HW-proj ver 3, ett kortsystem 2 (10)
1.0 Inledning Syftet med projektet är att konstruera ett kraftfullt, generellt och relativt billigt mikrodatorkort för olika typer av hobbyprojekt. Tillverkning av kortet kommer att läggas ut på firman CTM elektronik i Sollentuna. En liten serie om ca 10 kort kommer att beställas och säljs sedan för självkostnadspris till hugade spekulanter... 1.1 Krav Kortet ska bestyckas så att det är möjligt att köra OS-X fullt ut, dvs relativt mycket minne, serieportar, timers etc krävs. Kortet ska ha format enligt Europastandard, t ex 160 x 100mm eller 220 x 100 mm. Kortet ska vara försett med ett Europadon enligt byggform C med 64 kontakter. Det ska vara möjligt att utöka systemet genom att ansluta mer minne och I/O-enheter på den buss som finns åtkomlig via Europakontakten. Inbyggt RS232 och MIDI interface med mjukvarukonfigurerbar baud rate ska finnas på kortet. Val av RS232 eller MIDI sker med hjälp av byglar på kortet. CPUkortet ska kunna användas fristående och mjukvaran ska kunna uppdateras via serieporten. CPU-kortet ska tillhandahålla latchade parallellutgångar och ickelatchade ingångar. 1.2 Systemöversikt Grundkraven på kortet är att det ska finnas tillräckligt med minne för att köra OS- X. Detta medför att minst 12kB RAM krävs och att minst 64kB EPROM måste finnas för att kunna ladda all nödvändig systemprogramvara. För att få ut maximal flexibilitet då kortet byggs in i någon utrustning kommer EPROM av flash-typ att användas. Detta minne går att programmera om med enkel 5V matningsspänning direkt på kortet vilket medför att ny programvara kan installeras via en RS232 serieport. Adress [hex] Storlek Beskrivning 00000 256 EPROM för boot kod. De 1:a 256 bytes av EPROM på adress 40000 hex. 00100 ~12K SRAM för system- och användardata. De 1:a 256 bytes skuggas av EPROM. 20000 12K SRAM för system- och användardata 40000 64 / 12K EPROM för OS-kärna och systemprogram 60000 12K FLASH EPROM för användardata och system. 0000 512K Eventuellt externt minne på bakplansbussen Tabell 1. Användning av olika areor i den fysiska adressrymden. HW-proj ver 3, ett kortsystem 3 (10)
1.3 Bakplansbuss Signal A C Signal GND 1 33 GND /BIORQ 2 34 XRESET /BMREQ 3 35 /BINT0 /BRD 4 36 /BINT1 /BWR 5 37 /BINT2 /BRESET 6 3 /BWAIT BCLK 7 39 /BDREQ /BM1 40 9 41 BD_IN0 10 42 BD_IN1 BD_IN2 11 43 BD_IN3 BD_IN4 12 44 BD_IN5 BD_IN6 13 45 BD_IN7 BD_OUT0 14 46 BD_OUT1 BD_OUT2 15 47 BD_OUT3 BD_OUT4 16 4 BD_OUT5 BD_OUT6 17 49 BD_OUT7 BD0 1 50 BD1 BD2 19 51 BD3 BD4 20 52 BD5 BD6 21 53 BD7 BA0 22 54 BA1 BA2 23 55 BA3 BA4 24 56 BA5 BA6 25 57 BA7 BA 26 5 BA9 BA10 27 59 BA11 BA12 2 60 BA13 BA14 29 61 BA15 BA16 30 62 BA17 BA1 31 63 BA19 +5V 32 64 +5V Tabell 2. Signalöversikt på bakplansbussen. HW-proj ver 3, ett kortsystem 4 (10)
1.4 Design av CPU-kortet 1.4.1 Blockschema 12KB RAM 12KB RAM 12KB FLASH Lokal buss Z010 CPU Watchdog Timer RESET RS-232 & MIDI Interface Baudrate Generator 12KB EPROM CE F1 WD_RESET LATCH / IEN F3 F2 BDIR_IN Parallell Interface Bussdrivkretsar Europadon 64 poler HW-proj ver 3, ett kortsystem 5 (10)
1.4.2 Avkodare F1 Denna avkodar I/O-adresser för enheterna på CPU-kortet. Nedanstående enheter hanteras. Adress [hex] Signal Beskrivning 00000 /WD_RESET Återställning av watchdog, aktiv låg. 00100 /LATCH1 Skrivpuls till parallell utport 1, aktiv låg. 20000 /LATCH2 Skrivpuls till parallell utport 2, aktiv låg. 40000 /INPUT_EN Läspuls till parallell inport, aktiv låg. Tabell 3. Avkodning av I/O-adressrymden. A4-A7 4 /WD_RESET /IORQ /RD /WR F1 /LATCH1 /LATCH2 /INPUT_EN Följande logiska ekvationer gäller för avkodare F1: /WD_RESET = /IORQ * /WR * /A7 * A6 * /A5 * /A4 /LATCH1 = /IORQ * /WR * /A7 * A6 * /A5 * A4 /LATCH2 = /IORQ * /WR * /A7 * A6 * A5 * /A4 /INPUT_EN = /IORQ * /RD * /A7 * A6 * /A5 * A4 HW-proj ver 3, ett kortsystem 6 (10)
1.4.3 Avkodare F2 Denna avkodare styr riktningen på drivkretsarna för bakplansbussens databuss. Signalen /BDIR_IN är aktiv (låg) då drivkretsarna ska driva inåt, från bakplansbussen till CPU:n, dvs vid läsning från enheter på bakplanet. Notera att bussen också ska vändas inåt när en interrupt-vektor ska hämtas från en enhet på bakplansbussen. /MREQ /IORQ /RD /M1 A19 A7 F2 /BDIR_IN Följande logiska ekvation gäller för avkodare F2: /BDIR_IN = /MREQ * /RD * A19 + /IORQ * /RD * A7 + /M1 * /IORQ 1.4.4 Avkodare F3 Denna avkodar minnesadresser för RAM och PROM på CPU-kortet. A-A19 /MREQ 12 F3 /ROM1_CE /ROM2_CE /RAM1_CE /RAM2_CE Följande exkvationer gäller för avkodare F3: /PAGE0 = /A * /A9 * /A10 * /A11 * /A12 * /A13 * /A14 * /A15 /RAM1_CE = /MREQ * /A19 * /A1 * /A17 * (PAGE0 * /A16 + A16) /RAM2_CE = /MREQ * /A19 * /A1 * A17 /ROM1_CE = /MREQ * /A19 * (A1 * /A17 + /PAGE0 * /A1 * /A17 * /A16) /ROM2_CE = /MREQ * /A19 * A1 * A17 HW-proj ver 3, ett kortsystem 7 (10)
1.4.5 Bussdrivkretsar Lokal buss Bakplansbuss D0-D7 /BDIR_IN 74x245 BD0-BD7 A0-A7 74x245 BA0-BA7 A-A15 74x245 BA-BA15 A16-A19 /MREQ /IORQ /RD /WR 74x245 BA16-BA19 /BMREQ /BIORQ /BRD /BWR CLK /M1 /RESET 3 3 BCLK /BM1 /BRESET /INT0 /INT1 /INT2 /DREQ1 /WAIT 5 74x245 5 /BINT0 /BINT1 /BINT2 /BDREQ /BWAIT HW-proj ver 3, ett kortsystem (10)
Prototyp2 2.0 Prototyp2 2.1 I/O-adresser Adress [hex] Beskrivning 00-09 ASCI 0A - 0B CSI 0C - 17 Timer 0, 1 1 Free running timer 20-32 DMA 0, 1 33-34 Interrupt control 36 Refresh control 3-3A MMU 3E - 3F Operation mode + I/O control 40 Watchdog reset vid skrivning. 50 Läs/skriv på parallellport 1. 60 Skriv på parallellport 2. Tabell 4. Användning av olika areor i I/O-adressrymden 2.1.1 Klockgenerator, CPU Systemklockan genereras mha den interna kristalloscillatorn i CPU-kretsen. Nedanstående figur visar hur en extern kristall och två kondensatorer ansluts till CPU:n. XTAL C01 Z010 CPU EXTAL 20MHz Kristall C02 HW-proj ver 3, ett kortsystem 9 (10)
Prototyp2 2.1.2 Komponentlista Preliminär Komponent C1,C2 C07-C13 C3,C4 C3,C4 P1 J2 J3 RN1,RN2,RN3 D4,D5 D1 D9 D D6 D17 D2,D3 D7 D10-D15 D16 D1 KR1 Beskrivning Keramisk kondensator 10-15pF. Polyesterkondensator 0.1uF Elektrolytkondensator 10uF 50V Elektrolytkondensator 4.7uF 50V Europadon vinklat 64poler, byggform C, hane Stiftlist rak 6 poler, för två serieportar enligt RS232 Stiftlist rak 4 poler, för batteribackup av RAM2 SIL pullup motstånd x 4.7kOhm HM6212 12k x CMOS SRAM Z010 CPU MAX232C RS232 interface EXO3 19.66MHz kristalloscillator för serieportarna PALCE16V programerbar logik, MEM-decode MAX690 watchdog timer, reset generator, batteribackup switch AM29F010 12k x Flash EPROM alt. 27C256/512 EPROM PALCE16V programerbar logik, I/O-decode 74HCT245 drivkretsar för bakplansbussen 74HCT574 generell bits utport 74HCT245 generell bits inport Kristall 20.00MHz för systemklockfrekvens 10MHz Tabell 5. Komponentlista med beskrivning HW-proj ver 3, ett kortsystem 10 (10)