テンプレート使用法(1):追加アプリとハード構成

今回から数回に分けて販売中のG1xTemplateの使用方法、すなわちアプリ追加の方法を説明します。

第1回は、追加するアプリ選択とハード構成です。

追加アプリ:追加するアプリは、LCD表示アプリとします。実は、このアプリは、G1xTempleteに既に組込み済みです。組込み済みのアプリを例とした方が、組込み結果が判りやすいのためです。別アプリを追加する場合にも、今回と同様の手順と方法が使えます。

ハード構成:LCDは、雑誌などでおなじみの、16文字x2行表示キャラクタディスプレイ、HD44780互換品、秋月電子などで入手容易なものです。LCDとRL78/G13との接続方法も、最も一般的な、3制御+上位4ビットデータの7本インタフェースとします。このハード構成を下図に示します。

LCDハードウエア構成とRL78G13スタータキット実装例
LCDハードウエア構成とRL78G13スタータキット実装例

LCDはライト動作のみで、リードは行いませんのでLCD_RWは、LOW固定です。従って、マイコンに比べ動作が遅いLCDコントローラの処理終了の検出方法には、ポーリングや割込みは使いません

RL78/G13ユーザーズマニュアル ハードウエア編更新

RL78/G13ユーザーズマニュアル ハードウエア編が、2013/05/30、Rev.3.00へ更新されました。

付録の改版履歴を見ると、前版は、Rev.2.10で、メジャーバージョンアップです。全般的に見直して、追加/修正を加えたことが伺われます。特筆すべきは、前版までの改版履歴には無かった改版内容が、(a)~(d)の5段階に分類されたことです(付録A参照)。この分類と、修正場所を示す★マークで、より明確に変更が判るようになりました。

分類によると、今回の改版は、ほとんどが(c):説明、注意事項の追加/変更ですが、電気的特性の通信関連に(b):仕様(スペックを含む)追加/変更があります。RL78/G13と他マイコンを、通信動作でアプリを開発する場合などは、(b)箇所の見直しをお勧めします。また、(c)箇所も、最新版CubeSuite+の端子配置表の記述に合わせて変更されており、より判りやすくなっています。p876のオプション・バイト記述例などは、初級者にとって役立つと思います。

RL78/G1x用テンプレート販売

RL78/G13とG14ソフト開発に使えるテンプレートを、1000円で販売いたします。

このテンプレートは、CubeSuite+のプロジェクトファイルで、LED点灯やタクトSW入力、LCD表示機能などの組込み処理に最低限必要な機能は、あらかじめプログラム済みで市販ボードで動作確認済みです。

テンプレートの開発動機は、以下です。

アプリ開発の早期着手:CubeSuite+の新たにプロジェクト作成時は、毎回多くのパラメタ設定が必要で、ミスの可能性もあります。これら開発の前段階を少なくし、早くアプリ開発に着手したい。

既存関数の部品的流用:参考になるアプリケーションノートのサンプルプロジェクトを、理解した後は、なるべくそのまま部品的に使いたい。また、これまで開発してきた関数を、部品として使いたい。

これらを満たす方法の1つとして、各種パラメタ設定済みのプロジェクトに、最低限必要な機能を盛り込み、市販ボードで動作するテンプレートプロジェクトを作成しました。このテンプレートは、なるべくトリッキーな方法を使わずに、素直にプログラムしておくことと、サンプルや既存関数をそのまま使えるように関数間のインタフェースを簡単にしておくことが重要です。時間がたってテンプレートを観た時、思い出し易いからです。また、アプリ開発では、開発が進むにつれ、要求の追加/変更が生じますので、開発当初は、市販ボード上にサッと組んで、ボトルネックになりそうな箇所の見通しをつける事も大切です。スケジュールが押し迫ってから、マイコン性能が足りない等の問題が見つかると最悪ですから。市販ボードなら、ハードウエアの完成を待たずに、確実に動くハードで開発ソフトを検証できます。

このテンプレートは、初級~中級のソフト開発者には最適です。上級者は、これに似たテンプレートを既に持っているからです。本来は、上級者がテクニックを含む自分のテンプレートを初心~中級者へ教え、教えられた側でさらに、テンプレートに修正を加えれば、技術継承も容易です。しかし、テンプレートは、習得済みの者にとっては、オーバーヘッドで、未収得の者にとっては、理解不能な面が多いので、技術継承はスムーズにいきません。

テンプレート説明ページ1
テンプレート説明ページ1

販売するテンプレートの、もくじ付き解説文書のうち、最初の1ページ(jpg文書)を示します。もくじの内容から、テンプレート詳細が、だれにでも解ると思います。購入ご希望の方は、メール(宛先:info@happytech.jp)にてお知らせください。銀行振込口座を返信いたしますので、この口座へ代金の1000円を振込でください。振込確認後、全ての解説文書(全てPDF文書)とテンプレートプロジェクトをメールにてお送りします。後は、ご自由にテンプレート変更や修正を加えて頂いて、少しでも本来のアプリ開発に役立てて頂ければ、幸いです。

※2013年11月28日、テンプレートをVersion2へ更新いたしました。Version2はコチラをご覧ください。

RL78マイコンコーステキスト更新

ルネサス半導体セミナー無償テキストのRL78マイコンコースが、2013年2月28日 Rev.1.22版から2013年4月18日 Rev.1.23へ更新されました。どこが変更されたかは、変更履歴が無いので不明です。

このテキストは、RL78/G13とG14の割込み制御や割込みレジスタバンクの効能、SADDRとCALLTの効能、G14イベントリンクコントローラなどが記述された解りやすい解説書ですので、旧版をダウンロードした方は、最新版に更新することをお勧めします。

マイコン・トレーニング・キット¥9,980

スマートフォンとの連携利用ができるRL78/G14のマイコン・トレーニング・キット:MTK-RL78G14が6月末まで¥9980の限定価格で販売されます(マルツパーツ館の情報。ルネサスエレクトロニクスサイトに2013年5月22日現在、掲載無し)。

実装されているマイコンは、RL78/G14(R5F104PJAFB:100ピン、256K-ROM、LQFP-0.5mm)で、無償版CubeSuite+は、64K-ROMコンパイル制限のために使えません。但し、カフェルネ情報では、裏ワザで回避策があるそうです。

スマートフォンとの連携動作のために、802.11b(11nではない)モジュールや3軸加速度センサーが付くなど、マイコン以外の周辺回路も豊富で、これで¥9980なら安い気がします。CPUコアがS3のRL78/G14でなく、S2のG13なら即購入なのですが、興味のある方は、6月末までに購入すると良さそうです。

RL78 CPUコアをS1/S2/S3で分類

2013/04/11発行のRL78 ファミリ ユーザーズマニュアル  ソフトウェア編で、RL78 ファミリのCPUコアがS1/S2/S3の3種類に分類されました。本ブログ関連のRL78/G13とG14は、S2コアとS3コアに分類されます。

表 各CPUコア機能差と製品例

項目 RL78-S1コア RL78-S2コア RL78-S3コア
CPU 8ビット 16ビット
命令の種類 74種類 75種類 81種類
汎用レジスタ 8ビット・レジスタ×8(バンクなし) 8ビット・レジスタ×8×4バンク
乗除算積和演算命令 なし あり
製品例 RL78/G10 RL78/G13RL78/G12、RL78/G1A、RL78/G1C、RL78/I1A等 RL78/G14

 

前の版、2011年1月31日Rev.1.00のユーザーズマニュアル  ソフトウェア編では、このCPUコア分類はありませんでした。製品が多くなったので、分類が追加され、これですっきりした感じがします。旧NEC系がS1、旧ルネサス系がS3、両者融合の現社ルネサスエレクトロニクスがS2といったところでしょうか?

RL78-S2コアでソフト設計しておけば、適用製品が多いソフト開発ができそうです。

マイコンセミナーテキストの概要

2013年4月2日発行のルネサスエレクトロニクスセミナーニュースVol.83によると、マイコンセミナーのテキストをPDFで公開しており、セミナー受講に関係なく閲覧ができます。そこで、RL78とR8Cのテキストをダウンロードしましたので、その概要を示します。

セミナーテキストは、1ページに“スライド+解説”の構成で、網羅的記述のユーザーズマニュアルよりは、理解しやすいものです(但し、下記に示すように結構ページ数がある)。また、ユーザーズマニュアルの重要項目のみを抜き出して解説しているので、この内容を理解していれば、RL78、R8Cマイコンを使用するには十分な内容と推測されます。機種は、RL78/G14に限定して解説していますが、G13にもほとんどそのまま適用できます。

テキスト名 概要
RL78マイコンコース2013/2/26 Rev.1.22

(全243ページ)

RL78/G14のユーザーズマニュアル・ハードウエア編のサブセット。

G14特有のイベント・リンク・コントローラ、データ・トランスファ・コントローラの記述あり。第6章の割込み制御は、理解しやすく良くできている。CubeSuite+のコード生成を利用する際に、割込み優先順位とバンク設定の考え方の参考になる。

RL78コンパイラコース2013/3/18 Rev.1.05

(全194ページ)

ユーザーズマニュアル・RL78、78K0Rコーティング編のサブセット。

共用体を配列として宣言する場合は、全体が偶数サイズとなるようにメンバ調整が必須などの注意事項記述。第3章の効率アップ手法と、第6章のスタックサイズの算出は、必読。

R8Cマイコンコース2012/3/21 Rev.2.20

(全238ページ)

R8C/25のハードウエアユーザーズマニュアルと、Cコンパイラユーザーズマニュアルのサブセット。

R8Cは、3/x、5/xと性能と使いやすさを追求して展開中であるが、本テキストは、R8C/25に限定して解説しており、個人的にはうれしいし、役立つ。全体の目次ページが無いので、各章目次を抜き出したものを以下に添付。

 

R8Cマイコンコーステキスト全体目次

第1章 概要

1.1 R8Cファミリの特徴

1.2 R8Cファミリのシリーズ展開

1.3 R8C/25グループ概略仕様

1.4 開発ツール

第2章 R8C/2xシリーズのハードウェア

2.1 アドレス空間

2.2 リセット動作と電圧検出回路

2.3 発振回路

2.4 パワーコントロール

2.5 プロテクト機能

第3章 R8Cファミリのアーキテクチャ

3.1 SFR領域と固定ベクタテーブル

3.2 レジスタセット

3.3 扱えるデータタイプ

3.4 メモリとレジスタ上のデータ配置

3.5 アドレッシングモード

3.6 命令セット

第4章 NC30の実装仕様

4.1 概要

4.2 データ型と修飾子

4.3 絶対番地へのアクセス

4.4 メモリ配置

第5章 スタートアッププログラム

5.1 役割と構成

5.2 プログラム例

5.3 スタック使用量の算出

第6章 R8Cファミリの割り込み制御

6.1 割り込みの動作と使用方法

6.2 INT割り込み

第7章 割り込みプログラムの記述

7.1 割り込みを使うには

7.2 スタートアッププログラム

7.3 割り込みの初期化

7.4 割り込み関数

第8章 R8C/25グループの内蔵周辺機能

8.1 プログラマブル入出力ポート

8.2 タイマ

8.3 ウォッチドッグタイマ

8.4 シリアルインタフェース

8.5 A/Dコンバータ

8.6 フラッシュメモリ

付録

A. NC30起動オプション一覧

B. アセンブリ言語レベルの最適化

マイコンセミナーテキストの概要

2013年4月2日発行のルネサスエレクトロニクスセミナーニュースVol.83によると、マイコンセミナーのテキストをPDFで公開しており、セミナー受講に関係なく閲覧ができます。そこで、RL78とR8Cのテキストをダウンロードしましたので、その概要を示します。

セミナーテキストは、1ページに“スライド+解説”の構成で、網羅的記述のユーザーズマニュアルよりは、理解しやすいものです(但し、下記に示すように結構ページ数がある)。また、ユーザーズマニュアルの重要項目のみを抜き出して解説しているので、この内容を理解していれば、RL78、R8Cマイコンを使用するには十分な内容と推測されます。機種は、RL78/G14に限定して解説していますが、G13にもほとんどそのまま適用できます。

テキスト名 概要
RL78マイコンコース2013/2/26 Rev.1.22

(全243ページ)

RL78/G14のユーザーズマニュアル・ハードウエア編のサブセット。

G14特有のイベント・リンク・コントローラ、データ・トランスファ・コントローラの記述あり。第6章の割込み制御は、理解しやすく良くできている。CubeSuite+のコード生成を利用する際に、割込み優先順位とバンク設定の考え方の参考になる。

RL78コンパイラコース2013/3/18 Rev.1.05

(全194ページ)

ユーザーズマニュアル・RL78、78K0Rコーティング編のサブセット。

共用体を配列として宣言する場合は、全体が偶数サイズとなるようにメンバ調整が必須などの注意事項記述。第3章の効率アップ手法と、第6章のスタックサイズの算出は、必読。

R8Cマイコンコース2012/3/21 Rev.2.20

(全238ページ)

R8C/25のハードウエアユーザーズマニュアルと、Cコンパイラユーザーズマニュアルのサブセット。

R8Cは、3/x、5/xと性能と使いやすさを追求して展開中であるが、本テキストは、R8C/25に限定して解説しており、個人的にはうれしいし、役立つ。全体の目次ページが無いので、各章目次を抜き出したものを以下に添付。

 

R8Cマイコンコーステキスト全体目次

第1章 概要

1.1 R8Cファミリの特徴

1.2 R8Cファミリのシリーズ展開

1.3 R8C/25グループ概略仕様

1.4 開発ツール

第2章 R8C/2xシリーズのハードウェア

2.1 アドレス空間

2.2 リセット動作と電圧検出回路

2.3 発振回路

2.4 パワーコントロール

2.5 プロテクト機能

第3章 R8Cファミリのアーキテクチャ

3.1 SFR領域と固定ベクタテーブル

3.2 レジスタセット

3.3 扱えるデータタイプ

3.4 メモリとレジスタ上のデータ配置

3.5 アドレッシングモード

3.6 命令セット

第4章 NC30の実装仕様

4.1 概要

4.2 データ型と修飾子

4.3 絶対番地へのアクセス

4.4 メモリ配置

第5章 スタートアッププログラム

5.1 役割と構成

5.2 プログラム例

5.3 スタック使用量の算出

第6章 R8Cファミリの割り込み制御

6.1 割り込みの動作と使用方法

6.2 INT割り込み

第7章 割り込みプログラムの記述

7.1 割り込みを使うには

7.2 スタートアッププログラム

7.3 割り込みの初期化

7.4 割り込み関数

第8章 R8C/25グループの内蔵周辺機能

8.1 プログラマブル入出力ポート

8.2 タイマ

8.3 ウォッチドッグタイマ

8.4 シリアルインタフェース

8.5 A/Dコンバータ

8.6 フラッシュメモリ

付録

A. NC30起動オプション一覧

B. アセンブリ言語レベルの最適化

構造体と共用体

構造体と共用体は、マイコンのソフト作成時、初心者には必須技術です。既存ソースの理解や、コード生成ソースの解読に欠かせないからです。そこで、初心者も判りやすいシンプルな解説書を作成しました。

構造体は、“複数の既存型で、新しい型を作る”。共用体は、“複数の既存型で、メモリを共有する”。この2点を覚えてください。そうすれば、以下の例(R8C/25)が理解できます。RL78の場合は、”bit”が予約語になっているので、適当に変えれば(私の場合は、”b”を使用)使えます。

構造体の解説
構造体の解説
構造体の中身
構造体の中身

 

共用体の解説
共用体の解説
共用体の中身
共用体の中身

 

コード生成の不具合とリリース・ノート一読の薦め

ソフトにバグは付き物です。CubeSuite+のコード生成にも、このバグがあります。自作ソフトのバグと、純正ツールが生成したバグ、両方に対処する必要があるのは残念ですが、やむを得ません。今回は、2013年2月15日にリリースされたコード生成バグで、RL78/G13とG14に関するものを2点紹介します。

CA78K0Rの更新履歴
CA78K0Rの更新履歴

ここ1年のCubeSuite+、CA78K0Rの更新履歴を診ると、2~3か月でバージョンアップされていることが判ります。CA78K0Rは、純正ビルド・ツールで、コード生成もこのツール出力です。各版フォルダ内にDocフォルダがあり、この中にリリース・ノートがあります。

リリース・ノートには、変更点と注意事項があり、使用前に必ず読むようにありますが、初心者は読まないでしょう。ツール更新が自動化され、更新完了すると、なるべく早く開発を継続したいからです。そうすると、自作バグと純正ツールバグの切り分けができず、ハマッテしまいます。経験者は、このハマッタ経験があるから、ツール更新時は、落ち着いてリリース・ノートを読みます。

RL78/G13とG14の注意点:スタートアップ・ルーチン

スタートアップルーチンの注意事項
スタートアップルーチンの注意事項

初心~中級者は、スタック領域サイズを変更することはないと思います、が、念のため読んでおきましょう。コード生成が出力するr_systeminit.cのhdwinit関数は、main関数前に処理されるので、デバッガダウンロード時、デフォルト設定なら自動実行されます。また、r_systeminit.cは、コード生成に問題がない時は、全く気にしないファイルです。従って、かなり見つけにくいバグになるでしょう。この場合には、デバッガのデフォルト設定(指定シンボル:_main)を変更し、コード生成出力に、回避策を手動で追加する必要があります。

RL78/G14のタイマRD/RJの注意点:

RL78/G14の特徴に、高速オンチップオシレータ64MHz対応のタイマRD PWMモードがあります。この特徴を使ったタイマRDの、コード生成出力のデューティ比が、正しくない不具合があります。また、ポート割当てとの競合を示す!マークも正しく表示されません。

タイマRJのパルス周期計測モード使用時、コード生成の計測計算に、誤りがあります

これらの不具合には、リリース・ノート記載の回避策に沿って対処します。根本的には、次回2013年4月頃予定のCubeSuite+次期バージョンで改善されるそうです。しかし万一、これらが原因でハマッテしまった場合、切り分けや、抜け出すのが困難であることが判るでしょう。ツール更新時は、リリース・ノート一読をお薦めする理由です。