RL78を始める~ gcc の構築から~

R8C/M120 は確かにコスパが高く、パッケージも手頃で、良いのだけど、RAM容量が少なく、もう少しだけリッチなマイコンが欲しいと思っていたのだった・・・
※メモリーはせめて2Kバイトくらいは欲しい、128×64のビットマップLCDとかを扱う場合、フレームメモリーで1Kバイト消費するし、SDカードでファイルを扱う場合も、バッファ
がある程度必要だし・・

現在の自分の環境では、R8C の上位は、いきなり RX になってしまう、まぁそれはそれで良いのかもしれないけど、RX では高機能過ぎるし、デバイスが少しコスト高なので、AVR 328 くらいのデバイスも扱えれば良いなぁーって思っていた。

R8C/M120 の上位を使えば、もう少し話は早いけど、R8C 系は、既に古いデバイスで、上位のデバイスは割安感が無い、そこで、やはりと言うか、RL78 に落ち着く訳だけど、値段、デバイスの種類、機能など、バランスが良い事に改めて気づく。
ただ、自作で使っている人は少ないのか、製作記時は少ないようだ・・
※パッケージが基本、フラットパッケージのみなので敬遠されているのかもしれない。

何故、ARM を選択しないのかと思うかもしれないが、日本人だからルネサスを使うだけの事で、少し意地になっているかもしれないけど、ルネサスのラインナップは豊富だし、入手性も良く、値段もこなれていて安定している、マニュアルも日本語なので、開発のハードルは低いと感じている。
逆に、「日本人」なのに、何故海外製のマイコンに走るのか、聞いてみたい。
※ AVR は随分使ったけど、マイクロチップに買収されてしまったしなぁ・・

RL78 のラインナップは凄まじく多くて、どれを使うか非常に迷うけど、入手性と値段で、「G13」グループをとりあえず選択してみた。
「秋月電子」で安く購入出来る。

プログラムフラッシュ/RAM/データフラッシュ
・R5F100LCAFB:  32K/ 2K/4K @250円
・R5F100LEAFB:  64K/ 4K/4K @290円
・R5F100LGAFB: 128K/12K/8K @340円
・R5F100LJAFB: 256K/20K/8K @400円
・R5F100LGAFB搭載変換モジュール     @420円

早速、290円、340円を数個購入してみた、後で気がついたけど、340円のデバイスが、変換基板にハンダ付けされたタイプが420円で売られていた、これは安い!
※0.5mmピッチのハンダ付けはコツがいるので、自信の無い人は、モジュールを選べば良いだろう~
IMG_0795s
※変換基板にピンを立てて、ソケット化すると、交換が出来て便利ではあるけど、ソケットのコストが痛いので、このような安いデバイスは、直で、ユニバーサル基板に乗せている。

まず gcc を構築してみた、以前に R8C、RX で行った方法がそのまま使える。
※ gcc-4.9.3 を使った。
詳しい方法は、以下のリンクを参照して欲しい。
My GitHub RL78

次に、フラッシュプログラミング環境を整える。
最初、シリアルポートで簡単に接続出来ると思ったのだが、ドキュメントを読むと、多少の付加回路が必要な事が判った。
RL78 には、プログラミング時の専用端子「TOOL0」があり、「/RESET」のタイミングで、通信を行う事で、プログラミングモードに移行する。
※通常動作では、抵抗を介してプルダウンしておく。

・「ルネサスの参考回路」
リンクの参考回路(タイプB)では、トライステートバッファ(オープンドレインゲートとして利用)と、インバーターを使っている、少し考えて、トライステートをダイオードで置き換え、
インバーターをNチャネルのFETで置き換え、簡易回路を作成してみた。
RL78_FlashProgrammer
※自分が使った部品は、3.3V~5Vの環境に対応している、電圧降下が少ないショットキーダイオードを使ったが、リークの少ない物を使用している。
※/RESET のプルアップ抵抗は、デバイスに直接取り付けてあるので、省く。

※同じような変換回路を既に製作していた~ 「簡易UART書き込み器」

RL78/G13のデバイスは電源が少なくて、配線が楽だ!
・Vss、Vdd、EVss、EVddに0.1uFのパスコンを付け電源に接続する。
・REGCは0.47~1uFのコンデンサでVssに接続する。
※1uFを選択した。

IMG_0796s

とりあえず、「ルネサスの Flash Programmer 」と接続して、認識できる事を確認出来た。
※3.3Vの電源を接続

今回はここまで・・
次は、書き込みプログラムを実装してみようと思う。(MacBook で使いたい!)

「RL78を始める~ gcc の構築から~」への5件のフィードバック

  1. RL78,M32C,RXのgcc環境が構築できました。
    ありがとうございます。
    環境:MacOS X gcc4.9.3

    RL78の記事も楽しみにしています。

    1. 最近、Windows の環境がメインで、Mac の環境を詳細に説明していませんでした。
      今後、macport を使った説明も追加したいと思います。
      —–
      現在、R8CとRXで、Windows、Mac でフラッシュへ書き込むプログラムが動作します。
      ※RX用は中途半端ですが、RX63Tへの書き込みは確認済みです。
      ※RL78用のフラッシュライターも近々にプッシュする予定です。

  2. はじめまして、記事ありがとうございます。

     最近AE-R5F10Y47ASPを購入しまして、rl78g10flashの動作確認を行いました。
     G10でまだコードを書き始めてはいないのですが、こちらの記事を読んでいると、
    C++でどこまで記述できるのか興味を持ちました。

     G10であればまずアセンブラであるとは思うのですが、rl78-elf-asの情報も少なく、多少足踏みしています。
     20年ほど前仕事で78K0を使っていたのですが、エンジニアを辞めてから10年以上Linuxを使うのがほとんどで、無償の純正開発環境(Windows)もあまり使う気持ちになれません。

     HirakuniさんのG13の軌跡をG10で追っかけると、タイマーあたりで壁にぶつかって終わってしまうでしょうか?

     ご意見頂ければ幸いです。

    1. 上記マイコンは、コードフラッシュメモリーが4Kバイトなので、C++ では、かなり
      厳しいのかなと思います。
      今の時代、アセンブラは、何か特別な理由が無い限り使わないと思いますし・・

      私が公開している C++ フレームワークは、G10 にも使えると思いますが、
      やはり、4Kがかなり厳しいのかなと思います。
      C++でメモリを節約するには、それなりのスキルが必要になりますし、gcc は
      メモリサイズを小さくする方向には弱いと感じています。

      —–
      安い、コンパクトで言うなら、R8C/M120ANをお勧めします、あのマイコンは
      事実上フラッシュは64Kバイト使えますし、DIP20、100円です。
      ※I2C も SPI もソフトドライバーで使えるようにしています。

      —–
      C++ を使う最大のメリットは、人間に寄った言語だと思えるからです。制御マイコン
      の場合、メモリーも少なく、制限がありますが、汎用性を持たせて判り易く記述で
      きると思います。
      現在、R8C、RL78、RX マイコン用フレームワークを公開していますが、I2C、SPI
      などの制御コードは、どの環境でも大体動作します。
      (chip ディレクトリ内のテンプレートクラス)

      1. 回答ありがとうございます。
         RAMの方が厳しいのかと思っておりましたが、ROMの方なのですね。
         libの取り込みを意識しておりませんでした。

         アセンブラに取り組もうかと考えております。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください