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ピッチのハンダ付けはコツがいるので、自信の無い人は、モジュールを選べば良いだろう~
※変換基板にピンを立てて、ソケット化すると、交換が出来て便利ではあるけど、ソケットのコストが痛いので、このような安いデバイスは、直で、ユニバーサル基板に乗せている。
まず gcc を構築してみた、以前に R8C、RX で行った方法がそのまま使える。
※ gcc-4.9.3 を使った。
詳しい方法は、以下のリンクを参照して欲しい。
My GitHub RL78
次に、フラッシュプログラミング環境を整える。
最初、シリアルポートで簡単に接続出来ると思ったのだが、ドキュメントを読むと、多少の付加回路が必要な事が判った。
RL78 には、プログラミング時の専用端子「TOOL0」があり、「/RESET」のタイミングで、通信を行う事で、プログラミングモードに移行する。
※通常動作では、抵抗を介してプルダウンしておく。
・「ルネサスの参考回路」
リンクの参考回路(タイプB)では、トライステートバッファ(オープンドレインゲートとして利用)と、インバーターを使っている、少し考えて、トライステートをダイオードで置き換え、
インバーターをNチャネルのFETで置き換え、簡易回路を作成してみた。
※自分が使った部品は、3.3V~5Vの環境に対応している、電圧降下が少ないショットキーダイオードを使ったが、リークの少ない物を使用している。
※/RESET のプルアップ抵抗は、デバイスに直接取り付けてあるので、省く。
※同じような変換回路を既に製作していた~ 「簡易UART書き込み器」
RL78/G13のデバイスは電源が少なくて、配線が楽だ!
・Vss、Vdd、EVss、EVddに0.1uFのパスコンを付け電源に接続する。
・REGCは0.47~1uFのコンデンサでVssに接続する。
※1uFを選択した。
とりあえず、「ルネサスの Flash Programmer 」と接続して、認識できる事を確認出来た。
※3.3Vの電源を接続
今回はここまで・・
次は、書き込みプログラムを実装してみようと思う。(MacBook で使いたい!)
RL78,M32C,RXのgcc環境が構築できました。
ありがとうございます。
環境:MacOS X gcc4.9.3
RL78の記事も楽しみにしています。
最近、Windows の環境がメインで、Mac の環境を詳細に説明していませんでした。
今後、macport を使った説明も追加したいと思います。
—–
現在、R8CとRXで、Windows、Mac でフラッシュへ書き込むプログラムが動作します。
※RX用は中途半端ですが、RX63Tへの書き込みは確認済みです。
※RL78用のフラッシュライターも近々にプッシュする予定です。
はじめまして、記事ありがとうございます。
最近AE-R5F10Y47ASPを購入しまして、rl78g10flashの動作確認を行いました。
G10でまだコードを書き始めてはいないのですが、こちらの記事を読んでいると、
C++でどこまで記述できるのか興味を持ちました。
G10であればまずアセンブラであるとは思うのですが、rl78-elf-asの情報も少なく、多少足踏みしています。
20年ほど前仕事で78K0を使っていたのですが、エンジニアを辞めてから10年以上Linuxを使うのがほとんどで、無償の純正開発環境(Windows)もあまり使う気持ちになれません。
HirakuniさんのG13の軌跡をG10で追っかけると、タイマーあたりで壁にぶつかって終わってしまうでしょうか?
ご意見頂ければ幸いです。
上記マイコンは、コードフラッシュメモリーが4Kバイトなので、C++ では、かなり
厳しいのかなと思います。
今の時代、アセンブラは、何か特別な理由が無い限り使わないと思いますし・・
私が公開している C++ フレームワークは、G10 にも使えると思いますが、
やはり、4Kがかなり厳しいのかなと思います。
C++でメモリを節約するには、それなりのスキルが必要になりますし、gcc は
メモリサイズを小さくする方向には弱いと感じています。
—–
安い、コンパクトで言うなら、R8C/M120ANをお勧めします、あのマイコンは
事実上フラッシュは64Kバイト使えますし、DIP20、100円です。
※I2C も SPI もソフトドライバーで使えるようにしています。
—–
C++ を使う最大のメリットは、人間に寄った言語だと思えるからです。制御マイコン
の場合、メモリーも少なく、制限がありますが、汎用性を持たせて判り易く記述で
きると思います。
現在、R8C、RL78、RX マイコン用フレームワークを公開していますが、I2C、SPI
などの制御コードは、どの環境でも大体動作します。
(chip ディレクトリ内のテンプレートクラス)
回答ありがとうございます。
RAMの方が厳しいのかと思っておりましたが、ROMの方なのですね。
libの取り込みを意識しておりませんでした。
アセンブラに取り組もうかと考えております。