Serial port integration results in gibberish
-
Greetings,
Riddle me this. I can get two Omega2+'s (O2+) to speak between their rx1/tx1 pairs using 9600 or 115200 baud, 8-bit, one stop, no parity, flow control off. I can get two WinPC's to talk using PuTTy over USB-to-serial converters (USA-FTDI-A36) and between them a pair of D-sub 9 females and between them a breadboard. All is great. I can break the serial connection and replace one end with a sensor system that results in beautiful accelerometer and heading data in the terminal (this proves the wiring in the hand soldered serial section).The above shows I have set up the protocols correctly and the wiring is correct.
Now I can attach either PC-to-serial section to an O2+ or the sensor to an O2+ resulting in little getting to the PC in an ssh terminal ("screen /dev/ttyS1 ${baud_rate})or cat /dev/ttyS1) and what arrives is a wreck. In the case of putting the PC-to-serial section on Tx0 of a booting device it is a fire hose of garbage (monitoring from another O2+ shows a beautiful boot sequence!). Putting my device output into an O2+ Rx1 results in a line of garbage at 2 Hz, every time the sensor sends out a message a 60 to 80 or so character stream of garbage shows up at the O2+ terminal session.
I've beat on this and can't figure out why this simple interface is working under some conditions and not others.
The sensor system is a 5V unit. The O2+ is in either an expansion dock or a breadboard dock with same results.
All I'm left with is an electrical issue. I brought an old o-scope in today to investigate and found it's display dead. Purchased a new scope and it will be delivered next week.
What is left to troubleshoot here?
Can the O2+ Rx port be over driven causing causing nonsensical results?
What is the Tx port capable of driving?
Where is this documented?
thanks!
Bill
-
@William-Scott said in Serial port integration results in gibberish:
The above shows I have set up the protocols correctly and the wiring is correct.
USA-FTDI-A36 is a USB 2.0 to RS-232 Serial Adapter.
According to the specification it has got "RS232 output power: -5.7 to +5.7VDC".
So the Low level is about +5V and the High level is about -5V (negative logic) of the serial lines.
You can check this with a multimeter - PC-to-PC test: the Idle state of the TxD lines are High (ie negative voltage).Omega2(+) has got two 3.3V TTL level serial lines, where the Low level is about 0V and the High level is about +3.3V (positive logic).
A usual 5V powered sensor with TTL level output line(s) should provide Low level < +0.8V and High level > +2.4V (also positive logic).You should use
-
for example - an FTDI Serial TTL-232 USB Cable or an FT232H Breakout - General Purpose USB to GPIO+SPI+I2C module:
Omega2(+)_Rx <-- cable/module_Tx
Omega2(+) Tx --> cable/module_Rx
Omega2(+)_GND --- cable/module_GND
You could use these devices with that sensor too because its serial lines are 5V-logic compliant - no level shifting required. -
or - for example - one-one RS232 to TTL Converter Module with your (USA-FTDI-A36) cables.
Using it with Omega2(+) connect VCC to +3.3V - with that sensor connect VCC to +5V.
There are lots of almost or fully equivalent but definitely cheaper gadgets on Amazon, ebay, ...
Good luck.
-
-
@György-Farkas Thanks a bunch! I was stuck as I didn't have an oscilloscope at the time. I ordered one right away and received it the following week. Your response was already in hand.
I "knew" there was the incompatibility as I knew (absolutely) the O2+ 3.3V system and many years of RS-232. However I couldn't find any specifics in the Omega docs of the actual device interface.
Your answer confirmed what I knew. However your answer was much better as it provided a candidate solution to the incompatibility.
thanks!!
Bill