作品タイトル:GR-KURUMIの機能を使う 多重化された端子編
表示名:@chobichan
コンセプト・作品説明 |
---|
GR-KURUMIの端子に多重化された機能の使い方 |
一つの端子にたくさんの機能
RL78/G13の様なワンチップマイコンにあるあるの話ですが、シリアルとかタイマーとか、そう言った沢山の周辺モジュールを内蔵している割に端子の数がみあっていない訳です。お蔭で複数の周辺モジュールが一つの端子の奪い合いをしている状況です。
いや、これはRL78/G13に限らずです。最近は回路図にCPUのシンボルを描く時大変ですよ、 本当に。
例えばシリアル(UART、I2C、SPI)がそうですね。この3つの機能は多重化されていてどれかを使うと他の機能が使えません。その為、ハードウエアを設計する時は、この機能とあの機能が端子を共有していないとか、そう言った事を十分に調べて置く必要があります。
色々な周辺機能モジュールを内蔵していてユーザーはなんでもできちゃう気になってしまいますが、実は罠の様に制限が有ったりするので注意が必要です。
ええ、かつて何度もその罠に掛かって来ました。
きっとこれからも、、、
例としてSerial2とSPIまたはSDカードを同時に使う事はできません。
GR-KURUMIの端子とポート番号の対応
GR-KURUMIの端子番号とRL78/G13のポート番号の対応を書いておきます。※()内は周辺I/Oリダイレクション・レジスタ(PIOR)の設定により,割り当て可能。
※各機能の詳細はハードウエアマニュアルを参照してください。
アナログの使い方に注意が必要
1本以上の端子をアナログ入力に割り当てる事ができます。GR-KURUMIは外部アナログ入力を最大で8本まで使用できます。A0~A7までです。A4からA7は基板の端ではなくずいぶん変なところにあります。
もっともArduino Pro Miniはもっと変なところにありますが。これだけ沢山アナログ入力端子が有るのだから、好きな端子をアナログ入力にできるだろう!と思うとそこに罠が存在します。なんて事でしょう。
RL78/G13に限らずおそらく他のRL78シリーズでは図の様な割り付けしかできません。
※一部を抜粋しています。詳細はハードウエアマニュアルを読んで下さい。
左の赤丸は設定レジスタです。右の赤丸が端子になります。表の中のDはデジタル端子、Aはアナログ端子です。
つまりアナログ端子への割り付けは、ANI0の若い番号からしか割り当てができない事が判ります。
ANI0をアナログ、ANI1をデジタル、ANI2をまたアナログにする事はできません。
これに気付かずにうっかり基板を作ってしてしまうと酷い目に会います。アナログ入力は必ずA0からの若い番号順にしてください。また、途中にデジタル端子を挿入しないでください。
端子の流せる電流の大きさに注意
Arduino Pro Miniで使用しているAtmega328Pの一つの特徴に、端子及びパッケージ全体で流せる電流が結構大きい事が挙げられます。データシート上、SINK(引き込み)もSOURCE(送り出し)も20mAまでグラフが引かれ、25℃時のVolが0.7V、Vohが2.25V(3V電源)です。
パッケージ全体の最大絶対値電流は200mAとなっています。
対してGR-KURUMIのRL78/G13の場合は、 3.3Vで動かした場合、SOURCE側で10mA以上流せるようです。
しかしP20~P27の端子は極端に小さくなっています。
P20~P27端子は端子番号で言えばGR-KURUMIのA0~A5に該当します。
この端子はLED等の重い負荷は接続しない方が良いでしょう。※しかしかつてのルネサスのマイコンに比較したら、ずいぶん流せる電流が増えました。
3.3Vで動かした時、SINK側は15mA以上流せるようです。
しかし先と同様にP20~P27の端子は極端に小さくなっています。やはりこの端子にはLED等の重い負荷は接続しない方が良いでしょう。
極一般のハードウエアエンジニア。たまに雑誌記事を書いています。
twitterアカウント:https://twitter.com/chobichan