「初心者のための RL78 入門コース」にて、P36以降における実機でのLED点灯が行えない。

はじめまして、ときまると申します。

現在Renesas RL78/G13にて、マイコンを学習しております。

学習の教材として、「チョコさんのRL教室ーRL78初心者向けプログラム解説」にて学習を行っております。

この第2回のプログラムにて、シミュレータ上でLEDを点灯させることはできているのですが、P36以降の実機での点灯を行うことができません。

CS+ではエラーは出ていないため、どこに問題があるのか把握できない状況となっております。

この問題の原因について、どなたかご教授いただけないでしょうか?

よろしくお願いいたします。

Parents
  • チョコです。

    どのようなボードで動作確認されていますか?

    「チョコさんの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の設定が有効になります。

    以上

  • ご返信ありがとうございます。
    ご教授いただいたようにSFRの状態を確認し、P3の値を0x00に変更しました。

    そして、「プロジェクトをリビルドします。」→「デバッグ・ツールへプログラムをダウンロードします。」→「CPUリセット後、プログラムを実行します。」の順でボタンを押しましたが、やはり実機でのLEDは点灯しませんでした。(powerボタンのみ点灯しております。)

    また、P3の値を0x00としておりましたが、「デバッグ・ツールへプログラムをダウンロードします。」ボタンを押した際に以下のようにP3の値は0x02に戻ってしまいました。

    一方で、r_mail.cファイルのR_MAIN_UserInit()関数は以下のようになっております。

    お手数をおかけしますが、なにとぞよろしくお願いいたします。

  • 上記について、供給電圧を5Vにして再度試みましたが、同様の結果となりました。

  • RL78_G13_PORT1_2_E1.zip

    チョコです。

    ときまるさん、書かれた手順から判断して、何か誤解があるようです。

    先ず、添付された画面イメージから、デバッガが起動しているのは、確認しました。

    かふぇルネでこれまでよくあったのが、E1を起動しているつもりで、実はシミュレータで動作させていたためにポートが変化しないというものです。この問題はないでしょうか?

    >また、P3の値を0x00としておりましたが、「デバッグ・ツールへプログラムをダウンロードします。」ボタンを押した際に以下のようにP3の値は0x02に戻ってしまいました。

    「P3の値を0x00にする」は「デバッグ・ツールへプログラムをダウンロードした」後の処理です。プログラムそのものは、変更しないので、「デバッグ・ツールへプログラムをダウンロード」する前に「P3の値を0x00にする」ことはできません。

    以下の手順で処理してください。

    ①プログラムをE1でダウンロードします。

    ②デバッガが起動し、添付された画面イメージになったら、「表示」ー「SFR」でSFRの状態を確認してください。

    ③「SFR」表示のP3を選択(左クリック)して、右クリックしてポップアップ・メニューを表示させ、「ウォッチ1に登録」してください。

    ④「ウォッチ1」のP3のデータ(0x02)を反転表示させて、「0x00」と入力しenterキーで確定してください。

    プログラムがブレーク(停止)している状態で、④の処理を行うと、P31端子はロー・レベルになるはずです。これで、LEDが点灯しないなら、P31の端子の電圧をテスタで確認してください。(P31はUSER LEDのカソードに接続されているので、USER LEDのはんだ付けされたパターンで電圧が確認できるはずです。

    これで、LEDが点灯しない(端子の電圧が0V近くに下がらない)なら、ボードに問題があると考えられます。

    念のために、私が確認で使ったプロジェクトのzipファイルを添付しておきます。

    このプロジェクトでは、P3に加えてP3.1も追加で設定しています。また、ブレークポイントを2か所に設定しているので、ブレーク・ポイント付きでの実行を行うとブレークするごとにLEDが点灯したり消灯したりするはずです。

    以上

     

  • チョコさん

    ありがとうございます。

    先ほど上記の手順を取らせていただいたのですが、④の操作を行ってもLEDは点灯しませんでした。

    また、P31 の電圧を測定したところ、2.2Vほどの電圧が検出されました。

    これは、ボードに問題があるということになりますでしょうか?

    お手数をおかけしますが、なにとぞよろしくお願いいたします。

  • チョコです。

    >P31 の電圧を測定したところ、2.2Vほどの電圧が検出されました。

    >これは、ボードに問題があるということになりますでしょうか?

    はい、そのように考えられます。

    回路図では、単純にP31がヘッダーピンのパターン(J4の5pin)を経てUSER LEDのカソードに接続されているようなので、後は、ヘッダーピンのパターン(J4の5pin)でも電圧を確認してみてください。それで、確実でしょう。

  • 一つお伺いしたいことがございます。

    現在私が使用しているボードは"RSKRL78G13-3"というものとなります。

    一方で、「初心者のためのRL78 入門コース 」で使用しているボードは"RL78 G13/G14"というもののようです。

    PDFの37ページに記載のあるRL78 G13/G14では、USER LEDが点灯しておりますが、私が使用しているボードにはUSER LEDは見当たらず、POWERならびに0~3の番号の計5つのLEDがあります。

    PDF資料にあるUSER LEDの代わりに、上記の5つのうちのいずれかが点灯する仕組みとなっているのでしょうか?

    お手数をおかけしますが、なにとぞよろしくお願いいたします。

  • チョコです。

    >現在私が使用しているボードは"RSKRL78G13-3"というものとなります。

    同じRL78/G13を使っていても、LED等の外部の回路が全く異なるハードウェアなので、差がある部分のハードウ;エアを制御する場合には、同じソフトは使えません。

    「初心者のためのRL78 入門コース 」で使用している「BlueBoard-RL78/G13_64pin」ではP31にUSER LEDが接続されているだけです。

    一方、「RSKRL78G13-3」では、P52にLED0(緑)、P53にLED1(赤)、P62にLED2(赤)、P63にLED3(赤)が接続されています。(ちなみにP31は入力ポートとしてSW3に接続されているようです。)

    そのため、「初心者のためのRL78 入門コース 」で使用しているUSER LEDをLED0に変更するなら、「P31」を「P.52」に変更する必要があります。

    LEDを制御するポートを変更したプログラムに変更してみました。それだけでは面白くないので、r_main.cに以下の定義を追加しました。

    そのうえで、main関数のプログラムを以下のように抽象化しました。2か所ある「LED0」の部分を「LED1」にするとLED1が点滅し、「LED2]にするとLED2が点滅するようになります。

    また、コード生成でポートに設定を変更して、LED0~LED3の全てのポートを出力に設定しています。下はLED0とLED1の設定ですが、LED2とLED3も同様に変更しています。

    このプロジェクトを添付しておきます。

    RL78_G13_PORT1_2B_E1.zip

    これで、動作確認してみてください。

  • チョコです。

    RSKRL78G13-3」は持っていないので、一応シミュレータを使ったプロジェクトも作ってみました。

    単にE1をシミュレータに変更して、LED0~LED3の4つのLED が見れるように下ものです。

    RL78_G13_PORT1_2B.zip

  • チョコさん

    先ほど上記のプログラムを使用したところ、問題なく動作させることができました。

    ご対応、誠にありがとうございました。

    RSKRL78G13-3ボードでは、0,1番のLEDをどのように点灯させるかわかっておりませんでしたので、これらの点灯方法についても併せてご教授いただき、ありがとうございます。

    この0,1番のLEDについて、お伺いしたいことがございます。

    RSKRL78G13-3には、power LEDのほかに0~3の4つのLEDがありますが、CS+のtutorialコードでは2, 3番のLEDのみを点灯させており、0, 1番のLEDがどのportが対応しているのかわかっておりませんでした。

    チョコさんはこのport番号について、どのように特定を行ったのでしょうか?

    お手数をおかけしますが、何卒よろしくお願いいたします。

  • チョコです。

    RSKRL78G13回路図」でサーチしたら、以下の画面になったので、このリンクに進みました。

    すると、「Renesas Starter Kit for RL78/G13]のページが開きました。

    そこで、右側の「ドキュメント」をクリックしました。

    ドキュメントの部分が表示されたら、そこで、スクロールして回路図(Renesas Starter Kit for RL78/G13 CPU Board Schematics Rev.1.01)を選択します。

    すると、RL78/G13のところが表示されます。

    この回路で、RL78/G13の左下側で下から4番目と3番目に「LED0」と「LED1」があります。(右側の上の方にはLED2及びLED3もあります。)

    これが、私が確認した方法です。

    いつも宣言していますが、私はハードウェアの人間なので、基本的に回路図を元にしています。

    以上

Reply
  • チョコです。

    RSKRL78G13回路図」でサーチしたら、以下の画面になったので、このリンクに進みました。

    すると、「Renesas Starter Kit for RL78/G13]のページが開きました。

    そこで、右側の「ドキュメント」をクリックしました。

    ドキュメントの部分が表示されたら、そこで、スクロールして回路図(Renesas Starter Kit for RL78/G13 CPU Board Schematics Rev.1.01)を選択します。

    すると、RL78/G13のところが表示されます。

    この回路で、RL78/G13の左下側で下から4番目と3番目に「LED0」と「LED1」があります。(右側の上の方にはLED2及びLED3もあります。)

    これが、私が確認した方法です。

    いつも宣言していますが、私はハードウェアの人間なので、基本的に回路図を元にしています。

    以上

Children
  • チョコです。

    ドキュメントのところに、「Renesas Starter Kit for RL78/G1  ユーザーズマニュアル Rev.1.00」もありましたので、眺めたところ、「5.ユーザ回路」に「5.4 LED」の項目があり、そこには以下の内容が記載されていました。こちらの方が分かりやすいですね。

    以上

  • チョコさん

    ご返信ありがとうございます。

    上記のユーザーズマニュアルについて、確認いたしました。

    何度もご丁寧に対応いただき、誠にありがとうございました。