Allgemeine Beschreibung:
Ziel war es, ein
einfach aufzubauendes Mikrocontrollerboard zu entwickeln, welches von Schülern
ohne Probleme in der Werkstätte selbst aufgebaut wird und im Werkstättenlabor
in Betrieb genommen wird. Nach zahlreichen Prototypen entstand das vorliegende
Board. Jeder Prototyp wurde von mir persönlich aufgebaut, um kritische
Arbeitsprozesse zu beseitigen. Als Controller sind die Typen SAB80C537,
SAB80C517(A) und C517A der Firma Infineon verwendbar. (C517A wurde noch nicht
getestet) Die Platine wurde bewusst nicht in Euroformat gefertigt, sondern ist
in Länge und Breite um ca. 20 mm grösser. Dadurch wurde eine unkritische
Bauteildichte
(Leiterbahnbreite und Abstand) erreicht. Die unbestückte Platine wird fertig
mit Durchkontaktierungen und Lötstopmaske geliefert. Es sind sämtliche
relevanten Anschlüsse auf Stiftleisten am Rand der Platine geführt. Jeder
Anschluss an den Stiftleisten ist beschriftet und zu jeder Einheit wurde die
Spannungsversorgung
+5V, und DGND ausgeführt. Bei der Positionierung der Stiftleisten wurde darauf
geachtet, dass das 100 mil Raster eingehalten wurde. Der Vorteil besteht darin,
dass man für Versuchsaufbauten normale Lochrasterplatinen verwenden kann.
(diese wird einfach aufgesetzt)
Und zwar sind dies folgende:
Spannungsversorgung
32k Eprom
32k Ram
Dekodierlogik ->
Von Neumann Architektur ab Adresse 0x8000 bis 0xFFFF
I/O Bereich, zum
Anschluß eigener Hardware
6 Jumper, zur
Einstellung des Betriebsmodus des Controllers
1 Jumper zur Auswahl
Debug oder Standalonebetrieb
1 Jumper, zur Auswahl
der Schnittstelle (UART0 oder UART1)
1 serielle Schnittstelle,
RS232(MAX242) -> UART0 für MasterSlaveModus geeignet
1 serielle
Schnittstelle, RS232(MAX232) -> UART1
Spannungsversorgung..
Als
Spannungversorgung wurde ein 7805 verwendet, zur grösstmöglichen
Flexibilität und Sicherheit wurde ein Brückengleichrichter vorgeschalten.
Die Anschlüsse sind in zweifacher Ausführung vorhanden, nämlich als
Klinkenstecker (ist auf jedem Steckernetzteil vorhanden) und zweipoliger Printklemme. Man kann also jede Spannungsquelle im Breich von 8-18V egal ob Gleich.-oder
Wechselspannung verwenden. Das Board hat eine Stromaufnahme von ca. 100 mA.
32kByte ROM-Speicher (27C256, *27C512)..
Er wird durch IC3
realisiert. Dieses EPROM enthält die vom Benutzer entwickelte Software, oder
ein Monitorprogramm. (z.B. Mon51 von Fa. Keil)
*27C512..
Um beim Wechsel der
seriellen Schnittstelle nicht das Eprom 27C256 auszutauschen, werden einfach
beide Monitore (für UART0 und UART1) in ein Eprom 27C512 gebrannt und mit JP10
(A15 am Eprom) wird die Auswahl getroffen.
32kByte RAM-Speicher (62256)..
Er wird durch IC4,
einen statischen RAM-Baustein realisiert. In ihm können Daten und Programme
abgelegt werden und auch ausgeführt werden. (Monitorbetrieb)
Dekodierlogik..
Die Schaltung wurde
so ausgelegt, um eigene Anwendungen auf der Zielhardware zu entwickeln. Die
MCS-51 Familie ist mit einer sogenannten Harvard-Architektur ausgestattet. Das heisst, Programmspeicher und Datenspeicher sind in streng
voneinander getrennten Speicherräumen untergebracht.
Sie wird durch zwei NAND-Gattern des IC8 realisiert.
Diese Schaltung verknüpft das Lesesignal des Programmspeichers (PSEN) und das
Lesesignal des Datenspeichers (RD) zu einem neuen Lesesignal (NLS). Mit diesem
NLS Signal, ist das Lesen von Programm- und Datenbytes aus einem gemeinsamen
RAM-Speicherbereich
(8000h – FFFFh) möglich. Die Dekodierung des RAM‘s
wurde durch ein NAND-Gatter des IC8 realisiert. Das
ist nötig, um Programme mittels Monitor (Eprom) in das Ram zu laden
I/O Bereich, zum Anschluß eigener Hardware..
Er wird durch IC7,
einen 3-to-8 line
decoder/demultiplexer/invertierend
realisiert. Zur Dekodierung werden die Adressleitungen A12, A13, A14 und A15
verwendet. Es wurde bewusst auf den Einsatz eines Gals
verzichtet, um die Schaltung für Schüler überschaubar und so einfach wie
möglich zu gestalten. Eigene Hardware, z.B.
LCD-Display,
Digital to Analog-Converter (DAC) Porterweiterung mit
82C55 usw. wird wie RAM angesprochen. Die ChipSelect-Signale
sind LOW-AKTIV, dass heisst bei selektiertem
Adressbereich geht die geweilige Leitung von 1 nach
0.
Der I/O Bereich, von 0x0000 – 0x7FFF, ist in 8 Bereiche
unterteilt:
Signal Adressbereich
CS0 0x0000 – 0x0FFF
CS1 0x1000 – 0x1FFF
CS2 0x2000 – 0x2FFF
CS3 0x3000 – 0x3FFF
CS4 0x4000 – 0x4FFF
CS5 0x5000 – 0x5FFF
CS6 0x6000 – 0x6FFF
CS7 0x7000 – 0x7FFF
Jumpereinstellungen JP1-JP6 -> SAB80C537 -> Voreinstellungen* |
JP1 -> Referenz-Ground des ADC’s |
|
Jumper-Stellung |
Funktion
|
A-B* |
Interne Zuführung
(VAGND = DGND) |
B-C |
Externe Zuführung
(VAGND = EXVAGND) |
JP2 -> Referenzspannung des ADC’s |
|
Jumper-Stellung |
Funktion
|
A-B* |
Interne Zuführung
(VAREF = +5V) |
B-C |
Externe Zuführung
(VAREF = EXVAREF) |
JP3 ->
Hardware-Power-Down-Mode (HWPD)
|
|
Jumper-Stellung |
Funktion
|
A-B* |
DGND |
B-C |
wird nur von
SAB80C517A, C517A unterstützt |
JP4 -> Power-Down-Modi können nur per Software freigegeben werden (PE/SWD) |
|
Jumper-Stellung |
Funktion
|
A-B* |
Power-Down-Modi können nur per Software freigegeben
werden |
B-C |
Power-Down-Modi sind gesperrt, WDT startet
automatisch nach dem Reset. |
JP5 -> Oszillator-Watchdog (OWE) |
|
Jumper-Stellung |
Funktion
|
A-B* |
Der Oszillator-Watchdog ist ausgeschalten |
B-C
|
Der Oszillator-Watchdog ist freigegeben |
JP6 -> Externer oder interner Programmspeicher-Zugriff (EA) |
|
Jumper-Stellung |
Funktion
|
A-B*
|
externer
Programmspeicher-Zugriff |
B-C |
interner
Programmspeicher-Zugriff |
Jumpereinstellungen A, B, C* |
Harvard oder VonNeumann Architektur |
|
Jumper-Stellung |
Funktion
|
A-B* |
Test
auf Zielhardware: Von Neumann-Architektur
Monitor: 0x0000
– 0x7FFF 32k Eprom Programm oder
Datenspeicher: 0x8000 – 0xFFFF 32k Ram I/O Bereich: 0x0000 –
0x7FFF 32k |
A-C
|
Normal-Betrieb: Harvard -Architektur Eigenes
Programm: 0x0000 – 0x7FFF 32k Eprom Datenspeicher: 0x8000 – 0xFFFF
32k Ram I/O Bereich: 0x0000 –
0x7FFF 32k |
UART0, UART1..
Da einige Mitglieder
Mcs-51 Familie SAB80C537, SAB80C517, C517A,
Dallas 80C320 usw.,
zwei serielle Schnittstellen besitzen, wurden diese auch ausgeführt. Dies
erwies sich als richtige Entscheidung, da über die eine das Programm in die
Zielhardware übertragen wird und über die zweite zum Beispiel Messdaten zum PC
gesendet werden können. Als Pegelumsetzer wurde für UART1 ein normaler MAX232
verwendet. Da aber alle Mitglieder der MCS-51 Familie
Intel 80C31, Intel
80C32, Atmel 89C..., Dallas.. usw. einen sogenannten Master-Slave-Modus unterstützen, (Modus 2, Modus 3) wurde um
die Kompatibilität zu wahren auf UART0 ein MAX242 verwendet. Um ein
Multiprozessorsystem aufzubauen, eignet sich der MAX242 besonders, da er in der
Lage ist, seine Sendetreiber auf der RS232-Seite abzuschalten. Dabei bleibt der
Empfänger aber aktiv. Über eine Portleitung (P6.3) wird die Senderfreigabe über
den Anschluss SHUTDOWN gesteuert.
Foto der unbestückten
Platine:
Foto der bestückten
Platine: Bestückungsseite
Foto der bestückten
Platine: Lötseite