[Oberon] Pepino LX9, USB, and other hardware running OBERON

enso enso at apple2.x10.mx
Wed Feb 17 04:48:18 CET 2016


I will make another plea against embedding USB, using USB and teaching USB.

USB is a technology pushed by a consortium of large corporations, 
protected by patents, trademarks and sheer complexity.  Its main goal is 
to lock in customers who don't know better and lock out small 
manufacturers and developers by imposing a tax, whether as a license 
fee, a logo fee, and the necessity to put a USB chip onto your circuit 
board.

While appearing to offer convenience to the end user, it is a pretty 
evil technology.  It is an anti-bootstrapping technology that requires a 
working computer system with substantial resources, the opposite of what 
you need in an embedded or experimental system.

Replacing a simple serial port with a USB-serial port, causes problems 
above and beyond those listed above.  An asynchronous serial port sends 
data when it's ready, whereas USB has to packetize the data, causing 
unnecessary processing and making the timing less certain.  A serial 
port was an always-ready peripheral, easily configured with a couple of 
registers.  Initializing a USB connection requires extensive negotiation 
and large tables, requiring kilobytes of RAM and a working CPU.  I 
routinely debug FPGA CPUs and microcontrollers by pumping data out a 
serial port - but dealing with USB requires a working system!  Finally, 
unplugging and plugging in a serial cable was not a problem, while doing 
it with USB requires a long initialization, and often results in a 
re-assignment of the serial port ID.

Attaching a simple HID device like a keyboard, for those who complain 
about PS/2 ports, is not that easy.  There are several different ways a 
keyboard may send data.  All my USB keyboards crash _much_ more often 
then my computers, requiring a reboot.  A PS/2 keyboard just sends data 
over a serial port.

Finally, as ubiquitous as USB is, it is not something that should be 
'taught'.  It is a dumb, bloated and obfuscated spec with multiple 
standsards, connectors and extensions that is much like the US tax 
code.  If you want to be a tax lawyer, go for it.  Otherwise, you should 
know as little as you can get away with - it is going to change as soon 
as everyone is too comfortable with it.  Such is the nature of the game.

As it relates to Oberon devices - I feel very strongly that USB should 
be kept out of it.  Oberon RISC is designed to depend as little as 
possible on outside technologies.  A serial port on an Oberon board 
should be able to connect to another board, an Arduino or another 
microcontroller just as easily as the PC.  A USB port should not be 
required on the other side.  You can always get a $5.00 USB-serial 
dongle for your PC.

A USB jack works well as a power source, but that's about it.

Thank you for putting up with my ranting.



More information about the Oberon mailing list