I am working with a test setup where I have a USB1208FS-Plus DAQ controlling other test devices using the digital output ports A0-A7 and B0-B7. I have an automation script that works using the universal library in Windows (I import from cbw64.dll). I can do what I need to do really simply in vb.net by importing the functions cbDConfigPort and cbDOut from cbw64.dll
However, I'm required have a version of this script that works on Linux. I saw on the digilent website that we can use the libusb based drivers here: https://github.com/wjasper/Linux_Drivers
I wrote a simple c script that replaced the universal library commands with usbDTristateW_USB1208FS_Plus and usbDLatchW_USB1208FS_Plus from the Linux Driver. I have confirmed by reading back the digital ports afterwards that these commands are setting the digital port values.
However, when I use the Linux version of the script, the DAQ does not interact with the rest of my test equipment in the same way. It fails to configure other test devices the way it does when I use the Windows, vb.net version.
I used a multimeter to confirm that both versions of the script are setting the same digital ports to high and low. However, I saw that with the Windows version of the script, for A0-A7 high voltage is around 3.6V, whereas with the Linux version high voltage is around 5V. As far as I can understand, the voltage difference must be causing my problems.
I'm not experienced working with these drivers, so I think I may be missing some nuance here. Do I need to be doing some configuration in my Linux script to control the output voltage level on port A?
If it helps, the flow of my script (both Windows and Linux) is:
Question
sh83
I am working with a test setup where I have a USB1208FS-Plus DAQ controlling other test devices using the digital output ports A0-A7 and B0-B7. I have an automation script that works using the universal library in Windows (I import from cbw64.dll). I can do what I need to do really simply in vb.net by importing the functions cbDConfigPort and cbDOut from cbw64.dll
However, I'm required have a version of this script that works on Linux. I saw on the digilent website that we can use the libusb based drivers here: https://github.com/wjasper/Linux_Drivers
I wrote a simple c script that replaced the universal library commands with usbDTristateW_USB1208FS_Plus and usbDLatchW_USB1208FS_Plus from the Linux Driver. I have confirmed by reading back the digital ports afterwards that these commands are setting the digital port values.
However, when I use the Linux version of the script, the DAQ does not interact with the rest of my test equipment in the same way. It fails to configure other test devices the way it does when I use the Windows, vb.net version.
I used a multimeter to confirm that both versions of the script are setting the same digital ports to high and low. However, I saw that with the Windows version of the script, for A0-A7 high voltage is around 3.6V, whereas with the Linux version high voltage is around 5V. As far as I can understand, the voltage difference must be causing my problems.
I'm not experienced working with these drivers, so I think I may be missing some nuance here. Do I need to be doing some configuration in my Linux script to control the output voltage level on port A?
If it helps, the flow of my script (both Windows and Linux) is:
- configure ports A and B to write
- write all 1 to both ports A and B
- write all 0 to port B
- write a binary number to port A
- write another binary number to port A
1 answer to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now