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