いろいろ試す7

この度の大地震で被災された皆さまには心よりお見舞い申し上げるとともに一日も
早い復興を願っております。私も復興支援を私なりにできるかたちで行っていきます!



…てわけで電子工作野郎になる時間がなかなか取れなくなってしまったので今回はも
ともとタイトル通りいろいろやるつもりだった内容を大幅縮小変更してお送りいたします。


●AVRマイコンを使ったバックアップ機能つきRTC時計
un

前回軽く紹介していましたが実用レベルになれたので改めて紹介します。目玉はRTCの
バックアップをATMEGA644pのパワーセーブモードで行い、外付けのRTCのモジュールを
排したコストダウン仕様となっています。表示部は部品箱の肥やしになっていたNoritakeの
キャラクタVFDを使い視覚性も良好でLM60を使用した温度センサで気温も同時表示出来
るようにしました。
気になるパワーセーブモード時の消費電流ですが、ADVANTESTのnAオーダーで測定でき
るデジタルマルチメーターで測定したところMAX3uA,平均1uAでした。CR2032(約220mAh)
なボタン電池でも単純計算で3000日以上余裕でバックアップ可能なわけです♥
主人がATMEGA328で作ってたやつはバックアップ時にAVCCを断つというセコ技を駆使して
も80uA程喰っていたのでそれを鑑みると非常に満足のいく結果と感じています。

消費電力削減の為にはファームで省電力レジスタ群をいじったり割り込み時のステート
を考慮するのはもちろんのことですが、VCCまわりの回路構成も非常に重要です。AVRは
STM32等の今日びのARMマイコンのように独立したパワードメインは無いので、逆方向
漏れ電流の非常に小さいショットキバリアダイオードでしっかりと分けてやらないとせっ
かくファームで省電力化できても外部回路からダダ漏れとなってしまいます。こういうの
意識しながら作ることを経験しとくと他でも応用が効くと思います。

時計合わせはUARTのコマンドからのみという手抜…シンプルな仕様!mega328バージョ
ンでは回路に取り込んでいたAVR309を外に出して手抜…回路の簡素化を図りました!


●STM32マイコンを使ったUSB-CDCが…
※知ってる人もいるかもですがかなり以前の話です
iruka氏のSTM32を使ったUSB-CDCの考察の最後に出てくる魔の時間帯について。
ループバックして、氏のw32termのテストモードを走らせるとこの時間に高確率で引っか
かってフン詰まり状態になってしまいます。単純にダブルバッファリング化しても同じ結果
だったのでUARTのデータを受ける部分の処理がまずいのでしょう。てわけで魔の時
間帯でもデータを受け付けるように…
…しただけでフン詰まり現象は無くなりました!
un
UARTの通信込みでこんだけ叩きだせるなら恩の字じゃないかしら!?
でもやっぱし専用ICには到底かなわないので、遊び以外で使わない方がいいですよ(重文)
上記の成果はおきばにあります。
20110406追:
STM32のUSBライブラリがV3.3.0に上がりVCPのデモもこの問題が修正されたと見せか
けて修正されていないようです。ご注意を!

●STM32 ValueLine-Discovery
を秋月さんから購入しました。ねむいさんみたいに買ってすぐにバラすような人対策か、
ST-Linkの部分が切り離すことができません。しかしこのST-Link部もVersaloon化できる
ようになっているのでさっそくVersaloon化してみました。これについては後ほど別記事で
詳しく取り上げたいと思います。

un
↑お約束のTFT液晶モジュール。8bitバス繋げるのめどいのでSPI接続方式の液晶で…。
この評価ボードのセットはSTM32が二つも付いているので(部品取り基板として)とても
利用価値があると思います。機能限定で単品物作るなら新品でパーツ揃えるより安上
がりで最適でしょう。


●トラ技別冊LPC1114ボード
圓山宗智氏作のMARYと呼ばれるLPC1114と周辺のボード群にちょっと興味が魅かれた
ので購入してみました。最初はLPC1114基板とCP2104基板で2枚組かと思ったのですが、
本当に同じ基板が2枚(LPC1114+CP2104の基板が2つ)なのですね…
un
LPCXpressoと大きく違う部分はLPC1114のメイン発振器が内部オシレータ(LPCXpresso
は外部に12MHzの水晶がある)の使用を想定しているのでスタートアップ時のオシレータ
選択レジスタを内部オシレータにしとかないと動かないといったところくらいでしょうか。

CQ誌のサイトからダウンロードしてきたMARYのサンプルを参考に過去に作ったとっかか
り用のLPCXpressoのプログラム
と共用できるようにしてみました。
MARY上で動かす時はmakefile内のボードの定義をMARYに変えるだけでおkです。
un

つづく

Go to top of page