t-takeuchi
2016年4月4日 21時09分
お世話になります。
竹内と申します。
SCIFB0(CON16) のシリアルドライバを独自で作成しようとしている者です。
割り込みモードで、SCIFB0 のRX FIFOにたまったデータを処理しようとしています。
FIFO が FULL になれば、Receive FIFO Data Fullの割り込みの通知でデータ処理可能ですが、これだけではなく、
FIFO が FULL にならなくとも、ある程度受信データがたまったら、割り込みでそのことをドライバに通知させたいです。
SCIFであれば、タイムアウトの割り込み(TO)を有効にすることで、この要求を実現できますが、
SCIFBは、私が調べる限り、タイムアウト割り込みは未サポートです。
SCIFBに備わる機能を利用して、SCIFのタイムアウト割り込みに相当することをSCIFBで
実装しようとしたのですが、うまくいきません。
割り込みモードで、SCIFBでこの要求を実現するためのうまい方法があれば、お知恵をおかりできませんか?
なお、ポーリングによるデータ処理は現在のところ考慮に入れていません。
以上、よろしくお願いします。
コメント
kes-konishi
t-takeuchi
小西さま
おせわになります。
竹内です。
> KES)小西です。
>
> 勘違いだったらごめんなさい。
>
> タイマを張るとCPU負荷が上がります。
> なので、ドライバ内でHSRTRGRのRTRGで1BYTE設定にすると、
> FIFO-Fullの割り込みが1BYTEで発生すると思いますが、
> 勘違いでしょうか。。。
> レジスタの初期値が1なので、128とかに書き換えていればですが。。。
コメントありがとうございます。
荒川様のアドバイスで本件解決しました。
> なので、ドライバ内でHSRTRGRのRTRGで1BYTE設定にすると、
> FIFO-Fullの割り込みが1BYTEで発生すると思いますが、
> 勘違いでしょうか。。。
Yesです。
アドバイスいただいた通り、FIFOの閾値を 1 byte にセットすることで要求を実現できますが、
大量データを受信した場合、処理しきれずにオーバーフローが発生するため、
FIFOの閾値を16byte以上に設定する必要がある、という前提条件がございました。
# 前提条件の提示が漏れており、申し訳ありませんでした。
以上、よろしくお願いいたします。
t-takeuchi
あらかわさま
お世話になります。
竹内です。
> > SCIFであれば、タイムアウトの割り込み(TO)を有効にすることで、この要求を実現できますが、
> > SCIFBは、私が調べる限り、タイムアウト割り込みは未サポートです。
>
> SCBSSRは確認しましたでしょうか。
> ビット0のReceive Data Readyでタイムアウトを実現できるかと思われます。
>
> 詳しくは、RZ/G Series User's Manual: Hardware[1]の
> 53.3.8 Serial Status Register Bn (SCBSSRn)
> bit0:Receive Data Ready
> を確認してみてください。
>
> [1]: http://japan.renesas.com/products/mpumcu/rz/rzg/rzg1m/Documentation.jsp
ご教授ありがとうございます。
> ビット0のReceive Data Readyでタイムアウトを実現できるかと思われます。
SCBSSR の ビットDR (=ビット0のReceive Data Ready)を制御することで、
要求どおり、FIFO FULLにならなくとも受信データをさばけるようになりました。
解決しました。
「Receive Data Ready」の技術仕様をちゃんと読み込んでいなったのが原因です^^;
初歩的なミスで、お手数をおかけしてしまい、申し訳ありませんでした。
また、手厚いサポート、ありがとうございました。
以上です。
at_yuma.arakawa
2016年4月5日 12時48分
> SCIFであれば、タイムアウトの割り込み(TO)を有効にすることで、この要求を実現できますが、
> SCIFBは、私が調べる限り、タイムアウト割り込みは未サポートです。
SCBSSRは確認しましたでしょうか。
ビット0のReceive Data Readyでタイムアウトを実現できるかと思われます。
詳しくは、RZ/G Series User's Manual: Hardware[1]の
53.3.8 Serial Status Register Bn (SCBSSRn)
bit0:Receive Data Ready
を確認してみてください。
[1]: http://japan.renesas.com/products/mpumcu/rz/rzg/rzg1m/Documentation.jsp