092758 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

ISHマイクロマウス

ISHマイクロマウス

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

フリーページ

プロフィール

いしやん2001

いしやん2001

お気に入りブログ

カレンダー

キーワードサーチ

▼キーワード検索

コメント新着

いしやん2001@ Re[1]:簡易オシロ到着(12/21) CPU4Eduさん >ご無沙汰してます.ブログ…
CPU4Edu@ Re:簡易オシロ到着(12/21) ご無沙汰してます.ブログ再開ですね.
いしやん2001@ Re:動画見ました.(07/19) Kiyoteruさんへ >安定してますね. ---…
Kiyoteru@ 動画見ました. 安定してますね.
いしやん2001@ Re:いいですね.(07/17) Kiyoteruさん >あとはソフトしだいです…
2015年05月02日
XML
カテゴリ:カテゴリ未分類
ずいぶんと放置しておりましたw
MCUネタでひさびさに日記を書いてみます

今年になって仕事で5VのD/A出力が必要になり、秋月のAE-RX210を使ってみました

RXコア50MHzでFPU搭載なし 1.65~5.5Vで動作します

秋月で調達出来て、モジュール基板化されているので皆さん使っていらっしゃるのかと思いきや、ネットで調べても製作例は少なく情報が無いwww

使ってみて分かったのですが、こいつはRXシリーズでは小規模なエントリー向けの位置づけですが、RX621や631を一通り使いこなすレベルじゃない初心者やRX素人が手を出したら大変な目に会うシロモノでありました

まず、マニュアルを良~~く読んで取り組んだのですが、初期クロック設定するところから躓きましたよwww

私の使っている古いSH2/7149だと動作させるためのクロック設定は1行で可能ですが、RX210は5種類のクロックソースがあり設定すべきレジスタが多くて手順も作法に従って行う必要があり、リセット後に通常クロック動作させるまでが大変でした

ベストな方法はルネサスが提供してるアプリケーションノートan_r01an1002jj0220 RX210初期設定を、まんま使う方法となりますが、後々の事を考えると自分で直接レジスタを叩きたいので同様のクロック設定手順を記述してみましたw

SYSTEM.VRCR = 0; /* RESET後に電圧レギュレータ制御レジスタクリア必要 */

// サブクロックを使用しない場合でも初期化する必要がある
SYSTEM.SOSCCR.BYTE = 0x01;
RTC.RCR3.BIT.RTCEN = 0; /* サブクロック発振停止 */
while(RTC.RCR3.BIT.RTCEN != 0){}

PORT3.PMR.BYTE = 0xC0; /* P36(XTAL),P37(EXTAL) 周辺(メインクロック20M発振)機能に使用する */
SYSTEM.MOFCR.BYTE = 0x30; /* メインクロック発振器強制発振 (発振子、20M、セラミックリード品以外) */
SYSTEM.MOSCWTCR.BYTE = 0x0D; /* ウェイトコントロール131072サイクル待ち */
SYSTEM.MOSCCR.BYTE = 0x00; /* メイン・クロック発振器を動作させる */
while(SYSTEM.MOSCCR.BYTE != 0x00){}
cmt0_wait(57); /* (13107200/232727)+1 oscillation stabilize (13.1 ms) */

SYSTEM.PLLCR.WORD = 0x0901;/* PLL 2分周 10逓倍 */
SYSTEM.PLLWTCR.BYTE = 0x09; /* PLL ウェイトコントロール */
SYSTEM.PLLCR2.BYTE = 0x00; /* PLL 動作スタート */
cmt0_wait(7); /* (1500000/232727)+1 oscillation stabilize (1.50 ms) */

SYSTEM.HOCOPCR.BYTE = 0x01; /* HOCO 停止 */

SYSTEM.OPCCR.BYTE = 0x00; /* 動作電力コントロール → 高速モード */
while(SYSTEM.OPCCR.BIT.OPCMTSF != 0){} // 状態遷移フラグ確認

/* SCKCR - System Clock Control Register */
SYSTEM.SCKCR.LONG = 0x21821211;
while (SYSTEM.SCKCR.LONG != 0x21821211){}

SYSTEM.SCKCR3.WORD = 0x0400; /* PLL回路選択 注意:チップバージョンAには無いモードある */
while (SYSTEM.SCKCR3.WORD != 0x0400){}

(TABが反映しないので見にくいのはご勘弁 一部の時間稼ぎはCMT0を別途設定して使います)

あ~めんどくさいw
単にリセット後にクロックを切り替えて50MHzで動かしたいだけなんですけど・・・
ルネサスさん、もうちょっと簡単にすませられないのでしょうか?
手順どおりにやっていますが、数行で済ませる方法とか是非公開してほしいですw

この他、E2データーフラッシュの書き込み処理が、要求される手順が多くて大変でした
全部を使いこなすには、まだまだRX使いとしての経験値を上げなきゃですね

仕事で使う場合は時間的に厳しいので、使い慣れていないと私のように大変な目にあうかもですよ






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2015年05月03日 02時33分24秒
コメント(0) | コメントを書く



© Rakuten Group, Inc.