[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