GPIB specifications - Page 1
Forum section: electronics / projects

author: ealex
author_rank: Frequent Contributor
timestamp: November 18, 2014, 01:12:14 pm
content: HelloI'm interested in developing a small USB to GPIB adapter that will support IEEE 488.1 implementationI could find electrical specifications, flow control description, etcI've seen there some commands like untalk / unlisten, but no "talk" \ "listen" commandThis link was useful:IEEE488 HP Tutorial description of the Hewlett-Packard interface busWhat i can't find is how the bus controller selects the active talker and listener - the specific command sequence to specify that device with id 10 is the talker and device id n-m are listeners.Is this command sequence vendor specific ?

author: nfmax
author_rank: Super Contributor
timestamp: November 18, 2014, 01:42:13 pm
content: The controller sets the talker by asserting ATN and sending the device's talk address. The controller sets a listener by asserting ATN and sending the device's listen address. Since there can only be one active talker, if a currently active talker sees another device's talk address, it must untalk itself. There can be multuple listeners: the controller 'unlistens' them by asserting ATN and sending the 'unlisten' address (31)

author: free_electron
author_rank: Super Contributor
timestamp: November 18, 2014, 02:13:50 pm
content: Get the ieee standard at ieee.org.That is the ONLY document you need.And please , there have been so many of these boxes already, for once make one that does it right.Please Use the proper bus driver chips.Please make it compatible with the standard io libs

author: ealex
author_rank: Frequent Contributor
timestamp: November 18, 2014, 03:19:03 pm
content: i intend to use SN7516 and SN75160 - they seem to be the "proper bus driver chips"i don't know about the standard io libs - i want to make it using a usb->uartfor now i'm just playing with the idea of making one for my personal use - i'm at the design / requirements step.i plan to have the following hardware:PC CONNECTED SIDEUSB->RS232 transceiveroptocouplers for the RX and TX lineisolated power supply ( a dedicated block / 2 transistor royer converter / - must check the price )BUS CONNECTED SIDEsecondary LDO for 5V and 3.3Vmicrocontroller ( need to determine how much computing power i need - a CM0 should be more than enough )bus tranceiverssome line protection resistors + diodes to 5V and gndI'll keep updating this thread for each stepI've seen the article at ieee.org, but did not dare to see how much it costs

author: free_electron
author_rank: Super Contributor
timestamp: November 18, 2014, 03:30:13 pm
content: Good start.in terms of computing power you don;t really need a lot. the classic gpib controllers don;t even use a processor. they are hard logic.make the software in such a way that it first receives the entire command from usb and then blasts it in one shot to the target.same for reading ; receive as fast as you can from the machine, buffer it in the cpu , complete the gpib transaction and then shoot the buffer to the pc.don't make the mistake to stall the gpib bus becasue you have to stuff data into the pc , then receive another few bytes, send to pc , receive another few bytes. you are stalling the gpib bus. gpib is made for burst operation. transmit the block of data and sit in idle.there are machines out there that are blocked when they are mid-transmission. and that is not good.

author: macboy
author_rank: Super Contributor
timestamp: November 18, 2014, 03:59:40 pm
content: Quote from: ealex on November 18, 2014, 01:12:14 pmLook at table 2.4 and table 4.1 in that document.

author: electronic_eel
author_rank: Regular Contributor
timestamp: November 18, 2014, 04:34:09 pm
content: There is an open source hardware GPIB / USB adapter available:http://galvant.ca/shop/gpibusb/You can either buy from them or make your own clone from the data available on github. They also developed the Python InstrumentKit to allow easy interfacing to GPIB instruments from Python.But if you still want to roll your own design you can maybe get some ideas from their source code and schematics.

author: lincoln
author_rank: Regular Contributor
timestamp: November 18, 2014, 05:59:35 pm
content: http://www.mksa.deit.univpm.it/biblioteca/sala_tecnica/scaffale_strumenti/Strumenti/ieee488/Was looking for this very thing last week.

author: rx8pilot
author_rank: Super Contributor
timestamp: November 18, 2014, 06:11:09 pm
content: Quote from: electronic_eel on November 18, 2014, 04:34:09 pmI just ordered one from Galvant, although I am not sure if there is any ready to go software that can get me started. I am hoping to do simple remote control of my power supplies and create automated volt/time ramps. Writing custom scripts may be too long a learning curve for me at this time.The written IEEE spec looks fairly simple, but I am hoping to find something already done and tested if possible. OP: Can you say why you are trying to spin your own? I have just started the search and you likely know more than me. Are the ones on the market have issues?

author: ealex
author_rank: Frequent Contributor
timestamp: November 19, 2014, 09:04:03 am
content: @free_electron - how big can gpib frames get ? reserving something like 4K for the gpib buffer will be enough ?@lincoln - thanks, i'll start reading them once i have some spare timei'm looking at STM32F100RCT6TR for the cpu - i'm used with that series (24k RAM, 256KB flash, 24MHz )I've looked over the one made by Galvant, i keep it as a fold-back option if i'll not end with a working unit

author: Narmaraktuk
author_rank: Contributor
timestamp: November 19, 2014, 02:51:55 pm
content: Quote from: rx8pilot on November 18, 2014, 06:11:09 pmThis is pretty easy to do with InstrumentKit + the galvant GPIB USB adapter, provided there is a suitable driver for your PSU. What type of PSU do you want to automate?Example voltage time ramp on a HP6632b using InstrumentKit on linux:Code:import instruments as ikimport timepsu = ik.hp.HP6632b.open_gpibusb('/dev/ttyUSB0', 6)psu.voltage = 10psu.current = .1psu.output = True # Enable outputfor i in range(1,10):psu.voltage = itime.sleep(1)

author: rx8pilot
author_rank: Super Contributor
timestamp: November 19, 2014, 05:28:10 pm
content: Quote from: ealex on November 19, 2014, 09:04:03 amAre you going to write the front-end code as well or use something that is already written? Is this a 'learning experience' project or do you think that you can make a better mousetrap? Don't take that comment the wrong way, I am just learning about GPIB control and do not know what I am in for. If there is truly a need to make your own GPIB interface, I may re-consider.Quote from: Narmaraktuk on November 19, 2014, 02:51:55 pmI just got an HP6653A and planning a few other purchases to eventually work up to GPIB automated production PCB testing. It looks like InstrumentKit is Python so it should not be a problem on a Win7 machine

author: TerraHertz
author_rank: Super Contributor
timestamp: November 20, 2014, 09:26:41 am
content: Quote from: free_electron on November 18, 2014, 02:13:50 pmHa ha ha...standards.ieee.org/findstds/standard/488.1-1987.htmlBuy -->http://www.techstreet.com/products/2969"PDF download $114.00 Members pay $91.00"standards.ieee.org/findstds/standard/488.2-1992.htmlBuy -->http://www.techstreet.com/ieee/products/1779348"PDF download $304.00 Members pay $243.00"For those of us who absolutely won't even contemplate paying US$418.00 dollars for a few MB of downloaded bits, the non-IEEE documents are all we'll see. Unless a parrot should land on one's shoulder.Personally, I am of the opinion that unless something is freely available, it *can't* be a standard. If I was dictator, that would be the law.Not sure if I have copies of these somewhere or not. Probably not.

author: Narmaraktuk
author_rank: Contributor
timestamp: November 20, 2014, 09:40:05 am
content: Quote from: rx8pilot on November 19, 2014, 05:28:10 pmLets continue guessing:There is a HP6652a driver that might work for the HP6653a. The commandset is similar according to the HP manuals.Win7/Linux: I think only the path you feed to the driver needs to change.

author: ealex
author_rank: Frequent Contributor
timestamp: November 20, 2014, 01:10:20 pm
content: One of the links above has those pdf's - posted by lincolni want to make this a 'learning experience' - i know i don't have a chance / enough time to make a "commercial grade" interface / at least create hardware that can be easily expanded from what i'll be able to implement - that's if anyone will be interestedi want to make it as an exercise - get something isolated from the computer ground and send some data to my R&S SMS signal generator - it's implementing only a basic listener, so i don't have equipment to check more advanced functionality.I had a lot of stuff that used GPIB at my old job ... here i have an almost usable Hantek ....i did not think about the front end code - it would be better to make it work with something that's already implemented.for now i'm looking at the hardware requirements - getting a design that will support the entire protocol / BOM / pcb .I intend to use MCP2200 for the USB-UART interface ( with flow control ) - is that chip good ? i've only used FTDI until nowInitial BOM sketch-up:USB B / micro connector ( i prefer USB-B - seems more rugger + trough hole )USB protection diodes ( are they really needed ? )leds for RX/TXMCP2200 + support components configured for 1Meg baudOptocouplers on RX / Tx / RTS / CTS ( HCPL-2601.S )5V rail decoupling + filtering for the power supplyIsolated power supply brick or a simple 1 transistor flyback / royer ( i still need to decide - royer will require 2 center tapped windings + feedback + extra inductor )-------- isolation --------5V and 3.3V LDO for the output drivers and mcuSTM32F100RCT6TR mcu + supportSN75160SN75161protection diodes to GND and a 5.6V high power zener to clamp the inputs + 10 ohm series resistors ( 1206 pref. )connector:http://ro.farnell.com/multicomp/spc15336/connector-centronics-plug-24way/dp/2112386for the first version - pull it out of the case and install it on the board edgeSWD debug interface2-4 leds to show status, etcLayout constraints - 100x50mm - if the connector lands fit in this area, try to have components only on 1 side so it can be assembled on a hot plateI'll add a schematic as soon as i have one available ( estimated: end of next week )

author: electronic_eel
author_rank: Regular Contributor
timestamp: November 20, 2014, 02:08:18 pm
content: Quote from: ealex on November 20, 2014, 01:10:20 pmWhy do you need isolation in the GPIB/USB-Adapter? Usually the instruments isolate the GPIB bus from their outputs.

author: ealex
author_rank: Frequent Contributor
timestamp: November 21, 2014, 09:32:56 am
content: i've disassembled my signal generator and it seems the GND rail is connected to the chassis ( thumb size diode bolted directly on the chassis with no insulation). also, the power line earth is also bolted on the same plateI already have a ground loop issue when i'm using it to act as a LO for a I/Q demodulator - ground loop via the signal generator chassis and the sound card input - i had to run the notebook on battery or add a transformer on the LO line to break DC path.=> i don't want to take any chances - i've seen motherboards blow by similar issues - the usb host chip would just fail dead short when connecting some devices that were plugged in a different socket ( at work ... )

author: TerraHertz
author_rank: Super Contributor
timestamp: November 21, 2014, 11:04:48 am
content: Quote from: ealex on November 20, 2014, 01:10:20 pmAh, thanks, I'd missed that link.I shall call the parrot "Wants" Polly Wants...

author: electronic_eel
author_rank: Regular Contributor
timestamp: November 21, 2014, 12:30:09 pm
content: Quote from: ealex on November 21, 2014, 09:32:56 amouch. Is this from a reputable manufacturer?Another idea would be to use ethernet. There the isolation is always part of the design. And if you use an RTOS with all the neccessary tcp/ip libs already built in, I think it wouldn't be that much more complicated than usb.

author: ealex
author_rank: Frequent Contributor
timestamp: November 21, 2014, 09:37:15 pm
content: it a very old rohde & schwarz sms2 generator ( 20kg, original schematics - i'm searching for a scanner that can do 2xA3 in one pass, chip dates form around 1978 - 1979 - i promise a tear down when i get some good light source ) and it seems it was designed this way - the chassis is connected to GND via the diodes for the 5V railit took me a while to understand were i can reach GND - it's designed to be easy fixable ( even got included raiser boards to make each module easy to measure, almost all chips are mounted on sockets and are easy to find parts ) but on the power supply "debug" headers i could not find GNDi'll think about ethernet - i'm sick of working with RTOS - a pain to debug if things go wrong, even for high-end ones

author: ealex
author_rank: Frequent Contributor
timestamp: December 18, 2014, 09:12:33 am
content: HelloI's been a while, but i had time to work on the schematic and pcb lay-outThis is the initial schematic version, and a print screen of the current lay-out. I plan to try and have all component on one side of the board - so i can reflow it on a hot plate.For now i can't fit the protection diodes - either i remove them from the design, or i keep them on the bottom layer and mount them by hand.The lay-out is still a mess, the usb-connected part is mostly ready - i need to remove / clear all in-pad vias - there are quite a lot of them now

author: ealex
author_rank: Frequent Contributor
timestamp: December 19, 2014, 08:39:08 am
content: Lay-out updateI've managed to fit all parts on board, left only the protection diodes on the bottom side, only 16 SOT23-3 partsAlso added some 3D viewsStill some via in pads - i've read that they are not recommended but seem to work properly if the drill is small enough - i'm using 0.3mm holesNext:- remove D119 and R121 - they are useless- add another status LED -> i''ll have 2 LED's to show cpu status.- add a jumper somewhere for an eventual boot loader, to allow firmware updates via UART- make the 3V and 5V tracks a little thicker and move them around a bit to free up the area under C102 and C101- put the status leds and the boot loader jumper in the freed spate / some text directly on the copper layer - i will not add a solder mask / silk screen to keep cost down

author: artag
author_rank: Super Contributor
timestamp: December 19, 2014, 10:19:18 pm
content: Quote from: free_electron on November 18, 2014, 02:13:50 pmWhile this can be very useful, those chips are built to drive a full line of 15 GPIB loads. This is exactly what you want if you have one adapter and several instruments : but you also need several expensive, unwieldy cables.If you have a crude adapter that uses cheap buffers or even the micros own IO pins, it will only drive one or two instruments before the signals become poor. But is that unreasonable ? With a USB microcontroller or even ethernet on each adapter, you might no longer use the parallel cables. It could be cheaper to fit an adapter to every instrument.Are there any signals that can't be handled correctly if you limit the device to one instrument ?

author: TerraHertz
author_rank: Super Contributor
timestamp: December 19, 2014, 10:40:22 pm
content: Quote from: artag on December 19, 2014, 10:19:18 pmArrgh! No! This is probably exactly the thinking that resulted in so many non-compliant adapters out there."several expensive, unwieldy cables"Actually, HP-IB cables are more or less free, because there are so many floating around. And it's how it's supposed to work. Please use the right driver chips.Cost difference is not much, and with them you can still use an adapter per instrument if that's preferable.

author: macboy
author_rank: Super Contributor
timestamp: December 19, 2014, 11:46:04 pm
content: Quote from: TerraHertz on December 19, 2014, 10:40:22 pmIf you limit to just one instrument, then you will have no problem to drive the signals from virtually any microcontroller. The micro must have 5 V inputs and outputs, andmusthave TTL level inputs (<0.8V LOW and >2.0V HIGH).

author: artag
author_rank: Super Contributor
timestamp: December 21, 2014, 01:46:59 am
content: Quote from: TerraHertz on December 19, 2014, 10:40:22 pmI'm sure it is (the thinking). And I do sympathise, that it's good to have it 'done properly'. You even lose some features (like the ability to transfer data directly between targets .. but how useful is that ?).I still think it's a sensible tradeoff. Nowadays, I'd rather buy an instrument with ethernet than GPIB - but I'd rather have GPIB than manual only, and this seems reasonable : connect module to each one rather than use the bus.I agree, GPIB cables can be free. I've got a bundle. That doesn't make them small enough to fit in a cramped shelf, or cheap enough when I suddenly want a few more. The most expensive item on a single-instrument adapter is probably the 24 pin microribbon connector ..

author: c4757p
author_rank: Super Contributor
timestamp: December 21, 2014, 01:53:38 am
content: What's the argumentagainstusing the proper, intended driver chips?

author: free_electron
author_rank: Super Contributor
timestamp: December 21, 2014, 03:39:41 am
content: Quote from: c4757p on December 21, 2014, 01:53:38 amhardware wise :- Not being able to drive a long cable.- Not being able to drive more than a few instruments.- Requiring more than one adapter- not being as robust in terms of protection ( those drivers can take a beating ... i've never known one to fry.. )protocol wise :not being able to execute group triggers due to the fact you can only drive a few instruments.GPIB has a couple of mechanism whereby you can send commands to several machines to 'arm' them. they go in a mode where they wait for the 'group trigger command' to be sent.let's say you got 4 multimeters two sample voltage, two current , because you want to do efficiency measurements on a dc/d c convertor so you need samples at the right time. , or you fire off the programmable load and want to trigger the scope at the same time.you tell the machines to get ready by telling them to wait for GPIB trigger and you arm them. they all go into listening mode. once the group trigger command comes ( this is a specific toggling of some control lines, it is not a gpib command in the sense that no data is transferred) all machines fire off in sync.so in that case if your adapter can only drive a few machines and you need multiple adapters the sync is lost.other things are stuff like swapping CIC (controller in charge ) between your computer and another controller capable machine. ( some machines have a built-in instrument basic and can send commands to subsystems. the 75000 relay matrixes, almost all spectrum and network analysers can do that , so they can take control of their frontends. At that point you need the drivers on the PC end to go tristate in the proper way or you risk damaging something...i, know some of these things are pretty advanced and most hobbyists probably don;t have 4 gpib capable meters. but still. the cost of those two chips is minimal. Do it right.

author: free_electron
author_rank: Super Contributor
timestamp: December 21, 2014, 04:02:45 am
content: Quote from: ealex on December 18, 2014, 09:12:33 amallright , care for some nit-picking ?schematic :------------1) usb :- d+/d- common mode choke + transils please. transils between d+/d- and system ground.- NEVER connect usb gnd and tab together. there needs to be a ferrite bead between them. TAB is chassis ground. it should NEVER be connected to your system ground. you are defeating the esd protections. the TAB of usb can be connected to the shield of the gpib connector ( not the ground pins ! the metal shield on the connector )- diss the resonator and go for a real crystal- use GP1 of the mcp2200 to control a PMOS transistor that feeds power to the optocouplers and the dc/dc converter. as long as you are not enumerated you should not be drawing more than 0.5 milliamp... so in your schematic : the wire coming from pin 1 and going up , to the right the split off toe the led's and optos needs a pmos insrerted under control of GPI.- dc/dc converters pull quite big pulse currents. you will need some bulk capacitance. like 100 uf right at its input.idea's:- for debug purposes you may want to bring one more GPIO across the isolation barrier attached to the cpu's reset pin.- diss the optocouples (which are slow) and go for a digital isolator chip. analog devices and maxim have those. they handle much higher baudrates than opto's can. they typically have an on board isolated dc/dc converter as well.CPU- diss the resonator , go for a crystal.- swclk swio and nrst need appropriate pull up / down so they are not floating when not in use.-Vana needs bypass capacitor.- reset circuit ?gpib section :bulk caps for the drivers- is the stm32 5 volt tolerant ? you may need to insert series resistors for signals entering the stm32...PCB :-----------------------------------usb section- Vusb needs beefier traces ... everything is routed same width. not good ...- micro usb ? puhlease .. no .. those are total crap. mini usb i can live with , but not micro. they are so flimsy they constantly break. this is lab equipment. it should take a beating. if at all : go for the full size connector. those are rugged.- your routing in the usb section can be done single sided so backside is a nice ground pour. make a chassis ground ring on the perimeter of the board- shunt system ground and chassis ground with ferrite right at usb connector.cpu section:---------------- beef up your power grid. use a local 3.3 island in the cpu section and place the 3v3 regulator right there.- use smd version of regulator. something like a dpak version. . give it a tab and shoot some via's to ground.- you are not following electron flow. hit bulk cap first, then bypass cap then regulator in. from tregulatro out hit bypass first, then bulk cap and into local power island.- the drivers need beefier power line and local bulk caps as they can send quite a bit of current ( transient) if the bus is heavily loaded.

author: artag
author_rank: Super Contributor
timestamp: December 21, 2014, 10:23:14 pm
content: Quote from: free_electron on December 21, 2014, 03:39:41 amAll completely true. *but* I think only the protocol one is an issue (and then not for many people)You can have a long ethernet cable (or USB, if you must).You only need to drive one instrument : that's an issue if it's a $500 Agilent or NI adapter, not if it's a $10 micro.More than one adapter : same argumentRobustness : if you never take it off the instrument it never sees nasty signals.So I still think it's a valid approach, even though the proper way has its uses.

author: free_electron
author_rank: Super Contributor
timestamp: December 21, 2014, 11:29:57 pm
content: Quote from: artag on December 21, 2014, 10:23:14 pmit is exqctly this kind of thinking that gets us all that chinese crap. it works in most cases it;s not really according to specificaton but the average user won't notice.this is a pest in today's time and age. "it's good enough" lands us the crap we have today.

author: SeanB
author_rank: Super Contributor
timestamp: December 22, 2014, 05:59:52 am
content: There is "good enough" and " barely able to work". There is a world of difference between them though. Having one that works as GPIB for 95% of the applications you use all the time with 2 or more devices in a chain is "good enough", but those that only support a single device and then only partially is in the second group.

author: ealex
author_rank: Frequent Contributor
timestamp: January 05, 2015, 10:53:40 am
content: @free_electroni'm back ( 2 weeks in the mountains - no computer in sight, just a trusty old "stupid" phone ).i'll start working on the changes you proposed - but i already have some parts and i'll try using them - the DC/DC converter for example"d+/d- common mode choke + transils please. transils between d+/d- and system ground" - got itleaving the USB tab floating is acceptable ? I've seen this done in several ways in commercial products: floating / hard ground / via a ferite beaddigital isolator: Si8642 seems ok and will make a lot of extra board spacestm32f100 has internal pull ups on those lines - there is no need for external ones. also, his IO's are 5V tolerant if the internal pull-ups are disabledfor the PMOS switch i'll use the USBCFG Pin " The USBCFG pin (if enabled) starts out ‘low’ during power-up or after Reset, and goes ‘high’ after the device successfully configures to the USB. The pin will go ‘low’ when in Suspend mode and ‘high’ when the USB resumes" it seems it does what i needfor the LDO - i intend to use some parts that i have around - lt1117 has 5mA of stand by current - discovered it the hard way when trying to to something ultra low power. In this applications it should not matter -> lt117-3.3 in smd packagefor debug - i might stick some leds / use another uart port - just the TX line. Most of the time i can manage with just JTAGshould i keep the protection diodes on the gpib lines ? i might be able to free up some board space to add thicker traces if i get rid of them, but they add extra safetyi'll use a crystal for the usb side.still not sure if a crystal on the microcontroller side is required - gpib does not seem timing - criticalFor the USB connector - i was looking at the mating cycles - i prefer USB-B connectors but i don't know if there will be enough board space available - i try to constrain everything in 100x50mm to get 2 boards in one orderi'll upload a new schematic with the changes i've done

author: ealex
author_rank: Frequent Contributor
timestamp: February 26, 2015, 08:45:27 am
content: Helloi've updated the schematic / board with the proposed changes, sorry for the delay.the protection diodes are gonei've added some extra caps for the io chipsadded usb protection diodesadded a debug serial port on the isolated sideadded 2 extra ledschanged the LDO to a 1117 typereplaced the opto-isolators with an isolation ICadded a p-mos switch to start the 5V isolated supply only after the USB chip is registeredmanaged to get all parts on the top layer, so i can make it on a hotplatei'll take another look over the entire design and then order the pcb.( why are .rar archives not allowed ? )

author: ealex
author_rank: Frequent Contributor
timestamp: March 17, 2015, 03:28:09 pm
content: finally got the boardsi'll start assembling it once i have all parts - need to order some new parts according to the changed components.It seems that i did not mess any pad / pin layout this time.This is a picture from pcb-pool :

author: malch
author_rank: Regular Contributor
timestamp: March 18, 2015, 04:12:18 am
content: Are you still trying for 488.1 specs or have you gone to 488.2 specs.

author: ealex
author_rank: Frequent Contributor
timestamp: March 18, 2015, 07:35:33 am
content: 488.1 for now - i don't have equipment to test the implementation.i don't remember if the 488.2 are electrically compatible - if they are, there is enough processing power in the micro to cover it.for now i only have a device that behaves like a "basic listener" on 488.1I'll assemble 2 boards - and once i get them running i'll try to find some around here that got the time and the equipment to help me on this.

author: dom0
author_rank: Super Contributor
timestamp: March 18, 2015, 11:13:26 am
content: Quote from: malch on March 18, 2015, 04:12:18 amThat doesn't make any sense. 488.1 is a physical interface and interface protocols and 488.2 is an application protocol.

author: JohnnyBerg
author_rank: Frequent Contributor
timestamp: March 18, 2015, 11:46:49 am
content: Looks niceNo solder mask?Perhaps this is asked before, what is the status of the "firmware" in the STM32F100 ?

author: malch
author_rank: Regular Contributor
timestamp: March 18, 2015, 02:52:38 pm
content: Quote from: dom0 on March 18, 2015, 11:13:26 amOn the National Instruments drivers page for GPIB-PCII/IIA , they call for different drivers for 488.1 and 488.2http://www.ni.com/product-documentation/5326/en/

author: MarkL
author_rank: Unknown
timestamp: March 18, 2015, 03:15:26 pm
content: Quote from: malch on March 18, 2015, 02:52:38 pm.1 is mostly about the hardware, and .2 is mostly about the higher layer. But you need both for a good implementation. I have no idea why NI has different drivers.From IEEE 488.1-2003:This standard defines an interface with the objective to assure that messages may be accurately communicated between two or more devices in a system, but it does not guarantee that each device will interpret properly all possible messages sent to it or will properly generate all necessary messages. A wide latitude of interface capability is permitted within the scope of this standard, which may permit operational incompatibility among interconnected devices.From IEEE 488.2-1992:This standard specifies a set of codes and formats to be used by devices connected via the IEEE 488.1 bus. This standard also defines communication protocols necessary to effect application independent device dependent message exchanges and further defines common commands and characteristics useful in instrument system applications....As well as defining a variety of device-dependent messages, this standard extends and further interprets certain interface functions contained in IEEE Std 488.1-1987 while remaining compatible with that standard.

author: malch
author_rank: Regular Contributor
timestamp: March 19, 2015, 05:14:42 am
content: Here is a section from a programming pdf."class instruments.hp.HP3456a(filelike)The HP3456a is a 6 1/2 digit bench multimeter.It supports DCV, ACV, ACV + DCV, 2 wire Ohms, 4 wire Ohms, DCV/DCV Ratio, ACV/DCV Ratio, Offsetcompensated 2 wire Ohms and Offset compensated 4 wire Ohms measurements.Measurements can be further extended using a system math mode that allows for pass/fail, statistics, dB/dBm,null, scale and percentage readings.HP3456a is a HPIB / pre-448.2 instrument.class MathMode"I have read Tektonix instructions stating that they couldn't read a 448.2 card "448.1 only"P.S. bummer now I'll have to find the Tektronix pdf.Got it!http://digital.ni.com/public.nsf/allkb/862567530005F09C8625609E004FBE7F"The NI-488.2 language interfaces are not compatible with the NI-488.1 drivers"

author: ealex
author_rank: Frequent Contributor
timestamp: March 19, 2015, 10:49:08 am
content: no solder mask - it was cheaper by a significant amount( 40%). the board got a layer of nickel - gold plating so it will not oxidize, i can cover it with some clear acrylic lacquer once it's working and there is no need to probe traces anymore.no firmware yet - i'll have all the parts today and i plan to assemble the board this week-end.also, i've got no idea how it will interface with other tools - it's a simple serial interface - and i don't have access to other gpib equipment / software to study.

author: JohnnyBerg
author_rank: Frequent Contributor
timestamp: March 19, 2015, 11:01:18 am
content: Quote from: ealex on March 19, 2015, 10:49:08 amHave you GPIB instruments to test with?

author: ealex
author_rank: Frequent Contributor
timestamp: March 19, 2015, 11:03:58 am
content: got a signal generator - "basic listener" - so i can at least test a basic scenarioi hope that the gpib interface on that signal generator is still working ....

author: JohnnyBerg
author_rank: Frequent Contributor
timestamp: March 19, 2015, 11:08:05 am
content: I've got several HP instruments. Perhaps I can be of any assistance?

author: lincoln
author_rank: Regular Contributor
timestamp: March 20, 2015, 12:07:06 am
content: I can also help I have SRS and HP counters, HP 3457, LeCroy oscope, Tektronix TM5K gear as well.

author: ealex
author_rank: Frequent Contributor
timestamp: March 21, 2015, 04:22:39 pm
content: managed to get the first board assembled.the solder paste pulled a bad joke: somehow a bubble of flux separated and made a huge mess.even with this, the board reflowed properly - just some bridges on the stm32f100 pins - quick fix with a ton of fluxi hate the lead free solderfirst but: the USBCFG pin that i use to enable the power to the isolated section goes high, not low - i'm adding a simple transistor inverter now.i'll post some pictures once i get better lighting.a to-92 case looks huge along the tiny P-FET switch

author: ealex
author_rank: Frequent Contributor
timestamp: March 21, 2015, 04:55:32 pm
content: and first assembly mistake: put the io chips upside-downgood thing i measured the 5V rail resistance before powering it

author: malch
author_rank: Regular Contributor
timestamp: March 21, 2015, 05:57:19 pm
content: Wow your fast!

author: ealex
author_rank: Frequent Contributor
timestamp: March 22, 2015, 09:50:42 am
content: photo of the assembled board.i need to get a vacuum tool - placing those chips with tweezers is hard - they are too large to handle them comfortablyyou can see where the solder paste got nasty and flown under the mask - having no solder mask saved me - the metal pulled up all the extra solder and got not shorts on the entire areaalso, i've over cooked the board ( literally - i use a cooking hotplate and i cracked it up too fast ) and the FR4 got a little scorched.an interesting thing - the bus drivers pull a lot of current if their pins are floating - tested with a "fresh"chip and it draws ~ 50mA at 5Vthe line drivers are replaced, everything else is as it's left after the re-flow