いつもお世話に成っております。
RX65Nのファームウェアを開発しております。
RF565N9ADFB にE1のJTAG接続して書込み&デバッグいます。
今回1ビット幅が1usの信号を出力する必要が生じました。
スマートコンフィグレータの8ビットタイマコンポーネントを使用し
クロックソース PCLK (60000kHz)
コンペアマッチAの値(TCORA) 100 ns
としてTCORAコンペアマッチ割込みを許可として10カウントして
1us毎に0 or 1を出力しようとしたのですが上手く働きませんでした。
調べるとコンペアマッチ割込みのタイミングが100nsではなく、1000nsでした。
設定ではコンペアマッチAの値(TCORA)の値は20nsまでは可能なのですが
実際には1000ns程度が最小の様でした。
スマートコンフィグレータでは設定可能でも実際の出力は不可能という事でしょうか
それとも小職の勘違いorスマートコンフィグレータ上では不可能でもレジスタを直に
設定すれば可能になるのでしょうか。
何分初心者でRX65Nを扱うのは今回が初めてですので小職が勘違いしている可能性も
有りますのでその場合は平にご容赦頂きたくご教授の程宜しくお願い申し上げます。
Hasunuma
チョコです。
鈴木さん、話が食い違ってはいないですか?
あくまで、タイマは100ns周期で割り込みを発生し、割り込み処理でソフトで10カウントして1μsのタイミングを作りたいのではないかと思われます。
問題は、タイマの設定の問題ではなく、100nsで割り込み処理を実行できるかの問題ではないかと思います。
RXは使ったことはありませんが、RX65は120MHz動作で100ns毎の割り込みを処理できるとは思えません。
1000nsで割り込みを発生させて、カウントしないで出力を反転させることは可能でしょうけど。
鈴木様
早々に返信頂き有難う御座います。
実は信号幅を多少+/‐調整したいと考えておりました。
コンペアマッチAの割込み回数カウントを9~11で変えれば
ざっくり±10%程度の祖調整は出来るかなと考えておりました。
しかし、最小割込み時間自体が1us程度の様で思惑が外れてしまいました。
スマートコンフィグレータのコンペアマッチ割込みの設定可能最小値と
実際の割込み発生最小値(時間)が違っている様に思います。
hasunum
チョコ様
有難う御座います
タイマクロックは60MHzなので1クロック17ns、システムクロックならば100nsのカウントは可能かなと思ったのですが
実際は無理なようですね。
実際の出力はクロック1usとして
スタートビット 1Bit Hi
データビット 8Bit Hi or Low
ストップビット 1Bit Hi
これを6バイト繰り返します。
あ、すみませんスタートビット間違えました。
正しくは
スタートビット 1Bit (1us) Low
やはりポートへの出力でクロックを食ってるようですね
TMO0でトグル出力するとやはり設定値を小さくしてもパルス幅1us程度が最小でした。
Hasunumaさん、こんにちは。NoMaYと申します。普通のUARTの信号ですよね?RX65NのUARTを使うのでは具合が悪いのですか??
Hasunumaさん、こんにちは。NoMaYです。すみません、120MHzからだと丁度良いボーレートが作れないのかも、と思い浮かびました、、、
Hasunuma 様、鈴木と申します
100nsの割り込みで10カウントすると1000ns(1us)は、正しいと思うのですが
us単位にしたい場合は、ns/us/msをボックスから選択できます。
また、もっと長い割り込み周期にしたい場合は、クロックソースをPCLK/2~PCLK/8192
などに変更してください
以上、よろしくお願いします
何をやりたいのですか?
>1us毎に0 or 1を
1us毎に反転する波形を作りたいのですか?
目的と手段が混ぜこぜになっている感じがします。
金庫破りだったら中の金が目的であって、開錠するのは手段であり目的では無い。
開錠しなくても、地下から金庫の床に入る方法も有ります。
1usが目的で、割り込みは手段だと思うのですが。
次のような質問だったら回答し易いと思うのですが。
・タイマーを調べてみたけど、1発のパルスしか出ない。連続波を出せないか。
・タイマーを調べてみたけど、最大のパルス幅が0.1μなので1usを出せないか
・タイマーを調べてみたけど、最小のパルス幅が10μなので1usを出せないか
・1us前後に調整したいが分解能が足りない。どうしたら良いか
・割り込みが入った時から1usのパルスを出したい
・外部信号が入った時から1usのパルスを出したい
Hasunuma 様、チョコさん、鈴木です。
なるほど私が勘違いしていました。設定は100nsですが、計測すると1000ns だったということですね。
100nsは、相当早いので、割り込み中にポート出力するだけで500nsぐらいかかりそうです
割り込みの発生だけは100nsが可能でも、処理が入ると難しそうです
チョコさんの仰るようにTMOnでトグル出力が可能なので、そちらをご利用ください
この設定であれば、ポート出力せずに端子からの出力が可能です
1Mbps(0.9Mbps~1.1Mbps)の調歩同期通信の信号を出力したいということですか。
>コンペアマッチAの割込み回数カウントを9~11で変えれば
ソフトでカウントするのではなく、0.9μs~1.1μsをコンペアマッチでやってしまうのはだめなのでしょうか。
また、割り込みがだめなら、DTCで1ビットずつ出力は使えませんか。
NoMaYさんもコメントされているように単純にSCIをUARTで使うのもありかもしれません。スマートコンフィグレータで1MbpsのUARTを設定し、BRRレジスタの設定値を書き換えれば、ボーレートを調整できるのでは。
RXは使ったことはないので、他にいい方法があるかもしれませんが、思いついたのは以上の方法です。
以上