電源のアブノーマルテスト
2025.02.10
ビビリなので一番やりたくないテストだった。

電源回路の全ての部品に対し、オープン・ショートをテストする。
全てにおいて、安全側になること。(たとえばヒューズが切れて電源が落ちて終わる)
当然、発煙とか発火はダメ。

オープンは、その部品を取り外した状態でテストする。

一番やりたくないのはショート。
この部品をショートしたら、こうなるに決まってる、って回路図上で容易に想像できる。

電源のプラス・マイナスをショートするのは言うまでもなく、MOSFETのゲートと電源プラス側をショートするなんて、やばいだろって思う。
実際MOSFETはショートモードで壊れるので、故障すると3本の足GDSが全部つながったようになる。そうした場合にゲートから制御ICへ電源電圧が直接かかるので、その対策としてたとえばツェナーダイオードがゲート側に組み込んである機種もある。

メインのスイッチングのMOSFETをショートするのを試した時は、リレー接点をつなぎ、そのリレーにリモコンをつけて遠くから操作した。
実際は「パチッ」と音が出てヒューズが飛び、それで終わったのであっけなかったけどな。
爆竹みたいに派手に・・・は無かった。

こんな苦心を思い出せば、ちうごく製のあやしい電源のおおらかさには、癒やされるような気がする。
そもそもヒューズない(笑) コストダウンの極みで、ノイズフィルタなんかバッサリ捨てて、原理的に必要な最低限の部品のみ、という割り切り方。
そりゃあ、燃えたりするだろうよ。

ノイズ規制は中国にも有るはずだが、共産党や指導者の悪口でも言わない限りは問題ないのだろう、たぶん。
スイッチング電源を自作
2025.02.10
これはずいぶん前になるけど、スイッチング電源を自作したことは何度かある。仕事でも趣味でも。

昔から、電源の自作と言ったらいわゆるリニア電源(でっかいトランスと、でっかい電解コンデンサと・・・そしてアツくなる)がほとんど。

スイッチング電源は、便利なICも有るけれど、パワートランジスタ1個程度でもできる回路は有る。

トランスは自分で巻いて作るけど、これを敬遠する人は多いかも?知らないけど。確かに面倒くさい。だけどやってみると面白い。面白くないって?
リニア電源のトランスみたいに1000回とか巻く必要はない。せいぜい数回から多くて100回巻ぐらい。
エナメル線とかウレタン線を巻く場合は、絶縁のためにバリアテープを貼ったりするけど、それが面倒なら三層絶縁線を使うと良い。
だけど太目だから、たくさん巻くとボビンに巻ききれなくなったこともある。

場合によっては層間に銅箔テープを巻いてシールドしたり、巻くといっても一周させてつないでしまうとコイルをショートしたのと同じだからダメで、端をつながないようにしてアースを引き出す。

巻き始めも気をつける必要がある。一次側と二次側の巻き方向も重要で、当たり前で基本的な事なのだが、うっかり逆に巻いてしまったら動かない。とりあえずトランスをリード線で浮かせて配線をクロスさせて動かしたことも。(位相が逆になるから動かない)

昔の職場に電源の巨匠がいて、彼は某大手メーカーで携帯電話の充電アダプタを設計してきた人のひとりだったのだが、退職してきた。たぶん会社の方針が変わったんだろう。ちうごくに全部投げれば良いとか、そんな話になったのかな。ひどい話で。

ものすごく安く買い叩かれる商品だが、これを作るには大変な努力が必要だったという。当然だけど安全規格が厳しい。ノイズ対策も。
それから、使っていく中でクレームもある。枕元で充電しながら使っていると、チーとか鳴ってうるさい。こういった事にも対処していったという。

脱線したが、

私の昔の職場では、しゃちょーが電源の内製化にこだわっていた。なぜか? 我々にしてみれば、買ってきた方が安いし安全に使える。手っ取り早い。商品を早く市場に出すには電源をゼロから作るなんてとんでもない。

それほど台数が出るわけでもないからコストダウンも難しい。当然これらの不利な点は説明したが、頭コンクリで全く聞いてくれない。自分が絶対だと凝り固まっているから、何を言っても無駄。

電源から作らなければ自社製品ではない、などとおかしな精神論で、このために遠回りとなった。そんな中で、たまたま求人でその巨匠が応募してきたので迎え入れたわけだ。

電源以外にも独自性が出せる部分はいくらでもあるというのに。そもそもユーザーは中身なんか関心ないだろ。

私が関わる前は、大学を出たばかりの経験の少ない者にやらせていたが、製品で問題を起こしていた。この件で、しゃちょーと、なぜか入社したばかりの自分も同行させられ、某大手の誰でも知ってる色々とっても厳しいところへ頭を下げに行かされたのであった。

先方も、私のことを「つい先日入社されたばかりなのに、」と気の毒がっていたが・・・

私が入る前、しゃちょーは若いやつに精神論を説き、きみはやればできるはずだ、と発破をかけていたようだが、それで完璧な物ができれば苦労はしない。かわいそうに。失敗すれば責められる。その繰り返しだったようだ。最後は、お前やめろって辞めさせられた。

指導者が必要という事で私が引きずりこまれたわけだが・・・電源なんか作るものじゃなくて、買うものでしょ、というのが当時の自分で、指導をしろといっても電源については当時ほとんど何も知らなかった。

電源なんて回路は単純そうに見えるが、じつはアナログでノウハウの塊で、安全規格やノイズなども含めて相当難しい技術なのだ。

その巨匠と一緒に、シールドルームでノイズ試験に取り組んだが、たとえば発熱とノイズの両方を良い方に満足させる事はできない。
たとえば、MOSFETのゲート波形をなまらせれば高調波ノイズは減るけど、発熱は増える。ノイズレベルを見ながら、その妥協点を探っていた。抵抗やコンデンサを取り替えては試しの繰り返し。
あれを変えればこちらも変えるで、どんだけ手間がかかるんだよというぐらい手間がかかっていた。デジタル回路やマイコンみたいに、動いたらそれで終わりじゃないんだよ。

おっと、長くなりましたのでこのへんで一旦終わり。
起動回路
2025.02.10
スイッチング電源の制御回路はどんな電源で動くかと言うと、何種類かあるけど、たとえばトランスの補助巻線から自分の電源を得て動いている。

しかしそれはスイッチングが始まらないと電圧が出てこないわけで、その最初はどうしているか。

AC電源を整流してそのプラス側から抵抗を通して、制御回路のICなどに電源が供給されている。これで最初の動きがスタートする。
以後は補助巻線から電源を得て動き続ける。

従って、この起動回路は最初だけ働く事になる。エンジンのセルモーターのようなもの。

電源は連続通電で働き続ける。定期点検で久しぶりに電源を落とす。再び電源を入れたが動かない。
これは、たとえば起動回路の電解コンデンサが干からびてしまっているのが原因だったりする。(干からびる: ドライアップ、容量抜け)

前に書いたように、最初だけ働く回路だから、以後おかしくなっても通常運転には影響しない。ところが、再びその出番が来た時にダメピョーンというわけ。

どこの何の製品かは書かないが、とある製品ではその起動回路の電解だけチップ形で、ほかはみんなラジアル品。
どういう意図でそこだけチップ形にしたのかはナゾ。
チップ形というと寿命が比較的短いような印象がある。昔からやっているが、あまり良い印象はない。液漏れしたのをせっせと交換していた経験ばかり。
邪推といいましょうか、意図的に寿命の短い部品を組み込んだのではないかという、そんな気がしています。
EEPROMで失敗した話(続)
2025.02.09
電源電圧低下の対策も最初から設計に織り込んであるし、これからは安心してバッテリーバックアップSRAMやEEPROMが使えると思ったら、まだ安心するのは早い。

落とし穴は意外と有る。
言われてみればそうだねと思うけど、言われないとなかなか最初気づかないこともある。

たとえばEEPROMに設定値を入れておく。端末番号とか、通信パラメータとか、IPアドレス等いろいろあるだろう。よくある使い方だ。

ところが・・・デバッグに使っていた試作機は正しく動くのに、量産で作った物に書き込んだら正常に動かない。なぜ?

そこで、EEPROMやバックアップRAMの初期値について考えたか?

EEPROMの話に絞って書くと、まっさらの新品のEEPROM、マイコンに内蔵されているEEPROMも、たいていは全番地FFhだと思う。

一方、設定値は例えば0~4の範囲だとする。もし初期化ルーチンでFFhを読み込んでプログラムが走ったらどうなる? 想定外の値でどうなるやら。

まあ分かっている人には当たり前なんだが、まずEEPROMの値を読み込んで範囲チェックをする。このパラメータについては0~4の範囲で、FFhは有り得ないから異常と判断する。日付だとしたら、0月とか13月とか32日は無いから、異常となる。
そこでデフォルト値に書き換えてやるといった処理が必要になる。

バックアップSRAMも、いまの保存データが本当に正しいものか、整合性をチェックしてから利用するという手順は欠かせない。
製作されて一度も動かしておらず、バックアップ処理をしたことのない状態のSRAMの内容をそのまま飲み込むわけにはいかない。初期化が必要だ。

色々な事態を想定するとややこしくなってくるが、たとえば同じデータを離れた番地にも置いて二重化するとか、それを読み込み時に照合して一致したら採用するとか。

もし特定の番地が書き込めなくなったらどうする、代替処理をするとしても、その処理の中で使っている番地が書き換えられなくなったり化けてしまったら・・・なんてところまで考えると心配で夜も眠れないが・・・

そういえば修理の仕事の中でもEEPROMの初期値について考慮されていなかった製品があり、他社さんが部品を交換しても何をどうやっても動かなかったものがあった。
自分もなかなか最初わからなかったが、ひょっとして?と思って、確か中古か借用した別の個体からEEPROMを差し替えてみると動いたので、確信した。

だからデータが異常かどうかをチェックして、自分でデフォルト値に書き換えるようなプログラムにしておけば、こんなふうに使えなくなることもなかったのに。
この時は正常な個体のデータを書き込み、さらにキャリブレーションが必要だったので手順を確認しながら実行して、正常な状態へ持っていった。
さらに、やはりリセット回路がモロに手抜きだったので、電圧検出ICを組み込んだ回路を追加して化け対策をした。
EEPROMで失敗した話(昔)
2025.02.09
はるか昔、慣れない頃は失敗もありました。

とある装置、
RS-485でバス接続された端末がたくさんあって、1台ずつに端末番号を割り当てていました。
各々を区別するのはその端末番号というわけです。

その端末番号はEEPROMに記憶される仕組みで、番号を打ち込む装置を作り、現場設置のときに一台ずつ設定していきました。

よし、これで設定が終わった。通信テストしてみると、1番、2番、・・・ちゃんとできてるね、よかったね。

ところが後日、「動かない」とクレーム。
持ち帰って調べると、確かに動かない。通信に反応しない。

おかしいなあ、なんでだろう。プログラムのバグか? さんざん調べたけどバグではなさそう。
番号設定に入るには起動時に特殊な操作が必要だから、通常のプログラムのループからその書き換え操作へ入るような道はプログラム全体を見直しても、他になかった。

色々試して気づいたのは電源のON/OFFを繰り返した後に通信に反応しなくなる事でした。どうやら番号が化けてしまっているようだ。

つまり、こういうことです。電源が落ちる時にマイコンが暴走している。電圧が不安定な状態だから、動作は保証されないのは当たり前。意外と見過ごしている。

この経験をするまでは、リセット回路なんか抵抗とコンデンサとダイオードで(よくある回路)済むものだとばかり思っていました。

なぜ暴走しているか、暴走しているというならどうやって確かめるか、などと難しく考えてはいけない。知識と経験とカンで、おそらくそれだろうと、それしか考えられない。

そういえば駆け出しの頃、(その前の勤務先の)当時の上司がその有名な?回路について何やらゴニョゴニョ言っていた事を思い出したのです。
もろにオタクで、何かを聞きに行くと何でも答えるし、しかも5分では終わらない。色々話してくれるが、結局こちらの頭では受け流すばかりで何も残らない。

そう、あのゴニョゴニョが・・・なんて言ってたっけ?

瞬間停電だったらどうする?
電圧が徐々に下がっていったらリセットはちゃんと効くか?
短時間に電源をON/OFFした時にちゃんとリセットはかかるか?

これらを解決するには、
要するにリセットICを入れれば良い。電圧検出のICがある。こいつは昔から存在は知っていたが、何に使うのかいまいちピンと来ていなかった。その時までは。

ただそれだけのこと、と言ってしまえば終わりですが・・・

当時はPST518とかPST600Cが有りました。PST518は廃止になったので600Cにしたっけ。これらは現在どちらも廃止になって久しいけど、代わりの物は各社色々ある。

TO-92形で一般的なトランジスタと同じ形状だから、リードを曲げて既存の基板にくっつけるのが容易だった。次の基板改版からは基板の中に表面実装タイプを組み込んだ。

それから、電源ON/OFFを自動的に繰り返すテスト装置をPICマイコンで作り、十分に耐久試験をして念には念を入れた。もちろんデータが化けることはなかった。

電源OFFで電圧はいきなりゼロにならない。人間には一瞬で消えたように見えても、特にマイコンの速度から見れば、とてもスローモーションに見えているだろう。

電源OFFで電圧が落ちる途中、マイコンの動作保証電圧を下回る前にリセットを押さえてくれるので、暴走しないわけだ。

これはファミコンのデータセーブと同じことで、なぜリセットボタンを押しながら電源スイッチをOFFにするのか、つまりこういうことだったのだ。この操作をリセットICは自動的にやってくれる。逆にいうと、ファミコンは簡易リセット回路だから面倒な操作が必要だった。

ファミコンの場合はバッテリーバックアップのSRAMだけど、電源が落ちる時の暴走で書き換わる可能性については共通点がある。

あー疲れた、よし今日はこれくらいにしようとゲームを終わってスイッチをバチンと切ってしまってから、あっしまった、リセットを押しながらOFFにしないとだめだったと気づく。

- CafeLog -