Pis and serial ports...

IME that depends on the USB serial adapter. Its the same for both Linux and Windows: some work OK and some don't work at all. I got good results from a pFranc adapter, but that was several years back.
One possible gotcha is that they get assigned named device files, usually of the form /dev/ttyUSBnn where 'nn' is 00 to 99, as the adapter is connected. IOW the order in which adapters are connected matters because it determines the name each adapter is given. I have no idea of the order in which names are assigned if the adapters are already plugged in at boot time. Use dmesg if you need to know that.
Since the device files are created and deleted as the adapters are connected and disconnected your only chance of sanely controlling their ownership and access permissions is to write udev rules to handle that. However, its not difficult to do.
--
martin@   | Martin Gregorie 
gregorie. | Essex, UK 
 Click to see the full signature
Reply to
Martin Gregorie
Loading thread data ...
Well yes, I didn't mean to imply that there were no limits on the depth of nesting apart from the 8 layers that the USB specification allows - there's obviously the total device limit to bear in mind, and power issues too.
Reply to
Rob Morley
As good as any other linux. I've neve seen a usb serial port that didn't work.
--
?? 100% natural
Reply to
Jasen Betts
It's not a Bus (devices connected electrically in parallel) and they aren't really hubs (active repeaters). these once unambiguous terms have been subverted.
SCSI was probably the last true bus used for PC peripherals.
Firewire is close (being ethernet based - and therfore broadast) but I think the devices contain hubs of some sort
PCIe is nothing like a bus, (unless you count that the higher numbered channels on some 8x slots are shared with an adjacent 4x slot)
--
?? 100% natural
Reply to
Jasen Betts
that's only twice the price of a usb serial port, and lacks most of the features. Looks like it's wired for connection to DTE instead of DCE too.
--
?? 100% natural
Reply to
Jasen Betts
for 3.3V logic, max322
as I was
--
?? 100% natural
Reply to
Jasen Betts
They also get physically constrained (by their physical connection) names in /dev/serial/by-address so as long as you always plug it into the same usb socket it'll have the same name each time.
--
?? 100% natural
Reply to
Jasen Betts
I've had one that didn't work. Can't remember who made it though - that was quite a while ago. My solution was to use a multi-port PCI adapter, which did work without any fuss or problems. Just sayin' - I know this is a non-solution from an RPi.
--
martin@   | Martin Gregorie 
gregorie. | Essex, UK 
 Click to see the full signature
Reply to
Martin Gregorie
[]
Well, I've "actually done this" and it worked correctly for me, without any extra chip, but I still strongly recommend the appropriate level of protection for the Raspberry Pi when using older serial devices.
There's also the issue of the RS-232 control lines which may need to be connected for some applications and, in that case, a serial-to-USB converter may offer a more complete solution than simply voltage shifting RX and TX lines.
--
Cheers, 
David 
 Click to see the full signature
Reply to
David Taylor
Thanks for that - a really useful article. I was about to start researching this topic but the article explains it all.
It all reminds of the shenanigans used on 1960s mainframes to save on (expensive then) hardware.
Another Dave
Reply to
Another Dave
This whole thread has been most useful...learned a lot!
--
Stan Barr     plan.b@dsl.pipex.com
Reply to
Stan Barr
Yes - see the article referred to later in this sub-thread.
I've just discovered that my dual DVB-T tuner USB stick contains a hub. Together with the hub in the pi and the powered 4-port hub the tuner is plugged into I'm on the limit.
Another Dave
Reply to
Another Dave
Yes. See who posted that link? :-)
:(
I'm guessing it is a hub plus two USB DVB-T tuners in one stick - possibly even in one chip.
Reply to
Dom
Most informative - thanks for that. :-)
Reply to
Rob Morley
Agreed. Many thanks.
--
martin@   | Martin Gregorie 
gregorie. | Essex, UK 
 Click to see the full signature
Reply to
Martin Gregorie
Whoops! Sorry. My brain just detected a different level.
I'm not sure about the single chip but otherwise you're right. If I'd been using a cheap 7-port hub rather than a dear 4-port I'd have had the situation where the tuner worked on some ports but not on others.
Absolute nightmare.
Another Dave
Reply to
Another Dave
There is a reason for all that. As the speed of a connection increases it gets harder to control the integrity of the signal and at some point "buses" just don't work well anymore. The best example of that is the memory bus in PCs. With SDRAM they literally bussed all the memory devices together with one set of signals to the North Bridge chip. As the bus speeds increased they found that the specific geometry of the traces on the PCB (both motherboard and the SIMMs) impacted the signals and would cause errors. Users simply knew that plugging memory into this slot without memory in that slot wouldn't work with brand X, but would with brand Y. They interpreted this as a "quality" issue in the memory SIMMs or motherboards. In reality it was an issue of pushing the specs too hard.
Later generations of memory use point to point wiring between the North bridge or CPU and *each* memory module. Then the "bus" can be designed to work regardless of whether the other memory slots are filled because they are on separate I/Os from the CPU.
USB and other, modern interfaces are the same way. Point to point with electronics to handle the routing. Even Ethernet used to be a bus using a tap to add a connection to the coax. Now each user has a separate CAT5 cable to the switching unit, point to point. If you want to use a multi-point bus, use wi-fi...
--

Rick
Reply to
rickman
You thought wrong. USB never was a broadcast medium. Everything is addressed.
Dave
Reply to
Dave Higton
I got round this (rather messily) by scanning ports for serial devices, then sending a command that only the device I was looking for would reply to correctly.
I then went on to use it for kit that you could plug into any real serial port or USB one and still talk to it - including if it was unplugged then plugged back in again :)
--
W J G
Reply to
Folderol
Address 0 is effectively a broadcast address, but I was talking about how it manages (or ignores) routing i.e. is a "hub" what would be called in Ethernet terms a "switch", or does it just store and forward from any port to every other port? I should probably go read about it rather than making vague statements with little knowledge.
Reply to
Rob Morley

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.