初歩的な質問ですみません。
RX65Nマイコン基板に、RFP(RenesasFlashProgrammer)-USB I/F で プログラムを書く場合、
RX65Nマイコンの XTAL/EXTAL 端子に、20MHz or 24MHz のクロックを供給しておかないと、うまくいかないんでしょうか?
といいますのも、今私が作ろうとしている RX65Nマイコン基板は、
RFPでのプログラム書き込み専用に USB コネクタをつけようとしています。
で、ハードウェアマニュアルを読むと、 20MHz or 24MHzクロックが 必要にも 不要にも 取れてしまって、悩んでいます。
(RFP動作中は、HOCOから生成されたUCLKが使われていたら楽なんですけど。)
回答をいただけると、とても助かります。
よろしくお願いいたします。
hira です。
ハードウェアーマニュアルに、以下のように書かれています。
「ブートモード (USB インタフェース ) で使用可能な発振子は、周波数が 20MHz、24MHz、かつ発振子メーカーのマッチングテスト結果 ( 推奨設定値 ) でメインクロック発振器ドライブ能力 2 切り替えビット(MOFCR.MODRV2[1:0]) が “00b” の設定値のみです。」
なので、文面の通り、推奨の水晶発振子を接続する必要があると思います。
ちなみに、「必要にも 不要にも 取れてしまって」とは、何処に書かれている説明でしょうか?
-----
通常、内蔵発振器HOCOの周波数安定度は低く、ジッタも多いので、USB接続時の通信を確保する安定度はありません。
又、上記説明のように、外部OSCを使って、直でクロックを入力するのも避けた方が良いと思えます。
※大抵は動作すると思いますが・・・
hirakuni45 さん、回答ありがとうございます。
hiraさんがおっしゃるように、RX65N/651 ハードウェアマニュアル 59.18-(7)には、
「ブートモード (USB インタフェース ) では、20/24MHzメインクロックが使用できる」
と、載っています。
しかし、RX65N/651 ハードウェアマニュアル 59.9.2 ブートモード(USB インタフェース) の説明には、メインクロック(XTAL/EXTALからの 20/24MHz) 必要だと説明されていないようです。
ミス?それとも省略しているだけでしょうか?
RX23N の ハードウェアマニュアルですと、メインクロック(XTAL/EXTALからの 4/6/8/12/16MHz) が必須であるかのような説明になっているので、わかりやすいのですが。
そもそも、RX65Nマイコンが ブートモード (USB インタフェース ) で起動した直後(RenesasFlashProgrammerからのアクセスされる前)は、UCLK(USBクロック)のソースは、どこから来ていたのか?
という疑問が出てきます。
起動した時点で UCLKが、メインクロック(XTAL/EXTALからの 20/24MHz) で動作しているのであれば、わざわざ再設定する必要がない=注意事項に乗せる必要が無いように思われます。
そうではなく、起動時には UCLKが、HOCO=20MHz(?)で動作しており、USB経由で RenesasFlashProgrammer が MOFCR.MODRV2[1:0] を書き換えるというのであれば、なぜ?とも思います。
RenesasFlashProgrammerからのアクセスが出来ている時点(HOCO動作)で、RX65Nマイコンの USB I/Fが動作していますよね?
安定動作のためにMOFCRでクロックを設定し直せ と言っているのでしょうか?
hiraさんの仰るように、内蔵オシレータ(LOCO/HOCO)は精度が低くて、UCLKには使えないと言う話も小耳に挟んでいます。
実際はどうなのでしょう?
確かに、USB I/Fの安定動作のために メインクロック(XTAL/EXTALからの 20/24MHz) を入れるべきだというのも、おっしゃるとおりです。
お忙しい中、安定動作設計の観点からのチェックをいただき、ありがとうございました。
実動作を見てみましたが、RX65Nの場合はUSBブートモード時、外部にクリスタルをつなげる必要があります。
(クリスタルをつなげないと、USBの仮想COMポートとして見えないので、HOCOでUSBモジュールを動かしている感じでは無い気がします。)
何MHzのクリスタルをつなげれば良いかは、ハードウェアマニュアルには…書いてない。何故でしょう。RX200系の様に書いてないと困りますよね。
試した結果では、
8MHz10MHz12MHz15MHz16MHz20MHz24MHz
は書き込みが可能でした。
(15MHzといった、中途半端な値でも行けました。15×16逓倍で、PLLが240MHz。1/5でUCLK=48MHzに設定可能なので、おかしくはないですが。)
8MHz未満では、4MHz,5MHz,6MHzなどでもNGでした。(感じ的には、8MHzが最小かと思います。8×30逓倍で240MHzになるので行けるのでしょう。)
書き込みが出来ない=「そもそもPCから仮想COMポートとして認識されない」です。(PC上で仮想COMポートとして見えるにも拘わらず、書き込みが出来ないというケースは試行する限りではありませんでした。)
手元にあったクリスタルで試したので、上記以外の値でも行ける周波数はあるのではないかと思います。
(但し、13.333MHzではダメでした。13.333×18逓倍で240MHzになるので、原理的には行けそうですが、マイコンの内蔵ファームは、ある程度キリの良い値が入力される前提なのかも知れません。8~24の間で、PLLの逓倍比が(UCLK=48MHzに)マッチすれば行けるという訳でも無い様です。)
NAKAさん、Yamamotoさん、hiraさん、tfさん、Renesasから、正式な回答届きました。
Renesas社様は、
「RX651にRenesasFlashProgrammer(USB)でFWを書き込む場合、
XTAL/EXTAL端子に、20MHz or 24MHz の水晶発振子を付けておく必要がある」
と、おっしゃっていました。
また、tfさんが 実機で試したところ、8/10/12/15/16MHzの水晶発振子でも FW書き込みができたとのこと。
(tfさんには、過ぎるほど詳細な実験をしていただき、本当にありがとうございました)
とはいえ、これらの周波数はRenesas社様が保証(推奨?)していないようですので、使わないほうが良さげです。
最後に、あとからこのスレッドを読まれてる方に伝えておきたいのは、
「RX65N/651 ハードウェアマニュアル 59.9.2 ブートモード(USB インタフェース) に メインクロック入力の記述が抜けているので、注意してください。」
です。
この問題に関わっていただいた皆様、お忙しいところありがとうございました!