お世話になってます。多田です。 皆さんから多数のアドバイスを頂きまして、どうもありがとうございました。 皆さんからのアドバイスを基に色々とやってみましたので、 ご報告致します。 > Tadaさんは19200bpsとのことですが,PCとターミナルソフトはどのように > なっているのでしょうか。 WindowsXP上で市販の通信ソフト「CCT Win」を使ってチェックを行っています。 > 1)8251へのクロックを上げる 現在、タイマ出力にて8251のクロックを生成しているのですが、 H8のクロックが16MHzの場合、タイマにて出力できるクロックの周波数は 1.6MHz辺りが最大なのではないでしょうか? なので、これ以上、8251に入れているクロックを上げることはできないのです... 本当はハード的にクロックを入れられれば良いのでしょうが、スペース的な 都合から回路を入れられない現状です。 > 2)TxRDY端子をH8の空きポートでモニタする(割り込みにする) TxRDY端子をH8の外部割込端子(IRQ0)に接続し、割込にてTxRDYを チェックするようにしてみました。 TxRDY端子は送信データキャラクタを受付不可の状態の時はLowレベルで 受付可能な状態の時はHighレベルになると思うので、 この立ち上がりエッジで割り込みをかけたかったのですが、H8の 割り込みレベルは立ち下がりエッジかLowレベルにしか設定 出来ないのですね。 結局、割り込みを使ったプログラムは以下のようにしました。 (IRQ0の割り込みレベルは立ち下がりエッジに設定しています) 1)TxRDY端子がHighレベルがどうかチェック 2)送信完了フラグをOFF 3)IRQ0の割込を許可 4)送信データ書込 5)送信完了フラグがONになったかチェック ※IRQ0割込処理の中では送信完了フラグをONにし、IRQ0割込を禁止。 (送信完了フラグはグローバル変数です) このプログラムでは、正常に送信が出来ました。 ちなみに8251のステータスワードは見ていません。 TxRDYを割り込みにしたプログラムは経験が無かったので、 このようにプログラムを組んでみましたが、皆さんはどのように しているのでしょうか? > 3)28tcyc待ってから8251のステータスを見る。 これは私のほうもマニュアルを見落としていました。 ウエイトを入れれば正常に送信できるということは、 ステータスを見て送信した場合、これが原因のような感じがしますね。 以上です。