2016年7月22日金曜日

ラズパイ用電源制御基板

かわいいラズパイA。実は一番好きだ。
ラズパイからI2Cでコマンドを送ると指定した秒数経過後に電源を落とし、また設定時間経過後に電源を入れる基板。こんな単純な処理にMSP430G2553を使うことはないんだけど、手持ちで一番消費電力が少なくEnergia(≒Arduino IDE)で簡単に開発できるので(ATTinyあるけど書き込むの面倒くさい)。

とりあえず出来たので記念写真。ユニバーサル基板は疲れるわー。でも、ちゃんと?回路図を書いてから作業したので、私にしては珍しく一箇所も間違えずに完成した。大抵、出来上がってから「あ、1ピンと20ピンが逆だった」みたいな致命的なミスを見つけるんだけどorz

回路図は人様に見せられるものではないレベルw

見せてるけどなw
疲れたから仕上げは後にしようっと。始めたのは16:30だったから3時間か…。

--

あとは明日にしようと思っていたら23:30ごろ目が覚めてしまって、作業再開。

その間色々なことがありました…。

圧着した後でピンが違うことに気づき

ピンを付け直して圧着完了

部品が干渉するのでTO220を表面実装のMOSFETに交換。プルアップ抵抗もまとめて実装。
まずは圧着するピンを間違えてやりなおしorz

特性が今ひとつなのでハイサイドのスイッチをN-ch一個から2SC1815で電圧変換してからP-ch MOSを駆動する回路に変更。動作が安定せず。調べてみたら、ベース抵抗が100Ωだった。ゲート抵抗をそのまま使っていて交換忘れてましたorz 2.2kΩに交換して安定動作を確保。

パワーLEDを負荷として用いたチェックを一通り終えたので、いよいよラズパイ2B+をつないで見た…ら、MSP430G2553が起動しないorz

オシロで電源見てみたら、起動した瞬間に5v電源が3v近くまでドロップし(犯人はUSBケーブル)ていました。ので、3.3vラインに220μFのケミコンを追加して無事解決。

と思ったらケースのフタがしまらなくなってしまったので、電解コンデンサを取り付け直し。

よし、あとは電源のためのコネクタを接続…しようと思ったら、秋月から仕入れたミニBのDIP化基板には100mAのリセッタブルヒューズがついていて使えない。ねんのため普通のBも買ってあったのですが、家にB<->BのUSBケーブルが見当たらない…。他の小物と一緒にヨドバシに注文。

結局徹夜になりましたw

前述の通り、今回久しぶりのユニバーサル基板作業だったのですが、ヘッドマウントルーペの威力は絶大でした。今まで見えてないなかでよく作業してたなーと呆れるレベル。なにせワイヤストリッパにワイヤをセットするにもよく見えていなかったし、圧着もほぼ勘でしたw ハンダが溶け込んでいくところもよく見えるし、ピンとピンの隙間にハンダ付けをするのも楽勝でした。ちょっと近くが見えにくくなってきた方は、騙されたと思って使ってみてください!



さらにちょっとプログラムを書き換えようとしたら「JDK 6がないと起動しない」とEnergia.appに言われたので今どき6はないだろ、とEnergia最新版を入れたらI2Cが動かなくなりまして。しばらく頭を抱えていたのですが、「そういえば以前もそんなことがあったな」と自分のブログを思い出す。で、改めて、その「動いてたバージョン」を入れたのですが、「ダウンロードしたバイナリが壊れているのでインストールできません」と言われるorz しょうがないのでTimeMachineからほじくりだして再々インストール。無事動くようになりました…。Energia、活動していないわけではないみたいですけど、止まってますねぇ…。

で、書き換えたのは、2番目のパラメータを5分単位に。これで最大5*255=21時間25分までのwake upタイマーとして使えます。とりあえず7/24日 18:13に 60秒後にoff、130*5分後にon…というコマンドを送ったので、これで明日の朝5時ごろ起きてくれれば最終テストOK。

0 件のコメント:

コメントを投稿