[ttssh2-dev 597] Re: ticket #45271 / Serial Hard Flow

Back to archive index
matsuo zmats****@gmail*****
2023年 2月 12日 (日) 21:43:53 JST


松尾です。

https://osdn.net/projects/ttssh2/ticket/45271#comment:1412:45271:1676129901
ありがとうございます。

 >>> ticket の波形は、同期を取るため?に1文字ごとに、CTS(PCから見て)が
 >>> 上がっているように見えます。
 >>
 >> 1文字ごとのCTSのパルスを見て、下の図の古い(1の)フロー制御を使って
 >> 送ってきているような気がしました。
 >
 > 新しい(2の)フロー制御で、1文字ぶんしかバッファがない感じで、
 > 1文字処理できたらCTS が上がり、1文字を送り始めたら CTS が下がる、
 > という動きにも見えてきました。

デバイスがCTSを制御できることを示すためだったんですね。

わかったことなどをまとめてみました。

- Tera Term は CTS を無視して送信することがあった
   - レポーターさん手元で数か月前に無視して送信することを確認していた
     - I did measure the signals at the DB9 connector (a few months
       back) to determine that Teraterm was ignoring the CTS signal
       from my circuit.
   - デバイスドライバによってはあったかもしれない。
   - 
修正で直ったかもしれない/だめかもしれない(レポーターさんに確認してほしい)
- デバイスは CTS を制御できている
- レポーターさんデバイスは AT89C51系を使ったオリジナルのようだ
- デバイスは RTS を無視して送信する
   - In my situation, the PC never needs to negate RTS because the PC
     is a great deal faster than my micro controller.
- AT89C51 には受信/送信バッファFIFOはないようだ
   - 
1byteのバッファがあったとしても、CTS=0を出力しても多少データが流れてくるかもしれない
   - 57600bps速すぎない?
     - 設定画面で 57600bps になっている

考察

- 
レポーターさん環境でデータがどこでドロップしていたのか?切り分けられていない
   - Deviceの受信時?/送信時?/両方?

次の調査

- Tera Termの受信時(デバイスからの送信時)にデータがdropするか?
   - 
デバイスからデータを連続して送るプログラムを作ってもらって、デバイスで実行、
   - PC で Tera Term を実行、データを受信して drop するか見てもらう
   - Hyperterminal でも見てもらう
- Tera Termの送信フロー制御ができているか?
   - 
例えばCTS=0/1を1秒ごとに変更するエコープログラム作ってもらって、デバイスで実行、
   - Tera Term の文字送信が停止/再開するか見てもらう
   - Hyperterminal でも見てもらう

いまのところこういうのを試してもらうぐらいしか思いつかないです。
なにかいい手はあるでしょうか?



ttssh2-dev メーリングリストの案内
Back to archive index