はじめまして、ときまると申します。
現在Renesas RL78/G13にて、マイコンを学習しております。
学習の教材として、「チョコさんのRL教室ーRL78初心者向けプログラム解説」にて学習を行っております。
この第2回のプログラムにて、シミュレータ上でLEDを点灯させることはできているのですが、P36以降の実機での点灯を行うことができません。
CS+ではエラーは出ていないため、どこに問題があるのか把握できない状況となっております。
この問題の原因について、どなたかご教授いただけないでしょうか?
よろしくお願いいたします。
チョコです。
どのようなボードで動作確認されていますか?
「チョコさんのRL教室」で使用したボードは秋月電子通商で購入した「BlueBoard-RL78/G13_64pin」で、RL78/G13は64pinのデバイスです。64pinのRL78/G13ではポート3はP30とP31しかありません。
デバイスとして何を選択してビルドしたのでしょうか。
よければ、プロジェクトのzipファイルを添付してもらえれば、確実に確認できます。
以上
ときまるさん、もしかして、128pinのRL78/G13を使おうとしているのではないですか。
そのうえで、P35~P37でLEDの点滅ができない状態ではないですか?
もし、PMレジスタで出力に設定しても出力にできないのでなら、おそらくPMC3レジスタでPMC35~PMC37が初期状態(=1)になっていて、端子がアナログ入力のままになっている可能性があります。PMC3レジスタのビットを0にする(これで、入出力ポートになり)、PM3の設定が有効になります。
ところで、「使用するデバッグ・ツール」は「 RL78 E1 Serial L )」が選択されていますでしょうか?
ご返信、誠にありがとうございます。P36とはPDF36ページとなります。紛らわしい表現をしてしまい、申し訳ございません。
PDF33ページまでのシミュレータ上での動作はうまくいっているのですが、33ページ以降でデバッグツールをRL78 シミュレータ(S)からRL78 E1(Serial)(L)に変えて作動させたところ、実機でのLEDの点灯が行われないという状況となっております。
先ほどポートを確認したところ、以下のような競合が発生しておりました。
>先ほどポートを確認したところ、以下のような競合が発生しておりました。
P40はTOOL0端子として、OCDでE1と接続するために使用するので、通常はこのようになっています。
①P3については、どのようになっていますか?E1との接続はきちんと行われているようなので、P3の状態も同様に確認してください。
②P3レジスタを確認するために、「表示()」のプルダウンメニューから「SFR(R)」を選択します。
そうすると、以下のようにSFRの状態を確認できます。E1に接続した状態ではP3は初期値の0x02とP31が1になっているのが分かります。
他のレジスタは邪魔なので、P3を選んだ状態で右クリックしてポップアップメニューから「ウォッチ1に登録(R)」を選択します。
ウォッチ1にP3だけが以下のように表示されます。
この状態で値(0x02)の部分を選択すると、0x02の部分が白くなります。
0x02を再度クリックすると、以下のように0x02も反転表示になるので、値を変更できるようになります。
ここを0x00に変更すると、P31はロウレベルとなり、LEDが点灯するはずです。
同じように、0x02に変更するとLEDは消灯するはずです。
このようなマニュアル(手動)手順で、P31の状態とLEDの状態を確認してください。
ご返信ありがとうございます。
P3については、下のようになり、競合などは起こっておりませんでした。
一方で、SFR(R)についてですが、下のように選択ができない状態となっております。
お手数をおかけしますが、なにとぞよろしくお願いいたします。
CS+の状態で表示を選択していませんか。
これは、デバッガ(E1)の状態での選択です。
デバッガ動作状態で「表示」を選択すると、以下のようにアイコンがちゃんとカラー表示されるので、分かります。
おかしいところがあったので、まとめなおします。
>①P3については、どのようになっていますか?E1との接続はきちんと行われているようなので、
まだ、E1ときちんと接続できているとは言えないですね。
この画面イメージはCS+のコード生成の設定画面のイメージであり、E1によるデバッグ時の画面イメージではなかったですね。
以前コメントしたように、「そもそも、プログラムのダウンロードはできていますか?」が先ず気になります。
PDFの「7. BlueBoard RL78/G13_64pin での動作確認」(34ページ~)に従って、設定を変更して、プログラムをダウンロード(以下のように「デバッグ(D)のプルダウンメニューから「デバッグ・ツールへダウンロード(D)」を選択)してください。
正常にE1と接続できていて、ビルドしたプログラムをダウンロードしてデバッガが正常に立ち上がると以下のような表示になります。
ここまで来ていれば、ほとんど問題なくプログラムは動作するはずです。
ボードのRL78/G13がきちんと起動すれば、この画面になりますが、これまでのトラブルの大半はここまで、たどりつけないものです。この原因の一つが、ボードに搭載されているRL78/G13の電圧検出回路の設定(オプションバイトで設定)が4V程度になっており、3.3Vでは電圧検出回路が解除されないことが考えられます。この場合には、E1からの供給電圧を5Vに変更してみて下さい。
これ以外には、E1を接続している(接続している)PCのUSBの電圧が5Vより低かったために3、ボードに.3Vの電圧が供給できていないという例もありました。
この場合には、7.5VのACアダプタでボードに直接電源を供給して、E1からは電源を供給しないようにすることが考えられます。
とりあえず、ここまでを確認してみてください。
ご返信ありがとうございます。ご教授いただいたようにSFRの状態を確認し、P3の値を0x00に変更しました。
そして、「プロジェクトをリビルドします。」→「デバッグ・ツールへプログラムをダウンロードします。」→「CPUリセット後、プログラムを実行します。」の順でボタンを押しましたが、やはり実機でのLEDは点灯しませんでした。(powerボタンのみ点灯しております。)
また、P3の値を0x00としておりましたが、「デバッグ・ツールへプログラムをダウンロードします。」ボタンを押した際に以下のようにP3の値は0x02に戻ってしまいました。
一方で、r_mail.cファイルのR_MAIN_UserInit()関数は以下のようになっております。
上記について、供給電圧を5Vにして再度試みましたが、同様の結果となりました。