[lang:ja] FRDM-KL25ZでArduino用シールドを使う際の注意点
.
Arduino は低価格マイコンボードとしてやラピッド・プロトタイピングのツールとして既に知名度が高く,ボード上に重ねて使用するシールドと呼ばれる拡張基板が多数流通しています.それにともない,特に最近になって,形状の一致するピンヘッダを備えたシールド互換のマイコンボードが各社からもたくさん登場しました.mbed でも対応ハードウェアが続々と追加され,FRDM-KL25Z や LPC800 MAX のように Arduino のシールドを接続可能なボードが出てきました.速度やメモリ不足などの理由で Arduino から mbed へ移行するような場合に,これまで購入したり自作したシールドが流用できるようになった点で,大変便利になったと思います.
多くの Arduino 用シールドは特に修正や変更を加えずともそのまま動作しますが,オリジナルの Arduino と異なるマイコンで制御する関係上,一部のシールドでは何らかの問題が生じる場合があります.このノートブックは,Freescale FRDM-KL25Z (黒い mbed) で Arduino 用シールドを流用する際に注意すべき点についてまとめたものです.
電気的な問題
電圧
Arduino シリーズは Due もしくは一部の低クロック版を除き入出力電圧は 5V ですが,FRDM-KL25Z は 3.3V となっています.
青い mbed (LPC1768) などとは異なり,入力はデジタル専用ピンも含めて 5V トレラントではありません[1].+5V ピンから直接マイコンボードに接続されていないか,+5V ピンから電源を取ったドライバ IC の出力がマイコンボードへ入力される可能性などがないか,確認する必要があります.
mbed からの 3.3V High レベル出力は, (推奨はされませんが) 5V 系に直接入力してもおそらく動作してしまうと思われます.
電流
Arduino に使用されている ATmega シリーズは,ピンへの定格入出力電流が 40mA (推奨 20mA) と強力です[2][3].一方 KL25Z は,最大 25mA (推奨 4mA) までとなっています[1].実際にこういった心配をするような事例はほとんどないと思われますが,AVR マイコンで駆動されることを前提に,大電流を流すように設計されたシールドは動作しないかもしれません.
ピン配置の問題
PTC1/RTC_CLKIN とシールド A5 ピン
Arduino でアナログ入力や I2C SCL に使用されている「A5 ピン」にあたる場所に配置された PTC1 は,mbed ファームウェアによって RTC クロック入力専用に設定されています.したがって,A5 ピンを使用するシールドはうまく動きません.
Information
この問題を回避するために,次のような変換基板を作ってみました.
要するに,シールドの A5 ピンと接続されるピンを,FRDM-KL25Z の PTC1 ではない別のピンに変更するためのものです. Arduino 自作シールド用基板のピン引き出しパターンをすべて切断し,FRDM-KL25Z の PTC1 のかわりに内側の他のピンとつながるように配線しなおしただけですが,これで A5 ピンに相当する場所が自由に使用できるようになったため,無事シールドを流用できました.
ピンアウト図には書かれていませんが,J10 コネクタの内側 6 本 (PTE20, E21, E22, E23, E29, E30) はすべて A/D 変換機能を備えているため,AnalogIn クラスが使用可能です[4].ここを使えば,A5 ピンにアナログ入力が必要な場合でも対応できます.写真の基板では,PTE20 に配線しています.
以下未確認
I2C を必要とする場合も同様で,I2C インターフェースをリマップして別のピンから使用することで解決できる??
例えば,SDA: PTC2→PTC11,SCL: PTC1→PTC10??
ピンマップの定義は,/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KL25Z に記載あり.
その他
FRDM-KL25Z の D13 ピン (PTD1) は,ボード上の三色 LED の青色カソードと共用されています.シールドに限った話ではありませんが,D13 ピンを使用する場合は三色 LED での全色表現はできなくなります.
情報源:
Please log in to post comments.