1

I am using an FTDI USB to Serial cable to read the startup log of a board. The FTDI cable is not reading the correct information coming from the board. Here is some of the information that I am seeing when I look at the Tera Term Terminal.

"¿aY'¿3;9!#%='5 5¿-9-!#¿%5%£¿777-5¿777-5#7;!!£%!75%#!#5¿=#7;!!£5'#! 5#!'¿=#7;!!£!9/A5#7!-7¿=#7;!!£!9/A=#5'A-7¿=#7;!!£!9/A35=¿=#7;!!£;!!'!=75£££¥¥3=77;5¿=#7;!!£5-57;!!=5!#15¿¡75¡%%9;')¿¿-åë¹¹¿s'=5#57¿w5-95¿W5¿;'!;¿=¿?åë¿¿¿{!!-#1¿¿1-!#5¿37¿;'!;¿=¿?åë¿¿¿5¿37¿%5%! ¿=77¿- 5åë¿¿¿U-#1¿w5-95¿W5¿-#¿'=95¿=¿?§¿5#7¿?=559åëy½VQÚtÔi)ÓKªÚ4ª:úëåë"

I have checked the baud rate, stop bit and parity bit and all are correct on Tera term and the device manager. I have tried this on both a windows laptop and a Linux laptop and I am having the same result between them. I have updated the drivers of the FTDI cable. I have hooked up the FTDI cable to a USB2ANY from TI using UART and was seeing the same result as above of the data being wrong. I have tested it at different baud rates and the data that is sent is always received as the same wrong data. An example is 0x22 is always received as a "7" across different baud rates. I have tried connecting two FTDI cables together and they can accurately send and receive data at different baud rates. an example being "banana" will be received as "banana". I have tried using minicom, Putty and Tera Term and the results are always the same. Is this something to do with the decoding of the data received? What could be causing this issue?

m-walker95
  • 255
  • 1
  • 10
  • have you tried every baud rate available? – jsotola Nov 06 '18 at 23:55
  • It sounds like you're not using the same encoding on both ends of the cable? – Hearth Nov 06 '18 at 23:55
  • 2
    Perhaps the FTDI cable uses "RS-232" levels, and the board is "TTL" levels (or vice versa). The "TTL" signal levels are inverted relative to RS-232. Mixing the two will result in garbage like you show. – Peter Bennett Nov 06 '18 at 23:58
  • I have not tried every baud rate but i have tried 4 different slower baud rates than i am using. – m-walker95 Nov 06 '18 at 23:59
  • "It sounds like you're not using the same encoding on both ends of the cable?" How do i change the encoding of the tera term of FTDI cable? – m-walker95 Nov 07 '18 at 00:00
  • Another think to check is the word size. While it's usually 8 bits, 7 is also often used and there are other possible values. – jaskij Nov 07 '18 at 00:02
  • "Perhaps the FTDI cable uses "RS-232" levels, and the board is "TTL" levels (or vice versa). The "TTL" signal levels are inverted relative to RS-232. Mixing the two will result in garbage like you show. " I will check this with a scope thanks. – m-walker95 Nov 07 '18 at 00:13
  • 0x22 (") comes up as 0x37 (7) ..... `00100010` comes up as `00110111` (if inverted it is `11001000`) ...... i think that the polarity of the signal is inverted – jsotola Nov 07 '18 at 00:16
  • Encryption of any kind should not be an issue here. With these simple devices encryption has to be enabled in code, and it would not look like a simple polarity inversion issue. –  Nov 07 '18 at 00:22
  • you can download FT_PROG here https://www.ftdichip.com/Support/Utilities.htm#FT_PROG ..... it is a utility to configure the FTDI chip ..... you can use it to invert the data lines – jsotola Nov 07 '18 at 00:32
  • I tried polarity inversion on TX and RX and it still is not working. – m-walker95 Nov 07 '18 at 01:05
  • You really need to post a screenshot from a scope showing the signal. It would also be helpful to identify the board and perhaps provide a picture of the circuitry surrounding the connector. Are you sure you actually have the pinout correct and the ground connected? – Chris Stratton Nov 07 '18 at 05:24
  • https://imgur.com/a/DbySnNf Here are the scope captures. I think @PeterBennett was correct. Thank you for your help. I have ordered a "USB TO TTL SERIAL CABLE" from adafruit to confirm this was the issue. – m-walker95 Nov 07 '18 at 17:51

1 Answers1

1

The issue was that the FTDI cable uses RS-232 levels(-6V to +6V) and the board that I am trying to communicate with is using TTL levels(0 to +3.3V). The solution was to use a USB to TTL cable. Here is an example of one: https://www.adafruit.com/product/954

m-walker95
  • 255
  • 1
  • 10