RX65N スマートコンフィグレータの8ビットタイマTMRの最小タイムに付いて

いつもお世話に成っております。

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

Parents
  • Hasunuma 様、鈴木と申します

    100nsの割り込みで10カウントすると1000ns(1us)は、正しいと思うのですが

    us単位にしたい場合は、ns/us/msをボックスから選択できます。

    また、もっと長い割り込み周期にしたい場合は、クロックソースをPCLK/2~PCLK/8192

    などに変更してください

    以上、よろしくお願いします

  • チョコです。

    鈴木さん、話が食い違ってはいないですか?

    あくまで、タイマは100ns周期で割り込みを発生し、割り込み処理でソフトで10カウントして1μsのタイミングを作りたいのではないかと思われます。

    問題は、タイマの設定の問題ではなく、100nsで割り込み処理を実行できるかの問題ではないかと思います。

    RXは使ったことはありませんが、RX65は120MHz動作で100ns毎の割り込みを処理できるとは思えません。

    1000nsで割り込みを発生させて、カウントしないで出力を反転させることは可能でしょうけど。

Reply
  • チョコです。

    鈴木さん、話が食い違ってはいないですか?

    あくまで、タイマは100ns周期で割り込みを発生し、割り込み処理でソフトで10カウントして1μsのタイミングを作りたいのではないかと思われます。

    問題は、タイマの設定の問題ではなく、100nsで割り込み処理を実行できるかの問題ではないかと思います。

    RXは使ったことはありませんが、RX65は120MHz動作で100ns毎の割り込みを処理できるとは思えません。

    1000nsで割り込みを発生させて、カウントしないで出力を反転させることは可能でしょうけど。

Children
  • チョコ様

    有難う御座います

    タイマクロックは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からだと丁度良いボーレートが作れないのかも、と思い浮かびました、、、

  • チョコです。

    1Mbps(0.9Mbps~1.1Mbps)の調歩同期通信の信号を出力したいということですか。

    >コンペアマッチAの割込み回数カウントを9~11で変えれば

    ソフトでカウントするのではなく、0.9μs~1.1μsをコンペアマッチでやってしまうのはだめなのでしょうか。

    また、割り込みがだめなら、DTCで1ビットずつ出力は使えませんか。

    NoMaYさんもコメントされているように単純にSCIをUARTで使うのもありかもしれません。スマートコンフィグレータで1MbpsのUARTを設定し、BRRレジスタの設定値を書き換えれば、ボーレートを調整できるのでは。

    RXは使ったことはないので、他にいい方法があるかもしれませんが、思いついたのは以上の方法です。

    以上

  • こんにちは。NoMaYです。

    > ソフトでカウントするのではなく、0.9μs~1.1μsをコンペアマッチでやってしまうのはだめなのでしょうか。

    ひょっとしたら、RXマイコンのスマートコンフィグレータのConfigコンポーネントで、動的に割り込み間隔を変更するやり方が分からなかった?のかも知れませんね、、、(何かしら微調整をやりたいとのことでしたが、それは動的な微調整ということだったのかも知れません、、、)

    話を単純化してしまえば、単にRXマイコンの内蔵周辺レジスタの1つを上書きすれば良いだけですけど、もし仮にSTM32マイコンではAPIの引数で変更出来るようなAPI体系になっていて、でもRXマイコンではそうなっていないので途方に暮れていたという状況も有りえるのかな?と、ふと脳裏に浮かびました。

  • NoMaY様、リカルド様、チョコ様

    有意義なアドバイス有難うございます。

    指摘の通りプロトコルはUART同等です。

    コンペアマッチAをトグル出力してみたのですが1000ns以下に成ると

    コンペアマッチのトグル出力は大丈夫でも割込み数をカウントしながらの

    ポートへの出力は厳しいようです。

    皆様がおっしゃる様にTCORAレジスタの値を直接書き換える方法がベストという

    事が分かりました。

    有難う御座いました。