DTaylor Posted September 8, 2017 Report Share Posted September 8, 2017 (edited) I have a cRIO 9030 based test system that connects to 16 control boards over USB (FTDI). I can connect and communicate with 14 just fine, but it seems NI Linux RT is not recognizing the 15th and 16th devices. /dev/ttyACM0 through /dev/ttyACM13 show up for the first 14 boards, but no new ttyACM files appear for devices 15 and 16. The first 14 also show up under devices and interfaces in MAX and are discoverable with VISA. I've tried a couple different hubs in different configurations connected to the two USB ports (including daisy chaining them), and I'm always able to get exactly 14 boards to connect. I can communicate with all 16 without issue on my desktop, so I don't think it's an issue with the hubs. Is this a real OS or hardware limitation, or does anyone know of a potential solution or workaround? If there is a real limitation, I can settle for testing two batches of 8 at a time. Thanks! x-post here: https://forums.ni.com/t5/NI-Linux-Real-Time-Discussions/FTDI-USB-Device-Limit/td-p/3686134 Edited September 8, 2017 by DTaylor added dark side xpost Quote Link to comment
Tim_S Posted September 8, 2017 Report Share Posted September 8, 2017 Hrm... Some Google-fu indicates that USB is limited to 127 devices on a controller but can run into bandwidth issues. Powering a device off the USB port could cause problems as well if you exceed the current capability of the port. Quote Link to comment
hooovahh Posted September 8, 2017 Report Share Posted September 8, 2017 I'm curious what USB hardware you are using. It sounds like you have 16 individual devices and might fair better with a single 16 port device. I've used these successfully on Windows, but never had access to one and an RT controller. I know of no reason why this limitation would be there, but NI might and you should probably crosspost here. EDIT: You may also want to update this post with USB devices you were successful with. I haven't found an FTDI, or Prolific chipset that hasn't worked yet. Quote Link to comment
DTaylor Posted September 8, 2017 Author Report Share Posted September 8, 2017 (edited) 15 minutes ago, Tim_S said: but can run into bandwidth issues. So I can't even get to the point where I attempt to send data to all 16 at the same time. I'm so far unable to get the OS to even enumerate all the devices. 15 minutes ago, Tim_S said: Powering a device off the USB port could cause problems as well if you exceed the current capability of the port. I should have mentioned that the first configuration I tried was two 8 port hubs each with their own 60W DC supply. 11 minutes ago, hooovahh said: I'm curious what USB hardware you are using. The control boards have Arduino Megas on them that I'm connecting to. I have two Anker 8 port USB hubs each with their own 60W DC supply. I connected one to each USB port on the cRIO. If I instead daisy chain them, I can see up to 14 devices enumerated from the one cRIO USB port, and when I connect a 15th board directly to the second cRIO USB port (not through a hub), nothing new shows up in /dev and there are no new devices in MAX or VISA discovery. Edited September 8, 2017 by DTaylor Quote Link to comment
DTaylor Posted September 8, 2017 Author Report Share Posted September 8, 2017 16 minutes ago, hooovahh said: but NI might and you should probably crosspost here. But that's probably good advice. x-post here: https://forums.ni.com/t5/NI-Linux-Real-Time-Discussions/FTDI-USB-Device-Limit/td-p/3686134 Quote Link to comment
hooovahh Posted September 8, 2017 Report Share Posted September 8, 2017 Search your feelings, you know it to be true. The dark side is the only path forward. (unless someone from NI comes here which does happen but I think this is specific enough of a problem to ask that group) 19 minutes ago, DTaylor said: If I instead daisy chain them, I can see up to 14 devices enumerated from the one cRIO USB port, and when I connect a 15th board directly to the second cRIO USB port (not through a hub), nothing new shows up in /dev and there are no new devices in MAX or VISA discovery. This really does sound like a software limitation, potentially in the kernel. The fact that the 15th device is pluged directly into the cRIO not through a hub is the key piece of information. Quote Link to comment
DTaylor Posted September 11, 2017 Author Report Share Posted September 11, 2017 from dmesg: [ 7.434709] usb 1-4.4.4.2: new full-speed USB device number 24 using xhci_hcd [ 7.577906] usb 1-4.4.4.2: Not enough host controller resources for new device state. [ 7.577923] usb 1-4.4.4.2: can't set config #1, error -12 It looks like this issue is not limited to NI Linux-RT: https://superuser.com/questions/731751/not-enough-host-controller-resources-for-new-device-state I poked around in the BIOS and couldn't find anything that would allow me to disable xhci. Does anyone know if this is possible without recompiling the kernel? Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.