私はFT232RLチップを持っています。USBからRS232へのプロトコル変換に使用していますが、データを変換してさらに使用する必要があります。
私が使用している「データセット」(モデムのような反対側のデバイス、私の場合はMAX485 IC)を構成できません。私が与えることができるのは、読み取りまたは書き込みの制御信号だけです。そのため、あまり役に立ちません。
私のアプリケーションでは、データを送信しているときにそれを「書き込みモード」に設定できる必要があり、送信が完了したらすぐに、それが生成する応答信号を受信するために「読み取りモード」に設定できる必要があります.
注: 制御信号は単純な HIGH または LOW です。データは数バイトの場合があります。
これを行う 1 つの方法は、RS232 送信バッファーにあるデータの量を読み取ることができるようにすることだと思います。それが「0」になるとすぐに、すべてのデータが送信され、制御ピンを「読み取りモード」に設定できます
それを行う別の方法は、FLOW CONTROLを使用することです
わかりやすくするために、問題を説明する前に、フロー制御の理解を説明したいと思います。
(1) データを Python 経由で USB 経由で ftdi に送信します
(2) ftdi は DTR ラインに HIGH を書き込む必要があります。
(3) DSR ラインで HIGH を受信すると、送信を開始する必要があります (これは、rts/cts フロー制御設定が無効になっていることを前提としています)
(4) 送信が完了すると、送信の終了を示す DTR ラインに LOW を書き込む必要があります。
問題は、期待どおりに DTR ラインをオンまたはオフにできないことです STEP (2) は起こりません
import serial
ser = serial.Serial("com1") # initialised port as ser
ser.dsrdtr = True # set dsrdtr mode
ser.write("blah blah") # sent a command
私も次のことを試しました:
ser.setDTR(True) # write a HIGH on DTR
ser.setDTR(False) # write a LOW on DTR
これはまだ私の完全な問題を解決していません。
ご意見をお聞かせください
編集: 私が使用している FT232RL は nex-robotics によるブレークアウト ボード上にあり、アクセスできるピンは次のとおりであることに言及する必要があります: 3.3V、5V、CD、RXD、TXD、DTR、GND、DSR、RTS、 CTS と RI、そしてもちろんラップトップに接続するための USB ポート
EDIT2: Mprog 3.5 または同様のソフトウェアを使用して、やりたいことをサポートできる EEPROM をフラッシュできますか? はいの場合、どのように?