Half a croissant, on a plate, with a sign in front of it saying '50c'
h a l f b a k e r y
Flaky rehab

idea: add, search, annotate, link, view, overview, recent, by name, random

meta: news, help, about, links, report a problem

account: browse anonymously, or get an account and write.

user:
pass:
register,


                       

Please log in.
Before you can vote, you need to register. Please log in or create an account.

Bring back the serial port! (And maybe an i2c port?)

As a TTL port thought!
 
(0)
  [vote for,
against]

What would be nice is if usb 3.0 (or some other upcoming standard), could support a "serial port mode".

This is since so many industrial and low cost devices already have uart baked in.

To make life easier, you could have autodetect of the serial setting, by an I2C eeprom chip that stores the "baudrate", "parity" and "stop bit" settings of the line. Something like this?

[USB 5V] --> [5V]

[USB Data+] --> [ Host TX ]

[USB Data-] --> [ Host RX ]

[USB Gnd] --> [GND]

[USB SSTX+] --> [DTR]

[USB SSTX-] --> [RTS]

[USB SSRX+] --> [I2C SDIO/SDA]

[USB SSRX-] --> [I2C SCLK/SCK]

----

For the settings I2C eeprom. The eeprom's i2c address will be 0xAh (typical bog standard i2c address for eeproms. Binary 1010.)

There is two approaches to storing the settings in the eeprom. You could either keep it all binary ( e.g. 8bits to select between "75, 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 and 115200 bit/s"), allowing for smaller cheaper eeproms. Or you could just store it all in as a json/YAML string (thus is user readable).

I would recommend just encoding it as a human readable string, since most i2c eeproms at least are 1kbits in size (125 8bit ASCII characters), since most computers are powerful enough.

In general you want these settings in the settings eeprom:

[Serial settings: e.g."9600/8-N-1" ]
[UUID Device]
[Device Class]
[optional serial number]

e.g.

{
"serial":"9600/8-N-1",
"DeviceUUID":"de305d54-75b4-431b
-adb2-eb6b9e546013",
"DeviceClass":"Generic:BlinkyLED"
}

----

The I2C line doesn't have to only contain an I2C eeprom. You could perhaps place other I2C peripherals on the same line as well. Might make for a very versatile I2C port as well.

----

I know in general, this is kind of a pipe dream. But maybe one day someone dealing with USB spec (or a rival) could implement this. Not like this could cut in to licencing profits by too much hopefully, since this is too slow for most things like flash drives. But it sure will make the usb port much more "universal" for embedded devices.

mofosyne, Jan 06 2015

UUID http://en.wikipedia...sh_.26_namespace.29
So DeviceUUID is a (Version 5 UUID), where the namespace is the vendor and the name is the device's name [mofosyne, Jan 06 2015]

"almost all i2c EEPROM ICs use 0xAh (or 1010)" - llakais http://electronics....on-standard-address
[mofosyne, Jan 06 2015]

Converters are available https://www.google....+RS232%22+converter
And with plenty of USB ports on today's computers, it should be simple to pick one and keep a converter handy for plugging into it whenever needed. [Vernon, Jan 06 2015]

[link]






       Or buy a real computer, and run an operating system (rather than windoze, which is a video game with delusions of adequacy).
8th of 7, Jan 06 2015
  

       Hmm. Err, what if you want to talk to an eeprom that's already hardwired to that address?   

       I needed to write to an i2c eeprom chip not long ago, and I did it by usb -> isp -> atmega128 -> i2c. This was a little convoluted but worked fine. Given that most AVRs and PICs have all the serial ports you're asking for built in, they basically already function as a universal serial device. All you need to do is write your auto-protocol-detection software.   

       Incidentally, I think USB does have support for simpler serial interfaces, those ps2 keyboard -> usb adapters are completely passive.
mitxela, Jan 06 2015
  

       //I think USB does have support for simpler serial interfaces, those ps2 keyboard -> usb adapters are completely passive.//   

       The adapters are passive, the keyboard isn't. It detects that you've plugged it into USB, and starts speaking USB instead of PS/2.
Spacecoyote, Jan 06 2015
  

       Ah yes, that does make a lot more sense.
mitxela, Jan 06 2015
  

       If Windows is a video game Linux is the same game, but set to hard mode.
Voice, Jan 06 2015
  

       "Converters are available" - Vernon   

       The biggest issue is that drivers for these are a pain to use in windows.   

       You would think serial drivers would be autodetected as a generic class serial driver, like flash drives would be in windows. But it just isn't so for serial drivers, for some reason unknown to me. (plus it would be nice to auto configure serial settings)   

       Really all I'm asking I guess, is for a pain free serial experience.
mofosyne, Jan 06 2015
  

       Most people, it seems, just add one of FTDI's chips to their design and call it a day.
Spacecoyote, Jan 07 2015
  

       I'm currently hooking up an old CNC machine to a USB/serial adaptor. An idea of the age: The CNC memory is measured in feet. The good thing about the RS232 standard is that there are so many variations of it - for example when connecting with cables that have different handshaking. Even needing to select 7 bits on the PC and 8 on the CNC etc (true with Mazatrol software). I think it is a non- standard that I would be pleased to see no longer.
Ling, Jan 07 2015
  
      
[annotate]
  


 

back: main index

business  computer  culture  fashion  food  halfbakery  home  other  product  public  science  sport  vehicle