---------------- Disclaimer --------------------------------------------------- WARNUNG: Ich uebernehme keinerlei Garantie fuer die korrekte Funktion der hier vorgestellten Hard- und Software. Insbesondere schliesse ich jegliche Haftung aus, die aus eventuellen Fehlern in Hardware, Software oder Beschreibung resultieren! Der Nachbau dieser Schaltung erfolgt in jedem Falle auf eigenes Risiko! Ich empfehle dringend die Angaben der vorliegenden Beschreibung mit der Dokumentation des HM 205 und dem Datenblatt des AT90S8515 zu vergleichen, da ich definitiv nicht unfehlbar bin! Das Projekt darf im nicht kommerziellen Bereich ohne Einschraenkungen genutzt werden. Verbesserungsvorschlaege oder Fehlerhinweise nehme ich gern entgegen, Support kann ich jedoch nur sehr eingeschraenkt leisten. Alle Dateien dieses Pakets unterliegen meinem Urheberrecht! Volker Bosch, 14 Sep. 2000 volker.bosch(at)z.zgs.de ------------------------------------------------------------------------------------- Projekt "hm205" Auslesen des HAMEG Oszilloskops HM205-2 ueber die serielle Schnittstelle eines PCs (Linux). 1. Hardware =========== Das V24-Interface fuer das HM205 besteht im Wesentlichen aus dem Atmel-Mikrocontroller AT90S8515 und dem Pegelumsetzer MAX 232. Die Schaltung wird vom HM205 mit 5V versorgt. Zur Erzeugung der Baudraten ist ein 7,3728 MHz-Quarz erforderlich. Ein einfaches Platinenlayout befindet sich in dem Unterverzeichnis pcb: hm205-if.pcb Layout, mit dem PCB Ver.1.6.3 erstellt (siehe ftp.uni-ulm.de) hm205-if-loet.ps Loetseite der Platine (spiegelverkehrt) hm205-if-bestueckplan.ps Bestueckungplan Die Pinbelegung der Portanschluesse und des ISP-Anschluesse entspricht dem Evaluationsboard STK200. Nach Austausch des Quarzes kann auch dieses fuer das Interface verwendet werden (Bezugsquelle: Reichelt-Elektronik). Port-Anschluesse (Port A, B, C und D) Pin-Nr |Signal --------+-------- 1 | Bit 0 (Lsb) 2 | Bit 1 3 | Bit 2 4 | Bit 3 5 | Bit 4 6 | Bit 5 7 | Bit 6 8 | Bit 7 (Msb) 9 | Gnd 10 | Vcc ISP-Anschluss Pin-Nr |Signal --------+-------- 1 | MOSI 2 | Vcc 3 | NC 4 | Gnd 5 | /Reset 6 | Gnd 7 | SCK 8 | Gnd 9 | MISO 10 | Gnd Folgende Verbindungen sind herzustellen: Port A <--> HM 205 Port C <--> HM 205 Port D (High-Nibble) auf 4fach DIP-Schalter gegen Masse Jumper J2 Pin2-Pin3 und Pin4-Pin5 bruecken AT90S8515 | Dir. | | Erklaerung ----------------+-------+-----------------------+------------------------------ PA.0 (39/1) | <- | Hm 205-2:D0 (3) |... PA.1 (38/2) | <- | Hm 205-2:D1 (4) |... PA.2 (37/3) | <- | Hm 205-2:D2 (5) |Daten, liegen ueber PA.3 (36/4) | <- | Hm 205-2:D3 (6) |3,3kOhm Pull-down PA.4 (35/5) | <- | Hm 205-2:D4 (7) |auf L, wenn Srq PA.5 (34/6) | <- | Hm 205-2:D5 (8) |inaktiv (L). PA.6 (33/7) | <- | Hm 205-2:D6 (9) |.... PA.7 (32/8) | <- | Hm 205-2:D7 (10) |... Gnd (20/9) | - | Hm 205-2:DGnd(1,25,26)|Masse Vcc (40/10) | - | Hm 205-2:Vcc (11) |4,5V, 150mA ----------------+-------+-----------------------+------------------------------ PC.0 (21/1) | <-> | Hm 205-2:C1/C2 (17) |H: Ch1, L:Ch2 PC.1 (22/2) | -> | Hm 205-2:/ResAZ(18) |L: Auslesez. ruecksetzen PC.2 (23/3) | -> | Hm 205-2:ClkAZ (19) |H->L: Auslesetakt PC.3 (24/4) | -> | Hm 205-2:Srq (20) |H: Auslesemodus PC.4 (25/5) | - | Hm 205-2:R/W (21) |Ungenutzt PC.5 (26/6) | <- | Hm 205-2:TE (22) |L: Aufzeichnung beendet PC.6 (27/7) | -> | Hm 205-2:Res (23) |L: Entspr. Druecken Res-Taste PC.7 (28/8) | - | Hm 205-2:Rem (24) |Ungenutzt Gnd (20/9) | - | Hm 205-2:DGnd(1,25,26)|Masse Vcc (40/10) | - | - | - ----------------+-------+-----------------------+------------------------------ PD.0/RxD (10) | <- | RS232: RxD(2) | Eingangsdaten PD.1/TxD (11) | -> | RS232: TxD(3) | Ausgangsdaten PD.2/Int0 (12) | -> | RS232: RTS(7) | Handshake PD.3/Int1 (13) | <- | RS232: CTS(8) | Handshake Gnd | - | RS232: Gnd(5) | Masse ----------------+-------+-----------------------+------------------------------ PD.4 | <- | Cfg: RTS/CTS (Sw4) | RTS/CTS-Hsk aktivieren PD.5 | <- | Cfg: Baud.0 (Sw3) | Baudrate selektieren PD.6 | <- | Cfg: Baud.1 (Sw2) | Baudrate selektieren PD.7 | <- | Cfg: Baud.2 (Sw1) | Baudrate selektieren Gnd | - | Cfg: Gnd | Masse ----------------+-------+-----------------------+------------------------------ Die Verbindung zum PC erfordert ein "gekreuztes" Kabel: TxD <-> RxD RxD <-> TxD CTS <-> RTS RTS <-> CTS Gnd <-> Gnd DTR } Am Stecker bruecken DCD } oder 1:1 durchverbinden DSR } Mit dem 4fach DIP-Schalter sind die folgenden Einstellungen moeglich: ----------------+---------------+-------+-------- 1 2 3 | Baudrate | 4 | Hsk ----------------+---------------+-------+-------- on on on | 230400 | on | RTS/CTS on on off | 115200 | off | None on off on | 57600 | | on off off | 38400 | | off on on | 19200 | | off on off | 9600 | | off off on | 4800 | | off off off | 2400 | | ----------------+---------------+-------+-------- Stueckliste: Bez. Beschr. Hinweis Bezugsquelle ------------------------------------------------------------------------- IC1 AT90S8515 Reichelt IC2 MAX232 Reichelt IC3 78L05 bei Versorgung ueber das Oszi nicht erforderlich Reichelt C1, 1u/10 Keramisch Reichelt C2,C3 100u Miniatur-Elko Reichelt C4,C5 22p Keramisch Reichelt C6,C7 22u/10V Elko Reichelt C8,C9,C8, C10,C11 10u/16V, radial (stehend) Reichelt S1 Pfostenst.10p. Wanne mit Codierung o.ae. Reichelt S2,S3,S4,S5 Pfostenst.10p Wanne mit Codierung o.ae. Reichelt S6 Sub-D 5pol maennlich, Printmontage Reichelt J1 Jumper, 3f. Pfostenleiste 1x3 Reichelt J2 Jumper, 5f. Pfostenleiste 1x5 Reichelt D1 1N4148 o.ae. Reichelt Q1 Quarz HC 18 7,3728MHz Reichelt R1 4k7 1/4W 5%...10% Reichelt 2. Firmware =========== Die "Firmware" fuer den AT90S8515 liegt im Unterverzeichnis "avr". Sie kann mit dem GCC compiliert werden. (Ich verwende binutils-000617.tar.bz2 und egcs-20000619.tar.gz). Ausserdem ist noch die AVR-LIBC erforderlich (Ich verwende avr-libc-20000401.tar.gz). make all sollte den Job erledigen. Die Firmware liegt aber auch in compilierter Form als S-Record vor (hm205_2.srec). Sie kann beispielsweise mit dem Programm "uisp" in den Controller geladen werden. Folgende Kommandos stehen an der seriellen Schnittstelle zur Verfuegung: I Initialisierung von Interface und Oszilloskop i Identifikation des Interfaces s Statusmeldung des Oszilloskops d Auslesen des aktiven Kanals r Reset HM 205 (Single Shot Modus) t Warten, bis Signal "TS" aktiv (Abschluss Single Shot) 1 Auswahl Kanal 1 2 Auswahl Kanal 2 0 Kanal gem. Schalterstellung am HM 205 e Freigabe des Oszilloskops Statusbits (siehe Doku zum HM205-2): 7 (MSB) REMOTE (not used) 6 RESET 5 TE 4 R_W (not used) 3 SRQ 2 CLK_AZ 1 RES_AZ 0 (LSB) CHI/CHII 3. Software =========== Auf der PC-Seite steht fuer das Betriebssystem "Linux" ein Programm zur Verfuegung. Es liegt im Unterverzeichnis "linux". Das Programm sollte sich auf jedem Linux-Rechner compilieren lassen (ich verwende GCC 2.95.2 und glibc2). Die Konfiguration des Programms erfolgt ueber die Datei "hm205.conf". Hier werden Schnittstelle und Baudrate eingestellt, sowie die Skalierung der Rohdaten des Oszilloskops vorgenommen, damit der Plot auf dem Bildschirm der Darstellung auf dem Oszischirm entspricht. Die Datei wird zuerst in dem Verzeichnis, dessen Name in der Environmentvariablen "HM205", oder im Unterverzeichnis "lib" des Benutzers (einstellbar ueber das Makefile) gesucht. Das Programm liest pro Aufruf nur einen Kanal aus. Das Oszilloskop muss sich im Digitalmodus befinden. Der Kurvenzug muss entweder durch "Hold" oder durch den Single-Shot-Modus gespeichert sein. Als Kommandozeilenparameter ist in jedem Fall der Name der zu erzeugenden Datei anzugeben. Weitere Parameter sind moeglich -- der Aufruf ohne Parameter oder mit ungueltigem/n Parameter/n bewirkt die Ausgabe einer Kurzanleitung. Existierende Dateien gleichen Namens werden ohne Vorwarnung ueberschrieben! Es empfiehlt sich die aktuellen Einstellungen von Zeitbasis (Parameter -t) und Y-Ablenkung (Parameter -y) anzugeben um sinnvolle Zahlenwerte zu erhalten (ansonsten wird jeweils der Wert 1 angenommen). Das Dateiformat ist ASCII, wobei die erste Spalte die Zeit (in Sekunden) darstellt und die zweite, durch TAB getrennte Spalte den Y-Wert (in Volt) angibt. Das Format kann direkt durch Gnuplot dargestellt werden. Volker Bosch, 14 Sep. 2000 volker.bosch(at)z.zgs.de