FT232RL上的流量控制

2024-10-01 09:19:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个FT232RL芯片。我使用它的usb到RS232协议转换,我需要转换数据和进一步使用它。在

无法配置我正在使用的“数据集”(另一端的设备,如调制解调器,,在我的例子中是max485ic)。我只能给它一个读或写的控制信号。所以它不是很有用。在

我的应用程序要求我能够在发送数据时将其设置为“写入模式”,然后在发送完成后,我需要能够将其设置为“读取模式”以接收它生成的响应信号。在

注:控制信号是简单的高或低 数据可以是几个字节

我认为一种方法是能够读取RS232传输缓冲区中有多少数据。一旦变成“0”,所有数据都将被传输,我可以将控制引脚设置为“读取模式”

另一种方法是使用流控制

为了清楚起见,在陈述我的问题之前,我想先解释一下我对流量控制的理解:

(1)我通过Python将数据通过usb发送到ftdi

(2)ftdi需要在DTR线上写一个高电平

(3)在接收到DSR线路上的高电平时,它需要开始传输(这是假设我已禁用rts/cts流量控制设置)

(4)传输完成后,需要在DTR线路上写一个LOW,表示传输结束

问题是我不能像预期的那样打开和关闭DTR线路 步骤(2)未发生

import serial
ser = serial.Serial("com1")      # initialised port as ser
ser.dsrdtr = True                # set dsrdtr mode
ser.write("blah blah")           # sent a command

我甚至尝试了以下方法:

^{pr2}$

这仍然不能解决我的全部问题。在

请指教

编辑:我需要指出的是,我使用的FT232RL是在nex robotics的一个断接板上,我可以访问的引脚是: 3.3V,5V,CD,RXD,TXD,DTR,GND,DSR,RTS,CTS和RI,当然还有一个usb端口来连接我的笔记本电脑

编辑2:我可以用mprog3.5或类似的软件来闪存一个EEPROM,它可以支持我想做的事情吗?如果是,怎么办?在


Tags: 数据方法信号serialrs232模式ser线路
1条回答
网友
1楼 · 发布于 2024-10-01 09:19:54

TL;DR

According to the FTDI documentation插脚CBUS2的默认配置是TXDEN,这是专门为这个特性而设计的,所以只需使用pin CBUS2来启用收发器。在

背景

FTDI芯片当然可以DTR/DSR flow control。在

但这是因为当硬件自行处理流量控制时(与远端通信,可以提供背压)。不需要软件参与。在

通过RS485这样的多点总线,实际的流量控制是在软件中处理的,硬件只是在软件的指导下发送数据。在

正如你的一位评论者建议的那样,你可以编写额外的软件来打开DTR、发送数据和关闭DTR。但这对于满足时间紧的要求是有问题的,而且没有实际的需要,因为FTDI芯片支持根据发送数据的时间为您打开发射机。不过,您正在使用的DTR信号可能不提供此支持。在

FTDI可以控制收发器的信号名是TXDEN。根据您使用的是哪个FTDI芯片,这可能会被路由到几个不同的引脚中的一个。在

要设置路由,只需运行FTDI的FT_Prog。您可以扫描和解析当前设备,然后使用GUI进行更改。您还可以从XML文件保存和恢复配置。程序将显示TXDEN的路由选项。在

编辑人提问者:-此答案由以下内容完成要点:-在

1)下载MPROG 3.5作为FTDI的程序员。在

2)从任何CBUS0-CBUS4中选择任意一个可编程管脚

3)然后在读取和解析后,将所选管脚更改为TXDEN并点击程序

4)为TXDEN进行必要的硬件连接

TXDEN在FTDI发送数据之前是高的,并且立即变低,因此满足我的目的

相关问题 更多 >