LAN2GPIB mit Arduino-Nano und LAN Shield

OP #4879966
Lesenswert?

Hallo Forum,

Frage an die GPIB (alias IEEE488.X) Experten.

Ich habe einen Arduino-Nano (AT-Mega328P) und ein LAN-Shield
mit ENC28J6 (10MBit) drauf.

Diese HW möchte ich mit einem SN75160B und einem SN75161B
(GPIB octal bus trx) verheiraten, um via LAN R&S Hardware
zu steuern.

Reicht diese Kombination um direkt mittels C-Programm, nicht
Arduino-IDE, dieses Ziel zu erreichen.

Müsste doch für die ersten Versuche auch auf einer Lochraster-
platte zu machen sein.

Ist in diesem Zusammenhang der SN75162B besser geeignet, weil

"SN75162B Designed for Multiple"

oder reicht der SN75161B da ich nur einen Controller (Master)
am Bus habe. ("SN75161B Designed for Single Controller").

Habe ich das so richtig verstanden.


Für sachdienliche Hinweise wäre ich dankbar.

Markus
DL8MBY
OP #4880448
Lesenswert?

Hallo Forum,

hat keiner zu meiner Anfrage eine Antwort?
Ist der GPIB schon so aus der Mode gekommen?

Wäre das nicht auch für manche von Euch eine
interessante Anwendung?

Heute gibt es wunderbare Messgeräte auf den
Elektronikflohmärkten, die oft diesen Steuer-
bus haben.

Also traut Euch - ich warte etwas ungeduldig ;-)


Markus
DL8MBY
Gast #4880452
Lesenswert?

Markus W. schrieb:
> Müsste doch für die ersten Versuche auch auf einer Lochraster-
> platte zu machen sein.

Na dann mach es doch einfach. Ich hab jedenfalls keine Lust
für dich die Datenblätter der Treiber zu lesen. Wenn du daran
schon scheiterst dann wird das nichts mit deinem Projekt.

Unabhängig davon rate ich dir nicht den Ethernet Adapter zu
verwenden sondern gleich die TCP/IP Lösung von Wiznet. Also
W5100  W5200  W5500. Gibt es ja auch als Arduino Shield.

Du sparst dir eine Menge Arbeit den separaten Stack für den
ENC28xx in Betrieb zu nehmen und dazu sparst du noch Speicher-
platz (der auf dem Mega328 auch nicht üppig ist) für deine
Applikation.
OP #4880507
Lesenswert?

Hallo Arduinoquäler,


danke, dass Du Dir trotzdem die Zeit genommen hast mir eine
Nützliche Antwort zu posten.
Ich habe mir Durchaus die Datenblätter zumindest vom SN7516X
angesehen und dabei sind schon die ersten Fragen aufgetaucht.

Hier im Forum gibt es einen Beitrag zu einem GPIB2RS232 Umsetzer

https://www.mikrocontroller.net/articles/GPIB-RS232-Schnittstelle

Wo behauptet wird, dass man den SN75162 nehmen muss, da der
SN75161 bestimmte Signale nicht hätte.

Ich habe bei Mauser beide gefunden, jedoch ist zumindest der
SN75162 im DIL Gehäuse nicht lieferbar.

Für die ersten Versuche, wäre es aber einfacher, da man dann
eine Lochraster-Platine verwenden könnte.

Ich habe keinen Unterschied zu dem bei Mauser erhältlichem
SN75161 und dem im Schaltplan aufgeführten IC SN75162 hier im
o.g. Beitrag feststellen können.

Wollte mich aber trotzdem Rückversichern, was das Forum meint.
Der Hinweis mit dem Wiznet Baustein ist gut und dafür danke ich.

Ansonsten war ich der Meinung, dass GPIB-(HW)-Experten für mich
nicht nachsehen müssen, sondern ihre Anmerkungen aus dem kleinen
Finger sprudeln lassen, wie es bei Dir im Bezug auf die LAN-
Anbindung der Fall gewesen ist.


Markus
DL8MBY
OP #4880517
Lesenswert?

@Arduinoquäler,

zu den Nanos, habe ich nur ein Modul/Shield, auf die Schnelle, gefunden.
Diese Bauform, scheint nicht so verbreitet zu sein. Ist der Aufbau des
W5XXX komplexer, weshalb er nicht auf so ein kleines Shield passt?


http://www.ebay.de/itm/NANO-W5100-Ethernet-Shield-Network-Expansion-Board-for-Arduino-Nano-V3-0-New-/272495217991?hash=item3f71fb0d47:g:rtcAAOSwEzxYXMRh

Da ich aber das Ganze in ein kleines Gehäuse direkt am GPIB-Stecker
montieren möchte, wäre die Nano-Bauform besser geeignet.

Kannst Du das Teil unter dem angegebenen Link empfehlen.

Markus
DL8MBY
#4880655
Lesenswert?

hallo Markus,
bin an Deinem Projekt sehr interessiert. Vielleicht wird das ganze ja 
einfacher mit einer USB Schnittstelle. Dann sollte ein einfacher Arduino 
Nano reichen. Bis lang arbeite ich hiermit:
http://egirland.blogspot.de/2014/03/arduino-uno-as-usb-to-gpib-controller.html
Das Interface unterstützt den Prologix Befehlssatz, der recht weit 
verbreitet ist und zB von EZGPIB unterstützt wird.
http://www.ulrich-bangert.de/html/downloads.html
Das funktioniert sogar mit einem Arduino Mini aber leider nur etwas 
eingeschränkt. Beim Warten auf eine Antwort vom Meßgerät muß ich immer 
ein Timeout verwenden. Das liegt wohl daran, dass SRQ vom Interface 
nicht unterstützt wird.
vy 73 und viel Erfolg Kutte
Gast #4880685
Lesenswert?

Markus W. schrieb:
> mich irritiert dabei, das in einem Atemzug
> ENC28J60 und W5500 genannt wird.

Wie Arduinoquäler schon sagte, einfach ignorieren. Diese chinesischen 
Händler fügen alle möglichen Stichworte in den Titel hinzu, um von 
möglichst vielen Leuten gefunden zu werden. Und der ENC28J60 ist nunmal 
bekannter als der W5500.
Und sowohl die Artikelbeschreibung als auch die Bilder sind eindeutig, 
würde ich mal sagen.

In der gleichen Bauform gibt es verschiedene Layouts. Hier z.B. eines 
von Aliexpress, da kann man im dritten Bild ganz gut den Chip erkennen:
https://www.aliexpress.com/item/Free-Shipping-USR-ES1-W5500-Chip-New-SPI-to-LAN-Ethernet-Converter-TCP-IP-Mod/32713913789.html
Gast #4881154
Lesenswert?

Markus W. schrieb:
> In wie weit unterscheiden sich die W5100 W5200 W5500
> voneinander.
>
> Bitte nicht gleich schimpfen, wenn ich noch nicht ins
> DB geschaut habe.

Nachdem das bestellte Teil ja direkt (sozusagen auf direktem
Weg) aus China kommt hast du ja noch mindestens 6 Wochen Zeit
dich mit den Datenblättern auseinanderzusetzen. Können auch
10 Wochen werden ....
#4881300
Lesenswert?

Also das LAN2GPIB finde ich interessant!

Ich würde aber einen einfachereren Ansatz nehmen!

Wir haben 8Bit als Datenbus und 8 Steuerleitungen.

Also könnte man doch 2 ATMega-Ports verwenden? Einen Port für die 8Bit 
Daten und einen für die Steuerleitungen. Sobald ein Eingang der 
Steuerleitungen kippt, wird übers Netzwerk 2 Byte gesendet.

So hat man einen Rohdatenstrom den man später am PC belibig 
nachbearbeiten und replizieren kann.

Was haltet ihr von der Idee?
OP #4881364
Lesenswert?

Hallo Axel W.

ich habe Deinen Vorschlag nicht verstanden, weil ich Dachte,
dass ein Messgerät vom GPIB Controller aus gesteuert wird und
damit der uC von seinen Ports zu dem Messgerät sendet und nicht
umgekehrt.

Die Angelegenheit mit den Ports am uC ist ja soweit klar,
so war auch mein Gedanke und ob man nun über RS232, USB oder LAN
die Kommandos vom PC zum uC schickt ist doch nur Geschmackssache.


Markus
DL8MBY
#4881496
Lesenswert?

Hallo Markus,

ja ich habe dann deinen Post falsch verstanden! Bei mir läuft ein 
GPIB-System mit Master und Slaves. Der Gedanke war, die Daten auf meine 
vorgeschlagene Weise mitzuloggen und dann selber ein Master zu 
generieren um vom PC aus die Geräte (wie du sie hast) anzusteuern. In 
meinem Fall ist es ein Drucker mit Endlospapier und Tintenkopf. Ich 
möchte die Daten mitschneiden beim Drucken und später ein Drucker 
simulieren. Daten landen dann auf meinem Server als txt-Datei. Aber 
vorher muss ich wissen wie der Drucker antwortet. Mit meinem Vorschlag 
kann man das aus dem Datenstrom lesen!
#4881563
Lesenswert?

Alex W. schrieb:
> Also das LAN2GPIB finde ich interessant!
>
> Ich würde aber einen einfachereren Ansatz nehmen!
>
> Wir haben 8Bit als Datenbus und 8 Steuerleitungen.
>
> Also könnte man doch 2 ATMega-Ports verwenden? Einen Port für die 8Bit
> Daten und einen für die Steuerleitungen. Sobald ein Eingang der
> Steuerleitungen kippt, wird übers Netzwerk 2 Byte gesendet.
>
> So hat man einen Rohdatenstrom den man später am PC belibig
> nachbearbeiten und replizieren kann.
>
> Was haltet ihr von der Idee?

Abstand.

Das ganze wird dadurch viel langsamer.

Beispiel Handshake:
Listener löscht NRFD
Talker sendet Daten
Taker setzt DAV
Taker löscht DAV
Listener setzt NDAC
Listener setzt NRFD
...

Jeder Schritt würde einmal über das USB-Kabel hin- und her laufen, was 
jedes mal ein paar ms Verzögerung bedeutet.

Wenn der Adapter das Handshake lokal verarbeitet, muss der PC nur noch 
Datenblöcke nachschieben, und das geht natürlich viel schneller.

fchk
OP #4881740
Lesenswert?

Hallo Axel, Frank und Co.

bevor ich die Kommunikation zum PC mache, muss
ich sowieso erst testen, ob ich es schaffe direkt
vom uC (sei es Atmel, ARM oder PIC) einige für meine
Geräte (R&S Frequenzgeneratoren) erforderliche GPIB-
Kommandos erfolgreich zum Slave zu schicken.

Wenn das funktioniert, für einen nützliche Untermenge
der GPIB Kommandos, z.B. Frequenz oder Pegel setzen,
Schrittweite definieren und Sweep starten, dann würde
ich mir Gedanken machen, auf welche Weise der PC den
uC mit Kommandos versorgt. Prinzipiell ist USB zur
Kommunikation ausreichend, in der Handhabung ist aber
LAN sicherer, weil potenzialfrei. Zwar braucht man
dann für den GPIB-Konverter eine zusätzliche Versorgung,
aber diese ist nicht mit dem PC verbandelt.

Soweit meine ersten rudimentären Überlegungen.

Ich habe nach käuflichen Adaptern gesucht, jedoch keine
gefunden, die weniger als 150€ kosten und nicht ausschließlich
mit Windows-Treibern/-Software daherkommen.

Ich habe vorerst die Arduino-Nano als Plattform auserkoren
und sollte es von der Verarbeitung zu eng werden, hätte
ich noch ARM in Form von Teensy 3.2 und 3.6 als Modul verfügbar.

Jetzt bin ich auf der Suche nach einem entsprechenden Stecker,
den ich für eine erste Lochraster-Montage verwenden kann.

Die SN7516X sollten die Tage geliefert werden - habe ich bei
Mauser gefunden.

Markus
DL8MBY

PS.: Die Software für den PC zur Steuerung des Adapters würde
ich gerne mit QT4 und C unter Linux schreiben, da ich das schon
eine laufende Umgebung installiert habe.
OP #4881757
Lesenswert?

Noch ein paar Fragen.

Zu dem Handshake habe ich folgende Darstellung im Web gefunden,
siehe Anhang.

Kann ich so den Datenfluss am uC programmieren?
Ist die Darstellung so richtig und noch aktuell?
Sind die Controll-Sequenzen immer für alle Slaves
ob HP, R&S, Tektronix gleich und unterscheiden sie
sich nur in den Daten und ihrer Reihenfolge?

Habe soweit mit dem GPI-Bus noch keine Erfahrungen
gesammelt.

Danke für Hinweise, die mir weiter helfen.

Markus
DL8MBY
Angehängte Dateien:
#5136429
Lesenswert?

Ich greife mal  diesen Post wieder auf!

Ich hab seit ein paar Wochen einen AVR an meinem GPIB laufen.
Soweit geht das! Ich habe einfach 2Byte genommen. 8Bit für die 
Steuerleitungen und 8 für die Daten.

Sobald auf den Steuerleitungen ein Bit kippt, wird der Zustand der 
Steuerleitungen und der Datenleitungen gesendet.

Soweit geht das! Bei meinem Drucker Sehen dann die Formate etwa so aus:

U?!AU?!lU?!eU?!x

Wenn ich die Datei dann mit nem Filter versehe und U?! lösche, kommt das 
Zeug in Klartext raus was auch aufs Papier kommt.

Die Druckerantwort bekomme ich nicht hin! Muss also den Drucker 
drannlassen.

Des weiteren habe ich die Bauanleitungen diverser anderer GPIB2irgendwas 
mit AVR nicht ganz verstanden! Überall steht das man SN75160B und einem 
SN75161B (bzw SN75162B) verwenden soll. Was können diese Chips explizit 
besser als ein AVR? Hochohmig bei Off? Das würde auch mit nem AVR gehen.
Beitrag #5136431 wurde von einem Moderator gelöscht.
#5136451
Lesenswert?

Wenn es nur darum geht mal ein GPIB-Gerät zu adaptieren ist das ohne 
Treiber kein Problem. Wenn allerdings mehrere Teilnehmer auf dem Bus 
sind sollte man sich überlegen ob das mit Strömen und Pegeln noch 
klappt. Spätestens wenn der Controller nur noch mit 3.3V läuft wird es 
blöd. Habe gerade einem STM32 GPIB beigebracht und die Treiber 
verwendet.
Gast #5136498
Lesenswert?

Dann brauchst du einen Treiber welcher für die Pegelwandlung , 3.3v wäre 
OK ohne Pegelwandler.
Ohne Treiber sind nur eine reduzierte Anzahl von Geräten erlaubt, aus 
der Erinnerung 5 low speed Geräte, high speed haben keine solche 
Limitation.
#5136540
Lesenswert?

Ich lebe an der Stelle nach dem Motto wenn dann richtig. Am Bus hängt 
Material für mehrere k€ und ich diskutiere über 8€ für die beiden 
Treiber? - bestimmt nicht! Die 20 mA pro Pin sind ganz nett aber nicht 
auf allen gleichzeitig (auch wenn es im Betrieb nicht vorkommt). Wenn 
bei den Treibern gewährleistet ist das die Bus-Seite IEEE488 entspricht 
bin ich diese Sorge jedenfalls los und kann mich um die Software 
kümmern.
#5136550
Lesenswert?

C. W. schrieb:
> Ich lebe an der Stelle nach dem Motto wenn dann richtig. Am Bus hängt
> Material für mehrere k€ und ich diskutiere über 8€ für die beiden
> Treiber? - bestimmt nicht!

Völlig richtig! Nur sind die Treiber heute schwer zu bekommen! Wobei ich 
gerade erstaunt feststellen musste, das diese Treiber bei Mouser sogar 
als SMD gibt!
Gast #5136623
Lesenswert?

> Des weiteren habe ich die Bauanleitungen diverser anderer GPIB2irgendwas
> mit AVR nicht ganz verstanden! Überall steht das man SN75160B und einem
> SN75161B (bzw SN75162B) verwenden soll.

Soweit ich weiss gibt es Leitungen die vom GPIB bei Lust und Laune nach 
Masse gezogen werden. Ich hab mir vor 10-15Jahre mal sowas mit einem 
Mega8 und einem PCF8574 gemacht. War zwar kein Geschwindigkeitswunder, 
hat aber problemlos funktioniert. Der Mega8 hat dabei das komplette 
Bushandling gemacht. Ein Problem damals war zumindest erstmal eine 
vernuenftige Beschreibung des Busses zu finden.

Olaf
Gast #5136836
Lesenswert?

Der Nano hat 22 I/O Pins.
16 braucht es für die GPIB Signale, 3 für die Interfacebausteine,
4 oder 5 für die Ethernetverbindung, 3 für ein Statusled, 1x Button
für die Konfiguration.

Led kann man mit SPI vereinen, Button mit Reset, mit polling braucht man
nur 4 pins für die Ethernetverbindung, trotzdem finde ich dass
zuwenig Pins vorhanden sind, und da ein 162 verwendet werden sollte, 
braucht
es noch ein Pin mehr. Wie denkst du dies zu lösen ?
#5136894
Lesenswert?

Alex W. schrieb:
> Ich sehe du hast da ein LCD im Hintergrund! Ist die Basis auf Arduino
> oder ein Nucleus

Nein - es sind diese Module:



3.2 inch TFT LCD screen with resistive touch screens ILI9341 display 
module
http://s.aliexpress.com/EZnqyyy2


STM32F407VET6 development board Cortex-M4 STM32 minimum system learning 
board ARM core board
http://s.aliexpress.com/IVziYryE

Arduino ist nicht meine Welt. An den Treibern sind keine Widerstände 
Richtung Bus. In Richtung STM32 kommen bei der richtigen Version noch 
Widerstände um die 5V-toleranten Pins etwas zu entlasten. Bei dem 
STM32-Board gibt es noch eine Version mit einem 407ZET, da gibt es noch 
mehr IOs.
Gast #5136946
Lesenswert?

C. W. schrieb:
> STM32F407VET6 development board Cortex-M4 STM32 minimum system learning
> board ARM core board
> http://s.aliexpress.com/IVziYryE

Man braucht nicht sein halbes Leben warten um die Module zu
bekommen, es gibt sie auch aus Deutschland:

http://www.ebay.de/itm/Core407V-STM32F407VET6-STM32-Cortex-M4-Development-Board-Mainboard-Module-Kit-/401387098620?hash=item5d748911fc:g:qcwAAOSw-kdX0mup

siehe auch

Beitrag "STM32F407 Black und Arduino"
#5137549
Lesenswert?

C. W. schrieb:
> An den Treibern sind keine Widerstände
> Richtung Bus. In Richtung STM32 kommen bei der richtigen Version noch
> Widerstände um die 5V-toleranten Pins etwas zu entlasten.

Also wenn ich den AVR mit 3,3V betreibe, brauche ich auch keine 
Widerstände zw. AVR und Treiber?

Wenn ich mir ne Leiterplatte designe, mache ich einfach 
"Angstwiderstände" dazwischen, dann kann ich die notfalls mit 0R bzw nem 
Widerstand bestücken.
#5137667
Lesenswert?

Arduinoquäler schrieb:
> Alex W. schrieb:
>> dann kann ich die notfalls mit 0R bzw nem
>> Widerstand bestücken.
>
> ... und wo käme dann - als Denkspiel - die Not her dies zu tun?
>
> Sind Null-Ohm-Widerstände billiger als andere?
>
> Alex W. schrieb:
>> 0R bzw nem Widerstand bestücken.
>
> Ist 0R kein Widerstand?

Du bist kein Entwickler! Wenn er 0R in die Leitungen rein macht, kann 
man später auch andere Werte Bestücken! Und nein, 0R sind kein 
Widerstand! Lies dich doch mal ein, welche Begriffe man in der 
Elektronik verwendet, dann musst du auch keine Arduinos mehr quälen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren