いろいろ試す7

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



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


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


前回軽く紹介していましたが実用レベルになれたので改めて紹介します。
目玉は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のデータを受ける部分の処理がまずいのでしょう。
てわけで魔の時間帯でもデータを受け付けるように…
…しただけでフン詰まり現象は無くなりました!

UARTの通信込みでこんだけ叩きだせるなら恩の字じゃないかしら!?
でもやっぱし専用ICには到底かなわないので…
遊び以外で使わない方がいいですよ(重文)
上記の成果はおきばにあります。
20110406追:
STM32のUSBライブラリがV3.3.0に上がりVCPのデモもこの問題が修正された
…と見せかけて修正されていないようです。ご注意を!

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


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


●トラ技別冊LPC1114ボード
圓山宗智氏作のMARYと呼ばれるLPC1114と周辺のボード群にちょっと興味が
魅かれたので購入してみました。最初はLPC1114基板とCP2104基板で2枚組かと
思ったのですが、本当に同じ基板が2枚(LPC1114+CP2104の基板が2つ)なのですね…

LPCXpressoと大きく違う部分はLPC1114のメイン発振器が内部オシレータ
(LPCXpressoは外部に12MHzの水晶がある)の使用を想定しているのでスタート
アップ時のオシレータ選択レジスタを内部オシレータにしとかないと
動かないといったところくらいでしょうか。

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

Go to top of page