RL78/G23-64PFPBのArduinoIDE環境を使ってみました。

チョコです。

やっと、RL78/G23-64PFPBのArduinoIDE環境を使ってみました。

RL78/G14FPBのサンプル・コードをRL78/G23-64PFPBのArduinoIDE環境に移植したり、MultiFuncシールドを接続して動かしてみました。

本体は、サンプルプログラム等に投稿してあります。アップしたのは、以下の3つです。

興味がある人は動かしてみてください。

Parents
  • チョコさん

    シェルティです、こんにちは。

    今回RL78/G23用のArduinoライブラリ開発を担当しました。使っていただき感謝いたします。

    Arduino IDEでのコンパイルが遅い件(初回3分くらいかかる)は改善していきたいと考えています。

    現在、さらに機能拡張中です。RYZ014Aというセルラーモジュールを使ってインターネット通信機能を付加したり、SDカードにファイルをR/Wしたり、CPUを低消費モードに移行したりするAPIの追加を考えています。

    以上です

  • チョコです。

    シェルティさん、おはようございます。

    ArduinoのAPI関数LiquidCrystal()を使おうとして、サンプルで示された4ビット幅での設定を行い、例に示されていたスケッチを作成したのですが、全く表示できませんでした。

    そこで、「LCDがケーブルも含めて正常か」を、以前作成していたRL78/G10で駆動するボードで確認しました。

    このボードは、RSKRL78G13で使っているのと同じような7×2のピンヘッダ用に作成していたものに今回用のシングルインラインのヘッダを追加したものです。RL78/G23-64PFPBの代わりにこのヘッダに接続して表示を確認しました。

    以下のように正常に表示できることを確認しました。

    さらに、オシロでE信号とRS信号をシングルトリガで波形確認したのですが、トリガされませんでした。

    RL78/G23-064PFPBも最近追加購入したものでも確認しましたが同様の結果でした。

    このときに気が付いたのですが、RL78/G23-064PFPBを交換すると、シリアルポートの番号が変わるようです。

    ところで、LiquidCrystal()関数は組み込まれているのでしょうか?このAPIがあると楽なんですが。

    以上

Reply
  • チョコです。

    シェルティさん、おはようございます。

    ArduinoのAPI関数LiquidCrystal()を使おうとして、サンプルで示された4ビット幅での設定を行い、例に示されていたスケッチを作成したのですが、全く表示できませんでした。

    そこで、「LCDがケーブルも含めて正常か」を、以前作成していたRL78/G10で駆動するボードで確認しました。

    このボードは、RSKRL78G13で使っているのと同じような7×2のピンヘッダ用に作成していたものに今回用のシングルインラインのヘッダを追加したものです。RL78/G23-64PFPBの代わりにこのヘッダに接続して表示を確認しました。

    以下のように正常に表示できることを確認しました。

    さらに、オシロでE信号とRS信号をシングルトリガで波形確認したのですが、トリガされませんでした。

    RL78/G23-064PFPBも最近追加購入したものでも確認しましたが同様の結果でした。

    このときに気が付いたのですが、RL78/G23-064PFPBを交換すると、シリアルポートの番号が変わるようです。

    ところで、LiquidCrystal()関数は組み込まれているのでしょうか?このAPIがあると楽なんですが。

    以上

Children
  • チョコさん

    こんにちは、シェルティです。

    ご連絡ありがとうございます。LiquidCrystal()はまだ評価済APIリストにないですね。

    RL78用のArduinoライブラリ内部で実装が空関数とかになっているかもしれません。

    https://github.com/renesas/Arduino/wiki/API%E3%83%AA%E3%82%B9%E3%83%88

    画面表示は、チョコさんが使っている16×2行のキャラクタLCDと、SPIかIICで繋ぐ128x64dotのOLEDディスプレイがよくArduino界隈で使われていると思うので、これらが使えるようにLiquidCrystal()等を整備できればと思います。

    https://www.amazon.co.jp/EasyWordMall-OLED%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-0-96%E3%82%A4%E3%83%B3%E3%83%81-%E3%82%A4%E3%82%A8%E3%83%AD%E3%83%BC51%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A912864-Arduino%E7%94%A8/dp/B017M15MNE/ref=asc_df_B017M15MNE/?tag=jpgo-22&linkCode=df0&hvadid=259694934430&hvpos=&hvnetw=g&hvrand=9096820174045136069&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009294&hvtargid=pla-458466469581&psc=1

    少し開発チームと相談して今後の計画を持ってまいります。

    以上です

  • チョコです。

    シェルティさん、早速のリプライ有難うございます。

    >RL78用のArduinoライブラリ内部で実装が空関数とかになっているかもしれません。

    そうですか。RL78/G10からLCDのライブラリを移植してみようかと思います。

    7セグLEDやLCDはセンサー等の測定結果の表示に使う予定なので、最初に作成しています。

    今回は4ビット幅で直接制御し、その後I2C対応(そうすると、ArduinoIDEのAPIはないので、新規作成)予定です。

    これまで、ベアメタルでのプログラムをやっていたので、Arduinoは少し不便かなと思っています。ハードを直接いじることはできますかね。特にタイマ系で使用可能なリソースは何なのかを知りたいです。

    以上

  • チョコさん

    シェルティです、こんにちは。

    コメントありがとうございます。

    >>これまで、ベアメタルでのプログラムをやっていたので、Arduinoは少し不便かなと思っています。ハードを直接いじることはできますかね。特にタイマ系で使用可能なリソースは何なのかを知りたいです。

    はい、可能です。Arduinoライブラリをe2 studioに含めた形でスマートコンフィグレータでタイマや他のペリフェラルを再設定できる環境を追々以下に解説記事を増やしていきたいと考えています。

    https://github.com/renesas/Arduino/wiki/%E3%83%9B%E3%83%BC%E3%83%A0#arduino%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E5%86%85%E9%83%A8%E3%82%92%E8%A9%B3%E7%B4%B0%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%97%E3%81%9F%E3%81%84%E5%A0%B4%E5%90%88

    Arduinoはマイコン導入時の勉強には最適ですが、使いこなしてくると逆に不便なところが出てきます。以下は設計資料からの抜粋ですが、RL78へのArduino適用→量産製品開発について以下のような導線を考えています。

    以上です

  • チョコです。

    シェルティさん、情報有難うご合います。

    >Arduinoライブラリをe2 studioに含めた形でスマートコンフィグレータでタイマや他のペリフェラルを再設定できる環境を追々以下に解説記事を増やしていきたいと考えています。

    完成したら、参考にさせていただきます。

    >Arduinoはマイコン導入時の勉強には最適ですが、使いこなしてくると逆に不便なところが出てきます。

    それでも、ArduinoのAPIは結構簡単にI2CやLCDを制御できるので、そこらを少しモディファイしておけば、マルチタスク環境でも結構使いまわしができるかと考えています。

    現状のコード生成には不満を感じているので、ArduinoのAPIには期待しています。

    以上

  • チョコさん

    こんにちは、シェルティです。

    コメントありがとうございます。更新ができましたらまた報告いたします。

    >>そこらを少しモディファイしておけば、マルチタスク環境でも結構使いまわしができるかと考えています。

    おっしゃる通りと思います。↑で貼ったフローだとシングルタスク環境→Arduino環境・マルチタスク環境→一般の組み込み製品のような表現で丸め込んでしまっていてあまり正確な表現ではないですね。貼ったあとに「ちょっと失敗したなあ」と思っていて、少し補正の文言を考えていたところです。

    実際、いまRYZ014AというセルラーモジュールをArduino APIで制御する手段を開発中ですが、通信系のソフトウェアはRTOSベースで受信部分を「受信割込みで即時に受信バッファにデータを詰め込んで受信タスクを起動→受信タスクで適切なタイミングでデータ処理」とするのがセオリーでして、次の版からArduinoライブラリにFreeRTOSカーネルを組み込む格好になります。そうするとArduino環境でも普通にFreeRTOSのAPIを叩いてマルチにタスクを生成・実行できます。とするとArduino環境を使った際のユーザ要求は「詳細なデバッグがしたい」が残ってくるのだと思います。

    ともあれ引き続きいろいろ意見交換させてください。使いやすい環境づくりを目指してまいります。

    以上です

  • チョコです。

    RL78/G10からLCDのライブラリをLiquidCrystal()関数の簡易版としてRL78/G14-FPBのアプリケーションプログラムに組み込んでみました。

    RL78G14-FPBで遊ぶ?

    今回は、まじめなサンプルコードなので、遊びとは言えないかもしれません。

  • チョコです。

    今回は、RL78G14-FPBからRL78G23-64PFPBのArduino IDE環境にプログラムを移植して動作確認を行いました。

    LCD部分をライブラリにしたかったのですが、方法が分からないので、力任せにコピペしました。

    3か所ほど少し修正しただけで、動作しています。

    LCDが使えるようになったので、少し使い道が広くなるかと思います。

    とりあえず、「サンプルプロフラム等」に投稿してありますので、興味がある方は覗いてみてください。

    以上

  • チョコさん

    こんにちは、シェルティです。

    ありがとうございます。ルネサスでもRL78G23-64PFPB向けにLiquidCrystal()の作りこみを開始しました。あと128x64ドットのOLED表示機もサポートしようと考えています。投稿いただいたデータを開発チームにも見てもらおうと思います。

    以上です

  • LCD表示器の制御方法.pdf

    チョコです。

    レス有難うございます。

    元が、RL78/G10で作成したライブラリをRL78G14-FPBに移植したものをRL78G23-64PFPBに移植したものなので、最後は力任せでした。

    RL78G14-FPBの方が見やすいかと思います。また、以前検討したときにまとめた資料(PDF)を添付しておきます。

    CS+環境では、ArduinoのAPIのような使い方が難しいので、そこらは対応出来ていません(RL78G14-FPBでは、"."を

    構造体で対応しているようですが、今回はそこまではやっていません)。

     

    必要なら、16文字2行のLCDのボードを提供可能です。

    以上

  • チョコです。

    LCD_LIBの部分を本来のスケッチとは分けて使いやすくしました。

    RL78G23-64PFPBで遊ぶ(3)改

    具体的には、下の画面イメージに示すように、LCD_LIBタブにLCDのライブラリを独立させました。

    このように分離した状態でコンパイルして動作させたのが下の写真です。

    これまでの写真のボードと異なり、8ビットI/Fでも使えるようになっていますが、

    これまでと同様、今回は4ビットI/Fで使っています。

    以上