You can subscribe to this list here.
2002 |
Jan
(2) |
Feb
(2) |
Mar
(22) |
Apr
(24) |
May
(7) |
Jun
(44) |
Jul
(16) |
Aug
(2) |
Sep
(13) |
Oct
(11) |
Nov
(19) |
Dec
(25) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(16) |
Feb
(27) |
Mar
(5) |
Apr
(20) |
May
(17) |
Jun
(34) |
Jul
(29) |
Aug
(22) |
Sep
(25) |
Oct
(11) |
Nov
(13) |
Dec
(18) |
2004 |
Jan
(25) |
Feb
(22) |
Mar
(33) |
Apr
(15) |
May
(37) |
Jun
(15) |
Jul
(12) |
Aug
(22) |
Sep
(18) |
Oct
(45) |
Nov
(19) |
Dec
(30) |
2005 |
Jan
(31) |
Feb
(35) |
Mar
(27) |
Apr
(22) |
May
(9) |
Jun
(13) |
Jul
(13) |
Aug
(9) |
Sep
(25) |
Oct
(25) |
Nov
(12) |
Dec
(20) |
2006 |
Jan
(14) |
Feb
(16) |
Mar
(17) |
Apr
(8) |
May
(7) |
Jun
(20) |
Jul
(21) |
Aug
(12) |
Sep
(19) |
Oct
(6) |
Nov
(23) |
Dec
(15) |
2007 |
Jan
(13) |
Feb
(14) |
Mar
(24) |
Apr
(21) |
May
(9) |
Jun
(5) |
Jul
(7) |
Aug
(9) |
Sep
(21) |
Oct
(5) |
Nov
(30) |
Dec
(9) |
2008 |
Jan
(15) |
Feb
(18) |
Mar
(4) |
Apr
(11) |
May
(3) |
Jun
(14) |
Jul
(12) |
Aug
(1) |
Sep
(31) |
Oct
(10) |
Nov
(9) |
Dec
(2) |
2009 |
Jan
(9) |
Feb
(6) |
Mar
(9) |
Apr
(2) |
May
(7) |
Jun
(22) |
Jul
(5) |
Aug
(1) |
Sep
(26) |
Oct
(13) |
Nov
(2) |
Dec
(10) |
2010 |
Jan
(29) |
Feb
(2) |
Mar
(23) |
Apr
(9) |
May
(7) |
Jun
(8) |
Jul
(4) |
Aug
(4) |
Sep
(1) |
Oct
(3) |
Nov
(2) |
Dec
(9) |
2011 |
Jan
(1) |
Feb
|
Mar
|
Apr
(25) |
May
(2) |
Jun
(19) |
Jul
(6) |
Aug
(4) |
Sep
(9) |
Oct
(3) |
Nov
(8) |
Dec
(7) |
2012 |
Jan
(5) |
Feb
(10) |
Mar
(10) |
Apr
(1) |
May
(2) |
Jun
|
Jul
|
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(18) |
Dec
(10) |
2013 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(4) |
Jun
|
Jul
(26) |
Aug
(13) |
Sep
(24) |
Oct
(2) |
Nov
(1) |
Dec
(4) |
2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(1) |
Aug
(2) |
Sep
(6) |
Oct
(1) |
Nov
|
Dec
(5) |
2015 |
Jan
(1) |
Feb
(8) |
Mar
(7) |
Apr
(30) |
May
(3) |
Jun
(4) |
Jul
|
Aug
(7) |
Sep
(6) |
Oct
(13) |
Nov
(9) |
Dec
(2) |
2016 |
Jan
|
Feb
(7) |
Mar
(11) |
Apr
(6) |
May
(2) |
Jun
(16) |
Jul
(2) |
Aug
(6) |
Sep
(2) |
Oct
(2) |
Nov
(2) |
Dec
(7) |
2017 |
Jan
(9) |
Feb
(25) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
(14) |
Sep
(23) |
Oct
(3) |
Nov
|
Dec
(4) |
2018 |
Jan
|
Feb
|
Mar
(6) |
Apr
(4) |
May
(11) |
Jun
(2) |
Jul
|
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(20) |
Dec
(10) |
2019 |
Jan
(4) |
Feb
(2) |
Mar
(9) |
Apr
(7) |
May
(2) |
Jun
(14) |
Jul
(17) |
Aug
(8) |
Sep
(9) |
Oct
(2) |
Nov
(2) |
Dec
(5) |
2020 |
Jan
(5) |
Feb
(13) |
Mar
|
Apr
(6) |
May
|
Jun
(7) |
Jul
(1) |
Aug
(3) |
Sep
|
Oct
|
Nov
(11) |
Dec
(4) |
2021 |
Jan
|
Feb
(3) |
Mar
(2) |
Apr
(4) |
May
(7) |
Jun
|
Jul
|
Aug
(4) |
Sep
|
Oct
(8) |
Nov
|
Dec
(3) |
2022 |
Jan
(5) |
Feb
(13) |
Mar
|
Apr
(3) |
May
(4) |
Jun
(4) |
Jul
|
Aug
(10) |
Sep
|
Oct
(1) |
Nov
(4) |
Dec
(4) |
2023 |
Jan
(10) |
Feb
(5) |
Mar
|
Apr
|
May
(5) |
Jun
(4) |
Jul
(6) |
Aug
(4) |
Sep
(28) |
Oct
(8) |
Nov
(2) |
Dec
(1) |
2024 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
|
May
(3) |
Jun
(1) |
Jul
(10) |
Aug
(6) |
Sep
(3) |
Oct
|
Nov
(9) |
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(2) |
Aug
(28) |
Sep
|
Oct
|
Nov
|
Dec
|
From: dave p. <dpe...@gm...> - 2022-02-27 17:48:00
|
Normally I would suggest using iblines(). But the agilent driver has a bug returning no error even if there is no board. It is fixed in the SVN and now returns ibcntl = 19 which is ENODEV Here is a log of ibtest with the "board" disconnected: $ ibtest Do you wish to open a (d)evice or an interface (b)oard? (you probably want to open a device): b enter name of interface board (or device) you wish to open: hpusb trying to open board named 'hpusb' You can: w(a)it for an event write (c)ommand bytes to bus (system controller only) send (d)evice clear (device only) change remote (e)nable line (system controller only) (g)o to standby (release ATN line, system controller only) send (i)nterface clear (system controller only) ta(k)e control (assert ATN line, system controller only) get bus (l)ine status (board only) go to local (m)ode change end (o)f transmission configuration (q)uit (r)ead string perform (s)erial poll (device only) change (t)imeout on io operations request ser(v)ice (board only) (w)rite data string send group e(x)ecute trigger (device only) : l gpib status is: ibsta = 0x8120 < ERR CMPL CIC > iberr= 0 EDVR 0: OS error ibcntl = 19 You can:... On Sun, 27 Feb 2022 at 16:43, Michael K via Linux-gpib-general < lin...@li...> wrote: > I'm using an Keysight 82357B "board" (USB device). > If the drivers (gpib_common and agilent_82357a) are loaded, ibfind will > always find the device even after the USB device has been removed. > (the drivers are loaded upon connection but do not unload when the USB > device is removed) > Is there a way to determine if the board is still connected using the API? > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
From: Michael K <vk...@ya...> - 2022-02-27 15:43:09
|
I'm using an Keysight 82357B "board" (USB device).If the drivers (gpib_common and agilent_82357a) are loaded, ibfind will always find the device even after the USB device has been removed.(the drivers are loaded upon connection but do not unload when the USB device is removed)Is there a way to determine if the board is still connected using the API? |
From: dave p. <dpe...@gm...> - 2022-02-23 16:36:33
|
Hi Mathias, I am afraid you may have a clone, in your dmesg output usb config complains about a zero bInterval: [502787.202833] usb 2-1.1: config 1 interface 0 altsetting 0 endpoint 0x81 has an invalid bInterval 0, changing to 7 We have seen this before - see https://sourceforge.net/p/linux-gpib/support-requests/29/?page=1 Known genuine NI adaptors have bInterval=2 on their interrupt endpoint Currently we do not have a fix for this. cheers, -Dave On Wed, 23 Feb 2022 at 16:49, Mathias Vermeire <ver...@gm...> wrote: > Hi all, > > I bought a NI GPIB-USB-HS and hoped that I could use it to control some > old test equipment that I have gathered. > I downloaded the linux-gpib-4.3.4.tar.gz and installed it. The kernel is > "Linux 5.8.15-101.fc31.x86_64" > I fixed the permissions for the /dev/gpib* devices and I am now in the > process of figuring out the commands I need to control my gear. > But sadly it is not working. > I can do ibtest -> d -> 1 (1=address of a fluke 8842) > Then I can send a clear command without a problem. (d) > But nothing else works, no read, no write, All I get is "EDVR 0: OS error" > I put debug on in the code and recompiled it, so now it generates some > debug info. > If there is anything that I can do to help this debugging let me know. > You will find some debug info below. > > =============== > /etc/gpib.conf: > ================ > > interface { > minor = 0 /* board index, minor = 0 uses /dev/gpib0, minor = 1 uses > /dev/gpib1, etc. */ > board_type = "ni_usb_b" /* type of interface board being used */ > name = "gpib0" > pad = 0 /* primary address of interface */ > sad = 0 /* secondary address of interface */ > timeout = T3s /* timeout for commands */ > > eos = 0xd > /*eos = 0x0a EOS Byte, 0xa is newline and 0xd is carriage return */ > set-reos = yes /* Terminate read if EOS */ > set-bin = no /* Compare EOS 8-bit */ > set-xeos = no /* Assert EOI whenever EOS byte is sent */ > set-eot = yes /* Assert EOI with last byte on writes */ > base = 0 /* Base io ADDRESS */ > irq = 0 /* Interrupt request level */ > dma = 0 /* DMA channel (zero disables) */ > master = yes > > } > > device { > minor = 0 > name = "ps2520" > pad = 6 > sad = 0 > } > > device { > minor = 0 > name = "8842" > pad = 1 > sad = 0 > timeout = T30s > } > > > some debug output: > ======================= > plugging in the device: > ======================= > > > [502786.886538] usb 2-1.1: new high-speed USB device number 77 using > ehci-pci > [502787.202833] usb 2-1.1: config 1 interface 0 altsetting 0 endpoint 0x81 > has an invalid bInterval 0, changing to 7 > [502787.203329] usb 2-1.1: New USB device found, idVendor=3923, > idProduct=709b, bcdDevice= 1.01 > [502787.203331] usb 2-1.1: New USB device strings: Mfr=1, Product=2, > SerialNumber=3 > [502787.203332] usb 2-1.1: Product: GPIB-USB-HS > [502787.203333] usb 2-1.1: Manufacturer: National Instruments > [502787.203334] usb 2-1.1: SerialNumber: 016BF077 > [502787.203740] ni_usb_gpib: probe succeeded for path: usb-0000:00:1d.0-1.1 > [502787.772124] gpib debug: pid 599752, gpib: opening minor 0 > [502787.772130] gpib debug: pid 599752, minor 0, ioctl 39, > interface=ni_usb_b, use=2, onl=1 > [502787.772163] gpib debug: autospoll wait satisfied > [502787.772164] gpib0: exiting autospoll thread > [502787.772206] gpib debug: gpib: board offline > [502787.772210] gpib debug: pid 599752, minor 0, ioctl 24, > interface=ni_usb_b, use=2, onl=0 > [502787.772213] gpib debug: pid 599752, minor 0, ioctl 21, > interface=ni_usb_b, use=2, onl=0 > [502787.772215] gpib debug: pid 599752, minor 0, ioctl 22, > interface=ni_usb_b, use=2, onl=0 > [502787.772217] gpib debug: pid 599752, minor 0, ioctl 23, > interface=ni_usb_b, use=2, onl=0 > [502787.772219] gpib debug: pid 599752, minor 0, ioctl 15, > interface=ni_usb_b, use=2, onl=0 > [502787.772220] gpib debug: set primary addr to 0 > [502787.772222] gpib debug: pid 599752, minor 0, ioctl 16, > interface=ni_usb_b, use=2, onl=0 > [502787.772223] gpib debug: set secondary addr to -96 > [502787.772225] gpib debug: pid 599752, minor 0, ioctl 32, > interface=ni_usb_b, use=2, onl=0 > [502787.772227] gpib debug: pid 599752, minor 0, ioctl 43, > interface=ni_usb_b, use=2, onl=0 > [502787.772236] gpib debug: pid 599752, minor 0, ioctl 39, > interface=ni_usb_b, use=2, onl=0 > [502787.772240] ni_usb_gpib: attach > [502787.772245] usb 2-1.1: bus 2 dev num 77 attached to gpib minor 0, NI > usb interface 0 > [502787.772355] product id=0x709b > [502787.772755] ni_usb_hs_wait_for_ready: board serial number is 0x16bf077 > [502787.774491] gpib debug: > /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: > ni_usb_hs_wait_for_ready exit retval=0 > [502787.776619] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x10ff > [502787.778397] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x0 > [502787.780250] gpib debug: gpib: board online > [502787.780253] gpib debug: entering autospoll thread > [502787.781149] gpib debug: pid 599752, gpib: opening minor 0 > [502787.781165] gpib debug: pid 599752, minor 0, ioctl 26, > interface=ni_usb_b, use=3, onl=1 > [502787.781168] gpib debug: pid 599752, locked board 0 mutex > [502787.781174] gpib debug: pid 599752, minor 0, ioctl 34, > interface=ni_usb_b, use=3, onl=1 > [502787.781494] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x0 > [502787.781499] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x0 > [502787.781514] gpib debug: pid 599752, minor 0, ioctl 5, > interface=ni_usb_b, use=3, onl=1 > [502787.781869] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x0 > [502787.781870] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x0 > [502787.782089] gpib debug: pid 599752, minor 0, ioctl 26, > interface=ni_usb_b, use=3, onl=1 > [502787.782092] gpib debug: pid 599752, unlocked board 0 mutex > [502787.782105] gpib debug: pid 599752, minor 0, ioctl 26, > interface=ni_usb_b, use=3, onl=1 > [502787.782107] gpib debug: pid 599752, locked board 0 mutex > [502787.782111] gpib debug: pid 599752, minor 0, ioctl 29, > interface=ni_usb_b, use=3, onl=1 > [502787.782116] gpib debug: pid 599752, minor 0, ioctl 9, > interface=ni_usb_b, use=3, onl=1 > [502787.782118] gpib debug: sending interface clear > [502787.782325] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x30 > [502787.782330] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x30 > [502787.783461] gpib debug: pid 599752, minor 0, ioctl 5, > interface=ni_usb_b, use=3, onl=1 > [502787.783716] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x30 > [502787.783724] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x30 > [502787.783978] gpib debug: pid 599752, minor 0, ioctl 26, > interface=ni_usb_b, use=3, onl=1 > [502787.783981] gpib debug: pid 599752, unlocked board 0 mutex > [502787.783995] gpib debug: pid 599752, minor 0, ioctl 26, > interface=ni_usb_b, use=3, onl=1 > [502787.783998] gpib debug: pid 599752, locked board 0 mutex > [502787.784007] gpib debug: pid 599752, minor 0, ioctl 29, > interface=ni_usb_b, use=3, onl=1 > [502787.784014] gpib debug: pid 599752, minor 0, ioctl 10, > interface=ni_usb_b, use=3, onl=1 > [502787.784211] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x70 > [502787.784216] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 > [502787.784225] gpib debug: pid 599752, minor 0, ioctl 5, > interface=ni_usb_b, use=3, onl=1 > [502787.785505] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x70 > [502787.785512] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 > [502787.785730] gpib debug: pid 599752, minor 0, ioctl 26, > interface=ni_usb_b, use=3, onl=1 > [502787.785734] gpib debug: pid 599752, unlocked board 0 mutex > [502787.785749] gpib debug: pid 599752, gpib: closing minor 0 > [502787.786004] gpib debug: pid 599752, gpib: closing minor 0 > > > > > > > ============== > read: > ============== > : r > enter maximum number of bytes to read [1024]: 100 > trying to read 100 bytes from device... > received string: '' > Number of bytes read: 0 > gpib status is: > ibsta = 0x8100 < ERR CMPL > > iberr= 0 > EDVR 0: OS error > > ibcntl = 5 > > > [502844.344638] gpib debug: pid 599797, gpib: opening minor 0 > [502844.344643] gpib debug: pid 599797, minor 0, ioctl 3, > interface=ni_usb_b, use=2, onl=1 > [502844.344645] gpib debug: pid 599797, incrementing open count for pad 1, > sad -96 > [502844.344647] gpib debug: pid 599797, minor 0, ioctl 26, > interface=ni_usb_b, use=2, onl=1 > [502844.344649] gpib debug: pid 599797, locked board 0 mutex > [502844.344651] gpib debug: pid 599797, minor 0, ioctl 5, > interface=ni_usb_b, use=2, onl=1 > [502844.344880] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x70 > [502844.344884] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 > [502844.345096] gpib debug: pid 599797, minor 0, ioctl 5, > interface=ni_usb_b, use=2, onl=1 > [502844.345345] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x70 > [502844.345348] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 > [502844.345598] gpib debug: pid 599797, minor 0, ioctl 26, > interface=ni_usb_b, use=2, onl=1 > [502844.345599] gpib debug: pid 599797, unlocked board 0 mutex > [502849.328222] gpib debug: pid 599797, minor 0, ioctl 26, > interface=ni_usb_b, use=2, onl=1 > [502849.328225] gpib debug: pid 599797, locked board 0 mutex > [502849.328230] gpib debug: pid 599797, minor 0, ioctl 19, > interface=ni_usb_b, use=2, onl=1 > [502849.328235] gpib debug: pid 599797, minor 0, ioctl 29, > interface=ni_usb_b, use=2, onl=1 > [502849.328239] gpib debug: pid 599797, minor 0, ioctl 29, > interface=ni_usb_b, use=2, onl=1 > [502849.328243] gpib debug: pid 599797, minor 0, ioctl 5, > interface=ni_usb_b, use=2, onl=1 > [502849.328533] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x70 > [502849.328540] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 > [502849.328839] gpib debug: pid 599797, minor 0, ioctl 17, > interface=ni_usb_b, use=2, onl=1 > [502849.328844] gpib debug: pid 599797, timeout set to 1000000 usec > [502849.328858] gpib debug: pid 599797, minor 0, ioctl 102, > interface=ni_usb_b, use=2, onl=1 > [502849.329060] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x70 > [502849.329065] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 > [502849.329568] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x70 > [502849.329581] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 > [502849.330936] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x74 > [502849.330943] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x74 > [502849.330955] gpib debug: pid 599797, minor 0, ioctl 17, > interface=ni_usb_b, use=2, onl=1 > [502849.330958] gpib debug: pid 599797, timeout set to 1000000 usec > [502849.330962] gpib debug: pid 599797, minor 0, ioctl 100, > interface=ni_usb_b, use=2, onl=1 > [502849.331218] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x74 > [502849.331232] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x74 > [502849.331783] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x74 > [502849.333574] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x20 > [502849.333904] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x20 > [502849.333910] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x20 > [502849.334309] > /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: > parse_board_ibrd_readback: unexpected data: register write status id=0x4, > expected 0x9 > [502849.334311] > /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: > parse_board_ibrd_readback: unexpected data: register write count=0, > expected 2 > [502849.334313] > /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: > received unexpected termination block > [502849.334315] expected: 0x4 0x0 0x0 0x0 > [502849.334316] received: 0x0 0x0 0x0 0x0 > [502849.334317] ni_usb_dump_raw_block: > > [502849.334319] 37 > [502849.334320] 0 > [502849.334320] d > [502849.334321] a > [502849.334322] 0 > [502849.334323] 0 > [502849.334324] 0 > [502849.334324] 0 > > [502849.334325] 0 > [502849.334326] 0 > [502849.334326] 0 > [502849.334327] 0 > [502849.334328] 0 > [502849.334329] 0 > [502849.334329] 0 > [502849.334330] 0 > > [502849.334331] 0 > [502849.334332] 0 > [502849.334332] 0 > [502849.334333] 0 > [502849.334334] 0 > [502849.334335] 0 > [502849.334335] 0 > [502849.334336] 0 > > [502849.334337] 0 > [502849.334338] 0 > [502849.334339] 0 > [502849.334339] 0 > [502849.334340] 0 > [502849.334341] 0 > [502849.334342] 0 > [502849.334343] 0 > > [502849.334344] 38 > [502849.334345] 20 > [502849.334345] 20 > [502849.334346] 0 > [502849.334347] 9e > [502849.334348] ff > [502849.334349] ff > [502849.334350] ff > > [502849.334351] e0 > [502849.334352] 2 > [502849.334352] 0 > [502849.334353] 0 > [502849.334354] 4 > [502849.334355] 0 > [502849.334356] 0 > [502849.334357] 0 > > [502849.334358] 0 > [502849.334359] 0 > [502849.334359] 0 > [502849.334360] 0 > [502849.334361] 0 > [502849.334362] 0 > [502849.334362] 0 > [502849.334363] 0 > > [502849.334365] 0 > > [502849.334368] > /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: > ni_usb_read: retval=-5 usb_bytes_read=48 > [502849.334383] gpib debug: pid 599797, minor 0, ioctl 5, > interface=ni_usb_b, use=2, onl=1 > [502849.334562] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x20 > [502849.334566] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x2020 > [502849.334815] gpib debug: pid 599797, minor 0, ioctl 5, > interface=ni_usb_b, use=2, onl=1 > [502849.335055] gpib debug: ni_usb_soft_update_status: > need_monitoring_bits=0x20 > [502849.335059] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x2020 > [502849.335334] gpib debug: pid 599797, minor 0, ioctl 26, > interface=ni_usb_b, use=2, onl=1 > [502849.335337] gpib debug: pid 599797, unlocked board 0 mutex > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
From: Mathias V. <ver...@gm...> - 2022-02-23 15:48:42
|
Hi all, I bought a NI GPIB-USB-HS and hoped that I could use it to control some old test equipment that I have gathered. I downloaded the linux-gpib-4.3.4.tar.gz and installed it. The kernel is "Linux 5.8.15-101.fc31.x86_64" I fixed the permissions for the /dev/gpib* devices and I am now in the process of figuring out the commands I need to control my gear. But sadly it is not working. I can do ibtest -> d -> 1 (1=address of a fluke 8842) Then I can send a clear command without a problem. (d) But nothing else works, no read, no write, All I get is "EDVR 0: OS error" I put debug on in the code and recompiled it, so now it generates some debug info. If there is anything that I can do to help this debugging let me know. You will find some debug info below. =============== /etc/gpib.conf: ================ interface { minor = 0 /* board index, minor = 0 uses /dev/gpib0, minor = 1 uses /dev/gpib1, etc. */ board_type = "ni_usb_b" /* type of interface board being used */ name = "gpib0" pad = 0 /* primary address of interface */ sad = 0 /* secondary address of interface */ timeout = T3s /* timeout for commands */ eos = 0xd /*eos = 0x0a EOS Byte, 0xa is newline and 0xd is carriage return */ set-reos = yes /* Terminate read if EOS */ set-bin = no /* Compare EOS 8-bit */ set-xeos = no /* Assert EOI whenever EOS byte is sent */ set-eot = yes /* Assert EOI with last byte on writes */ base = 0 /* Base io ADDRESS */ irq = 0 /* Interrupt request level */ dma = 0 /* DMA channel (zero disables) */ master = yes } device { minor = 0 name = "ps2520" pad = 6 sad = 0 } device { minor = 0 name = "8842" pad = 1 sad = 0 timeout = T30s } some debug output: ======================= plugging in the device: ======================= [502786.886538] usb 2-1.1: new high-speed USB device number 77 using ehci-pci [502787.202833] usb 2-1.1: config 1 interface 0 altsetting 0 endpoint 0x81 has an invalid bInterval 0, changing to 7 [502787.203329] usb 2-1.1: New USB device found, idVendor=3923, idProduct=709b, bcdDevice= 1.01 [502787.203331] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [502787.203332] usb 2-1.1: Product: GPIB-USB-HS [502787.203333] usb 2-1.1: Manufacturer: National Instruments [502787.203334] usb 2-1.1: SerialNumber: 016BF077 [502787.203740] ni_usb_gpib: probe succeeded for path: usb-0000:00:1d.0-1.1 [502787.772124] gpib debug: pid 599752, gpib: opening minor 0 [502787.772130] gpib debug: pid 599752, minor 0, ioctl 39, interface=ni_usb_b, use=2, onl=1 [502787.772163] gpib debug: autospoll wait satisfied [502787.772164] gpib0: exiting autospoll thread [502787.772206] gpib debug: gpib: board offline [502787.772210] gpib debug: pid 599752, minor 0, ioctl 24, interface=ni_usb_b, use=2, onl=0 [502787.772213] gpib debug: pid 599752, minor 0, ioctl 21, interface=ni_usb_b, use=2, onl=0 [502787.772215] gpib debug: pid 599752, minor 0, ioctl 22, interface=ni_usb_b, use=2, onl=0 [502787.772217] gpib debug: pid 599752, minor 0, ioctl 23, interface=ni_usb_b, use=2, onl=0 [502787.772219] gpib debug: pid 599752, minor 0, ioctl 15, interface=ni_usb_b, use=2, onl=0 [502787.772220] gpib debug: set primary addr to 0 [502787.772222] gpib debug: pid 599752, minor 0, ioctl 16, interface=ni_usb_b, use=2, onl=0 [502787.772223] gpib debug: set secondary addr to -96 [502787.772225] gpib debug: pid 599752, minor 0, ioctl 32, interface=ni_usb_b, use=2, onl=0 [502787.772227] gpib debug: pid 599752, minor 0, ioctl 43, interface=ni_usb_b, use=2, onl=0 [502787.772236] gpib debug: pid 599752, minor 0, ioctl 39, interface=ni_usb_b, use=2, onl=0 [502787.772240] ni_usb_gpib: attach [502787.772245] usb 2-1.1: bus 2 dev num 77 attached to gpib minor 0, NI usb interface 0 [502787.772355] product id=0x709b [502787.772755] ni_usb_hs_wait_for_ready: board serial number is 0x16bf077 [502787.774491] gpib debug: /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: ni_usb_hs_wait_for_ready exit retval=0 [502787.776619] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x10ff [502787.778397] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x0 [502787.780250] gpib debug: gpib: board online [502787.780253] gpib debug: entering autospoll thread [502787.781149] gpib debug: pid 599752, gpib: opening minor 0 [502787.781165] gpib debug: pid 599752, minor 0, ioctl 26, interface=ni_usb_b, use=3, onl=1 [502787.781168] gpib debug: pid 599752, locked board 0 mutex [502787.781174] gpib debug: pid 599752, minor 0, ioctl 34, interface=ni_usb_b, use=3, onl=1 [502787.781494] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x0 [502787.781499] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x0 [502787.781514] gpib debug: pid 599752, minor 0, ioctl 5, interface=ni_usb_b, use=3, onl=1 [502787.781869] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x0 [502787.781870] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x0 [502787.782089] gpib debug: pid 599752, minor 0, ioctl 26, interface=ni_usb_b, use=3, onl=1 [502787.782092] gpib debug: pid 599752, unlocked board 0 mutex [502787.782105] gpib debug: pid 599752, minor 0, ioctl 26, interface=ni_usb_b, use=3, onl=1 [502787.782107] gpib debug: pid 599752, locked board 0 mutex [502787.782111] gpib debug: pid 599752, minor 0, ioctl 29, interface=ni_usb_b, use=3, onl=1 [502787.782116] gpib debug: pid 599752, minor 0, ioctl 9, interface=ni_usb_b, use=3, onl=1 [502787.782118] gpib debug: sending interface clear [502787.782325] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x30 [502787.782330] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x30 [502787.783461] gpib debug: pid 599752, minor 0, ioctl 5, interface=ni_usb_b, use=3, onl=1 [502787.783716] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x30 [502787.783724] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x30 [502787.783978] gpib debug: pid 599752, minor 0, ioctl 26, interface=ni_usb_b, use=3, onl=1 [502787.783981] gpib debug: pid 599752, unlocked board 0 mutex [502787.783995] gpib debug: pid 599752, minor 0, ioctl 26, interface=ni_usb_b, use=3, onl=1 [502787.783998] gpib debug: pid 599752, locked board 0 mutex [502787.784007] gpib debug: pid 599752, minor 0, ioctl 29, interface=ni_usb_b, use=3, onl=1 [502787.784014] gpib debug: pid 599752, minor 0, ioctl 10, interface=ni_usb_b, use=3, onl=1 [502787.784211] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x70 [502787.784216] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 [502787.784225] gpib debug: pid 599752, minor 0, ioctl 5, interface=ni_usb_b, use=3, onl=1 [502787.785505] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x70 [502787.785512] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 [502787.785730] gpib debug: pid 599752, minor 0, ioctl 26, interface=ni_usb_b, use=3, onl=1 [502787.785734] gpib debug: pid 599752, unlocked board 0 mutex [502787.785749] gpib debug: pid 599752, gpib: closing minor 0 [502787.786004] gpib debug: pid 599752, gpib: closing minor 0 ============== read: ============== : r enter maximum number of bytes to read [1024]: 100 trying to read 100 bytes from device... received string: '' Number of bytes read: 0 gpib status is: ibsta = 0x8100 < ERR CMPL > iberr= 0 EDVR 0: OS error ibcntl = 5 [502844.344638] gpib debug: pid 599797, gpib: opening minor 0 [502844.344643] gpib debug: pid 599797, minor 0, ioctl 3, interface=ni_usb_b, use=2, onl=1 [502844.344645] gpib debug: pid 599797, incrementing open count for pad 1, sad -96 [502844.344647] gpib debug: pid 599797, minor 0, ioctl 26, interface=ni_usb_b, use=2, onl=1 [502844.344649] gpib debug: pid 599797, locked board 0 mutex [502844.344651] gpib debug: pid 599797, minor 0, ioctl 5, interface=ni_usb_b, use=2, onl=1 [502844.344880] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x70 [502844.344884] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 [502844.345096] gpib debug: pid 599797, minor 0, ioctl 5, interface=ni_usb_b, use=2, onl=1 [502844.345345] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x70 [502844.345348] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 [502844.345598] gpib debug: pid 599797, minor 0, ioctl 26, interface=ni_usb_b, use=2, onl=1 [502844.345599] gpib debug: pid 599797, unlocked board 0 mutex [502849.328222] gpib debug: pid 599797, minor 0, ioctl 26, interface=ni_usb_b, use=2, onl=1 [502849.328225] gpib debug: pid 599797, locked board 0 mutex [502849.328230] gpib debug: pid 599797, minor 0, ioctl 19, interface=ni_usb_b, use=2, onl=1 [502849.328235] gpib debug: pid 599797, minor 0, ioctl 29, interface=ni_usb_b, use=2, onl=1 [502849.328239] gpib debug: pid 599797, minor 0, ioctl 29, interface=ni_usb_b, use=2, onl=1 [502849.328243] gpib debug: pid 599797, minor 0, ioctl 5, interface=ni_usb_b, use=2, onl=1 [502849.328533] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x70 [502849.328540] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 [502849.328839] gpib debug: pid 599797, minor 0, ioctl 17, interface=ni_usb_b, use=2, onl=1 [502849.328844] gpib debug: pid 599797, timeout set to 1000000 usec [502849.328858] gpib debug: pid 599797, minor 0, ioctl 102, interface=ni_usb_b, use=2, onl=1 [502849.329060] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x70 [502849.329065] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 [502849.329568] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x70 [502849.329581] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x70 [502849.330936] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x74 [502849.330943] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x74 [502849.330955] gpib debug: pid 599797, minor 0, ioctl 17, interface=ni_usb_b, use=2, onl=1 [502849.330958] gpib debug: pid 599797, timeout set to 1000000 usec [502849.330962] gpib debug: pid 599797, minor 0, ioctl 100, interface=ni_usb_b, use=2, onl=1 [502849.331218] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x74 [502849.331232] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x74 [502849.331783] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x74 [502849.333574] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x20 [502849.333904] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x20 [502849.333910] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x20 [502849.334309] /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: parse_board_ibrd_readback: unexpected data: register write status id=0x4, expected 0x9 [502849.334311] /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: parse_board_ibrd_readback: unexpected data: register write count=0, expected 2 [502849.334313] /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: received unexpected termination block [502849.334315] expected: 0x4 0x0 0x0 0x0 [502849.334316] received: 0x0 0x0 0x0 0x0 [502849.334317] ni_usb_dump_raw_block: [502849.334319] 37 [502849.334320] 0 [502849.334320] d [502849.334321] a [502849.334322] 0 [502849.334323] 0 [502849.334324] 0 [502849.334324] 0 [502849.334325] 0 [502849.334326] 0 [502849.334326] 0 [502849.334327] 0 [502849.334328] 0 [502849.334329] 0 [502849.334329] 0 [502849.334330] 0 [502849.334331] 0 [502849.334332] 0 [502849.334332] 0 [502849.334333] 0 [502849.334334] 0 [502849.334335] 0 [502849.334335] 0 [502849.334336] 0 [502849.334337] 0 [502849.334338] 0 [502849.334339] 0 [502849.334339] 0 [502849.334340] 0 [502849.334341] 0 [502849.334342] 0 [502849.334343] 0 [502849.334344] 38 [502849.334345] 20 [502849.334345] 20 [502849.334346] 0 [502849.334347] 9e [502849.334348] ff [502849.334349] ff [502849.334350] ff [502849.334351] e0 [502849.334352] 2 [502849.334352] 0 [502849.334353] 0 [502849.334354] 4 [502849.334355] 0 [502849.334356] 0 [502849.334357] 0 [502849.334358] 0 [502849.334359] 0 [502849.334359] 0 [502849.334360] 0 [502849.334361] 0 [502849.334362] 0 [502849.334362] 0 [502849.334363] 0 [502849.334365] 0 [502849.334368] /opt/software/linux-gpib/linux-gpib-code/linux-gpib-kernel/drivers/gpib/ni_usb/ni_usb_gpib.c: ni_usb_read: retval=-5 usb_bytes_read=48 [502849.334383] gpib debug: pid 599797, minor 0, ioctl 5, interface=ni_usb_b, use=2, onl=1 [502849.334562] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x20 [502849.334566] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x2020 [502849.334815] gpib debug: pid 599797, minor 0, ioctl 5, interface=ni_usb_b, use=2, onl=1 [502849.335055] gpib debug: ni_usb_soft_update_status: need_monitoring_bits=0x20 [502849.335059] gpib debug: ni_usb_soft_update_status: ni_usb_ibsta=0x2020 [502849.335334] gpib debug: pid 599797, minor 0, ioctl 26, interface=ni_usb_b, use=2, onl=1 [502849.335337] gpib debug: pid 599797, unlocked board 0 mutex |
From: Anders G. <And...@pe...> - 2022-02-23 09:33:45
|
I have a LWLA1016 that works very well with Sigrok, but at 100MHz I can capture approx 110ms. I am debugging an issue in my diskemulator, or one version thereof, that only happens somewhere when RTE-A boots on my HP1000 A400. So the amount of data is about 64-128k bytes of GPIB data. -- Med vänlig hälsning Anders Gustafsson, ingenjör and...@pe... | Support +358 18 12060 | Direkt +358 9 315 45 121 | Mobil +358 40506 7099 Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND >>> dave penkler <dpe...@gm...> 2022-02-23 11:29 >>> Depending on how deep and fast you need to go an inexpensive usb logic analyser could do the trick. On linux I use an LA2016 analyser from qdkingst.com < $150 for gpib protocol debugging which has a nice qt based interface. On Wed, 23 Feb 2022 at 07:48, Anders Gustafsson <And...@pe...> wrote: > OK. Yes. I know about the NI Analyser, but I have yet been unable to find > out what memory depth it supports. I > know that some chips have a passthrough register that lets you sample the > bus, but then again could you just > as easily use the parallell port, but the problem there is reading it fast > enough. > > -- > Med vänlig hälsning > > Anders Gustafsson, ingenjör > and...@pe... | Support +358 18 12060 | Direkt +358 9 > 315 45 121 | Mobil +358 40506 7099 > > Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND > > > > >>> Frank Mori Hess <fm...@gm...> 2022-02-22 21:12 >>> > Linux-gpib doesn't support bus analyzer features. The NI gpib-usb-hs+ > has bus analyzer features but I never bothered to reverse engineer how > the protocol works. Most gpib chips (nec7210 etc) do not allow you to > capture every command byte. > > On Thu, Feb 17, 2022 at 5:16 AM Anders Gustafsson > <And...@pe...> wrote: > > > > I just thought I'd ask here for pointers. I have downloaded Linux-GPIB > and spelunked around in the code. > > > > What I would like to do is to capture individual bytes and store them in > a file. I need this to verify an > > application. That is I would like for the card to be listening to all > traffic and just grab the bytes, > > regardless of addressing and whether ATN is asserted or not. > > > > What would be the best way to go about this? Can it be done through an > IOCTL call? > > > > -- > > Med vänlig hälsning > > > > Anders Gustafsson, ingenjör > > and...@pe... | Support +358 18 12060 | Direkt +358 9 > 315 45 121 | Mobil +358 40506 > 7099 > > > > Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND > > > > > > > > > > _______________________________________________ > > Linux-gpib-general mailing list > > Lin...@li... > > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > > > > -- > Frank > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
From: dave p. <dpe...@gm...> - 2022-02-23 09:30:12
|
Depending on how deep and fast you need to go an inexpensive usb logic analyser could do the trick. On linux I use an LA2016 analyser from qdkingst.com < $150 for gpib protocol debugging which has a nice qt based interface. On Wed, 23 Feb 2022 at 07:48, Anders Gustafsson <And...@pe...> wrote: > OK. Yes. I know about the NI Analyser, but I have yet been unable to find > out what memory depth it supports. I > know that some chips have a passthrough register that lets you sample the > bus, but then again could you just > as easily use the parallell port, but the problem there is reading it fast > enough. > > -- > Med vänlig hälsning > > Anders Gustafsson, ingenjör > and...@pe... | Support +358 18 12060 | Direkt +358 9 > 315 45 121 | Mobil +358 40506 7099 > > Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND > > > > >>> Frank Mori Hess <fm...@gm...> 2022-02-22 21:12 >>> > Linux-gpib doesn't support bus analyzer features. The NI gpib-usb-hs+ > has bus analyzer features but I never bothered to reverse engineer how > the protocol works. Most gpib chips (nec7210 etc) do not allow you to > capture every command byte. > > On Thu, Feb 17, 2022 at 5:16 AM Anders Gustafsson > <And...@pe...> wrote: > > > > I just thought I'd ask here for pointers. I have downloaded Linux-GPIB > and spelunked around in the code. > > > > What I would like to do is to capture individual bytes and store them in > a file. I need this to verify an > > application. That is I would like for the card to be listening to all > traffic and just grab the bytes, > > regardless of addressing and whether ATN is asserted or not. > > > > What would be the best way to go about this? Can it be done through an > IOCTL call? > > > > -- > > Med vänlig hälsning > > > > Anders Gustafsson, ingenjör > > and...@pe... | Support +358 18 12060 | Direkt +358 9 > 315 45 121 | Mobil +358 40506 > 7099 > > > > Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND > > > > > > > > > > _______________________________________________ > > Linux-gpib-general mailing list > > Lin...@li... > > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > > > > -- > Frank > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
From: Anders G. <And...@pe...> - 2022-02-23 06:47:57
|
OK. Yes. I know about the NI Analyser, but I have yet been unable to find out what memory depth it supports. I know that some chips have a passthrough register that lets you sample the bus, but then again could you just as easily use the parallell port, but the problem there is reading it fast enough. -- Med vänlig hälsning Anders Gustafsson, ingenjör and...@pe... | Support +358 18 12060 | Direkt +358 9 315 45 121 | Mobil +358 40506 7099 Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND >>> Frank Mori Hess <fm...@gm...> 2022-02-22 21:12 >>> Linux-gpib doesn't support bus analyzer features. The NI gpib-usb-hs+ has bus analyzer features but I never bothered to reverse engineer how the protocol works. Most gpib chips (nec7210 etc) do not allow you to capture every command byte. On Thu, Feb 17, 2022 at 5:16 AM Anders Gustafsson <And...@pe...> wrote: > > I just thought I'd ask here for pointers. I have downloaded Linux-GPIB and spelunked around in the code. > > What I would like to do is to capture individual bytes and store them in a file. I need this to verify an > application. That is I would like for the card to be listening to all traffic and just grab the bytes, > regardless of addressing and whether ATN is asserted or not. > > What would be the best way to go about this? Can it be done through an IOCTL call? > > -- > Med vänlig hälsning > > Anders Gustafsson, ingenjör > and...@pe... | Support +358 18 12060 | Direkt +358 9 315 45 121 | Mobil +358 40506 7099 > > Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND > > > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general -- Frank |
From: Frank M. H. <fm...@gm...> - 2022-02-22 19:12:50
|
Linux-gpib doesn't support bus analyzer features. The NI gpib-usb-hs+ has bus analyzer features but I never bothered to reverse engineer how the protocol works. Most gpib chips (nec7210 etc) do not allow you to capture every command byte. On Thu, Feb 17, 2022 at 5:16 AM Anders Gustafsson <And...@pe...> wrote: > > I just thought I'd ask here for pointers. I have downloaded Linux-GPIB and spelunked around in the code. > > What I would like to do is to capture individual bytes and store them in a file. I need this to verify an > application. That is I would like for the card to be listening to all traffic and just grab the bytes, > regardless of addressing and whether ATN is asserted or not. > > What would be the best way to go about this? Can it be done through an IOCTL call? > > -- > Med vänlig hälsning > > Anders Gustafsson, ingenjör > and...@pe... | Support +358 18 12060 | Direkt +358 9 315 45 121 | Mobil +358 40506 7099 > > Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND > > > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general -- Frank |
From: Anders G. <And...@pe...> - 2022-02-17 10:15:36
|
I just thought I'd ask here for pointers. I have downloaded Linux-GPIB and spelunked around in the code. What I would like to do is to capture individual bytes and store them in a file. I need this to verify an application. That is I would like for the card to be listening to all traffic and just grab the bytes, regardless of addressing and whether ATN is asserted or not. What would be the best way to go about this? Can it be done through an IOCTL call? -- Med vänlig hälsning Anders Gustafsson, ingenjör and...@pe... | Support +358 18 12060 | Direkt +358 9 315 45 121 | Mobil +358 40506 7099 Pedago interaktiv ab, Nygatan 7 B , AX-22100 MARIEHAMN, ÅLAND, FINLAND |
From: dave p. <dpe...@gm...> - 2022-01-24 17:56:10
|
On Mon, 24 Jan 2022 at 16:01, Matt Huszagh <hus...@gm...> wrote: > dave penkler <dpe...@gm...> writes: > > > It looks like your setup is still using the default gpib.conf file which > > indeed calls the board by the name "violet". > > If you run gpib_config with a gpib.conf argument different from the > > --sysconfdir path used in your build (default /usr/local/etc) you must > set > > the IB_CONFIG environment variable. > > > > This worked for me: > > > > $ sudo gpib_config -f /home/dave/gpib/gpib.conf > > $ export IB_CONFIG=/home/dave/gpib/gpib.conf > > $ ibtest > > Do you wish to open a (d)evice or an interface (b)oard? > > (you probably want to open a device): b > > enter name of interface board (or device) you wish to open: gpib0 > > trying to open board named 'gpib0' > > You can: > > w(a)it for an event > > write (c)ommand bytes to bus (system controller only) > > send (d)evice clear (device only) > > change remote (e)nable line (system controller only) > > (g)o to standby (release ATN line, system controller only) > > send (i)nterface clear (system controller only) > > ... etc > > > > The default file in my setup in /etc also has "violet" as the board name. > > Not sure why it is not working for you. > > Thanks for the response Dave. > > Unfortunately this is what I tried. Do I possibly need to reload the > kernel module? > > No, that has no effect. The default gpib.conf file (from the template, not the one I select with > IB_CONFIG or gpib_config -f) is read-only on my distribution. Is it ok > that linux-gpib cannot edit this file? > > Yes, it is used only for reading Also, I tried patching linux-gpib to substitute the template > configuration for my own configuration. This achieved the desired > result, but it's not a great solution. > > I can only think that there is an issue with the environment variable IB_CONFIG. Perhaps you can add some printf statements in linux-gpib-user-4.3.4/lib/ibutil.c in the function ibParseConfigFile() line 157 to print out the actual filename it is using and check that it is taking the environment variable into account. You will of course need to rebuild and install the library before testing it. cheers, -Dave |
From: Matt H. <hus...@gm...> - 2022-01-24 15:01:21
|
dave penkler <dpe...@gm...> writes: > It looks like your setup is still using the default gpib.conf file which > indeed calls the board by the name "violet". > If you run gpib_config with a gpib.conf argument different from the > --sysconfdir path used in your build (default /usr/local/etc) you must set > the IB_CONFIG environment variable. > > This worked for me: > > $ sudo gpib_config -f /home/dave/gpib/gpib.conf > $ export IB_CONFIG=/home/dave/gpib/gpib.conf > $ ibtest > Do you wish to open a (d)evice or an interface (b)oard? > (you probably want to open a device): b > enter name of interface board (or device) you wish to open: gpib0 > trying to open board named 'gpib0' > You can: > w(a)it for an event > write (c)ommand bytes to bus (system controller only) > send (d)evice clear (device only) > change remote (e)nable line (system controller only) > (g)o to standby (release ATN line, system controller only) > send (i)nterface clear (system controller only) > ... etc > > The default file in my setup in /etc also has "violet" as the board name. > Not sure why it is not working for you. Thanks for the response Dave. Unfortunately this is what I tried. Do I possibly need to reload the kernel module? The default gpib.conf file (from the template, not the one I select with IB_CONFIG or gpib_config -f) is read-only on my distribution. Is it ok that linux-gpib cannot edit this file? Also, I tried patching linux-gpib to substitute the template configuration for my own configuration. This achieved the desired result, but it's not a great solution. Matt |
From: dave p. <dpe...@gm...> - 2022-01-24 09:19:10
|
Hi Matt, It looks like your setup is still using the default gpib.conf file which indeed calls the board by the name "violet". If you run gpib_config with a gpib.conf argument different from the --sysconfdir path used in your build (default /usr/local/etc) you must set the IB_CONFIG environment variable. This worked for me: $ sudo gpib_config -f /home/dave/gpib/gpib.conf $ export IB_CONFIG=/home/dave/gpib/gpib.conf $ ibtest Do you wish to open a (d)evice or an interface (b)oard? (you probably want to open a device): b enter name of interface board (or device) you wish to open: gpib0 trying to open board named 'gpib0' You can: w(a)it for an event write (c)ommand bytes to bus (system controller only) send (d)evice clear (device only) change remote (e)nable line (system controller only) (g)o to standby (release ATN line, system controller only) send (i)nterface clear (system controller only) ... etc The default file in my setup in /etc also has "violet" as the board name. Not sure why it is not working for you. cheers, -Dave On Mon, 24 Jan 2022 at 02:50, Matt Huszagh <hus...@gm...> wrote: > Hello, > > I'm having trouble updating my configuration file and getting linux-gpib > to recognize the new configuration. My configuration file (for an NI > PCIe GPIB) is > > ``` > interface { > minor = 0 > board_type = "ni_pci" > name = "gpib0" > pad = 21 > master = yes > pci_bus = 7 > pci_slot = 12 > } > ``` > > Running gpib_config seems to work fine. I run > > ``` > sudo gpib_config -f /home/matt/.config/linux-gpib/gpib.conf > ``` > > which exits without error. dmesg shows the following: > > ``` > $ dmesg | tail > [163957.741639] gpib0: exiting autospoll thread > [163957.741787] mite: 0xf7504000 mapped to 0000000033271221 > [163957.741795] mite: daq: 0xf7500000 mapped to 00000000d3bfa315 > [163957.741811] tnt4882: irq 24 > ``` > > However, then running ibtest fails to open the gpib0 board: > > ``` > $ sudo ibtest > Do you wish to open a (d)evice or an interface (b)oard? > (you probably want to open a device): b > enter name of interface board (or device) you wish to open: gpib0 > trying to open board named 'gpib0' > failed to open board > ``` > > But, if I use the name "violet", which is the name for the interface > with minor 0 in the template configuration file, it appears to work > fine. > > ``` > enter name of interface board (or device) you wish to open: violet > trying to open board named 'violet' > You can: > w(a)it for an event > write (c)ommand bytes to bus (system controller only) > send (d)evice clear (device only) > change remote (e)nable line (system controller only) > (g)o to standby (release ATN line, system controller only) > send (i)nterface clear (system controller only) > ta(k)e control (assert ATN line, system controller only) > get bus (l)ine status (board only) > go to local (m)ode > change end (o)f transmission configuration > (q)uit > (r)ead string > perform (s)erial poll (device only) > change (t)imeout on io operations > request ser(v)ice (board only) > (w)rite data string > send group e(x)ecute trigger (device only) > : l > DAV off > NDAC on > NRFD off > IFC off > REN on > SRQ off > ATN on > EOI off > gpib status is: > ibsta = 0x130 < CMPL CIC ATN > > iberr= 0 > > ibcntl = 0 > ``` > > When I run ibtest, does it load the configuration from the configuration > file, or does gpib_config load the data that is then used by ibtest? > > I thought it was possibly reloading the config, so I set IB_CONFIG: > > ``` > $ echo $IB_CONFIG > /home/matt/.config/linux-gpib/gpib.conf > ``` > > But ibtest still only responds to violet. > > What am I doing wrong here? > > Thanks > Matt > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
From: Matt H. <hus...@gm...> - 2022-01-24 01:49:44
|
Hello, I'm having trouble updating my configuration file and getting linux-gpib to recognize the new configuration. My configuration file (for an NI PCIe GPIB) is ``` interface { minor = 0 board_type = "ni_pci" name = "gpib0" pad = 21 master = yes pci_bus = 7 pci_slot = 12 } ``` Running gpib_config seems to work fine. I run ``` sudo gpib_config -f /home/matt/.config/linux-gpib/gpib.conf ``` which exits without error. dmesg shows the following: ``` $ dmesg | tail [163957.741639] gpib0: exiting autospoll thread [163957.741787] mite: 0xf7504000 mapped to 0000000033271221 [163957.741795] mite: daq: 0xf7500000 mapped to 00000000d3bfa315 [163957.741811] tnt4882: irq 24 ``` However, then running ibtest fails to open the gpib0 board: ``` $ sudo ibtest Do you wish to open a (d)evice or an interface (b)oard? (you probably want to open a device): b enter name of interface board (or device) you wish to open: gpib0 trying to open board named 'gpib0' failed to open board ``` But, if I use the name "violet", which is the name for the interface with minor 0 in the template configuration file, it appears to work fine. ``` enter name of interface board (or device) you wish to open: violet trying to open board named 'violet' You can: w(a)it for an event write (c)ommand bytes to bus (system controller only) send (d)evice clear (device only) change remote (e)nable line (system controller only) (g)o to standby (release ATN line, system controller only) send (i)nterface clear (system controller only) ta(k)e control (assert ATN line, system controller only) get bus (l)ine status (board only) go to local (m)ode change end (o)f transmission configuration (q)uit (r)ead string perform (s)erial poll (device only) change (t)imeout on io operations request ser(v)ice (board only) (w)rite data string send group e(x)ecute trigger (device only) : l DAV off NDAC on NRFD off IFC off REN on SRQ off ATN on EOI off gpib status is: ibsta = 0x130 < CMPL CIC ATN > iberr= 0 ibcntl = 0 ``` When I run ibtest, does it load the configuration from the configuration file, or does gpib_config load the data that is then used by ibtest? I thought it was possibly reloading the config, so I set IB_CONFIG: ``` $ echo $IB_CONFIG /home/matt/.config/linux-gpib/gpib.conf ``` But ibtest still only responds to violet. What am I doing wrong here? Thanks Matt |
From: Søren K. <sq...@dt...> - 2022-01-03 12:28:06
|
Hi list. We also have a publicly available system which communicates fine with Keithley multimeters (and in the past has worked fine with 2000's although we have phased those out for 2700's as the 2000's are not produced anymore 😊) It can be downloaded from here: https://www.elchemea.com/gpib/ It has not been tested with a RPi, but as it is written in pure C it should work assuming the linux-gpib driver can be installed best regards Søren Koch Senior Development Engineer Mob: +45 21325247 sq...@dt... Fysikvej Building 310 2800 Kgs. Lyngby ________________________________ From: Julien Salort <li...@sa...> Sent: Friday, December 24, 2021 7:44:22 PM To: lin...@li... Subject: [Warning Possible spam] Re: [Linux-gpib-general] RSQ example help Le 20/12/2021 à 21:47, lucas a écrit : > i've successfully installed and tested linux-gpib on a raspberry pi 4+b > with a NI-GPIB-USB-HS dongle and communicating with a Keithley 2000 DMM > instrument using python 3. should be fairly common and pervasive i > have python sending *idn? and receiving the proper instrument response, > "KEITHLEY INSTRUMENT INC., MODEL 2000, ..." etc. so that much is > working well. Hello, We've made public the code that we use in our lab. It may or may not suit your needs. The code is here for the Keithley 2700. I no longer have a Keithley 2000, so I haven't tried with this model for some time. <https://fluiddyn.readthedocs.io/projects/fluidlab/en/latest/generated/fluidlab.instruments.multiplexer.keithley_2700.html#module-fluidlab.instruments.multiplexer.keithley_2700> Cheers, Julien _______________________________________________ Linux-gpib-general mailing list Lin...@li... https://lists.sourceforge.net/lists/listinfo/linux-gpib-general |
From: Julien S. <li...@sa...> - 2021-12-24 19:03:07
|
Le 20/12/2021 à 21:47, lucas a écrit : > i've successfully installed and tested linux-gpib on a raspberry pi 4+b > with a NI-GPIB-USB-HS dongle and communicating with a Keithley 2000 DMM > instrument using python 3. should be fairly common and pervasive i > have python sending *idn? and receiving the proper instrument response, > "KEITHLEY INSTRUMENT INC., MODEL 2000, ..." etc. so that much is > working well. Hello, We've made public the code that we use in our lab. It may or may not suit your needs. The code is here for the Keithley 2700. I no longer have a Keithley 2000, so I haven't tried with this model for some time. <https://fluiddyn.readthedocs.io/projects/fluidlab/en/latest/generated/fluidlab.instruments.multiplexer.keithley_2700.html#module-fluidlab.instruments.multiplexer.keithley_2700> Cheers, Julien |
From: Wilhelm K. <ku...@t-...> - 2021-12-21 20:00:26
|
Hello Lucas, I'm using linux-gpib with python 3 on my laptop with Ubuntu 20.04. I have also the DMM Keithley Model 2000. Because this device is able to understand SCPI I used the following code to read out the stored data: def read_buffer(geraetename, var): Werte = [] Board = gpib.find("USB-GPIB") # find interface address in gpib.config and assign it to Board Name = gpib.find(geraetename) # find device address in gpib.config and assign it to Name gpib.timeout(Name,0) # set Timeout to 'never timeout' gpib.write(Name,":DATA:DATA?") # ask for data String = gpib.read(Name,var*16) # read data and assign it to String gpib.wait(Board, 0x100) # wait until I/O-Operation complete i=1 while i<=var: Werte.append(float(String[(i-1)*16:(i-1)*16+15])) i=i+1 return Werte With the functions: def clear_buffer(geraetename): Name = gpib.find(geraetename) gpib.write(Name,":DATA:CLEAR") def set_buffer_size(geraetename, var): Name = gpib.find(geraetename) cmd = "" if var>1: if var<1025: cmd=":DATA:POINTS "+str(var) gpib.write(Name,cmd) you can clear and set the buffer. But I have to say, that these were my first tries to program the Keithley Model 2000. It works but it is not a very good programming technique. I searched for better solutions and found the python-ivi project from Alex Forencich. For me it's the best approach to use measurement equipment with python (see https://alexforencich.com/wiki/en/python-ivi/start). I started to write a python-ivi driver for the Keithley Model 2000. It is like this: """ Python Interchangeable Virtual Instrument Library Copyright (c) 2012-2014 Alex Forencich, 2021 Wilhelm Kusian Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ from .. import ivi from .. import dmm from .. import scpi # for Keithley 2000 individualized Tupel MeasurementAverageMapping = { 'dc_volts': 'volt:dc:average:state', 'ac_volts': 'volt:ac:average:state', 'dc_current': 'curr:dc:average:state', 'ac_current': 'curr:ac:average:state', 'two_wire_resistance': 'res:average:state', 'four_wire_resistance': 'fres:average:state'} MeasurementConfigureMapping = { 'dc_volts': 'configure:volt:dc', 'ac_volts': 'configure:volt:ac', 'dc_current': 'configure:curr:dc', 'ac_current': 'configure:curr:ac', 'two_wire_resistance': 'configure:res', 'four_wire_resistance': 'configure:fres'} MeasurementIntTimeMapping = { 'dc_volts': 'volt:dc:nplcycles', 'ac_volts': 'volt:ac:nplcycles', 'dc_current': 'curr:dc:nplcycles', 'ac_current': 'curr:ac:nplcycles', 'two_wire_resistance': 'res:nplcycles', 'four_wire_resistance': 'fres:nplcycles'} MeasurementRangeMapping = { 'dc_volts': 'volt:dc:range', 'ac_volts': 'volt:ac:range', 'dc_current': 'curr:dc:range', 'ac_current': 'curr:ac:range', 'two_wire_resistance': 'res:range', 'four_wire_resistance': 'fres:range'} TriggerSourceMapping = { 'bus': 'bus', 'external': 'ext', 'immediate': 'imm', 'timer': 'tim', 'manual': 'man'} class keithley2000(scpi.dmm.Base, scpi.dmm.MultiPoint, scpi.dmm.SoftwareTrigger): "Keithley 2000 IVI DMM driver" def __init__(self, *args, **kwargs): self.__dict__.setdefault('_instrument_id', '2000') super(keithley2000, self).__init__(*args, **kwargs) self._identity_description = "Keithley 2000 IVI DMM driver" self._identity_identifier = "" self._identity_revision = "" self._identity_vendor = "" self._identity_instrument_manufacturer = "Keithley" self._identity_instrument_model = "" self._identity_instrument_firmware_revision = "" self._identity_specification_major_version = 1 self._identity_specification_minor_version = 0 self._identity_supported_instrument_models = ['2000'] self._add_property('average', # additional property to set the filter function self._get_average, self._set_average) self._add_property('int_time', # additional property to set the integration time self._get_int_time, self._set_int_time) self._add_property('continuous', # additional property to set the continuous function, i.e. take out of the idle state self._get_continuous, self._set_continuous) def _initialize(self, resource = None, id_query = False, reset = False, **keywargs): "Opens an I/O session to the instrument." super(keithley2000, self)._initialize(resource, id_query, reset, **keywargs) # interface clear if not self._driver_operation_simulate: self._clear() # check ID if id_query and not self._driver_operation_simulate: id = self.identity.instrument_model id_check = self._instrument_id id_short = id[:len(id_check)] if id_short != id_check: raise Exception("Instrument ID mismatch, expecting %s, got %s", id_check, id_short) # reset if reset: self.utility.reset() def _get_average(self): if not self._driver_operation_simulate and not self._get_cache_valid(): func = self._get_measurement_function() if func in MeasurementAverageMapping: cmd = MeasurementAverageMapping[func] value = int(self._ask("%s?" % (cmd))) if value == 0: value = 'off' elif value == 1: value = 'on' self._average = value self._set_cache_valid() return self._average def _set_average(self, value): if value not in dmm.Auto2: raise ivi.ValueNotSupportedException() if not self._driver_operation_simulate: func = self._get_measurement_function() if func in MeasurementAverageMapping: cmd = MeasurementAverageMapping[func] self._write("%s %d" % (cmd, int(value == 'on'))) self._average = value self._set_cache_valid() def _get_int_time(self): if not self._driver_operation_simulate and not self._get_cache_valid(): func = self._get_measurement_function() if func in MeasurementIntTimeMapping: cmd = MeasurementIntTimeMapping[func] value = float(self._ask("%s?" % (cmd))) self._int_time = value*0.02 # power line cycles back converted to time value in 's' self._set_cache_valid() return self._int_time def _set_int_time(self, value): if value > 0.2: value = 0.2 if value < 0.0002: value = 0.0002 if not self._driver_operation_simulate: func = self._get_measurement_function() if func in MeasurementIntTimeMapping: cmd = MeasurementIntTimeMapping[func] self._write("%s %g" % (cmd, value/0.02)) # time value in 's' converted to power line cycles self._int_time = value self._set_cache_valid() def _get_continuous(self): if not self._driver_operation_simulate and not self._get_cache_valid(): cmd = ':INITIATE:CONTINUOUS' value = int(self._ask("%s?" % (cmd))) if value == 0: value = 'off' elif value == 1: value = 'on' self._continuous = value self._set_cache_valid() return self._continuous def _set_continuous(self, value): if value not in dmm.Auto2: raise ivi.ValueNotSupportedException() if not self._driver_operation_simulate: cmd = ':INITIATE:CONTINUOUS' self._write("%s %d" % (cmd, int(value == 'on'))) self._continuous = value self._set_cache_valid() def _get_trigger_source(self): # own function necessary because Keithley 2000 has more trigger source options if not self._driver_operation_simulate and not self._get_cache_valid(): value = self._ask("trigger:source?").lower() value = [k for k,v in TriggerSourceMapping.items() if v==value][0] self._trigger_source = value self._set_cache_valid() return self._trigger_source def _set_trigger_source(self, value): if value not in TriggerSourceMapping: raise ivi.ValueNotSupportedException() if not self._driver_operation_simulate: self._write(":trigger:source %s" % TriggerSourceMapping[value]) self._trigger_source = value def _get_range(self): # own function necessary because no furthe calculation necessary if not self._driver_operation_simulate and not self._get_cache_valid(): func = self._get_measurement_function() if func in MeasurementRangeMapping: cmd = MeasurementRangeMapping[func] value = float(self._ask("%s?" % (cmd))) self._range = value self._set_cache_valid() return self._range def _set_range(self, value): value = float(value) if not self._driver_operation_simulate: func = self._get_measurement_function() if func in MeasurementRangeMapping: cmd = MeasurementRangeMapping[func] self._write("%s %g" % (cmd, value)) self._range = value self._set_cache_valid() def _configure(self, max_time): # own function necessary because configure has an own meaning for this device if not self._driver_operation_simulate: func = self._get_measurement_function() if func in MeasurementConfigureMapping: cmd = MeasurementConfigureMapping[func] self._write("%s" % (cmd)) return 0.0 This works fine for me. I'm sure the package of Alex already implemented to read out the buffer, but I haven't had tested it yet. Hope this helps you. Wilhelm Am 20.12.21 um 21:47 schrieb lucas: > hello all, > > i've successfully installed and tested linux-gpib on a raspberry pi > 4+b with a NI-GPIB-USB-HS dongle and communicating with a Keithley > 2000 DMM instrument using python 3. should be fairly common and > pervasive i have python sending *idn? and receiving the proper > instrument response, "KEITHLEY INSTRUMENT INC., MODEL 2000, ..." etc. > so that much is working well. > > i'd like to setup the dmm to assert and trigger 25 voltage measurement > and when complete, signal back to the waiting raspberry that it's > completed its 25 measurements, and then the computer can download > those 25 measurements and process the voltages accordingly. > > will anyone share or point to some python code where this works > properly under similar circumstances, linux-gpib, GPIB-USB-HS, python, > etc.???? especially how to setup the assert, trigger, and raspberry > wait steps. thank you for your time and effort. > > lucas > > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general |
From: lucas <sl...@iq...> - 2021-12-20 21:31:01
|
hello all, i've successfully installed and tested linux-gpib on a raspberry pi 4+b with a NI-GPIB-USB-HS dongle and communicating with a Keithley 2000 DMM instrument using python 3. should be fairly common and pervasive i have python sending *idn? and receiving the proper instrument response, "KEITHLEY INSTRUMENT INC., MODEL 2000, ..." etc. so that much is working well. i'd like to setup the dmm to assert and trigger 25 voltage measurement and when complete, signal back to the waiting raspberry that it's completed its 25 measurements, and then the computer can download those 25 measurements and process the voltages accordingly. will anyone share or point to some python code where this works properly under similar circumstances, linux-gpib, GPIB-USB-HS, python, etc.???? especially how to setup the assert, trigger, and raspberry wait steps. thank you for your time and effort. lucas |
From: Dirk <mai...@gm...> - 2021-10-14 18:40:18
|
Hello, Am 12.10.2021 um 12:06 schrieb marcello carla': > [...] > > 1) Browsing the URV5 user manual, I did not find the *IDN? among > the recognized command. If this is the case, no surprise there is > no response. Many devices that do not follow SCPI ignore the *IDN?. > May Dirk try some other command? Indeed that was a fault by me. The URV5 don´t know "*IDN?". I didn´t checked it before because i thought that every GPIB device support this command. So i tried some other commands out of the manual but with the same result. Next week i try to borrow an HP/Agilent device from work and test it. > > 2) Sure 100% that the gpib shell is working properly? Might it be > tested with some other devices? Otherwise, it is also possible to > connect the gpib bus directly to the raspberry gpios, without the > shell (with limited fanout; no more than 4 or 5 devices). The pin > to pin correspondence table (from the source code) is: > [...] Not 100% at all but nearly 99% ;-) I will try to rewire it on sunday! Thanks all of you for your help. BR Dirk > > > On 10/12/21 4:24 AM, Frank Mori Hess wrote: >> There really needs to be some kind of warning in the docs about the >> bitbang driver. Implementing ieee 488.2 with software driven dio >> lines has no chance of meeting the standard's timing requirements. >> Which is a relatively minor complaint, considering the bitbang driver >> makes no serious attempt to implement the behavior required by the >> protocol's state machines. >> >> On Mon, Oct 11, 2021, 16:55 marcello carla' <ca...@fi... >> <mailto:ca...@fi...>> wrote: >> >> Maybe I am wrong, but at a first sight it looks like >> the meter address is not 10. If you are sure the address >> is correct, try this: >> >> sudo su >> echo 1 > /sys/module/gpib_bitbang/parameters/debug >> tail -f /var/log/kern.log >> >> Then, open another terminal, try again with ibterm, >> cut the output that comes from tail and send me. >> >> Make sure also that "eos = 0x0d" is the correct >> termination for the instrument. You might try "eos = 0x0a". >> >> Good luck >> >> Marcello >> >> >> >> On 10/11/21 8:36 PM, Dirk wrote: >> > Hello, >> > >> > several weeks ago i obtained a RaspberryPI GPIB Shield. >> > >> > I followed the instructions at >> http://elektronomikon.org/install.html >> > but did minor changes to get version 4.3.4 working. >> > >> > Installation went fine without any problems. >> > >> > If i try to read something from my R&S URV5 power meter nothing >> happend. >> > I get the same result with my SMG signal generator. >> > >> > Testing the system with "ibtest" (-> line status) shows unkown >> status of >> > bus lines. >> > >> > At this point i have no idea what is wrong in my setup. >> > >> > It would be great if someone can help me. >> > >> > BR >> > Dirk >> > >> > >> > >> > Following some additional information: >> > >> > root@raspberrypi:/home/pi# cat /etc/debian_version >> > 10.10 >> > root@raspberrypi:/home/pi# >> > >> > root@raspberrypi:/home/pi# uname -a >> > Linux raspberrypi 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST >> 2021 >> > armv7l GNU/Linux >> > root@raspberrypi:/home/pi# >> > >> > root@raspberrypi:/home/pi# dmesg >> > [...] >> > [ 55.161921] gpib_common: loading out-of-tree module taints >> kernel. >> > [ 55.164358] Linux-GPIB 4.3.4 Driver >> > [ 55.182620] gpib: registered gpib_bitbang interface >> > root@raspberrypi:/home/pi# >> > >> > >> > root@raspberrypi:/home/pi# gpib_config -v >> > linux-gpib version = 4.3.4 >> > root@raspberrypi:/home/pi# >> > >> > root@raspberrypi:/home/pi# ibterm -d10 >> > Attempting to open /dev/gpib0 >> > pad = 10, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 >> > ibterm>*IDN? >> > ibterm> >> > ibterm: Done. >> > root@raspberrypi:/home/pi# >> > >> > root@raspberrypi:/home/pi# ibtest >> > Do you wish to open a (d)evice or an interface (b)oard? >> > (you probably want to open a device): b >> > enter name of interface board (or device) you wish to open: violet >> > trying to open board named 'violet' >> > You can: >> > w(a)it for an event >> > [...] >> > send group e(x)ecute trigger (device only) >> > : l >> > DAV unknown >> > NDAC unknown >> > NRFD unknown >> > IFC unknown >> > REN unknown >> > SRQ unknown >> > ATN unknown >> > EOI unknown >> > gpib status is: >> > ibsta = 0x1160 < SRQI CMPL REM CIC > >> > iberr= 0 >> > >> > ibcntl = 0 >> > You can: >> > w(a)it for an event >> > [...] >> > send group e(x)ecute trigger (device only) >> > : >> > >> > >> > root@raspberrypi:/home/pi# cat /usr/local/etc/gpib.conf >> > [...] >> > /* This section configures the configurable driver characteristics >> > * for an interface board, such as board address, and interrupt >> level. >> > * minor = 0 configures /dev/gpib0, minor = 1 configures >> /dev/gpib1, etc. >> > */ >> > >> > interface { >> > minor = 0 /* board index, minor = 0 uses >> /dev/gpib0, >> > minor = 1 uses /dev/gpib1, etc. */ >> > board_type = "gpib_bitbang" /* type of interface >> board >> > being used */ >> > name = "violet" /* optional name, allows you to get a >> board >> > descriptor using ibfind() */ >> > pad = 0 /* primary address of interface */ >> > sad = 0 /* secondary address of interface */ >> > timeout = T3s /* timeout for commands */ >> > >> > eos = 0x0d /* EOS Byte, 0xa is newline and 0xd is >> carriage >> > return */ >> > set-reos = yes /* Terminate read if EOS */ >> > set-bin = no /* Compare EOS 8-bit */ >> > set-xeos = no /* Assert EOI whenever EOS byte is >> sent */ >> > set-eot = yes /* Assert EOI with last byte on writes */ >> > >> > /* settings for boards that lack plug-n-play capability */ >> > base = 0 /* Base io ADDRESS */ >> > irq = 0 /* Interrupt request level */ >> > dma = 0 /* DMA channel (zero disables) */ >> > >> > /* pci_bus and pci_slot can be used to distinguish two pci boards >> > supported by the same driver */ >> > /* pci_bus = 0 */ >> > /* pci_slot = 7 */ >> > >> > master = yes /* interface board is system >> controller */ >> > } >> > >> > /* Now the device sections define the device characteristics >> for each >> > device. >> > * These are only used if you want to open the device using >> ibfind() >> > (instead >> > * of ibdev() ) >> > */ >> > >> > device { >> > minor = 0 >> > name = "urv" >> > pad = 10 >> > sad = 0 >> > } >> > >> > >> > device { >> > minor = 0 /* minor number for interface board this >> device >> > is connected to */ >> > name = "smg" /* device mnemonic */ >> > pad = 28 /* The Primary Address */ >> > sad = 0 /* Secondary Address */ >> > >> > eos = 0xa /* EOS Byte */ >> > set-reos = yes /* Terminate read if EOS */ >> > set-bin = no /* Compare EOS 8-bit */ >> > } >> > >> > root@raspberrypi:/home/pi# >> > >> > >> > _______________________________________________ >> > Linux-gpib-general mailing list >> > Lin...@li... >> <mailto:Lin...@li...> >> > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general >> >> -- Marcello Carla' >> (ca...@fi... <mailto:ca...@fi...>) >> >> >> _______________________________________________ >> Linux-gpib-general mailing list >> Lin...@li... >> <mailto:Lin...@li...> >> https://lists.sourceforge.net/lists/listinfo/linux-gpib-general >> >> >> >> _______________________________________________ >> Linux-gpib-general mailing list >> Lin...@li... >> https://lists.sourceforge.net/lists/listinfo/linux-gpib-general >> > |
From: Thomas K. <ele...@gm...> - 2021-10-12 11:42:51
|
Hello, On Mon, 11 Oct 2021 22:24:54 -0400 Frank Mori Hess <fm...@gm...> wrote: > There really needs to be some kind of warning in the docs about the > bitbang driver. Implementing ieee 488.2 with software driven dio > lines has no chance of meeting the standard's timing requirements. indeed - i'll update the documentation and try to gather some numbers on the (worst case) timings to see where the limits are. > Which is a relatively minor complaint, considering the bitbang driver > makes no serious attempt to implement the behavior required by the > protocol's state machines. Also true :-/ Thanks for tuning in, Thomas > On Mon, Oct 11, 2021, 16:55 marcello carla' <ca...@fi...> wrote: > > > Maybe I am wrong, but at a first sight it looks like > > the meter address is not 10. If you are sure the address > > is correct, try this: > > > > sudo su > > echo 1 > /sys/module/gpib_bitbang/parameters/debug > > tail -f /var/log/kern.log > > > > Then, open another terminal, try again with ibterm, > > cut the output that comes from tail and send me. > > > > Make sure also that "eos = 0x0d" is the correct > > termination for the instrument. You might try "eos = 0x0a". > > > > Good luck > > > > Marcello > > > > > > > > On 10/11/21 8:36 PM, Dirk wrote: > > > Hello, > > > > > > several weeks ago i obtained a RaspberryPI GPIB Shield. > > > > > > I followed the instructions at > > > http://elektronomikon.org/install.html but did minor changes to > > > get version 4.3.4 working. > > > > > > Installation went fine without any problems. > > > > > > If i try to read something from my R&S URV5 power meter nothing > > > happend. I get the same result with my SMG signal generator. > > > > > > Testing the system with "ibtest" (-> line status) shows unkown > > > status of bus lines. > > > > > > At this point i have no idea what is wrong in my setup. > > > > > > It would be great if someone can help me. > > > > > > BR > > > Dirk > > > > > > > > > > > > Following some additional information: > > > > > > root@raspberrypi:/home/pi# cat /etc/debian_version > > > 10.10 > > > root@raspberrypi:/home/pi# > > > > > > root@raspberrypi:/home/pi# uname -a > > > Linux raspberrypi 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST > > > 2021 armv7l GNU/Linux > > > root@raspberrypi:/home/pi# > > > > > > root@raspberrypi:/home/pi# dmesg > > > [...] > > > [ 55.161921] gpib_common: loading out-of-tree module taints > > > kernel. [ 55.164358] Linux-GPIB 4.3.4 Driver > > > [ 55.182620] gpib: registered gpib_bitbang interface > > > root@raspberrypi:/home/pi# > > > > > > > > > root@raspberrypi:/home/pi# gpib_config -v > > > linux-gpib version = 4.3.4 > > > root@raspberrypi:/home/pi# > > > > > > root@raspberrypi:/home/pi# ibterm -d10 > > > Attempting to open /dev/gpib0 > > > pad = 10, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 > > > ibterm>*IDN? > > > ibterm> > > > ibterm: Done. > > > root@raspberrypi:/home/pi# > > > > > > root@raspberrypi:/home/pi# ibtest > > > Do you wish to open a (d)evice or an interface (b)oard? > > > (you probably want to open a device): b > > > enter name of interface board (or device) you wish to open: violet > > > trying to open board named 'violet' > > > You can: > > > w(a)it for an event > > > [...] > > > send group e(x)ecute trigger (device only) > > > : l > > > DAV unknown > > > NDAC unknown > > > NRFD unknown > > > IFC unknown > > > REN unknown > > > SRQ unknown > > > ATN unknown > > > EOI unknown > > > gpib status is: > > > ibsta = 0x1160 < SRQI CMPL REM CIC > > > > iberr= 0 > > > > > > ibcntl = 0 > > > You can: > > > w(a)it for an event > > > [...] > > > send group e(x)ecute trigger (device only) > > > : > > > > > > > > > root@raspberrypi:/home/pi# cat /usr/local/etc/gpib.conf > > > [...] > > > /* This section configures the configurable driver characteristics > > > * for an interface board, such as board address, and interrupt > > > level. > > > * minor = 0 configures /dev/gpib0, minor = 1 configures > > > /dev/gpib1, > > etc. > > > */ > > > > > > interface { > > > minor = 0 /* board index, minor = 0 uses > > > /dev/gpib0, minor = 1 uses /dev/gpib1, etc. */ > > > board_type = "gpib_bitbang" /* type of interface > > > board being used */ > > > name = "violet" /* optional name, allows you to get a > > > board descriptor using ibfind() */ > > > pad = 0 /* primary address of interface */ > > > sad = 0 /* secondary address of interface */ > > > timeout = T3s /* timeout for commands */ > > > > > > eos = 0x0d /* EOS Byte, 0xa is newline and 0xd is > > > carriage return */ > > > set-reos = yes /* Terminate read if EOS */ > > > set-bin = no /* Compare EOS 8-bit */ > > > set-xeos = no /* Assert EOI whenever EOS byte is sent > > > */ set-eot = yes /* Assert EOI with last byte on writes */ > > > > > > /* settings for boards that lack plug-n-play capability */ > > > base = 0 /* Base io ADDRESS */ > > > irq = 0 /* Interrupt request level */ > > > dma = 0 /* DMA channel (zero disables) */ > > > > > > /* pci_bus and pci_slot can be used to distinguish two pci boards > > > supported by the same driver */ > > > /* pci_bus = 0 */ > > > /* pci_slot = 7 */ > > > > > > master = yes /* interface board is system controller > > > */ } > > > > > > /* Now the device sections define the device characteristics for > > > each device. > > > * These are only used if you want to open the device using > > > ibfind() (instead > > > * of ibdev() ) > > > */ > > > > > > device { > > > minor = 0 > > > name = "urv" > > > pad = 10 > > > sad = 0 > > > } > > > > > > > > > device { > > > minor = 0 /* minor number for interface board this > > > device is connected to */ > > > name = "smg" /* device mnemonic */ > > > pad = 28 /* The Primary Address */ > > > sad = 0 /* Secondary Address */ > > > > > > eos = 0xa /* EOS Byte */ > > > set-reos = yes /* Terminate read if EOS */ > > > set-bin = no /* Compare EOS 8-bit */ > > > } > > > > > > root@raspberrypi:/home/pi# > > > > > > > > > _______________________________________________ > > > Linux-gpib-general mailing list > > > Lin...@li... > > > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > > > > -- > > Marcello Carla' > > (ca...@fi...) > > > > > > _______________________________________________ > > Linux-gpib-general mailing list > > Lin...@li... > > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > > |
From: Thomas K. <ele...@gm...> - 2021-10-12 11:32:01
|
Hi Dirk, i'm sorry to hear the problem persists. To rule out any hardware issues, could you please send me pictures of the shield from top and bottom directly (off-list)? Greetings, Thomas On Mon, 11 Oct 2021 20:36:08 +0200 Dirk <mai...@gm...> wrote: > Hello, > > several weeks ago i obtained a RaspberryPI GPIB Shield. > > I followed the instructions at http://elektronomikon.org/install.html > but did minor changes to get version 4.3.4 working. > > Installation went fine without any problems. > > If i try to read something from my R&S URV5 power meter nothing > happend. I get the same result with my SMG signal generator. > > Testing the system with "ibtest" (-> line status) shows unkown status > of bus lines. > > At this point i have no idea what is wrong in my setup. > > It would be great if someone can help me. > > BR > Dirk > > > > Following some additional information: > > root@raspberrypi:/home/pi# cat /etc/debian_version > 10.10 > root@raspberrypi:/home/pi# > > root@raspberrypi:/home/pi# uname -a > Linux raspberrypi 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST 2021 > armv7l GNU/Linux > root@raspberrypi:/home/pi# > > root@raspberrypi:/home/pi# dmesg > [...] > [ 55.161921] gpib_common: loading out-of-tree module taints kernel. > [ 55.164358] Linux-GPIB 4.3.4 Driver > [ 55.182620] gpib: registered gpib_bitbang interface > root@raspberrypi:/home/pi# > > > root@raspberrypi:/home/pi# gpib_config -v > linux-gpib version = 4.3.4 > root@raspberrypi:/home/pi# > > root@raspberrypi:/home/pi# ibterm -d10 > Attempting to open /dev/gpib0 > pad = 10, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 > ibterm>*IDN? > ibterm> > ibterm: Done. > root@raspberrypi:/home/pi# > > root@raspberrypi:/home/pi# ibtest > Do you wish to open a (d)evice or an interface (b)oard? > (you probably want to open a device): b > enter name of interface board (or device) you wish to open: violet > trying to open board named 'violet' > You can: > w(a)it for an event > [...] > send group e(x)ecute trigger (device only) > : l > DAV unknown > NDAC unknown > NRFD unknown > IFC unknown > REN unknown > SRQ unknown > ATN unknown > EOI unknown > gpib status is: > ibsta = 0x1160 < SRQI CMPL REM CIC > > iberr= 0 > > ibcntl = 0 > You can: > w(a)it for an event > [...] > send group e(x)ecute trigger (device only) > : > > > root@raspberrypi:/home/pi# cat /usr/local/etc/gpib.conf > [...] > /* This section configures the configurable driver characteristics > * for an interface board, such as board address, and interrupt > level. > * minor = 0 configures /dev/gpib0, minor = 1 configures /dev/gpib1, > etc. */ > > interface { > minor = 0 /* board index, minor = 0 uses /dev/gpib0, > minor = 1 uses /dev/gpib1, etc. */ > board_type = "gpib_bitbang" /* type of interface board > being used */ > name = "violet" /* optional name, allows you to get a board > descriptor using ibfind() */ > pad = 0 /* primary address of interface */ > sad = 0 /* secondary address of interface */ > timeout = T3s /* timeout for commands */ > > eos = 0x0d /* EOS Byte, 0xa is newline and 0xd is > carriage return */ > set-reos = yes /* Terminate read if EOS */ > set-bin = no /* Compare EOS 8-bit */ > set-xeos = no /* Assert EOI whenever EOS byte is sent */ > set-eot = yes /* Assert EOI with last byte on writes */ > > /* settings for boards that lack plug-n-play capability */ > base = 0 /* Base io ADDRESS */ > irq = 0 /* Interrupt request level */ > dma = 0 /* DMA channel (zero disables) */ > > /* pci_bus and pci_slot can be used to distinguish two pci boards > supported by the same driver */ > /* pci_bus = 0 */ > /* pci_slot = 7 */ > > master = yes /* interface board is system controller */ > } > > /* Now the device sections define the device characteristics for each > device. > * These are only used if you want to open the device using ibfind() > (instead > * of ibdev() ) > */ > > device { > minor = 0 > name = "urv" > pad = 10 > sad = 0 > } > > > device { > minor = 0 /* minor number for interface board this > device is connected to */ > name = "smg" /* device mnemonic */ > pad = 28 /* The Primary Address */ > sad = 0 /* Secondary Address */ > > eos = 0xa /* EOS Byte */ > set-reos = yes /* Terminate read if EOS */ > set-bin = no /* Compare EOS 8-bit */ > } > > root@raspberrypi:/home/pi# > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general |
From: marcello c. <ca...@fi...> - 2021-10-12 10:06:43
|
Frank's remark is very serious. There is some timing in the gpib standard a software driver cannot cope with. It may be that the URV5 is one such case. But many devices, especially vintage devices, do work quite well. Before giving up it is worth to make a few tests: 1) Browsing the URV5 user manual, I did not find the *IDN? among the recognized command. If this is the case, no surprise there is no response. Many devices that do not follow SCPI ignore the *IDN?. May Dirk try some other command? 2) Sure 100% that the gpib shell is working properly? Might it be tested with some other devices? Otherwise, it is also possible to connect the gpib bus directly to the raspberry gpios, without the shell (with limited fanout; no more than 4 or 5 devices). The pin to pin correspondence table (from the source code) is: /********************************************** * Signal pairing and pin wiring between the * * Raspberry-Pi connector and the GPIB bus * * * * signal pin wiring * * GPIB Pi-gpio GPIB -> RPi * **********************************************/ typedef enum { D01_pin_nr = 20, /* 1 -> 38 */ D02_pin_nr = 26, /* 2 -> 37 */ D03_pin_nr = 16, /* 3 -> 36 */ D04_pin_nr = 19, /* 4 -> 35 */ D05_pin_nr = 13, /* 13 -> 33 */ D06_pin_nr = 12, /* 14 -> 32 */ D07_pin_nr = 6, /* 15 -> 31 */ D08_pin_nr = 5, /* 16 -> 29 */ EOI_pin_nr = 9, /* 5 -> 21 */ DAV_pin_nr = 10, /* 6 -> 19 */ NRFD_pin_nr = 24, /* 7 -> 18 */ NDAC_pin_nr = 23, /* 8 -> 16 */ IFC_pin_nr = 22, /* 9 -> 15 */ SRQ_pin_nr = 11, /* 10 -> 23 */ _ATN_pin_nr = 25, /* 11 -> 22 */ REN_pin_nr = 27, /* 17 -> 13 */ /* * GROUND PINS * 12,18,19,20,21,22,23,24 => 14,20,25,30,34,39 */ Marcello On 10/12/21 4:24 AM, Frank Mori Hess wrote: > There really needs to be some kind of warning in the docs about the > bitbang driver. Implementing ieee 488.2 with software driven dio lines > has no chance of meeting the standard's timing requirements. Which is a > relatively minor complaint, considering the bitbang driver makes no > serious attempt to implement the behavior required by the protocol's > state machines. > > On Mon, Oct 11, 2021, 16:55 marcello carla' <ca...@fi... > <mailto:ca...@fi...>> wrote: > > Maybe I am wrong, but at a first sight it looks like > the meter address is not 10. If you are sure the address > is correct, try this: > > sudo su > echo 1 > /sys/module/gpib_bitbang/parameters/debug > tail -f /var/log/kern.log > > Then, open another terminal, try again with ibterm, > cut the output that comes from tail and send me. > > Make sure also that "eos = 0x0d" is the correct > termination for the instrument. You might try "eos = 0x0a". > > Good luck > > Marcello > > > > On 10/11/21 8:36 PM, Dirk wrote: > > Hello, > > > > several weeks ago i obtained a RaspberryPI GPIB Shield. > > > > I followed the instructions at http://elektronomikon.org/install.html > > but did minor changes to get version 4.3.4 working. > > > > Installation went fine without any problems. > > > > If i try to read something from my R&S URV5 power meter nothing > happend. > > I get the same result with my SMG signal generator. > > > > Testing the system with "ibtest" (-> line status) shows unkown > status of > > bus lines. > > > > At this point i have no idea what is wrong in my setup. > > > > It would be great if someone can help me. > > > > BR > > Dirk > > > > > > > > Following some additional information: > > > > root@raspberrypi:/home/pi# cat /etc/debian_version > > 10.10 > > root@raspberrypi:/home/pi# > > > > root@raspberrypi:/home/pi# uname -a > > Linux raspberrypi 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST 2021 > > armv7l GNU/Linux > > root@raspberrypi:/home/pi# > > > > root@raspberrypi:/home/pi# dmesg > > [...] > > [ 55.161921] gpib_common: loading out-of-tree module taints kernel. > > [ 55.164358] Linux-GPIB 4.3.4 Driver > > [ 55.182620] gpib: registered gpib_bitbang interface > > root@raspberrypi:/home/pi# > > > > > > root@raspberrypi:/home/pi# gpib_config -v > > linux-gpib version = 4.3.4 > > root@raspberrypi:/home/pi# > > > > root@raspberrypi:/home/pi# ibterm -d10 > > Attempting to open /dev/gpib0 > > pad = 10, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 > > ibterm>*IDN? > > ibterm> > > ibterm: Done. > > root@raspberrypi:/home/pi# > > > > root@raspberrypi:/home/pi# ibtest > > Do you wish to open a (d)evice or an interface (b)oard? > > (you probably want to open a device): b > > enter name of interface board (or device) you wish to open: violet > > trying to open board named 'violet' > > You can: > > w(a)it for an event > > [...] > > send group e(x)ecute trigger (device only) > > : l > > DAV unknown > > NDAC unknown > > NRFD unknown > > IFC unknown > > REN unknown > > SRQ unknown > > ATN unknown > > EOI unknown > > gpib status is: > > ibsta = 0x1160 < SRQI CMPL REM CIC > > > iberr= 0 > > > > ibcntl = 0 > > You can: > > w(a)it for an event > > [...] > > send group e(x)ecute trigger (device only) > > : > > > > > > root@raspberrypi:/home/pi# cat /usr/local/etc/gpib.conf > > [...] > > /* This section configures the configurable driver characteristics > > * for an interface board, such as board address, and interrupt > level. > > * minor = 0 configures /dev/gpib0, minor = 1 configures > /dev/gpib1, etc. > > */ > > > > interface { > > minor = 0 /* board index, minor = 0 uses /dev/gpib0, > > minor = 1 uses /dev/gpib1, etc. */ > > board_type = "gpib_bitbang" /* type of interface board > > being used */ > > name = "violet" /* optional name, allows you to get a board > > descriptor using ibfind() */ > > pad = 0 /* primary address of interface */ > > sad = 0 /* secondary address of interface */ > > timeout = T3s /* timeout for commands */ > > > > eos = 0x0d /* EOS Byte, 0xa is newline and 0xd is > carriage > > return */ > > set-reos = yes /* Terminate read if EOS */ > > set-bin = no /* Compare EOS 8-bit */ > > set-xeos = no /* Assert EOI whenever EOS byte is sent */ > > set-eot = yes /* Assert EOI with last byte on writes */ > > > > /* settings for boards that lack plug-n-play capability */ > > base = 0 /* Base io ADDRESS */ > > irq = 0 /* Interrupt request level */ > > dma = 0 /* DMA channel (zero disables) */ > > > > /* pci_bus and pci_slot can be used to distinguish two pci boards > > supported by the same driver */ > > /* pci_bus = 0 */ > > /* pci_slot = 7 */ > > > > master = yes /* interface board is system controller */ > > } > > > > /* Now the device sections define the device characteristics for each > > device. > > * These are only used if you want to open the device using ibfind() > > (instead > > * of ibdev() ) > > */ > > > > device { > > minor = 0 > > name = "urv" > > pad = 10 > > sad = 0 > > } > > > > > > device { > > minor = 0 /* minor number for interface board this > device > > is connected to */ > > name = "smg" /* device mnemonic */ > > pad = 28 /* The Primary Address */ > > sad = 0 /* Secondary Address */ > > > > eos = 0xa /* EOS Byte */ > > set-reos = yes /* Terminate read if EOS */ > > set-bin = no /* Compare EOS 8-bit */ > > } > > > > root@raspberrypi:/home/pi# > > > > > > _______________________________________________ > > Linux-gpib-general mailing list > > Lin...@li... > <mailto:Lin...@li...> > > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > > -- > Marcello Carla' > (ca...@fi... <mailto:ca...@fi...>) > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > <mailto:Lin...@li...> > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > -- Marcello Carla' (ca...@fi...) |
From: Frank M. H. <fm...@gm...> - 2021-10-12 02:25:15
|
There really needs to be some kind of warning in the docs about the bitbang driver. Implementing ieee 488.2 with software driven dio lines has no chance of meeting the standard's timing requirements. Which is a relatively minor complaint, considering the bitbang driver makes no serious attempt to implement the behavior required by the protocol's state machines. On Mon, Oct 11, 2021, 16:55 marcello carla' <ca...@fi...> wrote: > Maybe I am wrong, but at a first sight it looks like > the meter address is not 10. If you are sure the address > is correct, try this: > > sudo su > echo 1 > /sys/module/gpib_bitbang/parameters/debug > tail -f /var/log/kern.log > > Then, open another terminal, try again with ibterm, > cut the output that comes from tail and send me. > > Make sure also that "eos = 0x0d" is the correct > termination for the instrument. You might try "eos = 0x0a". > > Good luck > > Marcello > > > > On 10/11/21 8:36 PM, Dirk wrote: > > Hello, > > > > several weeks ago i obtained a RaspberryPI GPIB Shield. > > > > I followed the instructions at http://elektronomikon.org/install.html > > but did minor changes to get version 4.3.4 working. > > > > Installation went fine without any problems. > > > > If i try to read something from my R&S URV5 power meter nothing happend. > > I get the same result with my SMG signal generator. > > > > Testing the system with "ibtest" (-> line status) shows unkown status of > > bus lines. > > > > At this point i have no idea what is wrong in my setup. > > > > It would be great if someone can help me. > > > > BR > > Dirk > > > > > > > > Following some additional information: > > > > root@raspberrypi:/home/pi# cat /etc/debian_version > > 10.10 > > root@raspberrypi:/home/pi# > > > > root@raspberrypi:/home/pi# uname -a > > Linux raspberrypi 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST 2021 > > armv7l GNU/Linux > > root@raspberrypi:/home/pi# > > > > root@raspberrypi:/home/pi# dmesg > > [...] > > [ 55.161921] gpib_common: loading out-of-tree module taints kernel. > > [ 55.164358] Linux-GPIB 4.3.4 Driver > > [ 55.182620] gpib: registered gpib_bitbang interface > > root@raspberrypi:/home/pi# > > > > > > root@raspberrypi:/home/pi# gpib_config -v > > linux-gpib version = 4.3.4 > > root@raspberrypi:/home/pi# > > > > root@raspberrypi:/home/pi# ibterm -d10 > > Attempting to open /dev/gpib0 > > pad = 10, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 > > ibterm>*IDN? > > ibterm> > > ibterm: Done. > > root@raspberrypi:/home/pi# > > > > root@raspberrypi:/home/pi# ibtest > > Do you wish to open a (d)evice or an interface (b)oard? > > (you probably want to open a device): b > > enter name of interface board (or device) you wish to open: violet > > trying to open board named 'violet' > > You can: > > w(a)it for an event > > [...] > > send group e(x)ecute trigger (device only) > > : l > > DAV unknown > > NDAC unknown > > NRFD unknown > > IFC unknown > > REN unknown > > SRQ unknown > > ATN unknown > > EOI unknown > > gpib status is: > > ibsta = 0x1160 < SRQI CMPL REM CIC > > > iberr= 0 > > > > ibcntl = 0 > > You can: > > w(a)it for an event > > [...] > > send group e(x)ecute trigger (device only) > > : > > > > > > root@raspberrypi:/home/pi# cat /usr/local/etc/gpib.conf > > [...] > > /* This section configures the configurable driver characteristics > > * for an interface board, such as board address, and interrupt level. > > * minor = 0 configures /dev/gpib0, minor = 1 configures /dev/gpib1, > etc. > > */ > > > > interface { > > minor = 0 /* board index, minor = 0 uses /dev/gpib0, > > minor = 1 uses /dev/gpib1, etc. */ > > board_type = "gpib_bitbang" /* type of interface board > > being used */ > > name = "violet" /* optional name, allows you to get a board > > descriptor using ibfind() */ > > pad = 0 /* primary address of interface */ > > sad = 0 /* secondary address of interface */ > > timeout = T3s /* timeout for commands */ > > > > eos = 0x0d /* EOS Byte, 0xa is newline and 0xd is carriage > > return */ > > set-reos = yes /* Terminate read if EOS */ > > set-bin = no /* Compare EOS 8-bit */ > > set-xeos = no /* Assert EOI whenever EOS byte is sent */ > > set-eot = yes /* Assert EOI with last byte on writes */ > > > > /* settings for boards that lack plug-n-play capability */ > > base = 0 /* Base io ADDRESS */ > > irq = 0 /* Interrupt request level */ > > dma = 0 /* DMA channel (zero disables) */ > > > > /* pci_bus and pci_slot can be used to distinguish two pci boards > > supported by the same driver */ > > /* pci_bus = 0 */ > > /* pci_slot = 7 */ > > > > master = yes /* interface board is system controller */ > > } > > > > /* Now the device sections define the device characteristics for each > > device. > > * These are only used if you want to open the device using ibfind() > > (instead > > * of ibdev() ) > > */ > > > > device { > > minor = 0 > > name = "urv" > > pad = 10 > > sad = 0 > > } > > > > > > device { > > minor = 0 /* minor number for interface board this device > > is connected to */ > > name = "smg" /* device mnemonic */ > > pad = 28 /* The Primary Address */ > > sad = 0 /* Secondary Address */ > > > > eos = 0xa /* EOS Byte */ > > set-reos = yes /* Terminate read if EOS */ > > set-bin = no /* Compare EOS 8-bit */ > > } > > > > root@raspberrypi:/home/pi# > > > > > > _______________________________________________ > > Linux-gpib-general mailing list > > Lin...@li... > > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > > -- > Marcello Carla' > (ca...@fi...) > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
From: Dirk <mai...@gm...> - 2021-10-11 21:33:44
|
Hi Marcello, thanks for fast reply! Device adresses are correct (they are shown on every startup). (I also tested it with "pad = 9" and "pad = 11".) Setting "eos = 0x0d" or "eos = 0x0a" equals in same result: no communication. Attached you can find my tail output: root@raspberrypi:/home/pi# tail -f /var/log/kern.log Oct 11 22:22:46 raspberrypi kernel: [ 1428.417137] gpib_bitbang:bb_request_system_control - 1 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417175] gpib_bitbang:bb_update_status - 0x20 mask 0x0 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417211] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417267] gpib_bitbang:bb_interface_clear - 1 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417398] gpib_bitbang:bb_interface_clear - 0 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417419] gpib_bitbang:bb_update_status - 0x1020 mask 0x0 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417451] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417480] gpib_bitbang:bb_remote_enable - 1 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417511] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:22:46 raspberrypi kernel: [ 1428.417544] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:23:01 raspberrypi kernel: [ 1443.446836] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:01 raspberrypi kernel: [ 1443.446885] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:23:01 raspberrypi kernel: [ 1443.446904] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:01 raspberrypi kernel: [ 1443.446936] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409562] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409603] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409625] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409660] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409679] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409710] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409734] gpib_bitbang:bb_take_control - 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409754] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409789] gpib_bitbang:bb_line_status - status lines: 6a00 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409808] gpib_bitbang:bb_command - 243f8cc3 243f8cc3 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409877] gpib_bitbang:bb_command - CMD(3): Oct 11 22:23:09 raspberrypi kernel: [ 1451.409890] gpib_bitbang:bb_command - 0x40=TLK0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409904] gpib_bitbang:bb_command - 0x3f=LSN31 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409917] gpib_bitbang:bb_command - 0x2a=LSN10 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409933] gpib_bitbang:bb_write - board 57838b64 lock 1 length: 3 Oct 11 22:23:09 raspberrypi kernel: [ 1451.409946] gpib_bitbang:bb_write - <3 > Oct 11 22:23:09 raspberrypi kernel: [ 1451.409960] gpib_bitbang:bb_write - 0 0x40->@ Oct 11 22:23:09 raspberrypi kernel: [ 1451.409973] gpib_bitbang:bb_write - 1 0x3f->? Oct 11 22:23:09 raspberrypi kernel: [ 1451.409986] gpib_bitbang:bb_write - 2 0x2a->* Oct 11 22:23:09 raspberrypi kernel: [ 1451.410042] gpib_bitbang:bb_NRFD_interrupt - 0 DAV: 1 NRFD:1 SRQ: 0 val: 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410057] gpib_bitbang:bb_write - NRFD: 1 NDAC: 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410091] gpib_bitbang:bb_write - sending 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410136] gpib_bitbang:bb_write - accepted 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410167] gpib_bitbang:bb_write - sending 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410211] gpib_bitbang:bb_write - accepted 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410242] gpib_bitbang:bb_write - sending 2 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410287] gpib_bitbang:bb_write - accepted 2 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410313] gpib_bitbang:bb_write - sent 3 bytes. Oct 11 22:23:09 raspberrypi kernel: [ 1451.410313] Oct 11 22:23:09 raspberrypi kernel: [ 1451.410350] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410383] gpib_bitbang:bb_line_status - status lines: 2800 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410395] gpib_bitbang:bb_go_to_standby - Oct 11 22:23:09 raspberrypi kernel: [ 1451.410424] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410444] gpib_bitbang:bb_write - board 57838b64 lock 1 length: 5 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410458] gpib_bitbang:bb_write - <5 w.EOI> Oct 11 22:23:09 raspberrypi kernel: [ 1451.410471] gpib_bitbang:bb_write - 0 0x2a->* Oct 11 22:23:09 raspberrypi kernel: [ 1451.410484] gpib_bitbang:bb_write - 1 0x49->I Oct 11 22:23:09 raspberrypi kernel: [ 1451.410496] gpib_bitbang:bb_write - 2 0x44->D Oct 11 22:23:09 raspberrypi kernel: [ 1451.410509] gpib_bitbang:bb_write - 3 0x4e->N Oct 11 22:23:09 raspberrypi kernel: [ 1451.410522] gpib_bitbang:bb_write - 4 0x3f->? Oct 11 22:23:09 raspberrypi kernel: [ 1451.410593] gpib_bitbang:bb_write - NRFD: 1 NDAC: 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410611] gpib_bitbang:bb_write - sending 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410655] gpib_bitbang:bb_write - accepted 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410687] gpib_bitbang:bb_write - sending 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410730] gpib_bitbang:bb_write - accepted 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410765] gpib_bitbang:bb_write - sending 2 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410809] gpib_bitbang:bb_write - accepted 2 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410840] gpib_bitbang:bb_write - sending 3 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410883] gpib_bitbang:bb_write - accepted 3 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410914] gpib_bitbang:bb_write - sending 4 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410958] gpib_bitbang:bb_write - accepted 4 Oct 11 22:23:09 raspberrypi kernel: [ 1451.410983] gpib_bitbang:bb_write - sent 5 bytes. Oct 11 22:23:09 raspberrypi kernel: [ 1451.410983] Oct 11 22:23:09 raspberrypi kernel: [ 1451.411010] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411043] gpib_bitbang:bb_line_status - status lines: a800 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411060] gpib_bitbang:bb_update_status - 0x1060 mask 0x1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411091] gpib_bitbang:bb_line_status - status lines: a800 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411148] gpib_bitbang:bb_disable_eos - Oct 11 22:23:09 raspberrypi kernel: [ 1451.411172] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411205] gpib_bitbang:bb_line_status - status lines: a800 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411223] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411254] gpib_bitbang:bb_line_status - status lines: a800 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411270] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411303] gpib_bitbang:bb_line_status - status lines: a800 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411326] gpib_bitbang:bb_take_control - 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411343] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411376] gpib_bitbang:bb_line_status - status lines: e800 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411392] gpib_bitbang:bb_command - 243f8cc3 243f8cc3 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411459] gpib_bitbang:bb_command - CMD(3): Oct 11 22:23:09 raspberrypi kernel: [ 1451.411471] gpib_bitbang:bb_command - 0x3f=LSN31 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411484] gpib_bitbang:bb_command - 0x20=LSN0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411497] gpib_bitbang:bb_command - 0x4a=TLK10 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411511] gpib_bitbang:bb_write - board 57838b64 lock 1 length: 3 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411524] gpib_bitbang:bb_write - <3 > Oct 11 22:23:09 raspberrypi kernel: [ 1451.411538] gpib_bitbang:bb_write - 0 0x3f->? Oct 11 22:23:09 raspberrypi kernel: [ 1451.411551] gpib_bitbang:bb_write - 1 0x20-> Oct 11 22:23:09 raspberrypi kernel: [ 1451.411564] gpib_bitbang:bb_write - 2 0x4a->J Oct 11 22:23:09 raspberrypi kernel: [ 1451.411611] gpib_bitbang:bb_NRFD_interrupt - 0 DAV: 1 NRFD:1 SRQ: 0 val: 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411632] gpib_bitbang:bb_write - NRFD: 1 NDAC: 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411655] gpib_bitbang:bb_write - sending 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411698] gpib_bitbang:bb_write - accepted 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411728] gpib_bitbang:bb_write - sending 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411771] gpib_bitbang:bb_write - accepted 1 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411803] gpib_bitbang:bb_write - sending 2 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411846] gpib_bitbang:bb_write - accepted 2 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411872] gpib_bitbang:bb_write - sent 3 bytes. Oct 11 22:23:09 raspberrypi kernel: [ 1451.411872] Oct 11 22:23:09 raspberrypi kernel: [ 1451.411900] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411932] gpib_bitbang:bb_line_status - status lines: 2800 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411944] gpib_bitbang:bb_go_to_standby - Oct 11 22:23:09 raspberrypi kernel: [ 1451.411971] gpib_bitbang:bb_update_status - 0x1060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.411992] gpib_bitbang:bb_read - board: 57838b64 lock 1 length: 2048 Oct 11 22:23:09 raspberrypi kernel: [ 1451.412072] gpib_bitbang:bb_read - ..........DAV: 1 NRFD:0 SRQ: 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.728873] gpib_bitbang:bb_read - timeout - DAV: 1 NRFD:1 SRQ: 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.728890] gpib_bitbang:bb_read - got 0 bytes. Oct 11 22:23:09 raspberrypi kernel: [ 1451.728907] gpib_bitbang:bb_read - return: -110 eoi: 0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.728907] Oct 11 22:23:09 raspberrypi kernel: [ 1451.728950] gpib_bitbang:bb_update_status - 0x5060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.728983] gpib_bitbang:bb_line_status - status lines: 2a00 Oct 11 22:23:09 raspberrypi kernel: [ 1451.729002] gpib_bitbang:bb_update_status - 0x5060 mask 0x0 Oct 11 22:23:09 raspberrypi kernel: [ 1451.729035] gpib_bitbang:bb_line_status - status lines: 2a00 BR Dirk Am 11.10.2021 um 22:39 schrieb marcello carla': > Maybe I am wrong, but at a first sight it looks like > the meter address is not 10. If you are sure the address > is correct, try this: > > sudo su > echo 1 > /sys/module/gpib_bitbang/parameters/debug > tail -f /var/log/kern.log > > Then, open another terminal, try again with ibterm, > cut the output that comes from tail and send me. > > Make sure also that "eos = 0x0d" is the correct > termination for the instrument. You might try "eos = 0x0a". > > Good luck > > Marcello > > > > On 10/11/21 8:36 PM, Dirk wrote: >> Hello, >> >> several weeks ago i obtained a RaspberryPI GPIB Shield. >> >> I followed the instructions at http://elektronomikon.org/install.html >> but did minor changes to get version 4.3.4 working. >> >> Installation went fine without any problems. >> >> If i try to read something from my R&S URV5 power meter nothing happend. >> I get the same result with my SMG signal generator. >> >> Testing the system with "ibtest" (-> line status) shows unkown status of >> bus lines. >> >> At this point i have no idea what is wrong in my setup. >> >> It would be great if someone can help me. >> >> BR >> Dirk >> >> >> >> Following some additional information: >> >> root@raspberrypi:/home/pi# cat /etc/debian_version >> 10.10 >> root@raspberrypi:/home/pi# >> >> root@raspberrypi:/home/pi# uname -a >> Linux raspberrypi 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST 2021 >> armv7l GNU/Linux >> root@raspberrypi:/home/pi# >> >> root@raspberrypi:/home/pi# dmesg >> [...] >> [ 55.161921] gpib_common: loading out-of-tree module taints kernel. >> [ 55.164358] Linux-GPIB 4.3.4 Driver >> [ 55.182620] gpib: registered gpib_bitbang interface >> root@raspberrypi:/home/pi# >> >> >> root@raspberrypi:/home/pi# gpib_config -v >> linux-gpib version = 4.3.4 >> root@raspberrypi:/home/pi# >> >> root@raspberrypi:/home/pi# ibterm -d10 >> Attempting to open /dev/gpib0 >> pad = 10, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 >> ibterm>*IDN? >> ibterm> >> ibterm: Done. >> root@raspberrypi:/home/pi# >> >> root@raspberrypi:/home/pi# ibtest >> Do you wish to open a (d)evice or an interface (b)oard? >> (you probably want to open a device): b >> enter name of interface board (or device) you wish to open: violet >> trying to open board named 'violet' >> You can: >> w(a)it for an event >> [...] >> send group e(x)ecute trigger (device only) >> : l >> DAV unknown >> NDAC unknown >> NRFD unknown >> IFC unknown >> REN unknown >> SRQ unknown >> ATN unknown >> EOI unknown >> gpib status is: >> ibsta = 0x1160 < SRQI CMPL REM CIC > >> iberr= 0 >> >> ibcntl = 0 >> You can: >> w(a)it for an event >> [...] >> send group e(x)ecute trigger (device only) >> : >> >> >> root@raspberrypi:/home/pi# cat /usr/local/etc/gpib.conf >> [...] >> /* This section configures the configurable driver characteristics >> * for an interface board, such as board address, and interrupt level. >> * minor = 0 configures /dev/gpib0, minor = 1 configures /dev/gpib1, >> etc. >> */ >> >> interface { >> minor = 0 /* board index, minor = 0 uses /dev/gpib0, >> minor = 1 uses /dev/gpib1, etc. */ >> board_type = "gpib_bitbang" /* type of interface board >> being used */ >> name = "violet" /* optional name, allows you to get a board >> descriptor using ibfind() */ >> pad = 0 /* primary address of interface */ >> sad = 0 /* secondary address of interface */ >> timeout = T3s /* timeout for commands */ >> >> eos = 0x0d /* EOS Byte, 0xa is newline and 0xd is carriage >> return */ >> set-reos = yes /* Terminate read if EOS */ >> set-bin = no /* Compare EOS 8-bit */ >> set-xeos = no /* Assert EOI whenever EOS byte is sent */ >> set-eot = yes /* Assert EOI with last byte on writes */ >> >> /* settings for boards that lack plug-n-play capability */ >> base = 0 /* Base io ADDRESS */ >> irq = 0 /* Interrupt request level */ >> dma = 0 /* DMA channel (zero disables) */ >> >> /* pci_bus and pci_slot can be used to distinguish two pci boards >> supported by the same driver */ >> /* pci_bus = 0 */ >> /* pci_slot = 7 */ >> >> master = yes /* interface board is system controller */ >> } >> >> /* Now the device sections define the device characteristics for each >> device. >> * These are only used if you want to open the device using ibfind() >> (instead >> * of ibdev() ) >> */ >> >> device { >> minor = 0 >> name = "urv" >> pad = 10 >> sad = 0 >> } >> >> >> device { >> minor = 0 /* minor number for interface board this device >> is connected to */ >> name = "smg" /* device mnemonic */ >> pad = 28 /* The Primary Address */ >> sad = 0 /* Secondary Address */ >> >> eos = 0xa /* EOS Byte */ >> set-reos = yes /* Terminate read if EOS */ >> set-bin = no /* Compare EOS 8-bit */ >> } >> >> root@raspberrypi:/home/pi# >> >> >> _______________________________________________ >> Linux-gpib-general mailing list >> Lin...@li... >> https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
From: marcello c. <ca...@fi...> - 2021-10-11 20:54:35
|
Maybe I am wrong, but at a first sight it looks like the meter address is not 10. If you are sure the address is correct, try this: sudo su echo 1 > /sys/module/gpib_bitbang/parameters/debug tail -f /var/log/kern.log Then, open another terminal, try again with ibterm, cut the output that comes from tail and send me. Make sure also that "eos = 0x0d" is the correct termination for the instrument. You might try "eos = 0x0a". Good luck Marcello On 10/11/21 8:36 PM, Dirk wrote: > Hello, > > several weeks ago i obtained a RaspberryPI GPIB Shield. > > I followed the instructions at http://elektronomikon.org/install.html > but did minor changes to get version 4.3.4 working. > > Installation went fine without any problems. > > If i try to read something from my R&S URV5 power meter nothing happend. > I get the same result with my SMG signal generator. > > Testing the system with "ibtest" (-> line status) shows unkown status of > bus lines. > > At this point i have no idea what is wrong in my setup. > > It would be great if someone can help me. > > BR > Dirk > > > > Following some additional information: > > root@raspberrypi:/home/pi# cat /etc/debian_version > 10.10 > root@raspberrypi:/home/pi# > > root@raspberrypi:/home/pi# uname -a > Linux raspberrypi 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST 2021 > armv7l GNU/Linux > root@raspberrypi:/home/pi# > > root@raspberrypi:/home/pi# dmesg > [...] > [ 55.161921] gpib_common: loading out-of-tree module taints kernel. > [ 55.164358] Linux-GPIB 4.3.4 Driver > [ 55.182620] gpib: registered gpib_bitbang interface > root@raspberrypi:/home/pi# > > > root@raspberrypi:/home/pi# gpib_config -v > linux-gpib version = 4.3.4 > root@raspberrypi:/home/pi# > > root@raspberrypi:/home/pi# ibterm -d10 > Attempting to open /dev/gpib0 > pad = 10, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 > ibterm>*IDN? > ibterm> > ibterm: Done. > root@raspberrypi:/home/pi# > > root@raspberrypi:/home/pi# ibtest > Do you wish to open a (d)evice or an interface (b)oard? > (you probably want to open a device): b > enter name of interface board (or device) you wish to open: violet > trying to open board named 'violet' > You can: > w(a)it for an event > [...] > send group e(x)ecute trigger (device only) > : l > DAV unknown > NDAC unknown > NRFD unknown > IFC unknown > REN unknown > SRQ unknown > ATN unknown > EOI unknown > gpib status is: > ibsta = 0x1160 < SRQI CMPL REM CIC > > iberr= 0 > > ibcntl = 0 > You can: > w(a)it for an event > [...] > send group e(x)ecute trigger (device only) > : > > > root@raspberrypi:/home/pi# cat /usr/local/etc/gpib.conf > [...] > /* This section configures the configurable driver characteristics > * for an interface board, such as board address, and interrupt level. > * minor = 0 configures /dev/gpib0, minor = 1 configures /dev/gpib1, etc. > */ > > interface { > minor = 0 /* board index, minor = 0 uses /dev/gpib0, > minor = 1 uses /dev/gpib1, etc. */ > board_type = "gpib_bitbang" /* type of interface board > being used */ > name = "violet" /* optional name, allows you to get a board > descriptor using ibfind() */ > pad = 0 /* primary address of interface */ > sad = 0 /* secondary address of interface */ > timeout = T3s /* timeout for commands */ > > eos = 0x0d /* EOS Byte, 0xa is newline and 0xd is carriage > return */ > set-reos = yes /* Terminate read if EOS */ > set-bin = no /* Compare EOS 8-bit */ > set-xeos = no /* Assert EOI whenever EOS byte is sent */ > set-eot = yes /* Assert EOI with last byte on writes */ > > /* settings for boards that lack plug-n-play capability */ > base = 0 /* Base io ADDRESS */ > irq = 0 /* Interrupt request level */ > dma = 0 /* DMA channel (zero disables) */ > > /* pci_bus and pci_slot can be used to distinguish two pci boards > supported by the same driver */ > /* pci_bus = 0 */ > /* pci_slot = 7 */ > > master = yes /* interface board is system controller */ > } > > /* Now the device sections define the device characteristics for each > device. > * These are only used if you want to open the device using ibfind() > (instead > * of ibdev() ) > */ > > device { > minor = 0 > name = "urv" > pad = 10 > sad = 0 > } > > > device { > minor = 0 /* minor number for interface board this device > is connected to */ > name = "smg" /* device mnemonic */ > pad = 28 /* The Primary Address */ > sad = 0 /* Secondary Address */ > > eos = 0xa /* EOS Byte */ > set-reos = yes /* Terminate read if EOS */ > set-bin = no /* Compare EOS 8-bit */ > } > > root@raspberrypi:/home/pi# > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general -- Marcello Carla' (ca...@fi...) |
From: Dirk <mai...@gm...> - 2021-10-11 18:36:18
|
Hello, several weeks ago i obtained a RaspberryPI GPIB Shield. I followed the instructions at http://elektronomikon.org/install.html but did minor changes to get version 4.3.4 working. Installation went fine without any problems. If i try to read something from my R&S URV5 power meter nothing happend. I get the same result with my SMG signal generator. Testing the system with "ibtest" (-> line status) shows unkown status of bus lines. At this point i have no idea what is wrong in my setup. It would be great if someone can help me. BR Dirk Following some additional information: root@raspberrypi:/home/pi# cat /etc/debian_version 10.10 root@raspberrypi:/home/pi# root@raspberrypi:/home/pi# uname -a Linux raspberrypi 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST 2021 armv7l GNU/Linux root@raspberrypi:/home/pi# root@raspberrypi:/home/pi# dmesg [...] [ 55.161921] gpib_common: loading out-of-tree module taints kernel. [ 55.164358] Linux-GPIB 4.3.4 Driver [ 55.182620] gpib: registered gpib_bitbang interface root@raspberrypi:/home/pi# root@raspberrypi:/home/pi# gpib_config -v linux-gpib version = 4.3.4 root@raspberrypi:/home/pi# root@raspberrypi:/home/pi# ibterm -d10 Attempting to open /dev/gpib0 pad = 10, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 ibterm>*IDN? ibterm> ibterm: Done. root@raspberrypi:/home/pi# root@raspberrypi:/home/pi# ibtest Do you wish to open a (d)evice or an interface (b)oard? (you probably want to open a device): b enter name of interface board (or device) you wish to open: violet trying to open board named 'violet' You can: w(a)it for an event [...] send group e(x)ecute trigger (device only) : l DAV unknown NDAC unknown NRFD unknown IFC unknown REN unknown SRQ unknown ATN unknown EOI unknown gpib status is: ibsta = 0x1160 < SRQI CMPL REM CIC > iberr= 0 ibcntl = 0 You can: w(a)it for an event [...] send group e(x)ecute trigger (device only) : root@raspberrypi:/home/pi# cat /usr/local/etc/gpib.conf [...] /* This section configures the configurable driver characteristics * for an interface board, such as board address, and interrupt level. * minor = 0 configures /dev/gpib0, minor = 1 configures /dev/gpib1, etc. */ interface { minor = 0 /* board index, minor = 0 uses /dev/gpib0, minor = 1 uses /dev/gpib1, etc. */ board_type = "gpib_bitbang" /* type of interface board being used */ name = "violet" /* optional name, allows you to get a board descriptor using ibfind() */ pad = 0 /* primary address of interface */ sad = 0 /* secondary address of interface */ timeout = T3s /* timeout for commands */ eos = 0x0d /* EOS Byte, 0xa is newline and 0xd is carriage return */ set-reos = yes /* Terminate read if EOS */ set-bin = no /* Compare EOS 8-bit */ set-xeos = no /* Assert EOI whenever EOS byte is sent */ set-eot = yes /* Assert EOI with last byte on writes */ /* settings for boards that lack plug-n-play capability */ base = 0 /* Base io ADDRESS */ irq = 0 /* Interrupt request level */ dma = 0 /* DMA channel (zero disables) */ /* pci_bus and pci_slot can be used to distinguish two pci boards supported by the same driver */ /* pci_bus = 0 */ /* pci_slot = 7 */ master = yes /* interface board is system controller */ } /* Now the device sections define the device characteristics for each device. * These are only used if you want to open the device using ibfind() (instead * of ibdev() ) */ device { minor = 0 name = "urv" pad = 10 sad = 0 } device { minor = 0 /* minor number for interface board this device is connected to */ name = "smg" /* device mnemonic */ pad = 28 /* The Primary Address */ sad = 0 /* Secondary Address */ eos = 0xa /* EOS Byte */ set-reos = yes /* Terminate read if EOS */ set-bin = no /* Compare EOS 8-bit */ } root@raspberrypi:/home/pi# |