先にアップしたプログラムの一部を改定しました。
rs232c_2.zip
パラメータ設定で、ボーレート倍率に x64 を追加しました。
これは、8251 の分周する回路の選択で、1/16、1/64、以外に 1/1 を選べるようにしたものです。
これを使うと、RS232Cのボード上の速度を600bps にして、x64 にすると、38400bps になるはずなんですが...
1/1 のクロックを使ってデータを受信した場合、受信データ化けを起こします(データ落ちはない)。
マニュアルではこの事には特に触れていませんが、よく読んでみるとデータのサンプリングタイミングが記載されており、これがこのクロックの立ち上がりになります。
分周クロックの場合、スタートビットの立ち下がりから、データのサンプリングタイミングを決定できますが、分周しない場合は、外部から入力されるクロックをそのまま使うようです。
そのため、データとのタイミング関係が分からない、外部のクロックの立ち上がりで取り込むため、データ化けが起こると考えられます。
ただ、送信側は 1/1 を使っても特に問題がありません。
ちなみに試した所、307200bps(4800×64)まで、正常に送信できました。ただ、フロー制御を効かせているので、データが途切れてる可能性はあります。
ボーレート設定が面倒なので、ソフトから制御できるようにしようかな...
2012年10月22日
この記事へのコメント
コメントを書く

