12-19-2017 07:23 AM
Hello,
I added iblines() to my code, so I loop iblines() until my code sees that NRFD control line has gone low. It stays high for 1+ second and once it has gone low, I am able to set SRQ and send START and read REPLY quickly. It is still unknown why this control line is high.
if I call ibonl() before asserting SRQ, this caused IO errors when trying to ibwrt()
If I cannot do this in software, is it feasible that I can tie this line low on the bus with a jumper?
Thanks
Phil
12-20-2017 11:44 AM
The short answer is no, this is not a recommended practice and is an unsupported use case, Also, doing this may have unintended consequences you are not aware of. In general, the function calls you are making are causing this line to stay high for a reason unknown to us but is likely required. I would recommend trying to find an alternative method to do what you are trying to do.
12-20-2017 02:38 PM
Hello,
My code calls the following sequence to the CIC. There is approx 140 ms between each sequence while waiting on the hardware connected to GPIB0 to complete. Which one of these calls is causing the control line to be high?
3. ibconfig(GPIB1, IbcRsv (0x0021), 64 (0x40))
Process ID: 0x00000708 Thread ID: 0x0000021C
Start Time: 17:20:13.9080 Call Duration 00:00:00.0000
ibsta: 0x150 iberr: 64 ibcntl: 4(0x4)
7. ibwait(GPIB1, 0x0000)
Process ID: 0x00000708 Thread ID: 0x0000021C
Start Time: 17:20:13.9230 Call Duration 00:00:00.0020
ibsta: 0x148 iberr: 0 ibcntl: 4(0x4)
12. ibwrt(GPIB1, "TSX1Y1", 6 (0x6))
Process ID: 0x00000708 Thread ID: 0x0000021C
Start Time: 17:20:13.9620 Call Duration 00:00:00.0020
ibsta: 0x148 iberr: 0 ibcntl: 6(0x6)
92. ibwait(GPIB1, 0x0000)
Process ID: 0x00000708 Thread ID: 0x0000021C
Start Time: 17:20:14.2770 Call Duration 00:00:00.0020
ibsta: 0x144 iberr: 0 ibcntl: 6(0x6)
97. ibrd(GPIB1, "TC0", 1027 (0x403))
Process ID: 0x00000708 Thread ID: 0x0000021C
Start Time: 17:20:14.2970 Call Duration 00:00:00.0020
ibsta: 0x2144 iberr: 0 ibcntl: 3(0x3)
At this point the CIC is looping waiting on the NRFD line to go low before it reads the SRQ at the start of my sequence.
Thanks
Phil
03-08-2018 09:08 AM
Hello,
I still have no solution for this problem. Can someone please explain why the NRFD is staying asserted? My last call with my app being the non-cic, is ibrd() as I am able to read the response from the CIC. My understand of the NRFD is that it is asserted why the byte is being read. So I don't understand why it still asserted after ibrd() has returned. The CIC is looping with iblines() after it sent the last response, and that shows the NRFD is still asserted.
Is there something in the config of my non-cic that is not "functional" with what the CIC is expecting? The REM is also active when iblines() is called on the CIC. Is there something the non-cic needs to do when remote enable is being used?
Thanks
Phil