Forum: Projekte & Code DDR Messtechnik, Schnittstelle SI1.2/IMS1 --> USB


von Matthias S. (dachs)


Angehängte Dateien:

Lesenswert?

Hallo zusammen, wie schon in
Beitrag "Schnittstelle DDR-DVM G1002.500 -> USB"
angekündigt, habe ich eine Schnittstelle entworfen, die die Ausgaben am 
IMS1-Bus der DDR-Messtechnik auf USB oder RS232 verfügbar macht. Ich 
habe hoffentlich Alles berücksichtigt, dass die Platine universell 
einsetzbar macht. Alle Pins der EFS3x13, für die ich Belegungen gefunden 
habe, stehen an Eingängen der MCP23S17 zur Verfügung (die MCP23S17 
können auch als Ausgänge konfiguriert werden, z.B. um damit einen 
Drucker anzusteuern). Es gibt für alle der sechs Koax-Steckverbindungen 
Ein/Ausgänge am Prozessor.
An der senkrechten weissen Linie kann die Platine in zwei Stücke geteilt 
werden - für den Fall dass die beiden EFS3x13 Steckverbinder nicht 
genauso angeordnet sind. (die 2x7 Lötaugen müssen dann nur 1:1 
miteinander verbunden werden)

Nachdem ich die MCP23S17 im falschen Gehäuse bestellt hatte und die 
Bestellung der richtigen bei Mouser einen ganzen Monat bis zu mir 
gebraucht hat, gibt es nun Ergebnisse.

Ich habe die Werte des DVM G1002.500 verfügbar gemacht, solch ein Gerät 
besitze ich selbst.

Anbei Fotos von der zum DVM zeigenden Seite, der Rückseite am DVM 
steckend.
Auf der DVM-Seite sieht man die vier MCP23S17, die als Eingänge die Pins 
des DVM abfragen. Als Verbinung zur kleinen Extraplatine mit den 
SMB-Steckern hatte ich Steckverbindungen vorgesehen, bei mir ist es aber 
ein simples eingelötetes Flachbandkabel geworden.
Auf der Rückseite sind der Atmega32U2 mit seinem Quarz usw. zu sehen, 
der Quarz ist leider etwas schief.:-) Ebenfalls hier zu sehen ist die 
USB-Verbindung, der Stecker zeigt nach unten, ich hasse es, wenn sowas 
frei in den Raum ragt (und man nach hinten 5cm Platz nur wegen eines 
solchen Steckers braucht).
Hier gibt es auch Platz für einen MAX3232CPE mit Beschaltung, der eine 
richtige RS232 bereitstellen kann. Wenn dann die 5V-Versorgung nicht aus 
dem USB kommt, muss man diese am vorgesehenen Steckverbinder J3 separat 
einspeisen. Um die RS232 zu nutzen, müssen noch die Pins "serial" mit 
Drahtbrücken verbunden werden, rund mit rund, eckig mit eckig. Deren 
Routing habe ich nicht mehr dazwischen bekommen.

Angehängt habe ich auch den Schaltplan als PDF, die KICAD-Dateien muss 
ich erst noch ein wenig aufräumen. Der verschachtelte Anschluss der Pins 
an die MCP23s17 ist dem Routing geschuldet. An U2 und an U4 gibt es je 4 
freie Pins, die ich auf TP (U2) bzw. auf Durchkontaktierungen geführt 
habe.
Das Hexfile um den Prozessor zu programmieren, habe ich auch angehängt, 
den Quellcode in C muss ich auch erst noch aufräumen.
Das Programm baut auf LUFA (http://www.fourwalledcubicle.com/LUFA.php) 
auf, ich habe den "USB to Serial adapter" als Basis benutzt. Many thanks 
to Dean Camera.
Der Atmega32U2 kommt mit eingebautem Bootloader und kann direkt über USB 
mit dfu-programmer unter Linux (unter Win$ heisst das wohl Atmel FLIP) 
programmiert werden.
Das Programm im Atmega liest die Werte und sendet diese ca. alle 250ms 
an die USB-Schnittstelle, die als /dev/ttyACMx unter Linux erscheint.
Das Format habe ich so gebaut, dass das Protokoll 
https://sigrok.org/wiki/Voltcraft_VC-96#Protocol gesendet wird und damit 
der Treiber voltcraft-vc96 mit sigrok direkt verwendet werden kann.
Senden eines "v" gibt den Versionsstring zurück (Compiledatum und -zeit)
Senden eines CTRL-B bewirkt ein Springen in den Bootloader.

Ich habe hier noch 2 Platinen aus der Fertigung bei Aisler, die ich 
abgeben würde.

Matthias

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.