fenrir-naru / gpib-usbcdc Goto Github PK
View Code? Open in Web Editor NEWInterface bridge between GPIB and USB communication device class
Interface bridge between GPIB and USB communication device class
Hello there. We have an old instrument which is used to be controlled by a vintage NEC PC-9801ES computer running under DOS 6.20 via a PC-9801-29N c-bus GP-IB board. Computer is missing and after a few years not being used we need to use the instrument again. Fortunately there are a few emulators for PC-9801 computers (best to me is Neko Project II emaulator) developed by gamer community but unfortunately they don't support GP-IB interface ? The road map we are guessing is writing a program (under N88-basic and DOS 6.20 Japanese version) to be able to capture the commands from the instrument software running inside Neko Project II emulator environment and convert them to appropriate format and send them to the NI GPIB-PCII/IIA board inside our modern computer ruining running windows XP which is connected to the instrument and vis-versa. Or to include both old c-bus GP-IB and new NI GPIB-PCII/IIA PCI-bus support into the open source Neko Project II emulator. We are looking to hire a GP-IB programmer to do this job for us. Could you please let us know if yourself or anyone else you may aware of who may willing to do this job for us his/her email?
THX
Hi.
This looks cool, as we are looking for CDC examples using SiLabs C8051F380.
However, I'm unsure about the build settings, and make barfs on this PC.
Q: What is the expected code image size & .MEM file ? (It might pay to upload a .HEX and .MAP & .MEM files to github, so users can see what they should get ?)
I can get a manual build if I use this command line
\SDCC\bin\sdcc.exe --debug --stack-auto --nooverlay --model-small --use-stdout --opt-code-speed -c gpib.c -o OutSDCC
but that --stack-auto seems to pass everything on the stack, and gives a large size: 19059
with .MEM showing DATA space is all Stack.
However, that's likely to be VERY slow.
If I try a simpler
\SDCC\bin\sdcc.exe --debug --use-stdout --opt-code-speed -c gpib.c -o OutSDCC
(I find I need --nooverlay removed, as otherwise it cannot all fit in DATA)
that compiles all modules fine, & gives a much better looking MEM report, & better Size : 16835 except for gpib.c which fails with error reports like this
gpib.c:66: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:67: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:68: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:74: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:78: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:82: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:94: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:101: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:118: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:410: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:413: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:421: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:426: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
gpib.c:575: error 92: Functions called via pointers must be 'reentrant' to take this many (bytes for) arguments
and I could not get a SDCC __reentrant keyword to apply in the function declarations, as they seem tangled in #defines etc
These seem simple print routines ?
Do you have a gpib.c version that has __reentrant applied (or gpib.c that does not need reentrant?), or do you have any command line tips, for getting a build that completes ok ?
I spent days trying to get this GPIB converter to work on my voltmeter but I couldn't even after checking the documentation many times. The voltmeter did not not respond to any command. Meanwhile, strangely, a National Instruments converter (clone) worked without any problem. Eventually I had to troubleshoot this problem by probing the GPIB bus painstalkingly with a logic analyzer. The conclusion was almost hilarious: the voltmeter's GPIB address was set to 0, which is ambiguous, and I didn't realize it.
After I changed the address, it worked flawlessly.
This is not a bug since address 0 is reserved. But I suggest updating the documentation with a warning on GPIB device address 0, so other newcomers don't have to fall into the same trap.
If the controller set the device as a listener first and set itself as a talker, it creates a bus contention - both the controller and the device have address 0 and both think they should start talking now, trashing the bus, so it doesn't work. This is the behavior of gpib-usbcdc.
But... If the controller set itself as a talker first before set the device as a listener, it works (in a mysterious way if you don't have a logic analyzer), because there's only one active talker at this point. Apparently National Instruments does this, perhaps as a workaround just for this case. So it worked without any problem.
Hello.
Is this device supposed to pop up as a GPIB-USB comport?
if so, i'd guess it doesn't support Pyvisa with multiple instruments or does it?
Hello, I encountered an issue when testing your open-source project. When using your code to send data to the computer via GPIB-USB-HS and reading it with NISA, I am facing a problem with the received data. Instead of receiving the 128 ISO characters, I am getting a series of dots and other characters. The data seems to be corrupted. Can you please help me troubleshoot this issue
Hello,
I wanted to ask if there is a firmware version for the adapter if you're using a C8051F387
You recommended either the EFM8UB20F32G-A-QFN32 or C8051F387.
But im having problems with Windows detecting the adapter correctly.
Do i have to build my own firmware or is there a premade one?
Thank you for your help
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.