ラベル 16MHz の投稿を表示しています。 すべての投稿を表示
ラベル 16MHz の投稿を表示しています。 すべての投稿を表示

2013年12月6日金曜日

MCU Gear と Arduino 互換機との接続成功

Arduino互換機Seeeduino の少ないメモリー(SRAM)でもMCU Gearを6つ動かすことに成功しました。
Arduino IDE のシリアル通信を使うと、メモリーが非常に消費することがわかりましたので、今回はシリアル通信を使っていません。

他にもメモリーをあまり気にせずに使うには、モジュールのインスタンスを一つだけ生成して、PCに配線情報を保持してシリアルのコマンドインスタンスの配線情報を書き換えながら動作させる方法が考えられますが、それは後日試そうかと思います。


また、プログラムの使い方によってもモジュールの積層数は変動しますので、いろいろ試してみてください。

また、その他のファイルも大幅に削除したため、機能が単純になりました。
(5V系ボードを使う場合は電圧レベル変換基板を必ず使ってください。)
レベル変換基板のテストは前回のブログで紹介しました。
http://mcugear.blogspot.jp/2013/10/mcu-gear-5v-16mhz.html

レベル変換基板の販売準備をしようと思います。 サンプルプログラム





後日プログラムの詳しい解説をします。

2013年10月22日火曜日

MCU Gear:接続検証レポート ~ディーノ系 5V 16MHz編

今回はレベル変換基板を作ったので試してみました。
 これで5V系のマイコンもMCU Gearで扱えるようになります。





ブレッドボードやユニバーサル基板接続しやすいようにmbed と同じピン配置にしました。

これを~ディーノとつなぐには以下のような改造が必要です。
MCU Board TypeAのmbedコネクタをTOP面に取り付け、裏面にはピンヘッダを付けるとうまくつながりました。










では実際に複数のモジュールを動かそうと試みたところ、どうやらモジュールの数によってSRAMがいっぱいになってしまうようです。
今回使用したテストプログラムでは4個のモジュールが限界でした。単純に5個のモジュールを定義すると最初に定義したクラスのモジュールのアドレス設定が消えてしまうなど、うまく動かなくなりました。

恐らく~ディーノ系でもSRAMの大きい物(MEGA?など)を使用するか、PCと接続して分散処理(PC側にモジュールの定義を書き込んでおき、コマンドを送って動かす仕組み。クラスでモジュールを定義しなければ問題なさそうです。)で動作させる方法がよさそうです。

まだ検証は続けますが、今のところ~ディーノ系はサポート対象外です。

2013年9月12日木曜日

MCU Gear:接続検証レポート ~ディーノ系 3.3V 16MHz編

前回は3.3V 8MHzとの接続テストを行い、 リセットボタンに問題があることがわかりました。

今回はSeeeduinoという基板を手にいれたのでテストしてみました。


この基板は5V 16MHzでの動作が推奨ですが、実は3.3V 16MHzでも動くそうです
どうやらマイコンの仕様では3.3Vでは13MHz程度が安定してるという事ですが、若干オーバークロック気味で動かせるようです。
(※スイッチが5V側に動かないように、3.3V側に固定しないと危険かもしれません、そこだけは注意する必要がありそうです。)


「3.3V 16MHz・・・本当かな?」っと思いちょっと調べてみました。




単純にIOのHigh、Lowの動きに変化が出るか、ロジックアナライザで確認してみました。

5V  : 8.62~8.63usec
3.3V: 8.62~8.63usec

という結果になり、どちらも同じ速度で動いているようです。(水晶が16MHzなので当たり前なのでしょうけど)
ただ、データシート的には、安全ではないという事なので、推奨はできません。リセットボタンの問題もそのままでした。







次にMCU Gear のパワーモジュールのリセットボタンからC5コンデンサを取り外し、テストプログラム(Test Program)を動かしてみました。一応16MHzで動きましたが、やはりオーバークロックはマイコンの仕様を満たしていないので推奨はできません。

※推奨マイコン以外のマイコンでは、MCU Gearの初期化動作が失敗することがあります。~ディーノ系を使うときはリセットボタンは使わずに
①MCU Gearの電源を入れる。
②マイコンの電源を入れる。
という手順で行う必要があるようです。また、コンデンサを外した後の動作については保証やサポートはできません。


【電圧対クロックのグラフから、近似曲線を求めてみました】
※近似曲線はあくまでも「近似値」を出すための式なので、実際のマイコンには当てはまらない可能性があるため、参考程度にしてください。特にこれで動作保障するものでもありません。また、計算ミスなどあったらコメントください。


データシートの 28.3 Speed Grades グラフを見ると、3.3Vが微妙なラインに見えます。

ここで一つ、気になるところがあります。「これって直線なの?」

では(4.5V, 20MHz) (1.8V, 4MHz) グラフの傾きから1次関数を求めると。

Y = (16MHz/2.7V) X + b

となります。

(4.5V, 20MHz)を代入して b を求めると b = -6.66666....となります。

つまり

Y ≒ (16MHz/2.7V) X - 6.67

となります。

ここで途中にある(2,7V, 10MHz)を確認するためにXに2.7Vを代入すると
Y ≒9.34MHz

10MHzよりも小さい、つまりこのグラフは直線ではなくて若干膨らんでいることになります。
エクセルで二次の近似曲線を出してみました。
その式が正しいと仮定して求めると、3.3Vで約13.63MHzまではSafe Zoneのようです。
仮にこの線に合っていると仮定して16MHz出すには、約3.73Vは必要になる計算になります。
やっぱりちょっと不安なので推奨はできませんでしたが、前回のテストプログラムは一応動きました。