Preview only show first 10 pages with watermark. For full document please download

Mp16

   EMBED


Share

Transcript

Manual MP16 MP16 68331\2 Controller Module 1. Funktion ............................................................................2 1.1. Datenblatt......................................................................2 1.1.1. Anwendung...........................................................2 1.1.2. Daten ..................................................................2 1.1.3. Besonderheiten.......................................................2 1.1.4. Aufbau ................................................................2 1.1.5. Stromversorgung ....................................................2 1.2. Blockdiagramm...............................................................3 1.3. Beschreibung .................................................................3 2. Betrieb...............................................................................4 2.1. Konfigurierung ...............................................................4 2.1.1. Jumper ................................................................4 2.2. Bedienung.....................................................................4 2.2.1. BASIC ................................................................4 2.3. Programmierung..............................................................4 2.3.1. EPROM ...............................................................4 2.3.2. Speicherbelegung ....................................................5 2.3.3. Maschinenroutinen...................................................5 3. Fertigung............................................................................6 3.1. Mechanik ......................................................................6 3.1.1. Stecker ................................................................6 3.2. Elektronik .....................................................................7 3.2.1. Schaltbild .............................................................7 3.2.2. Bestückungsplan.....................................................8 3.2.3. Stücklisten ............................................................8 3.2.4. PAL-Listing ..........................................................8 4. Modifikation........................................................................9 5.1. Version ........................................................................9 5.1.1. Version 1.0: ..........................................................9 5. Anhang............................................................................ 10 5.1. Bausteinunterlagen ......................................................... 10 5.1.1. Controller 8052 .................................................... 10 5.1.2. Memory 62256..................................................... 10 5.1.3. EPROM 27C256................................................... 10 5.1.4. MAX232............................................................ 10 Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 1 Manual MP16 1. FUNKTION 1.1. Datenblatt 1.1.1. Anwendung Universelles Controller-Module für Steuerungen. 1.1.2. Daten Parameter Controller RAM EPROM Wert 68332 oder 68331 64 128 Dimension KByte KByte 1.1.3. Besonderheiten Durch einen residenten Monitor kann mit dem Modul unmittelbar über eine serielle Schnittstelle kommuniziert werden und neue Programme geladen und gestartet werden. 1.1.4. Aufbau Scheckkartengröße 53 * 83 mm mit seitlichen Busstiften. 1.1.5. Stromversorgung Spannung +5V -5.2V +12V -12V Gesamt Strom ca. 300mA - Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Leistung 1,5W 1,5W Seite: 2 Manual MP16 1.2. Blockdiagramm 1.3. Beschreibung Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 3 Manual MP16 2. BETRIEB 2.1. Konfigurierung 2.1.1. Jumper Betriebsart Internes ROM benutzen Externes ROM benutzen Onboard RS232 Converter benutzen Betrieb mit 2764/27128 Betrieb mit 27256 Betrieb mit 27512 Jumper J1: 2-3 J1: 1-2 J2: close J3: 1-2 J4: 2-3 J3: 1-2 J4: 1-2 J3:2-3 J4:1-2 Bemerkung z.B. 8052AH z.B. 8032 onboard programming! nur lesen nur lesen 2.2. Bedienung 2.2.1. BASIC Zum Start des BASIC-Interpreters auf dem Terminal mehrmals die SPACE-Taste drücken, bis der Controller mit der Systemmeldung: *MCS-51(tm) BASIC V1.1* READY > antwortet. Alle weiteren Befehle sind in dem BASIC-MANUAL beschrieben! 2.3. Programmierung 2.3.1. EPROM ACHTUNG: Bei der EPROM-Programmierung muß die Busleitung HLT auf LOW gelegt werden! Beim normalen Betrieb sollte diese HIGH sein, da damit das Port1 frei zur Verfügung steht (siehe auch PAL-Listing). An den Pin INT muß die Programmierspannung (z.B. 12,5V) + ca. 1V gelegt werden! Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 4 Manual MP16 2.3.2. Speicherbelegung (nicht Neumann-Mode!) Start PSEN RD WR $F000 M0 $E000 M1 $D000 M2 $C000 M3 $B000 M4 $A000 ... M5 $9000 EPROM M6 $8000 EPROM M7 RAM RAM $2000 $0000 BASIC ROM ACHTUNG: falls die vorselektierten Moduladressen (M0..M7) mit RD benutzt werden, muß auf diesen Adressen gegebenenfalls das EPROM ausgeblendet werden. Dies kann durch Beschaltung mit jeweils einer DIODE (Schottky) von Mn nach MS erreicht werden (siehe auch PAL-Listing!) 2.3.3. Maschinenroutinen Beim Einbinden von Maschinenprogrammen muß der Speicher, der das Programm enthält im PSEN- Adressraum liegen. Dies ist durch High an C0 erreicht (Neumann Mode, siehe PAL-Listing!). Start PSEN RD WR …$FFFF … ... … … $9000 EPROM EPROM M6 $8000 EPROM EPROM M7 RAM RAM RAM $2000 $0000 BASIC ROM Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 5 Manual MP16 3. KOMMUNIKATION 3.1. Allgemein: Die Kommunikation mit dem MP16 erfolgt seriell. Jede Kommunikation zwischen einem HOST und dem MP16 ist über Messages (Datenpakete) definiert. Jede Message beginnt mit einem MessageByte und kann durch weitere Parameter (Daten) ergänzt werden. Falls die Messages fehlerhaft sind sendet der Empfänger eine spezielle Message (Interrupt) als Fehlermeldung. 3.1.1. Serielle Parameter: - Geschwindigkeit: 9600 Baud Wortlänge: 8 Bit Parity: None Frame: 1 Startbit, 1 Stopbit 3.2. Message: Jede Kommunikation zwischen HOST und TROLLEY erfolgt über festgelegte Datenpakete (Messages), die immer durch ein spezielles Commandowort (MessageByte) eingeleitet werden. Message=MessageByte [& Daten] MessageByte: Das MessageByte gibt an, welche Bedeutung die Message hat (in jeder Gruppe 32 Möglichkeiten!) und ob und mit welcher Länge Daten folgen. Dabei gibt es folgende Definitionen: 1) MSG0: Code = 0..31 {000X XXXX} Jede Message besteht nur aus MSG0 (keine weiteren Daten!). GoMsg = Msg0 + 0; SystemMsg = Msg0 + 1; IdleMsg = Msg0 + 2; StartMsg = Msg0 + 3; RestartMsg = Msg0 + 4; Peek1Msg = Msg0 + 5; Peek2Msg = Msg0 + 6; Peek3Msg = Msg0 + 7; Peek4Msg = Msg0 + 8; ResetMsg = Msg0 + 9; BufferMsg = Msg0 + 10; IDMsg = Msg0 + 11; ModuleMsg = Msg0 + 12; DBugMsg = Msg0 + 13; TaskMsg = Msg0 + 14; ContinueMsg = Msg0 + 17; WaitMsg = Msg0 + 19; {Continue after Stop} {get System Ptr} {Escape tasks} {start subroutine at ADDRESS} {Restart complete} {peek byte from ADDRESS} {peek word from ADDRESS} {peek triple from ADDRESS} {peek LongInt from ADDRESS} {generate RESET} {request number of bytes free in buffer} {get system ID} {get module number} {enter DBUG} {get currentTask} {BufferHandshake} {BufferHandshake} 2) MSG1: Code = 32..63 {001X XXXX, 1byte param} Jede Message besteht aus MSG1 und einem weiteren Byte! IntMsg = Msg1 + 0; Addr1Msg = Msg1 + 1; Poke1Msg = Msg1 + 2; {interrupt errorCode} {add 1 byte to ADDRESS} {poke 1 byte to ADDRESS} Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 6 Manual MP16 Data1Msg = Msg1 + 3; StopMsg = Msg1 + 4; {data 1 byte} {Stop according mode} 3) MSG2: Code = 64..95 {010X XXXX, 2bytes param} Jede Message besteht aus MSG2 und zwei weiteren Bytes! Addr2Msg = Msg2 + 1; Poke2Msg = Msg2 + 2; Data2Msg = Msg2 + 3; PeekMsg = Msg2 + 4; GetStatusMsg = Msg2 + 5; {add 2 bytes to ADDRESS} {poke word to ADDRESS} {data word} {peek size bytes from ADDRESS} {get size bytes from STATUS} 4) MSG3: Code = 96..127 {011X XXXX, 3*bytes} Jede Message besteht aus dem MSG3 und drei weiteren Bytes! Addr3Msg = Msg3 + 1; Poke3Msg = Msg3 + 2; Data3Msg = Msg3 + 3; {add triple to ADDRESSS} {poke triple to ADDRESS} {data triple} 5) MSG4: Code = 128..159 {100X XXXX, 4*bytes} Jede Message besteht aus MSG4 und vier weiteren Bytes! PortMsg = Msg4 + 0; AddrMsg = Msg4 + 1; Poke4Msg = Msg4 + 2; Data4Msg = Msg4 + 3; {set up Port} {set ADDRESSS for Peek/Poke/JSR} {poke long to ADDRESS} {data long} 6) MSGS1: Code = 160..191 {101X XXXX, size, size*bytes} Jede Message besteht aus MSGS1, einem Byte für die Anzahl der folgenden Bytes und den entsprechenden weiteren (0..255) Datenbytes! 7) MSGS2: Code = 192..223 {110X XXXX, sizeH, sizeL, size*bytes} Jede Message besteht aus MSGS2, zwei Bytes für die Anzahl der folgenden Bytes und den entsprechenden weiteren (0..65535) Datenbytes! PokeMsg = MsgS2 + 2; DataMsg = MsgS2 + 3; SetStatusMsg = MsgS2 + 5; {poke size bytes to ADDRESSS} {data size bytes} {set size bytes to Status} 8) MSGS4: Code = 224..255 {111X XXXX, size1, size2, size3, size4, size*byte} Jede Message besteht aus MSGS4, vier Bytes für die Anzahl der folgenden Bytes und den entsprechenden weiteren (0..$FFFFFFFF) Datenbytes! Interface Routinen: Zur Vereinfachung der Beschreibung werden folgende Softwareroutinen (PASCAL) vorgeschlagen, die die Kommunikation realisieren. Diese Routinen senden bzw. empfangen Daten oder Parameter entsprechend dem Protokoll. procedure LoadAddress (address:LongInt); setzt im Empfänger eine Adresse z.B. für DownLoad Protokoll: AddrMsg & address3, address2, address1, address0 z.B. setze auf $8000: sendet $81, $00, $00, $80, 00 procedure DownLoad (size:Integer; code:Ptr); sendet daten ab code zum Empfänger Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 7 Manual MP16 Protokoll: PokeMsg & sizeH & sizeL & code0 & code1 & … z.B. lade code (code: $FF, …) mit 3100 bytes: sendet $C2, $0C, $1C, $FF, ... procedure SendByte (data:Byte); sendet daten (1 byte) zum Empfänger Protokoll: Data1Msg & data z.B. sende Zahl 10: sendet $23, $0A procedure SendWord (data:Integer); sendet daten (2 bytes) zum Empfänger Protokoll: Data2Msg & dataH & dataL z.B. sende Zahl 10: sendet $43, $00, $0A procedure SendLong (data:LongInt); sendet daten (4 bytes) zum Empfänger Protokoll: Data4Msg & data3 & data2 & data1 & data0 z.B. sende Zahl 10: sendet $83, $00, $00, $00, $0A function RecvByte :Byte; empfängt daten (1 byte) vom Sender Protokoll: Data1Msg & data z.B. $23, $0A im Buffer: empfängt Zahl 10! function RecvWord :Integer; empfängt daten (2 bytes) vom Sender Protokoll: Data2Msg & dataH & dataL z.B. $43, $00, $0A im Buffer: empfängt Zahl 10! function RecvLong :LongInt; empfängt daten (4 bytes) vom Sender Protokoll: Data4Msg & data3 & data2 & data1 & data0 z.B. $83, $00, $00, $00, $0A im Buffer: empfängt Zahl 10! Trolley: Folgende Befehle werden vom Trolley bearbeitet: Download: Das Laden des eigentlichen Trolley-Programs erfolgt z.B. mit folgender Sequenz: • LoadAddress($8000); • DownLoad(3100, TrolleyCode^); Reset: Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 8 Manual MP16 Alle Aktivitäten im Trolley werden unterbrochen und alle Parameter in Grundeinstellung (default) gebracht: • SendByte(1) SetParameters: Parameter für die Zeitsteuerung werden geladen. • • • • • SendByte(2) SendWord(DelayTransmit) SendWord(DurationTransmit) SendWord(DelayPreamp) SendWord(DelaySM) Sleep: Trolley wird in lowpower Modus gebracht. • SendByte(3) GetNMR25: Trolley sendet NMR Frequenzen (Time & Periods) von allen 25 Proben. • SendByte(4) • for channel=1 to 25 do begin Time(channel) := RecvLong; Periods(channel) := RecvLong; end; GetNMR: Trolley sendet NMR Frequenz (Time & Periods) von bestimmter Probe. • • • • SendByte(5) SendByte(channel) Time(channel) := RecvLong; Periods(channel) := RecvLong; Position: Trolley sendet Positionscode • SendByte(6) • Position:= RecvLong; Threshold Envelope: setzt Schwelle für Envelope • SendByte(7) • SendByte(threshold) Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 9 Manual MP16 Temperatur: Trolley sendet Temperaturwert • SendByte(8) • SendLong(numberOfCycles) • Temperature := RecvLong; Gate: Trolley generiert Gate • SendByte(9) • SendWord(timeInUS) Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 10 Manual MP16 3. FERTIGUNG 3.1. Mechanik 3.1.1. Stecker (S1) Carrier-Stifte: Zu empfehlen bei Einbau in Geräten ohne Sandwich-Aufbau. Wire-Wrap Buchsen/Stifte (Fischer: BL9): Sandwich-Aufbau Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 11 Manual MP16 3.2. Elektronik 3.2.1. Schaltbild S2 S1 RxD S0 33 S1 34 S2 35 INT0 S3 36 INT1 C2 C9 U3 8032 C8 + A8 V+ 1 V- 37 WR S5 38 RD 14 13 39 SDA S7 40 SCL D15 41 CLK D14 42 D13 43 EA D12 44 ALE A9 A10 10µF A11 5 C1- C2- T1o T1i A12 11 A13 R1o 12 R1i 7 A14 TxD T2i 10 T2o 8 R2i S6 + C2+ 4 C1+ 3 S4 MAX232CPE U1 C6 C7 10µF + A15 RxD R2o 9 PSEN MAX232 J2 ALE EA R6 D7 R1 1kΩ J1 RES 1 C5 + XT2 45 D10 46 47 D8 48 D7 49 D7 D6 50 D6 3 O0 I1 13 O1 I2 14 O2 I3 C0 15 O3 I4 CSB 16 O4 I5 CSA 17 O5 I6 HLT 18 O6 I7 19 O7 I8 EXT . 1) D6 INT. D4 D5 D3 MS 1 I0 12 C2 PSEN D9 U6 PAL16L8 LC C1 D11 2 2.2µ F D2 EA 2 D1 ALE 3 D0 A15 4 PSEN 5 1 ADIS 6 D5 51 D5 D4 52 D4 D3 53 D3 D2 54 D2 5 4 A14 3 A13 7 9 Y5 Y4 11 C 10 13 Int1 29 PSEN P3.2/Int0 12 Int0 30 ALE P3.1/TxD 11 Txd 31 EA 32 AD7/P0.7 P3.0/RxD AD6/P0.6 P1.7/SDA 34 AD5/P0.5 P1.6/SCL 35 AD4/P0.4 P1.5/PEN 36 AD3/P0.3 P1.4/PPuls 37 AD2/P0.2 P1.3/ADIS 38 AD1/P0.1 P1.2/PWM 39 AD0/P0.0 P1.1/T2Ex Vdd SCL PPuls 5 PWM 3 11 CLK 2 1Q 1D D6 3 A4 5 2Q 2D M7 A2 6 3Q 3D M6 A0 4Q9 4D M5 A1 12 5D M4 A3 15 6D 14 5Q 6Q D2 7 D1 13 M1 ´373 15 M0 U2 74HCT373 7Q 8Q INT 24 A15 A14 23 A14 A13 22 A13 A12 21 A12 A11 20 A11 A10 19 A10 A9 18 A9 A8 17 A8 A7 16 A7 A6 15 A6 A5 14 A5 A4 13 A4 A3 12 A3 A2 11 A2 A1 10 A0 R4 U5 27C256 Int0 A0 J3 Vpp 2PRG 3A14 10 A1 D2 A1 A2 A3 7 A3 A4 A46 A5 A5 5 A6 A6 8 A7 1N4148 T2 BC817 Vpp T6 PEN 2 RWr C1 4 A7 3 D0 D0 A0 A0 D1 12 D1 A1 9 A1 D2 13 D2 A2 8 A2 D3 14 D3 A3 7 A3 D4 15 D4 A4 A4 6 D5 16 D5 A5 A5 D6 17 D6 A6 A6 D7 18 D7 A7 25 A8 A9 24 A9 A10 21 A10 A11 23 A11 /PGM/CE A12 2 A12 A13 26 RWr 27 A13 A14 A1 9 A0 U4 62256 11 A8 J4 A14 A0 9 A2 R1 10kΩ + T7 A15 D3 LED1 10µF 25 D0 8 U3 74LS138 C4 26 T1 D4 4 14 3 T5 T0 LC 1 /OC Y0 1 27 T2 1 P1.0/T2 8032 Y1 +5V T4 PEN T2Ex 2 ´138 R2 T3 28 ADIS 4 1 A 10k Ω T2 29 PPuls PEN 6 D7 T1 BC817 30 ADIS SDA 7 D5 1 PWM RES 8 33 40 RxD 10 9 RST 18 R3 GND P3.3/In1 17 10kΩ 64 A15/P2.7 8D C1 63 28 7D 58 +5V T0 19 C1 RES T1 P3.4/T0 14 16 D1 62 P3.5/T1 15 A14/P2.6 A7 1 N4148 RESET A13/P2.5 27 A5 C0 C2 26 RD M2 57 HLT WR C1 M3 C0 INT P3.6/WR 16 13 1 0kΩ T1 Q1 1 2MH z 18 pF 17 12 D0 61 A12/P2.4 20 XTAL2 18 Y2 D0 60 25 Vss XTAL1 19 Y3 D1 59 P3.7/RD B 56 INT A11/P2.3 A6 G2A 55 C2 A10/P2.2 24 WR 11 G2B D1 HALT A9/P2.1 23 RD 9 Y6 2 A12 A8/P2.0 22 RES 8 G1 T0 31 PPuls 7 I9 6 32 T2Ex CLK 21 1 0kΩ PAL16L8 Y7 T2 18 pF 10µF + 10µF TxD /VPP /OE 5 A7 A8 25 4 3 D0 11 D0 D1 12 D1 D2 13 D2 D3 14 D3 D4 15 D4 D5 16 D5 D6 17 D6 D7 18 D7 21 /WE CSB A11 23 /CS 20 CSA 22 CO A12 /OE 22 C0 A14 8 7 M6 M5 6 M5 M4 5 M4 M3 4 M3 M2 A9 A10 A11 2 A12 26 A13 27 C1 M7 M6 M2 24 A10 20 M7 A8 A9 PRG 1 A13 27256 10 M1 3 M1 M0 1 2 M0 62256 1 A14 MS C3 1 00nF R7 1kΩ 1) ACH TUN G ! nach Bedarf Lei terbahn auft rennen 9.3.93 MP 13-1 Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 12 Manual MP16 3.2.2. Bestückungsplan 3.2.3. Stücklisten 3.2.4. PAL-Listing module m8052 title 'vwa190493'; m8052Dec device 'P16L8'; "Inputs MS,EA,ALE,A15,PSEN,ADIS,PPULS,RES,RD,WR,HLT,C2 PIN 1,2,3,4,5,6,7,8,9,11,18,13; "Outputs LC,C1,C0,CSB,CSA,ME PIN 12,14,15,16,17,19; "Modes ProgMode = !HLT; Prog64 = ProgMode & C2; Prog256 = ProgMode & !C2; NeumannMode = C2; EQUATIONS !LC = !ALE # (ProgMode&!ADIS); !C1 = !WR # (Prog64&!PPULS); !C0 = !RD # (NeumannMode & !PSEN); !CSB = (A15 & MS & !Prog256) # (NeumannMode & A15 & !MS & !Prog256) # (Prog256 & A15 & !PPULS & !ADIS) # (Prog256 & A15 & ADIS); !CSA = !A15; !ME = A15; END m8052; Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 13 Manual MP16 4. MODIFIKATION 5.1. Versionen 5.1.1. Vers. 1.0: 5.1.2. Vers. 2.0: Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 14 Manual MP16 5. AN H A N G 5.1. Bausteinunterlagen 5.1.1. Controller 8052 5.1.2. Memory 62256 5.1.3. EPROM 27C256 5.1.4. MAX232 Peter von Walter, Physikalisches Institut, Universität Heidelberg, 28.01.99 Seite: 15