使用 USB 转串行接口时,只要不超过 57600 波特率,一切正常。在更高的速率下,我只会得到如下乱码:
év.b0JNLYÆÿ¿iëd0U²(kßÞb!
ú]/xscB!ï¯!BoXûÿ1ïâÖCÿ6ÌAnè*íÌC)º¿BíÞØ.C.@ÆÃwHJÂs
"YE:ñ.èFðÌCÊ÷ÞÄ
!x
H
w6@BtbHJ
̪
Ì6ì
H¾a¿bH.">îvy®;f<ßBÌ
pL¨fæHE
þ¼MBÞI
问题之所以如此奇怪,是因为我更换了所有组件,但问题仍然存在。我尝试了不同的操作系统(Ubuntu、Windows XP、Windows 7、Mac OS X 10.7),32 位和 64 位。我尝试了 FTDI 和 Prolific 的 USB 转串行接口。我尝试从我的 Raspberry PI 和 Asterisk Appliance 读取输出。我更换了电缆和接线。但都无济于事。
我使用带有原生 COM 的旧笔记本做了一个示例,并将 USB 转串口连接到与“嗅探器”相同的连接(仅连接 Rx 和 GND),以确保输出和一切正常,正如在原生端口上看到的那样。电压正常。两者的设置都是 115200 波特、8 位、1 停止且无流量控制。原生没问题。USB 乱了。
我使用了最新的驱动程序并仔细检查了所有连接。 我不知道这里出了什么问题。由于我找不到任何人描述这样的问题,我质疑我在计算机科学方面的长期经验,并认为我做的一些事情完全是错误的。
答案1
经过深思熟虑并找到单帖这有点正确,我发现这是唯一剩下的反转信号的可能性,并尝试一下。幸运的是,FT232RL 在其 EEPROM 中有选项标志(可使用 FTDI 的“MProg”进行编程)来设置:
此后,一切都在每个波特率上正常工作。别问我为什么,我无法从技术上解释这个问题。我希望能得到一台示波器进行进一步研究。以前从未见过如此奇怪的问题。
我也使用 Cisco 交换机测试了我的 USB 转串行,如果不进行这种反转,它就无法工作。
答案2
我在以超过 57600 的速度连接到我们的 MCU 时也遇到了同样的问题,在怀疑我们的 UART 之后,我发现 Silicon Labs CP2102 USB 至 UART 桥接器(TTL)可以在更高的波特率下正常工作,而无需调整 FTDI 芯片组。