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
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
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.
Arduinoquäler schrieb: > Du sparst dir eine Menge Arbeit den separaten Stack für den > ENC28xx in Betrieb zu nehmen ... und zum dritten ist die ganze Sache schneller da du nicht mit rohen Ethernet-Paketen "rechnen" musst sondern blanke ausgepackte TCP / UDP Pakete verarbeiten darfst.
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
@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
Der Beitrag, Beitrag "GPIB-RS232-Schnittstelle" hat meine Frage bezüglich dem SN75161 und SN75162 beantwortet. Somit geht auch der SN75161, der noch bedrahtet zu beschaffen ist. Bleibt nur noch die Frage zu dem Wiznet-Nano-Shield. Markus DL8MBY
:
Bearbeitet durch User
Markus W. schrieb: > Bleibt nur noch die Frage zu dem Wiznet-Nano-Shield. Das sind die kompaktesten die ich kenne: http://www.ebay.de/itm/New-Mini-W5100-LAN-Ethernet-Shield-Network-Module-board-Fur-Arduino-DE-TE230-/272098998741?hash=item3f5a5d39d5:g:U80AAOSwzJ5XVR-k
Markus W. schrieb: > Ist der Aufbau des W5XXX komplexer, weshalb > er nicht auf so ein kleines Shield passt? Eigentlich nicht. Zumindest den W5500 gibt es auch schön kompakt: eBay 272313602686 Musst du prüfen, ob das für eine Anwendung taugt oder nicht.
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
Hallo Johannes, mich irritiert dabei, das in einem Atemzug ENC28J60 und W5500 genannt wird. "USR-ES1 ENC28J60 W5500 Chip SPI to LAN/ Ethernet Converter TCP/IP Module" Ist das eventuell nur das reine PHY-Modul? Markus
Markus W. schrieb: > Ist das eventuell nur das reine PHY-Modul? Das gibt es nicht. Der W5xxx hat kein separates PHY. Die Chinesen schreiben einfach mal alles mögliche in den Titel rein weil sie das andere Zeugs vermutlich auch anbieten.
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
Danke für die Infos. Ich habe mal den hier bestellt. Ebay-Artikel Nr. 272495217991 In wie weit unterscheiden sich die W5100 W5200 W5500 voneinander. Bitte nicht gleich schimpfen, wenn ich noch nicht ins DB geschaut habe. Markus DL8MBY
:
Bearbeitet durch User
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 ....
Arduinoquäler schrieb: > 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 .... Außerdem ist jetzt chenesisches Neujahr, und da passiert dort die nächsten drei Wochen eh nicht viel. fchk
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?
Alex W. schrieb: > Was haltet ihr von der Idee? Das ist eine grossartige Idee. Warum ist da noch niemand Anderer drauf gekommen? Du solltest dich auf den Weg machen und das sofort zum Patent anmelden bevor es jemand vor dir tut.
Arduinoquäler schrieb: > Alex W. schrieb: > Was haltet ihr von der Idee? > > Das ist eine grossartige Idee. Warum ist da noch niemand > Anderer drauf gekommen? Du solltest dich auf den Weg machen > und das sofort zum Patent anmelden bevor es jemand vor dir > tut. Warum laberst du jetzt so ein Dreck daher? Meine Frage nicht verstanden? Oder willst du nur trollen?
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
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!
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
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.
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
Das ist wie bei einem Drucker: Die Schnittstelle selber ist genormt, die Daten, die darüber laufen, nicht unbedingt. Hier steht das wichtigste drin: http://bitsavers.trailing-edge.com/pdf/hp/hpib/TutorialDescrOfHPIB.pdf Dazu brauchst Du natürlich noch die Handbücher für die anzusteuernden Geräte. fchk
Such mal im Web nach "IEEE 488.1" und "IEEE 488.2", jeweils nach pdf-Dateien. Da lässt sich finden was Du suchst.
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.
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.
Ok, mein Adapter läuft momentan mit 5V! Der AVR sollte 20mA pro Pin können. Wie hoch ist der Strom vom Master? Und ja, ich habe mehrere Teilnehmer an einem Bus.
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.
chris schrieb: > Dann brauchst du einen Treiber welcher für die Pegelwandlung , 3.3v wäre > OK ohne Pegelwandler. Ohm man! Jetzt hab ichs im DB auch gesehen! Hätte nicht gedacht das so eine alte Maschine schon 3v3 nutzt.
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.
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!
> 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
C. W. schrieb: > Ja - SMD ist möglich Goil! Ich sehe du hast da ein LCD im Hintergrund! Ist die Basis auf Arduino oder ein Nucleus? Die Treiberbausteine sind direkt an GPIB angeschlossen? Also keine R?
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 ?
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.
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"
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.
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?
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...
Marc H. schrieb: > Du bist kein Entwickler! Gut dass du so genau über mich Bescheid weisst. Marc H. schrieb: > Und nein, 0R sind kein Widerstand! Aha! Gut dass ich jetzt aufgeklärt werde. Wo muss ich denn dann beim Versandhändler suchen wenn ich Null-Ohm-Nichtwiderstände kaufen will? Bei den Nichtwiderständen?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.