(別室)RX,RL78マイコンで遊ぼう
※このページは個人的な趣味によって書かれており、著者は全ての内容について、いかなる責任も負いません。
このページは、
ルネサスエレクトロニクス社
(旧 日立+三菱+NEC)のRX,RL78マイコンを使った簡単なプログラムを紹介しています。
●重要なお知らせ(訂正とお詫び)●
1.ADM3202のコンデンサの接続について
RL78マイコンを使ってみる
RL78マイコンについて
RL78マイコンの開発環境
プログラムの書き込み方法
統合開発環境(CubeSuite+)によるプログラムの作成
RL78/G1*シリーズについて
※本文は、ルネサスエレクトロニクス社のHPより抜粋
●実験ボード・タイプ1(R5F100LCAFB) RL78/G13
RL78/G13マイコンを使った簡単な実験ボードを作って見ました。
(1)LEDをつないでみる
サンプル@ プログラムソース(RL78/G13 R5F100LCAFB用 「CubeSuite+」で自動生成 C言語) r_main.c
サンプルA プログラムソース(RL78/G13 R5F100LCAFB用 「CubeSuite+」で自動生成 C言語) r_main.c
サンプルA プログラムソース(RL78/G13 R5F100LCAFB用 「CubeSuite+」で自動生成 C言語) r_cg_timer_user.c
(2)クロックを出力してみる
サンプル@ プログラムソース(RL78/G13 R5F100LCAFB用 「CubeSuite+」で自動生成 C言語) r_main.c
(3)シリアル・アレイ・ユニットを使ってみる
サンプル@ プログラムソース(RL78/G13 R5F100LCAFB用 「CubeSuite+」で自動生成 C言語) r_main.c
●実験ボード・タイプ2(R5F104PJA) RL78/G14
RL78/G14マイコンを使った簡単な実験ボードを作って見ました。
(1)LEDを点滅させてみる
サンプル@ プログラムソース(RL78/G14 R5F104PJA用 「CubeSuite+」で自動生成 C言語) r_main.c
サンプルA プログラムソース(RL78/G14 R5F104PJA用 「CubeSuite+」で自動生成 C言語) r_main.c
サンプルB プログラムソース(RL78/G14 R5F104PJA用 「CubeSuite+」で自動生成 C言語) r_main.c
サンプルB プログラムソース(RL78/G14 R5F104PJA用 「CubeSuite+」で自動生成 C言語) r_cg_timer_user.c
(2)UARTでパソコンとつないでみる
サンプル@ UART1へのエコーバック プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
サンプルA UART0〜3へのエコーバック プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
(3)A/Dコンバータを使ってみる
サンプル@ A/Dコンバータサンプル プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
(4)クロックを出力してみる
サンプル@ A/Dコンバータサンプル プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
(5)いろいろな割り込みを使ってみる
サンプル@ INTP1(P46)端子の入力エッジ割り込みサンプル プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
サンプル@ INTP1(P46)端子の入力エッジ割り込みサンプル プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_cg_intc_user.c
(6)D/Aコンバータを使ってみる
サンプル@ 三角波を出力するサンプルプログラム プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
(7)いろいろなタイマー機能を使ってみる
サンプル@ 1[mS]のパルスを出力するサンプルプログラム プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
サンプルA プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
サンプルA プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_cg_timer_user.c
(8)SPIインターフェースを使ってみる
サンプル@ プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
サンプルA 出力イメージ(1) プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
サンプルA 出力イメージ(2) プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
サンプルB プログラムソース(RL78/G14 R5F104PJA用 「CS+」で自動生成 C言語) r_main.c
●実験ボード・タイプ3(R5F10Y16ASP) RL78/G10 10ピン
RL78/G10マイコンを使った簡単な実験ボードを作って見ました。
(1)LEDを点滅させてみる
サンプル@ プログラムソース(RL78/G10 R5F10Y16ASP用 「CSP」で自動生成 C言語) r_cg_main.c
サンプル@ 実行ファイル(RL78/G10 R5F10Y16ASP用 「RFP」で書き込み) test.mot
(2)UARTを使ってみる
サンプル@ プログラムソース(RL78/G10 R5F10Y16ASP用 「CSP」で自動生成 C言語) r_cg_main.c
サンプル@ プログラムソース(RL78/G10 R5F10Y16ASP用 「CSP」で自動生成 C言語) r_cg_sau_user.c
サンプル@ 実行ファイル(RL78/G10 R5F10Y16ASP用 「RFP」で書き込み) test.mot
●実験ボード・タイプ4(R5F10Y47ASP) RL78/G10 14ピン
RL78/G10マイコンを使った簡単な実験ボードを作って見ました。
ただいま、準備中です
●実験ボード・タイプ5(R5F100LEAFB) RL78/G13 64ピン
RL78/G13マイコンを使った簡単な実験ボードを作って見ました。
(1)UARTを使ってみる
サンプル@ プログラムソース(RL78/G13 R5F100LEAFB用 「CSP」で自動生成 C言語) r_main.c
サンプル@ プログラムソース(RL78/G13 R5F100LEAFB用 「CSP」で自動生成 C言語) r_sau_user.c
サンプル@ 実行ファイル(RL78/G13 R5F100LEAFB用 「RFP」で書き込み) test.mot
●実験ボード・タイプ5(GR-COTTON) RL78/G13
ルネサスエレクトロニクス社のGR-COTTONで遊んでみました。
RL78マイコンで遊んでみる
●カードリーダーで遊んでみる
カードリーダーが1000円程度で容易に入手できるようになりました。
ただいま、準備中です
RXマイコンを使ってみる
RXマイコンについて
RXマイコンの開発環境
RXマイコンの種類
RX62Nマイコンを使ってみる(R5F562N7BDFB)
●実験ボード・タイプ1(R5F562N7BDFB)
インターフェース誌(2011年5月)の付録でついてきたRX62Nマイコンで遊んでみました。
(1)LEDを点滅させてみる
サンプル@ プログラムソース(RX62N R5F562N7BDFB用 「CS+」) main.c
サンプル@ プログラムソース(RX62N R5F562N7BDFB用 「e2stdio Renesas CC−RX C/C++」) main.c
RX631マイコンを使ってみる(R5F5631FDDFP)
●実験ボード・タイプ1(R5F5631FDDFP)
ただいま、準備中です
RX621マイコンを使ってみる(R5F5631FDDFP)
●実験ボード・タイプ2(R5F56218DBFP)
RX
ただいま、準備中です
ボタンを押すと、PICのページに飛びます。
ボタンを押すと、メニューのページに飛びます。
参考にされる場合は、自己責任でお願いします。
このHPのADM3202を使った回路図では、ADM3202の2ピンにつながっている0.1μFのコンデンサをGndにつないで
実験していますが(図a)、ADM3202のデータシートでは、このコンデンサはVccにつなぐようになっています(図b)。
実験では、このようなつなぎ方でもICのチャージポンプは正常に動作していますが、データシートでは(図b)のように記述され
ているので、データシートの通りに(図b)のようにしたほうがいいと思います。
RL78マイコンは、ルネサスエレクトロニクス社の最新の8〜16ビットで、次世代のローエンド(8〜16ビット)マイコン
として位置づけられているものです。
従来の78Kマイコン(旧NEC系)とR8Cマイコン(旧ルネサス テクノロジ)の流れを汲むもので、ハイエンドモデルのSH
(Super H)やV850、ミドルクラスのRXと共に、今後のルネサスエレクトロニクス社の主流になるものと期待される
マイコンのようです。
RL78マイコンの種類(H25/1現在) ※ルネサスエレクトロニクス社のHPより抜粋
1.ルネサスエレクトロニクス社の提供する開発環境
(1)統合開発環境 CubeSuite+
無償評価版が
ルネサスエレクトロニクス社 のHPより、無償でダウンロードできます。
ただし、無償評価版の場合、使用可能なメモリーの範囲が、内部ROMの64KBと、内部RAMに制限されます
(2)書き込みツール RFP(Renesas Flash Programmer)
無償評価版が
ルネサスエレクトロニクス社 のHPより、無償でダウンロードできます。
E1,E20エミュレータの他、シリアル(RS232C)による書き込みにも対応しています
(3)その他
μITRON4.0に準拠したリアルタイムOSや、音声、ファイルシステム、メモリ用ドライバなどのミドルウエア、
E1等のエミュレータやプログラマー、その他、開発に必要なものがルネサスエレクトロニクス社により豊富に用意
されています
(1)E1エミュレータ
最も理想的な使い方ですが、E1エミュレータ(秋月電子では12,600円 ※H25.1現在)を購入する必要があります。
※注)R04.1.19現在、E1エミュレータは製造が中止され、E2エミュレータ
に変更されています。
E1エミュレタ―
E1エミュレタ―のピン配置(ルネサス社のマニュアルより抜粋)
E1エミュレタ―の変換治具
RL78マイコンの場合、E1と接続に必要な端子は、VDD、GND、RESET、TOOL0の4本だけなので、
こんな変換治具を作っておくと便利です
(2)単線UART、2線UARTによる方法
簡単なアダプタを作ることで、UARTで書き込む事もできます。
この場合、必要な費用は1000円以下でできると思います。
詳細は、ルネサスエレクトロニクス社のマニュアルに詳細に記述されているので、そちらを参照したらいいと思います。
オリジナルの回路では、汎用ロジックを2種類用意しないと作れないので、私の場合は、この回路を簡略化した簡易
書き込み器を作って、上記の書き込みツール(RFP)でプログラムを書き込んでいます。
RL78マイコンには、FLMD0端子がないので、接続する配線はTOOL0とRESETのみです。
「RFP」の使い方は、ルネサスエレクトロニクス社の「FDT」とほとんど全く同じなので、H8シリーズやSHシリーズを
使っている人には説明は不要ですが、書き込み器は、MPUにつないでから電源を入れる必要があります。
UARTによる書き込み方法 ※ルネサスエレクトロニクス社の資料より抜粋
簡易UART書き込み器 (上記回路を簡略化したものです)
0.1μFのコンデンサは、小型化するため、全てチップコンデンサを使用しています
このツールは、プログラムの情報を画面から選択すると、レジスタの設定等、必要なプログラムの雛形まで作成して
くれるので、開発者は簡単なC言語のコーディングのみでプログラムを作成する事ができます。
このツールを使った開発の場合、MPUの専門的な知識はあまり必要ありません。
プログラムの作成イメージ
エラーがなければHEXファイルまで作成されるので、これをライターでマイコンに書き込むだけです
「簡易UART書き込み器」を使った場合の「RFP」によるプログラムの書き込みイメージ
CS+のコーディングでは、プログラムは「Start〜」「END〜」の間に記述します。
このルールで記述しないと、CS+でコード生成する度に、ユーザーが記述した部分がCS+で追加された記述で上書きされて消えてしまいます。
CSPの無償評価版では、64Kバイトを超えるコンパイルはできません。
趣味の開発で64Kバイトを超えることは少ないと思いますが、このような場合はライセンスを購入する必要があります。
ライセンスは用途によって種類がありますが、安価なもので数万円/年程度です。
個人で購入する場合、ネットで購入するのが簡単でいいと思います。
RL78/G1*シリーズは、超低消費電力RL78ファミリの汎用マイコンのシリーズです。
RL78/G12,G13 : 標準版 (タイマ、SIO、 8/10 ビット ADC,、DMAC、POC/LVI、データフラッシュ)
RL78/G1A : RL78/G13からアナログ機能を強化(12ビット ADC)
RL78/G14 : 高機能版 (エンコーダタイマ、モータ制御タイマ、データ転送制御、イベントリンクコントローラ)
RL78/G1C : USB ホスト/ファンクションインターフェイス、 Battery Charging 1.2をサポート
RL78/G1E : RL78/G1A + Smart Analog IC
秋月電子では、下記のRL78マイコンを購入する事ができます ※H25/1現在
R5F100LCAFB : 最大動作周波数:32MHz、プログラムメモリー:32KB、RAM:2KB、データフラッシュ:4KB、QFP64ピン 250円
R5F100LEAFB : 最大動作周波数:32MHz、プログラムメモリー:64KB、RAM:4KB、データフラッシュ:4KB、QFP64ピン 290円
R5F100LGAFB : 最大動作周波数:32MHz、プログラムメモリー:128KB、RAM:12KB、データフラッシュ:8KB、QFP64ピン 340円
R5F100LJAFB : 最大動作周波数:32MHz、プログラムメモリー:256KB、RAM:20KB、データフラッシュ:8KB、QFP64ピン 400円
E1エミュレータ(ルネサスエレクトロニクス社) 12,600円
RL78マイコンボード(NGX Technologies社) 2,400円
・MPU:R5F100ADASP、最大動作周波数:32MHz、プログラムメモリー:48KB、RAM:4KB、データフラッシュ:3KB
・オンボードのRL78/G13−30pinにはテストプログラム書込み済み、MCUの全ピンを外部に接続可能
(2.54ピッチ/15ピン×2)
・ADC評価用ボリューム(10kΩ)、10MHz水晶発振子実装済み、電子ブザー、プッシュSW×2、LED×3
・14ピン・コネクタ[ルネサスE1エミュレータ等の接続用]、RS232コネクタ(メス)、ドライバはST3232CDR
・外部電源ジャック:DC6.5V入力(DC5Vでの動作確認済み) (ルネサスE1エミュレータ使用時は外部電源不要)
RL78マイコンボード(NGX Technologies社) 3,800円
・MPU:R5F100LEAFB、最大動作周波数:32MHz、プログラムメモリー:64KB、RAM:4KB、データフラッシュ:4KB
・オンボードのRL78/G13−64pinにはテストプログラム書込み済み、16文字×2行ドットマトリクス・キャラクタ液晶表示器
・MCUの全ピンを外部に接続可能(2.54ピッチ/16ピン×4)、ADC評価用ボリューム(10kΩ)、12MHz水晶発振子実装済み
・電子ブザー、プッシュSW×2、LED×3、外部電源供給時の電源SW、14ピン・コネクタ[ルネサスE1エミュレータ等の接続用]
・RS232コネクタ(メス)×2、ドライバはST3232CDR、外部電源ジャック:DC6.5V入力
RL78/G13マイコン(64ピン)のピンレイアウト ※ルネサスエレクトロニクス社のマニュアルより抜粋
使用したマイコンは、R5F100LCAFBで、秋月電子で250円で購入したものです。
このマイコンは、プログラムメモリー:32Kバイト、Ram:2Kバイト、データフラッシュ:4Kバイトを積んだ安価なものですが、
秋月電子では、同じG13マイコンで、プログラムメモリーやRam等がより大きなものも扱っているので、より大きなプログラムを
組む人は、そちらを購入したらいいと思います。
但し、無償評価版のCubeSuite+では(サンプルは全て無償評価版でテストしています)、内部Romの上限は64KBに制限されます。
このマイコンは、電源電圧は1.6〜5.5Vと、幅広い範囲で使用できます。
写真/回路図
プログラムを書き込む場合、電源を切った状態でS1を上記の「UART書き込み器」につないで、電源を入れる必要があります
S2はリセットスイッチです
8つのLEDをつないでみました。
赤LEDをトランジスタでドライブしているだけのものです。
ただし、実験では、赤以外のLEDを使ったり、ドライバーに74HC245等のCMOSバッファを使ったりするとP17のLEDが
点灯しなくなるので注意が必要です。
他にも、このMPUのポートには、マニュアルによると、いろいろ意外な仕様があるので、実際に使う前に簡単な実験をして
みる事をお勧めします。
サンプル@は、MPUの稼動確認のために作ったもので、ルーレットが回転するだけのものです。
開発に使用したルネサスエレクトロニクス社の「CubeSuite+」は、画面から「端子割り当て設定」や、「クロック設定」、
「ポート設定」、「ウォッチドッグタイマー(使用しない)」等を選択して「コード生成」してやるだけで、プログラムソースコード
の雛形を作ってくれる、このツールやMPUを初めて使う人にも扱いやすい開発ツールです。
このツールを使った場合、ポートの初期化すら意識する必要がないのですが、逆に、例えばこのサンプルを動かす場合は、
「CubeSuite+」画面の「コード生成」で、ポート1のP10〜P17を全て出力に設定してコード生成する操作をしないと、
このプログラムは動作しません。
また、生成された「r_main.c」は、内容が「CubeSuite+」のバージョンにより異なる可能性があるので、このサンプルを
参考にする場合は、main関数のみを修正したほうがいいと思います。
サンプルAは、インターバルタイマーを使って、1秒毎に割り込みを発生させる事で、1秒毎にLEDが動くようにしたものです。
「CubeSuite+」のコード生成メニューから、「ポート設定(P10〜P17を全て出力にする)」、「ウォッチドッグタイマー(使用しない)」、
「タイマー(チャネル0をインターバルタイマにして、インターバル時間を1000[mS])にする」を指定し、「コード生成」をすると、
このような動作をするプログラムが生成されます。
このプログラムのmain関数(r_main.c)にチャネル0の起動関数(R_TAU0_Channel0_Start)を記述し、タイマー割り込み関数
r_tau0_channel0_interrupt(r_cg_timer_user.c)に、1秒毎におこなう処理を記述する程度で、プログラムは完成します。
写真/回路図
サンプル@の指定イメージ
「CubeSuite+」の画面からポート1のP10〜P17を全て出力に設定してコード生成する必要があります
サンプルAの指定イメージ
このMPUに内蔵されている「クロック出力/ブザー出力制御回路」を使って、クロックを出力を出力してみました。
「CubeSuite+」を使った場合、「クロック出力/ブザー出力制御回路」を使ったクロック出力や、「タイマ・アレイ・ユニット」を使った
PWM出力、方形波を出力するといったような種類の機能は、「CubeSuite+」の画面から機能と周波数を選択するだけで、ほとんど
完成するので、プログラムを作る必要はほとんどありません。
サンプルは、PCLBUZ0端子(64ピン)から、3.906KHzのクロックを出力するものです。
内部OSCを使っているので周波数の精度は高くはありませんが、それでも0.2パーセント程度の精度はあるようです。
写真/回路図
サンプルの指定イメージ
出力イメージ
main関数に「R_PCLBUZ0_Create();」と「R_PCLBUZ0_Start();」の2行を追加しただけです。
シリアル・アレイ・ユニットを使って、UARTでパソコンのハイパーターミナルにつないで、エコーバックプログラムを
作ってみました。
コード生成メニューで、「チャネル」、「UART(送信)」、「UART(受信)」、「ウォッチドッグタイマー(使用しない)」を設定し、
コード生成してやると、「r_cg_serial.c」に、UART関連の関数が自動的に生成されるので、main関数(r_main.c)で、
これをコールするプログラムを書いてやれば、プログラムは作成できます。
生成されるプログラムは、UARTをアクセスするのみなので、アプリケーション側のフラグの処理は、ユーザーが自分で書いて
やる必要があります。
このサンプルでは、「r_main.c」以外は、何も修正していません。 (サンプル@)
写真/回路図
コード生成メニューの指定 (サンプル@)
ハイパーターミナルのイメージ
ハイパーターミナルの設定
使用したマイコンは、R5F104PJAを搭載したルネサスエレクトロニクス製の評価ボードで2500円程度で購入できます。
このマイコンは、プログラムメモリー:256Kバイト、Ram:8Kバイト、データフラッシュ:24Kバイトを積んだ100pinタイプです。
このマイコンボードは、ボード上にE1エミュレータをつなぐための14ピン端子が搭載されていますが、上記の簡易書き込み器で使用する事もできます。
写真
R5F104PJAのピンレイアウト
簡易書き込み器の接続方法
E1エミュレータを接続した例
E1エミュレータから電源を供給する場合、ツールのPower Supplyで、3.3Vか5Vかを選択して下さい。
RFPでプログラムを書き込む場合、リセット端子をHi−Zにしておけば、書き込み後にプログラムが実行されます。
PIORレジスタの設定(1)
PIORレジスタの設定(2)
ボード上の2つのLED(P75,P76)を点滅させてみました。サンプル@
基本的なプログラムはCS+が作り出してくれるので、r_main.cのP7レジスタに値を入れるだけでPORT7のLEDを操作出来ます。
このサンプルの場合、CS+で必要な操作は、P75,P76を出力にするのみです。
サンプルAは、点滅時間にタイマーを使ったもので、ほとんどルネサス社の提供するタイマーのサンプルと同じものです。
サンプルBは、タイマー割り込みを使ったもので、1秒毎にLEDが点滅を繰り返します。
CS+を使用した場合、タイマー割り込み関数は、r_cg_timer_user.cに自動的に生成される「r_tau0_channel0_interrupt()」に定義します。
回路図(抜粋)/CS+の設定(P75/P76を出力にします)/点滅するボードのLED
サンプルAを使う時のCS+の設定
サンプルBを使う時のCS+の設定
UARTを使ってパソコンにつないでみました。
CS+の場合、プログラムの大半はコード生成で作成できるのですが、処理はr_main.cに追記してやる必要があります。
SSRmn(Serial Status Register)の処理は、ユーザーがr_main.cでハンドリングする必要があります。
SSRmnのmn(m:ユニット番号、n:チャネル番号)は、シリアル アレイ ユニットのブロック図を見ると分かりやすいと思います。
サンプル@は、UART1を使ったエコーバックです。
サンプルAは、UART0〜3を使ったエコーバックです。プログラム中のコメントを外して使用します。
シリアルインターフェースに限らず、組み合わせは自由に選択できるできるわけではないので注意が必要です。
サンプル@のメニューの指定 (サンプル@)
Tera Termのイメージ
A/Dコンバータを使ってみました。
といってもCS+の場合、プログラムの大半はコード生成で作成してくれるので、r_main.cでコーディングが必要になるプログラムは、
多くはありません。
サンプル@は、ANI1(P21)に、0〜VDD[V]の電圧を加えてやると、UART0(P50/P51)にパソコンとシリアル接続した
Tera Termに、[00]〜[FF]までの16進数を表示します。
Tera Term上で、なんでもよいので何かキーを押すごとに、電圧を測定して表示します。
ANI1の入力電圧は、0〜VDD[V]の範囲を一瞬でも超えると、MPUが壊れる可能性があります。
回路と表示イメージ
CS+の設定
クロック出力/ブザー出力制御回路を使ってみました。
CS+の場合、出力周波数を指定すれば、r_main.cに簡単なコーディングをするだけで、クロック出力する事ができます。
サンプル@は、PLCBUZ0(P140)に、3.906KHzのクロックを出力するものです。
CS+の設定とオシロスコープによる波形イメージ
割り込みをいろいろ使ってみました。
サンプル@は、INTP1(P46)端子に、入力エッジ信号を加えた時に割り込みがかかるもので、ボード上のLEDが点灯します。
サンプル@のCS+の設定
D/Aコンバータを使ってみました。
サンプル@は、ANO0(P22)端子に、三角波を出力するものです。
サンプル@のCS+の設定/オシロスコープによる出力波形イメージ
RL78のタイマー機能をいろいろ使ってみました。
サンプル@は、タイマーRJのパルス出力モードを使った事例で、TRJIO1(P01)から、CS+のコード生成メニューで指定した
周波数のパルスを出力します。
サンプルAは、上記サンプル@に、チャネル0のインターバルタイマーによる割り込みを追加したもので、1[S]間隔で出力されるパルスに
1[mS]の変調をかけたパルスを出力します。
TRJIO1(P01)に出力されます。
サンプル@のCS+の設定/オシロスコープによる出力波形イメージ
サンプルAのCS+の追加設定(サンプル@の設定も必要です)
サンプルAの出力波形イメージ
SPIインターフェースを使ったCANインターフェース(MSP2515)がAMAZONで250円で購入できるので使ってみました。
サンプル@は、SPIインターフェースを動かしてみたもので、MSP2515のレジスタに書き込み、読み込みを行ったものです。
書き込んだ内容に意味はありません。
SPIインターフェースからのリターン値をグローバル変数で返していますが、この変数の扱いは特殊なため、関数の引数で返すようにするには、
少し工夫が必要になります。
サンプルAは、MSP2515を動かしてみたもので、CLKOUT端子からシステムクロックを出力します。
MSP2515のCANCTRLレジスタのCLKOUTをENABLEにして、CLKPREで分周クロックを指定したものです。
MSP2515は、各レジスタ設定をして、CANCTRLレジスタを「Nomal operation mode」にすると、
CAN通信を開始します。
CLKOUT端子は、このモジュールでは取り出されていないので、MSP2515の3番ピンから直に取り出す必要があります。
サンプルBも、MSP2515を動かしてみたもので、HL端子(基板上のネジ止め端子)に、125KBPSで、ID:11110000111、
データ数:8、データ:0x00〜0x07をCANで出力してみたものです。
Bit Timeは、CONF1〜CONF3で設定できますが、何も設定しなかった場合、このモジュールには8MHzの水晶が付いているため、
Bit Timeは、666666BPSになります。
動いている事を確認する為のプログラムなので、データの内容に意味はありません。
設定は、サンプルAと同じです。
CAN通信では、同じビットが5回続くと、ビットスタッフィングによりそのビットが反転します(ロジアナの写真のオレンジのビット)。
CANの出力には、単体でテストする場合は、120Ωの終端抵抗をつなぐか、ボード上の「Close Enable」ジャンパーをショートしないと、
波形が全く出ませんので注意してください。
なお、このページはMSP2515を使ったSPIの使い方の紹介で、CAN通信のページではないため、
MSP2515を使ったCAN通信については、
「(別室)インターフェースのページ」 で紹介しています。
サンプル@ MSP2515の写真/回路図
サンプル@ CS+の設定
サンプル@ 実行イメージ(Teta Term)
サンプルA 回路図
サンプルA オシロスコープのイメージ
サンプルB ロジアナと、オシロスコープのイメージ
使用したマイコンは、R5F10Y16ASPで、秋月電子で120円(R02.06現在)で購入した10ピンの変換基板に付いたものです。
このマイコンは、プログラムメモリー:2Kバイト、Ram:256バイトを積んだもので、秋月電子では60円(R02.06現在)で購入できます。
写真
回路図(リセット端子のプルアップ抵抗を省略した場合、CSPの設定でリセット端子の内部プルアップを有効にしないと動作しません)
サンプル@は、稼働確認のために作ったもので、PORT(P00-P04)のLEDが1秒程度の間隔で順に点灯していきます。
HEXファイルもアップしていますので、RL78/G10にこのファイルを書き込めば、稼働確認で使用できます。
サンプル@ CSPの設定
サンプル@は、エコープログラムです。
受信割込み処理が発生した時、受信したキャラクタを送信する関数をコールしています。
UARTの割込み処理は、CSPのコードジェネレータを使った場合、コードジェネレータが自動生成するr_cg_sau_user.cの
r_uart0_callback_softwareoverrun関数に処理を記述するだけで実現できます。
サンプル@ CSPの設定
サンプル@ TeraTermの実行イメージ
使用したマイコンは、R5F10Y47ASPで、秋月電子で210円(R02.06現在)で購入した10ピンの変換基板に付いたものです。
このマイコンは、プログラムメモリー:4Kバイト、Ram:512バイトを積んだもので、秋月電子では100円(R02.06現在)で購入
できます。
写真
回路図
このモジュールは、水晶とパスコンが実装されています。
ポートピンのレイアウトがきれいに並べられていて、扱いやすいマイコンです。
使用したマイコンは、R5F100LEAFBで、秋月電子で290円(R02.06現在)で購入したものです。
このマイコンは、プログラムメモリー:64Kバイト、EEP:4Kバイト、Ram:4Kバイトを積んでいます。
写真
回路図(P62、P63はオープンドレインポートなので、注意が必要です)
サンプル@は、P62,P63のLEDの点滅を行ないながら、割込みでUARTをエコーするプログラムです。
受信割込み処理が発生した時、受信したキャラクタを送信する関数をコールしています。
サンプル@ CSPの設定
サンプル@ TeraTermの実行イメージ
このボードは、ルネサスエレクトロニクス社より豊富なサンプルが用意されているので、これを書き込むだけでも基本的な動作を確認できます。
ルネサスエレクトロニクス社より用意されている開発ツール(IDE for GR)は、Arduinoに似た扱いやすい開発ツールで、
初めてマイコンを使う人にも最適だと思います。
このボードの場合、最低限で他に必要になるのは、USBケーブル(私はデータリンクケーブルをダイソーで100円で購入)のみです。
詳細は、
ルネサスエレクトロニクス社の「GR-COTTON特設ページ」 で詳しく解説されています。
写真
IDE for GR(ide4gr.exe)を起動してsampleスケッチを書き込んでみました。
「GR-COTTON特設ページ」で解説されている通りですが、
USBケーブルで、Windows10パソコンとつないで、
@メニュー[ツール]→[マイコンボード]→[GR-COTTON]を選択
Aメニュー[ツール]→[シリアルポート]→[COMxx]を選択
Bメニュー[ファイル]→[スケッチの例]→[01.Basics]→[HelloKurumi]を選択
これを右矢印ボタンを押して書き込めば、Lチカサンプルを動かす事ができます。
このサンプルはボード中央のRGB‐LEDが、3色の色の変化を繰り返します。
AMAZON等で入手できるNFCリーダーの多くは、ICとアンテナがセットになっていて、UARTやSPIで簡単なコマンドを
発行するだけでアクセスする事ができます。
AMAZON等では、空のカードやICタグ(書き換え不可能なユニークなIDのみ書き込まれています)も数百円程度で入手できますので、
これを使ってID認証するようなアプリを作る事もできます。
例えば、FELICA場合は、IDMを使って認証システムを作る事も容易です。
AMAZON等で入手できる13.56MHzのマルチカードリーダーは、企業の社員証による入退室で、過去に一般的に使われていた
TYPE−Aや、JR東日本のSUICAで一般的なFELICA等、その他いろいろなタイプのカード、ICタグを読み込むことが
できるものもあります。
AMAZONで入手したカードリーダーやカード、ICタグの例
注)写真のカードリーダー(MFRC522)は、FELICAは読めません。
AMAZONでは125KHzのカードリーダーも入手できます。
写真のリーダーは設定不要で、タグを近づけるとタグのIDがUARTで出力されます。
AMAZONではタグがまとめて数百円で購入できるので、簡単な鍵の代わりに使えます
RXマイコンは、ルネサスエレクトロニクス社の次世代の32ビットミドルレンジマイコンで、従来のH8マイコン(旧日立系)
とM16Cマイコン(旧三菱系)の流れを汲むものです。
ハイエンドモデルのSH(Super H)やV850、ローエンドのRL78と共に、今後のルネサスエレクトロニクス社の主流になる
ものと期待されるマイコンのようです。
RXマイコンの種類(H25/1現在) ※ルネサスエレクトロニクス社のHPより抜粋
1.ルネサスエレクトロニクス社の提供する開発環境
(1)統合開発環境
・CubeSuite+
無償評価版が
ルネサスエレクトロニクス社 のHPより、無償でダウンロードできます。
ただし、無償評価版の場合、使用可能なメモリーの範囲が、内部ROMの64KBと、内部RAMに制限されます
このツールの詳細は、上記の「RL78マイコン」の項で説明しています。
・HEW(High−perfomance Embedded Workshop)
ルネサスエレクトロニクス社のMPUの開発ツールとして、従来から使用されていて、上位のSH等、多くのMPUにも
対応している使いやすい開発環境です。
(2)書き込みツール
・RFP(Renesas Flash Programmer)
無償評価版が
ルネサスエレクトロニクス社 のHPより、無償でダウンロードできます。
・FDT(Flash Development Toolkit)
無償評価版が
ルネサスエレクトロニクス社 のHPより、無償でダウンロードできます。
ルネサスエレクトロニクス社の書き込みツールとして、従来から使用されていて、多くのMPUにも対応しています
(3)その他
E1、E20、E100等のエミュレータやプログラマー、その他、開発に必要なものがルネサスエレクトロニクス社により
豊富に用意されています
現時点(H25.1)では、高速高性能の「RX600シリーズ」と、低消費電力バージョン「RX200シリーズ」が存在します
ルネサスエレクトロニクス社では、より高性能の「RX700シリーズ」と、「RX100シリーズ」の開発を進めており、将来、RXファミリー
に追加される見込みのようです。
例えば、秋月電子では、下記のRXマイコンを購入する事ができます ※H26/6現在
・RX210マイコン R5F52108ADFP ※電源電圧:1.62〜5.5V
最大動作周波数:50MHz、内臓オシレータ:50MHz、プログラムメモリー:512KB、RAM:64KB、データフラッシュ:8KB、QFP100ピン 750円
・RX210マイコン R5F5210BBDFP ※電源電圧:1.62〜5.5V
最大動作周波数:50MHz、内臓オシレータ:50MHz、プログラムメモリー:1024KB、RAM:96KB、データフラッシュ:8KB、QFP100ピン 980円
・RX220マイコン R5F52206BDFM ※電源電圧:1.62〜5.5V
最大動作周波数:32MHz、内臓オシレータ:32MHz、プログラムメモリー:256KB、RAM:16KB、データフラッシュ:8KB、QFP64ピン 750円
・RX621マイコン R5F56218BDFP ※電源電圧:2.7V〜3.6V
最大動作周波数:100MHz、プログラムメモリー:512KB、SRAM:96KB、USBインタフェース、QFP100ピン 950円
・RX631マイコン R5F5631FDDFP ※電源電圧:2.7V〜3.6V
最大動作周波数:100MHz、プログラムメモリー:2048KB、RAM:256KB、データフラッシュ:32KB、QFP100ピン 1380円
・ルネサスRX621マイコンボード
上記、RX621マイコン(R5F56218BDFP)を積んだマイコンボード 2,700円
・ルネサス RX621マイコンボード開発セット
上記、RX621マイコン(R5F56218BDFP)を積んだマイコンボード開発セット 3,800円
・ルネサス RX621マイコンボード開発セット
上記、RX621マイコン(R5F56218BDFP)を積んだマイコンボード開発セット 3,200円
・ルネサス RX621マイコンボード開発セット
上記、RX621マイコン(R5F56218BDFP)を積んだマイコンボード開発セット 6,400円
・ルネサスRX210マイコンボード
上記、RX210マイコン(R5F52108ADFP)を積んだマイコンボード 3,200円
・ルネサスRX631変換ボード
上記、RX631マイコン(R5F5631FDDFP)を変換ボードに載せたもの 1,780円
・BlueBoard−RX62N_100pin
RX62N−100pin(R5F562N8BDFP)を積んだNGX社のマイコンボード 2,480円
・E1エミュレータ(ルネサスエレクトロニクス社) 12,600円
このボードには、RXマイコン以外は、コネクタや水晶程度しかありませんが、RXマイコンのボードは購入すると高いので、このボードはかなりお得です。
プログラムは、ボード上のUSBコネクタでパソコンにつないでやるだけで、RFPで簡単に書き込むことができますが、
E1エミュレータを持っている場合は、E1用の接続用端子があるので、E1エミュレータをここにつないで、例えば「CS+」や「e2stdio」から
デバッグするような使い方もできます。
写真
R5F562N7BDFB
E1エミュレータをつないだ例(ケーブルをつなぐだけで簡単にデバッグできます)
R5F562N7BDFBのピン配置図
ボード上のLED(P15)を点滅させてみました。サンプル@
ルネサスの「CS+」や、「e2stdio」は、プロジェクトの枠を作ってくれるので、関連するレジスタの設定程度でプログラミングできます。
回路図(抜粋)
RX631マイコン(100ピン)の変換ボードイメージ
秋月電子では、RX631マイコンを変換ボードに取り付けたものも販売しています。
RX621マイコン(100ピン)のピンレイアウト ※ルネサスエレクトロニクス社のマニュアルより抜粋
問い合わせ先(代表者)E_MAIL
BYP03364@nifty.ne.jp
※ウイルス感染防止のため、容量の大きなもの、添付ファイルのあるもの、テキスト形式以外のメールは
削除されます。
個々の質問については、お答えできません。