LANによるAC電源コントローラー2号機が動いた
電源制御部のドーター基板の配線完成(7/10/2012)
LANによるAC電源コントローラー2号機は、タカチのYM130ケース(130X90X30)への実装を始めている。まず最初に組み始めたのは、AC周りと、リレーのドライブ、AC電源のモニターが入るドーター基板である。そういえば前の1号機のときは、回路図やソースコードを公開していない。
他人(ドイツの)のソースに頼って自分のオリジナル部分が殆どなかったことや、このころは回路に自信がなく、公開する勇気がなかったためだが、1号機はこの4年間、リレー回路や、フォトカプラーを使ったACモニターなどを含めて全くトラブルなく動いている(ACアダプターのコンデンサーはパンクしたが)。もう公開しても大丈夫だろう。
ソースコードも、原典のソースは改変・再配布可能(GPL V2)なライセンスなので、これから作られる人のために、2号機のソースは公開することにする。回路は、1号機ではレベルシフターを入れたので少しアレンジしてあるが、今度は単一電源(3.3V)にするので、よりオリジナルに近い。
唯一違っているところは、1、2号機ともACモニター部である。リレーがAC電源をONしたところから、抵抗とダイオードを経由してフォトカプラーにつないでACと絶縁しTTLにしてLEDを点灯させる。オリジナルは、通電をソフトで調べてLEDを点けているが、こちらの方が信頼性は高い。
このあたりは全くの自作考案である。1号機のときは適当に抵抗やコンデンサーを選び、偶然うまく動いた。ただ、各部の電圧や電流を測っておこうと、テスターを当てているうち、100Vに触れ、フォトカプラーやダイオードを一瞬のうちに失った。その後は動いていることを良いことに何もしていない。
2号機には、1号機についていないインレットを加えた。電源コードが独立するので、とりまわしは格段に楽になる。ただ、インレットソケットの付いた電源コードで15A仕様のものが意外と少ない。手持ちはみな7Aどまりで買ってこなくてはいけない。
ドーター基板の配線はAC部から始めた。プリンターの13Aが流れるところは、大電流に耐えられる太いコードを使うので、ハンダ付けは楽ではない。端子への取り付けは、1号機は苦労してネジ止めだったが、ファストン端子(平型)を使って保守性を上げる(ファストン端子は、千石で1個単位で買える)。端子とケーブルの固定は、ハンダ付けでなく圧着端子である。
このあいだ買ったエンジニアの圧着ペンチ(PA-21)の出番と張り切ったのだが、電源用のファストン端子の圧着部分は、大昔に買ってあった自動車用の圧着ペンチ(安物だが)の方がサイズが合った。ちょっとがっかりするが、圧着そのものは最近は慣れてきて殆ど失敗がない。
リレードライバーと、フォトカプラーまでの配線が完了した。テストに入る。例のkumanさん流の逐次テストである。AC100Vと対決だ。5V電源は別のところからとり、まずはリレーのテスト。電気スタンドをアウトレットに入れてトランジスタのドライブ回路をテストする。
「カチッ」と頼もしい音がリレーからして、スタンドが点灯する。音がするというのが良い。接点から火花が見えるが全く問題なく動いた。SSRのように音もなく電気がはいるより、野蛮だけれど、こういう原始的な動作の方が安心して見ていられる(古い人間だ)。
次は、フォトカプラーによるAC電源モニターである。AC100Vを恐る恐る差し込む。よーし、赤いLEDがついた。暫く放置する。問題ないようだ。しかし、ちょっとLEDが暗い。調べてみた。ACが怖いので、プローブはハンダ付けしたケーブル経由である。以前はテスタープローブを滑らせて、このあたりの電子部品を全滅させた。
うーむ、フォトカプラー出力をエミッターフォロワーにしてLEDをドライブしているが、1.6Vしかない。LEDを点けるだけならともかく、ここの出力は、マイコンの入力ピンに入れて制御に使いたいので、これでは心配だ。
エミッターの負荷抵抗を色々変化させるが思わしくはない。フォトカプラーの勉強をした結果、わかったことは、入力のフォトダイオードに流れる電流が小さすぎて十分なコレクター電流が流れていないのが原因のようだ。
入力側は、20KΩでAC100Vを降圧し、ダイオードと100μFのコンデンサーでDCにしてフォトダイオードをドライブしている。前に入力電圧を測ったところでは、1.0V以上あったので問題ないと思っていた。
ACからDCは半波整流だし、このあたりは良い加減に5mAでも流せればと、とりあえず100V/20KΩ=5mAという乱暴な計算で抵抗値を決めた。これをもう少し増やしてみよう。
降圧用の抵抗を半分の10KΩにしてみた。おお、良いぞ、フォトダイオード側の電圧が、1.1V、出力側の電圧が2.7Vまで上がった。今度のシステムはすべてVccを3.3Vに統一することにしている。Highがこれだけあれば十分なようだ。
アナログは奥が深くて難しい。対症療法だが、とりあえずはスペックを満足しているようなので先に進むことにする。それに、ソースを確認していないが、どうもこのTTL入力は使っていなかったような気がする。
主基板のアートワークは両方の面を作る(7/12/2012)
電源制御部が完成したので、次は、本体側の実装に移った。主基板の大半は、ACコンセントと、ACアダプターやリレーを載せたドーター基板で占められており、CPUやNICチップ(ENC28J60)が置けるスペースが少ない。レイアウトに苦労する。
CPUはCHANEYのガイガーカウンターにも使ったQFPのMega328である。秋月の32ピンQFPの変換基板に載せる。1号機と同様にクロックはNICチップから貰うので水晶を載せる必要がなく、あまりこの変換基板を使うメリットはないが、在庫処分のつもりである。
久しぶりの本格的な汎用基板でのハンダ付けなので、少し慎重に準備する。アートワークは基板のトップ面だけでなく、裏のハンダ面のものも作り直した。前のNIC基板のときはスキャナーで画像を撮り反転させて作った。今度も同じようにするつもりだったが、最初のアートワークが不満で、もう一度検討するため、あえて手書きで全部作り直した。
しかし、場所が限られているので、チップを自由に配置することができない。スペースはあってもドーター基板の部品が張り出しているので気をつけないと干渉する。結局、アートワークをやり直しても期待したような画期的な改善は図れなかった。
ただ、何度も繰り返すと回路の構造が頭の中に入ってくる。アートワーク上の配線のイメージがより具体的になりハンダ付けするときのミスが格段に少なくなる。ソフトウエアの開発にも似たようなところがある。擬似コーディングというのもロジックを繰り返して確認しているようなものだ。
実装はモジュラージャックの固定から(7/13/2012)
本体基板の実装の最大の難関は、LANモジュラージャックの固定である。ブレークアウト基板が売られているように、こいつのフットプリントは複雑で穴あけは一筋縄ではいかない。前に作ってあった紙のフットプリントパターンを頼りに。穴明けの計画を練った。
モジュラーの8 本の端子のピッチは、大体どれもmil(2.54mm)規格だが、上段と下段は半分(1.27mm)ずれている。これらが完全に入るようにまず1ミリドリルで汎用基板のピッチの中間に正確に穴をあける。これにピンを少し入れながら、あとは少しづつ現物あわせをしていくのがコツのようだ。
ただ、今度のモジュラーはLED付きなのでこのピン位置が全くmilを無視している。これを空けるのがまたひと苦労だ。あとの筐体のアースピンや、固定用のボス穴は大きいので、2ミリのドリルで開けたあとカッターで広げていけばそう難しくない。
モジュラーの固定はこれまで4回(ひとつは変換基板)あるが、今度はこれまでになく綺麗にあけることが出来た。ボス穴もきれいにおさまって満足である。経験は積むものである。ただ、こんな苦労はそう度々やりたくない。
ブレークアウト基板があれば、この工程は飛躍的に減らすことが出来るのだが、秋月では何故か、このパルストランスとLED付きのモジュラー用のブレークアウト基板は売っていない。売っているのは、昔のモジュラーだけの基板で、それも気をつけないと合わないモジュラーも売っている。
パルストランスやLEDを外付けしないでコンパクトに作れるこのモジュラーは重宝している。値段も高くない(¥300)。早くこれに合うブレークアウト基板を作ってもらいたいものだが、やっぱり前のモジュラーの在庫がある限りは無理なのかも。
ハンダ付けの終わったNICチップを付け直す(7/14/2012)
ENC28J60である。最近は他にも色々なNICチップが出ているようだが、予備がひとつ残っている。同じソースを使うつもりなので選択の余地はない。この石は内部の5つくらいのブロックの電源が独立してピンに出ており、それぞれのVccとGNDにパスコンをつける必要がある。
しかもCPUチップのようにVccとGNDのピンが隣合わせではなく離れているので、チップコンデンサーを活用することが出来ない。ソケットをシングルラインにして内部にも盛大にコンデンサーを入れて実装していく。電源周りだけで配線は結構複雑である。
夜半、やっと出来たので組み上げてみたら、何と、ドーター基板のリレーと干渉する。アートワークでそうならないように調べて設定した基板の配置をピッチひとつ間違えて半田付けしていた。うはあ、これは大変だ。肩の力が抜ける。こればっかりは簡単にずらすわけにはいかない。
何とか、このままで組み上げられないか色々模索する。ドーター基板はリレーは動かせても、ACアダプターのコンセントはずらせない。ドーター基板ごと本体基板からずらすのは、ドーター基板を固定しているアングルの作り直しになる。穴も開けなおしである。
あれこれ考えていたが、結局もういちどハンダ付けをすべてやり直す方が工程上早いと結論した。泣く泣く、ハンダ付けしたところを、全部ばらした。低温ハンダは使わない(これ後始末が大変なので広範囲は避けたいところである)。ハンダ吸い取り線でハンダを徹底的に取り除く。
完全に1ピッチずらすだけなので、取り出した部品はそのまま固定できるはずなのだが、悲しいことに、一旦はずしてしまうと前の形を忘れて部品が元通りつけられない。泣き面に蜂である。そのうち、頭の中が混乱してきて、今何をやっているのか途中で思考が切れてしまう。あきらめて寝た。
日を替えると進捗が早い。順調に進む(7/15/2012)
次の日、フレッシュな気分で再開した。おおお、進捗が早い。昨夜あれほど苦労したところが、何の問題もなく解決していく。いやあ昨夜あんなに無理することはなかったのだ。うまくいかないときはさっさと諦めてやり直すことの大切さをあらためて学ぶ。
ハンダ付けの対象は、NICチップの電源周りから、モジュラーとの接続へと移る。ここでの心配は、モジュラーの分圧抵抗の定数である。殆どの回路図が、50Ωや、49.5Ω(しかも誤差1%)を指定しているが手持ちがない。47Ωにしたのが心配の基である(分圧抵抗ではなく、終端抵抗だった。伝送エラーが出たら取り替える予定。後記)。
まあ、おかしくなっても、影響があるのは、使っているスイッチングハブの範囲内だけなので余り心配するのは止めた。動かなくなってから考えることにする。
他は順調だった。ハンダ付けはCPU基板に移る。変換基板にパスコンのチップコンデンサーを載せたので、主基板の部品が少ない。次々にアートワーク上にサインペンで塗られた線が増えていく。少しづつものが組みあがっていくのを実感できる。この過程がいつも、どきどきわくわくする。
火入れは少しづつやっていく(7/16/2012)
ハンダ付けはほぼ終了しつつある。残りは、UARTを残すだけとなった。場所がやはりない。それに滅多に使わないUARTを実装するのも無駄のような気がしてきた(究極のケチである)。迷ったが、USB-TTLアダプターは入れないことにして、ソケットで外へ出すことにする。
ハンダ付けするところがなくなった。完成である。しかし、何となく達成感がない。2号機ということもある。前と同様に動いて当たり前という気持ちもある。しかもソフトは前と同じなので、全く新しいものを作ったときの、あの気持ちの高まりは味わえない。
ともかく、火入れをすることにした。何から動かしていくか迷う。このセットのCPUクロックは、ENC28J60からの外部クロックである。うまく動けば良いが、一旦フューズビットを外部クロックにしたら最後、そのクロックが来ない限りチップは動かなくなる。
手順を間違えると大変なので、少しづつ手順を踏む。まず、NICチップをはずして、内蔵クロックのCPUだけで動作を確認する。ISPケーブルからCPUを認識するか。これは問題なかった。クロックは内蔵のCR発振のまま、次のステップに移る。
NICチップを入れて電源を入れ直す。うむ、モジュラーのLEDが点いた。ハブにも新しいノードが追加されたことを示すLEDがついた。よーし、NICチップの誤配線はないようだ。ちゃんと動いている。
UARTをつなぐ。ボーレートは内蔵の8MHzで動くようにしてある。電源を入れ直す。端末にWelcomeメッセージが出て、ENC28J60のバージョン番号が04と出た。良いぞ、良いぞ、初期化も成功したようだ。
図に乗って、PC側からpingを打った。反応はない。ふーむ、NICとCPUの実際の動作はうまく行っていない。まあ、これは当然といえば当然だ。クロックが同期していない。
いよいよCPUクロックをNICチップからの外部クロックで動くように、フューズビットをISPでいじる。ここからは元へ戻れない状況になる。もし、外部クロックが動いていなかったら別に用意しなければ、ISPも動かなくなる。
フューズビットを書き換えた。あっというまにAVRSPはチップを認識しなくなる。しかしNICチップは電源が入っており、クロックを供給しているはずだ。本当ならこれでも動くはずであるが、動かない。
おかしい。UARTも動かない。しまった、ボーレートを直すのを忘れている。クロックが12.5Mhzに上がったのに、8MHzのボーレートでは伝送速度に合うものがない。確かめようがない。頭から血が引いてくる。
いくつかのトラブルを解消して2号機が動いた(7/18/2012)
気を落ち着けて冷静になって考える。UARTが動かなくても検証の方法はいくらでもある。オシロでまず調べることにする。NICチップのクロックを確認する。盛大な25Mhzのクロックが確認できた。
次は、これがCPUに来ているか。NICチップから出される1/2の12.5MhzがCPUに供給されているはずである。ありゃあ、CPUのクロック端子は0のままだ。あ、あ、あ、X1でなくX2にNICからのクロックをつないでいる。良かった。単純なミスのようだ。これを直せば動くに違いない。
ハンダごてにすぐ電源を入れなおし、X1の方へ配線する。さあ、どうだ。よーし、ISPが戻った。UARTのボーレート係数を12.5Mhzに合わせ、コンパイルしなおしてプログラムする。UARTをつないで再度テスト。
やった。UARTにさっき見たWelcome画面が戻った。しかし手動スイッチに反応はない。このスイッチは、ネットにつないでいなくても押すたびにトグルして、リレーのON/OFFが動くはずである。
ネットの方を見てみよう。PCコンソールから、このコントローラーにPINGを打つ。良いぞ。レスポンスが返って来た。うむ、誤配線もなくNICチップは正常に動いているようだ。HTMLはどうだ。おーし、ちゃんと出た。画面上のボタンを押す。何だ、何だ。ちゃんと変化するのに、リレーはぴくりとも動かない。
ネット関係はすべて順調に動いているが、リレーの部分がおかしい。オシロで各ピンを確認する。あれえ、スイッチを押しても入力電圧が変わらないぞ。何だ、また配線間違いだ。CPUのI/Oピンの番号と実際のピンの順序には、全く秩序がないので良く間違えるのだが、今度もこれにやられた(単に不注意なだけだが)。出力ピンと入力ピンがさかさまだ。
ソフトの改修はまだだが、とりあえず外装まで完成(7/20/2012)
珍しく配線間違いを複数やって完成直前で2号機はトラブっている。実は、I/Oピンの間違いに気づいて直したのだが、それでもリレーは動かなかった。ちゃんとCPUの出力ピンには3.3Vの電圧が出ているのにリレードライバーはリレーを動かせない。
オシロで慎重に電圧をチェックしていく。その結果、リレーのドライバートランジスター(2SC1815)のベース電圧が1V以下であることを見つけた。恐らくこれが原因だろう。5Vのコレクター電圧でベースがこれではトランジスターはONしない。
考えてみれば、I/Oピンは3.3VのLVTTLで、リレードライブは5Vである。前はレベルシフターを使っているので、CPUも5Vだった。原典の回路図を見てみる。うむ、ここはベース抵抗に1KΩを入れただけの超簡単回路だ。ここは今のこちらの状況と全く同じでLVTTLで5Vトランジスターをドライブしている。
良くわからないが、試しにこの形にしてみる。やった。これが正解だった。ウェブ上の画面でボタンを押すと、頼もしくカチッと音がしてリレーが動いた。いやあ、何から何までドイツのこのサイトにはお世話になりっぱなしである。いずれお礼状を出さねばなるまい。
まだ、UARTコンソールからコマンドでIP/MACアドレスを換えるソフトの開発が済んでいないが、とりあえずLANでAC電源を制御するところは、すべて順調に動いた。嬉しくなって、ケースの最後の工作を勢いでやってしまう。スイッチの頭出しと、モジュラーの穴あけである。
ヘアーラインの外側アルミパネルをつけて、養生のビニールシートをとると、見違えるような美しい外観になった。1号機と並べて記念撮影をする。とりあえずブログに報告しておこう。ソースと回路図の公開は、ちょっと手間がかかるのでソースの改修が出来た次回ということでいま少しお待ちいただきたい。
| 固定リンク
「AVR」カテゴリの記事
- ソフトI2Cはクロックストレッチまで手を出してあえなく沈没(2017.09.02)
- オシロのテストどころかソフト開発で大はまり(2017.07.26)
- 超音波方式の人感センサーI2C化と新しいオシロ(2017.06.29)
- motionの動体検知はRaspi3の電源が安定しない(2017.04.16)
- 赤外線学習リモコンはデータ再現で挫折したまま進まず(2016.07.21)
「電子工作」カテゴリの記事
- 生存証明2(2022.10.19)
- 生存証明(2022.01.23)
- パソコン連動テーブルタップの修理を諦めて自作(2021.02.16)
- 半年ぶりのブログ更新に漕ぎつけた(2019.09.19)
- 研究所活動は停滞したままでCCDカメラ顕微鏡導入など(2019.02.08)
コメント
eNastyさん、お久しぶりです。
>こんなもの(↓)見ました。面白そうですよね。
はは、TVでもとりあげられましたか。私は、ニコ動か、YouTubeで
作者の投稿を見て、すごいなと感心していたところです。
弾道を計算して、落下点に素早くゴミ箱を移動させるプロセスは、
画像処理だけでもマイコンでは無理なような。
いずれにしても、激しく工作心を刺激されますが、ちょっと目標が高すぎて
実感がわかないですね。画を見ていると、この人、CNCもやってますね。
投稿: がた老 | 2012年7月29日 (日) 09時40分
がた老さん、今晩は。
こんなもの(↓)見ました。面白そうですよね。
創作意欲がかきたてられませんか?
http://www.tv-tokyo.co.jp/mv/wbs/trend_tamago/post_24362/
投稿: eNasty | 2012年7月28日 (土) 18時37分
>尚、FT232Cを使用しています。
USBなら何でもありです。
そうか、ChaNさんのソフトの先は、仮想COMドライバーなんだ(ソースを見ていましたが確認できず)。
USB経由でChaNさんのソフトを使えば良いわけだ。これは役に立ちそうですね。
投稿: がた老 | 2012年7月24日 (火) 01時41分
念の為に、マイコン側で 5000bpsという設定を行い、
tt port=14,,5000で試験してみましたが、問題無く
動作しました。
尚、FT232Cを使用しています。
投稿: shuji009 | 2012年7月24日 (火) 00時35分
>28800bpsで接続したことあります。
ああ、これは7200,14400,28800,57600といったシリアルでは
以前からある速度系列のひとつですね。
UARTの速度は、ハードウエアの分周比などで決まる飛び飛びの速度に
なっているはずで、USBなら考えられますが、ChaNさんのターミナルソフトのように、シリアルポートを実際に叩くソフトでは自由に速度を選べないと思います。
PCのシリアルポートのハードは殆どが、昔からある16550互換で、
少し調べましたが、こいつのボーレート一覧は見つけられませんでした。
投稿: がた老 | 2012年7月23日 (月) 22時21分
がた老さん、どうもです。
できるかどうかは、判りませんが、以前Tera Termでは
指定できない、bpsを指定して使用したことあります。
http://elm-chan.org/fsw.html
の「簡易シリアル・ターミナル」
具体的には、
tt port=14,n81,28800
というように使用して、28800bpsで接続したことあります。
投稿: shuji009 | 2012年7月23日 (月) 00時34分
shuji009さん、どうもです。
Android頑張ってますね。私ももうちょっとで手を出しそうに
なりました(また売り切れのようで)。
UARTの件ですが、ChaNさんのターミナルソフトというのは、PC側で
任意のボーレートが指定できるということでしょうか。
それなら、強力ですね。
投稿: がた老 | 2012年7月22日 (日) 23時58分
おおお、すごい。
ところで、UARTですが、ChaNさんのターミナルソフトですと、多分、ボーレート指定ができますので、
例えば、 38400 x 12.5/8 で計算した結果を使うことができると思います。
投稿: shuji009 | 2012年7月22日 (日) 20時17分