KurtE
Senior Member+
Sorry, I have positively no idea.
I am glad that an RS232 standard is clear to you. The issue is that is an RS232 standard not necessarily a standard CDC_ACM standard..
I assume you read the information in the link that Paul put in message #20? Which more or less says that most windows and linux USB Serial drivers support 8 bit, but mentions things like, but some chip sets support it, but you need their driver to use it...
So if you think about the USB stuff at the highest level, it is simply sending packets of data with some usb header stuff and N bytes of data. For example if you look at RAWHID,
You send (or receive) packets of 64 (8 bit) bytes of data.
Now suppose you wish to send 9 bit data elements over this how might you do this? I could come up with many different ways.
I might reserve the first byte in the packet to say how many data bytes are in the packet... That is you don't always get a full packet of data before you wish to send it, so you may want to know how many...
a) send 2 bytes per element and waste 7 bits. So instead of 63 elements of data I have 31...
Easy to implement but wastes bandwidth
b) maybe I actually encode all of the data in 9 bit chunks and have to do bunch of shifting and the like to create/extract packet, but you can get maybe 56 elements into packet.
c) Maybe you decide that changing the High bit does not happen very often. So maybe either you have special packets, where since you have max of 63 or 64 bytes, if you have a length field you only need six bits for size, so maybe you encode the top two bits on the size for additional information. Like maybe if high bit is set, then all data bytes in this packet have their logical 9th bit set, else they are 0...
d)...
So again how is it they do it?
Can a Teensy do it? Again do what? Note: the Teensy can emulate a joystick, mouse, keyboard, midi... So it is likely able to do this, whatever it is...
But again not much else I can suggest without something tangible to look at. Like which USB to serial adapter did it work with? Which drivers? Then maybe one could do searches on that library and again see if maybe there is a linux driver that supports it and one maybe can see how they do it? Or maybe can intercept the packets and see what they do...
I am glad that an RS232 standard is clear to you. The issue is that is an RS232 standard not necessarily a standard CDC_ACM standard..
I assume you read the information in the link that Paul put in message #20? Which more or less says that most windows and linux USB Serial drivers support 8 bit, but mentions things like, but some chip sets support it, but you need their driver to use it...
So if you think about the USB stuff at the highest level, it is simply sending packets of data with some usb header stuff and N bytes of data. For example if you look at RAWHID,
You send (or receive) packets of 64 (8 bit) bytes of data.
Now suppose you wish to send 9 bit data elements over this how might you do this? I could come up with many different ways.
I might reserve the first byte in the packet to say how many data bytes are in the packet... That is you don't always get a full packet of data before you wish to send it, so you may want to know how many...
a) send 2 bytes per element and waste 7 bits. So instead of 63 elements of data I have 31...
Easy to implement but wastes bandwidth
b) maybe I actually encode all of the data in 9 bit chunks and have to do bunch of shifting and the like to create/extract packet, but you can get maybe 56 elements into packet.
c) Maybe you decide that changing the High bit does not happen very often. So maybe either you have special packets, where since you have max of 63 or 64 bytes, if you have a length field you only need six bits for size, so maybe you encode the top two bits on the size for additional information. Like maybe if high bit is set, then all data bytes in this packet have their logical 9th bit set, else they are 0...
d)...
So again how is it they do it?
Can a Teensy do it? Again do what? Note: the Teensy can emulate a joystick, mouse, keyboard, midi... So it is likely able to do this, whatever it is...
But again not much else I can suggest without something tangible to look at. Like which USB to serial adapter did it work with? Which drivers? Then maybe one could do searches on that library and again see if maybe there is a linux driver that supports it and one maybe can see how they do it? Or maybe can intercept the packets and see what they do...