2019年12月16日月曜日

KENWOOD MJ909 内臓 蛍光表示管の使い方

電子機器の分解一覧



注意:この記事の内容を鵜呑みにし、事故や損失を招いた場合でも当方は一切の責任は負いかねます。自己責任でお願いします。

ハードオフでいい感じの蛍光表示管(VFD)が入っているカーステレオを見つけたので、描画してみました。

概要
・分解
・解析
・VFDの仕様

こちらがそのカーステレオ KENWOOD MJ909です。


コントローラーパネル部分にVFDが使用されています。
早速分解していきます。













カスタム品なので、ドットマトリクス以外にも端に何か表示する箇所があります。今回はドットマトリクス部分だけを使用したいと思います。


発光箇所数に対してピンがやけに少ないです。
少しネットで調べてみると、どうやらVFD内にコントローラーICを入れてVFDのピンの数を減らしているようです。
回路設計する側としてはとてもありがたいのですが、未知の仕様なのでまず信号を解析しなければいけません。





とりあえず配線を繋げて起動させてみました。
分解中にフレキケーブルを切ってしまったので、代わりのフレキケーブルを加工して使っています。

起動してみてから気づいたのですが、このVFDは上下で緑、青の2色に分かれているようです。
真ん中の2行のドット行は1列ごとに緑と青が交互に配置されています。



VFDから出ているピンは全部で15ピンあります。
両端の3ピンはフィラメント電源とすぐに判りますが、その内側の9ピンは少し調べないと判りません。






・解析
それではこのVFDのドットマトリクス部分を自由に描画できることを目指して解析していきます。

まずは、基板のパターンの追跡です。
裏面のパターンを見るとこのようになっています。


フィラメント電源ピン群と内側の9ピン群同士が近いほうからピン番号を割り当てると、

「1,2,3,_,_,4,5,6,7,8,9,10,11,12,_,_,_,_,_,_,_,_,_,_,_,_,_,_,13,14,15」

となります。※スマホなどから当ページを見ると分かりにくいかもしれません。

1,2,3ピン群と13,14,15はフィラメント電源です。
基板のパターンを見て、5と6ピンがGNDに繋がっていて10ピンがどこにも繋がっていないことが判ります。

また、4ピンと11ピンに接続されているパターンが、他のパターンに比べて太めなので電力ピン(VFDの電源)であると予想できます。

基板のパターンを見て判りそうなことはこれくらいなので、次に起動時の各ピンの電圧や信号波形を見ていきたいと思います。

先ほど電力ピンと予想した箇所をテスターで調べると、4ピンが36V付近、11ピンが5V付近でした。4ピンがVFDのアノード電源、11ピンがVFDに内蔵しているコントローラーの電源であることが判りました。

残すは 7,8,9,12の4つのピンです。
電源ピンはもう見つけたので、データピンであると予想できます。
もちろんシリアル通信であることはわかるのですが、シリアル通信でもI2C、SPI、UARTなどの規格化されたものや、単純にシフトレジスタを使用した独自規格のものなど非常に多くの種類があります。

そこで、信号の波形を見ることにします。
ロジックアナライザなどがあるととても良いのですが、当方はアナログオシロスコープしか持っていないため、厳密な波形は見ることができません。
それでも大体の信号波形が見れればプロトコルが判ります。



画像は7ピン(上)と8ピン(下)の信号をそれぞれ2限オシロで測定しているところです。
8ピンがLからHになり、しばらくしてからLになっています。
また、7ピンは8ピンがHからLになった後、HとLを高速に繰り返しています。

画像はありませんが、同様に9ピンと12ピンを調べると、
9ピンは8ピンがHの間に一瞬だけL→H→Lのパルスが入力されていました。
12ピンは不規則な波形が7ピンの信号に合わせて入力されていました。

このことから、12ピンはシリアルデータ入力、7ピンはシリアルクロック、9ピンまたは8ピンが描画ラッチストローブまたはシフトレジスタクリアではないかと予想できます。
シフトレジスタを用いた単純な信号規格で描画できることが判りました。
ただし、何bitデータ送信してラッチさせればよいかがまだ分からないのでマイコンを用いて調べます。

オシロスコープで簡易的に読み取った波形をマイコンを用いて再現します。
少しずつ信号を変えてVFDの表示の挙動を確認しました。




・VFDの仕様
・型番 itron CN1762M
・ドットマトリクス部分: 80x16ドット
・上7ドット緑、下7ドット青、真ん中の2行のドット行は1列ごとに緑と青が交互配置
・グリッド数(セグメント数):28個、内ドットマトリクス部分で20個

・シリアルデータ数96bit x 2セット(コントローラーICが内部で2個直列になっています。)

・マトリクスデータ64bit、空データ18bit、セグメントデータ14bit



・VFDの駆動方法
VFDを駆動させるためには周辺回路と信号のパターンを知る必要があります。

まずは、周辺回路を設計します。
VFDを駆動するために、
①電源回路
②グリッド、アノードコントロール回路
の2つの回路が必要になります。

①の電源回路では、VFDのフィラメント用電源とアノード電源を用意します。

②のコントロール回路では、セグメント選択やドットパターンのON/OFFを制御する回路を用意します。

今回駆動させるVFDには②のコントロール回路が内蔵されているため、用意する必要がありません。

ですので、①の電源回路のみを用意します。
フィラメント用の電源には数Vの電圧を用意します。アノード電源には数十Vの直流を用意します。
DC/DCコンバータを作ってもいいのですが、せっかくなので、カーステに使われていたVFD電源モジュールTOKO CPS6270Aを再利用します。




こちらがVFD電源モジュールです。ピンが6本モジュールから出ています。基板のパターンを追ってピンの用途を調べました。

①フィラメント電源1出力
②フィラメントバイアス
③フィラメント電源1出力
④GND
⑤12V入力
⑥38V出力



フィラメントバイアスには5.1Vのツェナーダイオードを用いて定電圧を用意します。
このフィラメントバイアスがなぜ必要なのかはノリタケ伊勢さんのページ
https://www.noritake-itron.jp/cs/appnote/apf100_vfd/apf201_ek.html
で詳しく説明されているので参照してください。

あとはVFDとVFD電源モジュール、制御用マイコンを繋げます。
今回は、マイコンにarduinoを使いました。特に複雑な制御はしていないのでATmega328pでもVFDに描画させることができます。

次にドットマトリクス部分に描画するための信号のタイムチャートを示します。





このVFDは少し特殊なセグメント配置になっています。コントローラーICが2つあるため、セグメント(グリッド)のON/OFFもそれぞれ2つのコントローラーICに割り当てられています。左から1~14番目と15~28番目に分かれています。



同様にドットマトリクスも2つのコントローラーで分けられています。
一つのセグメントには横4 x 縦16= 64個ドットあります。


基本的な描画方法は1つセグメントを指定して64ドットずつ描画します。20セグメントを高速に1セグメントずつ順番に描画すると目の残像ですべてのセグメントが点灯しているように見えます。(ダイナミック点灯)

このVFDは駆動コントローラーが2つ直列に内蔵されているため、2セグメント分同時描画できます。ですが、この方法は問題があります。実はドットマトリクス部分とグリッドが若干ずれているため、隣の縦一列が誤点灯してしまいます。(製造時のミスどうかはわかりません。)
分解前のカーステでは正常に描画出来ていました。描画方法を工夫することで誤点灯を防いでいるようです。

正常に描画するために、1セグメントずつ描画します。




・描画テスト&サンプルプログラム
このVFDのピンは2mmピッチなので、使いやすいようにVFDと2.54mmピンソケットを基板にはんだ付けします。



回路図です。電源は12Vと5Vを使用します。先に5Vから電源を入れた後に、VFDフィラメント用電源の12Vを入れてください。先に12Vを通電させるとダイナミック点灯されずVFDの一部分の蛍光体が焼けます。




arduinoを使ってVFDのドットマトリクス部に文字などを描画してみます。
文字は7x5ドットのキャラクタを使うと上下できれいに2色に別れます。
図形なども描画することができます。
サンプルプログラムを変更してドットマトリクス部分以外の発光箇所も点灯することができます。
プログラムはこちら


こんな感じに描画できます。上下で2色に分かれているので文字描画向けです。
動画では明るさ制限のため、フィラメント電源に18Ωの抵抗を直列に入れてあります。



















電子機器の分解一覧

























2019年9月21日土曜日

電子レンジのインバータの回路図

注意:この記事の内容を鵜呑みにし、事故や損失を招いた場合でも当方は一切の責任は負いかねます。自己責任でお願いします。


電子レンジのインバータの回路がネット上であまり見かけないので基板から回路を起こしてみました。何かの参考になれば幸いです。

メーカーが作成した回路図ではないため結線ミス、部品ミスなどあると思います。
特に、ツェナーダイオードのツェナー電圧の特定をしていません。
もし、この部分が違うなどの情報がありましたら教えてもらえると助かります。

・回路図
フィードバック用の回路が多いです。
メインIC「AN6729K」のデータシートが見つからないため、どのような仕様なのかは不明です。
IGBTのゲートドライバ周りのFETの結線が少し不思議な感じになっています。

・基板の画像
パターンや、ジャンパーの配置がとても興味深いです。ノイズ対策でしょうか?



















2019年9月9日月曜日

HDD 演奏


注意:この記事の内容を鵜呑みにし、事故や損失を招いた場合でも当方は一切の責任は負いかねます。自己責任でお願いします。

HDD(ハードディスクドライブ)のシークコイルを利用し演奏させます。

構成:
1. はじめに
2. 回路設計
3. HDDの改造
4. 基本動作説明
5. 回路中の半固定抵抗の調整
6. 動作例
7. 終わりに

1. はじめに

今回は音を出すと共にシークコイルを大きく動かすことを目標にします。その上で一つ大きな課題があります。それはシークコイルの位置の検出が非常に困難なことです。FDDや工学ドライブなどにはステッピングモーターが用いられており、特別なセンサーが無くてもある程度は位置を把握して制御することが出来ます。それに対して、HDDのシークコイルの位置検出はプラッタから位置情報を読み込んでシークコイルを動かしています。そのため、改造したHDDではこの位置検出がほぼ不可能となります。なので代わりの検出を考えます。
考えられる方法としては、
・シークコイルの部分に物理スイッチを付ける
・フォトインタラプタ又はフォトリフレクタを付ける
・磁石にフィードバックコイルを付ける
・シークコイルの電流を監視して検出する
・HDD全体をカメラ撮影して、画像検出する
5つほど上げて見ましたが、上の方ほど物理的にHDDを改造していき、下に行くほど難易度が上がります。
あくまで「異色演奏」であるため物理改造はできるだけ避けたいです。
あとは開発コストや、どんなメーカーのHDDでも簡単に演奏できるようにすることも重要です。
これらを踏まえて最終的に磁石にフィードバックコイルを付けて検出することにしました。
見栄えは劣りますが、検出が簡単でどんなHDDでも簡単に改造できます。


2. 回路設計

次に制御方法です。
HDDの演奏ではハードウェアを大幅改造します。そのため、マイコン制御とアナログ制御の両方を必要とします。
2つの制御の配分をどうするかは個人で好みが別れますが、今回は音程パルス波をマイコンで生成し、パルス波を元にコイル動作を位置検出をデジタル回路とアナログ回路を使い制御します。
この方式にした理由は、FDDで演奏する際のFDDの入力方式と合わせることができるからです。FDDは鳴らしたい音程のパルス波を直接入力します。つまりFDDと制御方法を合わせることでFDDで演奏している方でも簡単にHDDで演奏できるということです。

ではパルス波を元に制御する方法を検討します。
シークコイルの動作としては
・周波数によって動くスピードを変える(高いほど速く動き、低いほどゆっくり動く)
・シークコイルが限界まで動いたら反転させる
の2つです。
また、入力されるパルス波の立ち上がり維持時間(オン時間)が不定なことからパルス波の立ち上がり維持時間を一定にする回路、シークコイルが動くため音が小さくなるのですがこれを防ぐ回路(音を大きくする回路)が必要です。

これらを元に回路を設計しました。
初心者が設計した回路なのでミスが多くあると思います。コメント等で指摘してもらえると助かります。
フルブリッジドライバはモータードライバなどのICを使用すると簡単です。
秋月電子さんで様々なモータードライバICが販売されています。
http://akizukidenshi.com/catalog/c/cmotoric/
この中でHブリッジ、フルブリッジと書かれているものは使用できると思います。(もちろん全てではありません)

一応、いくつか回路例を挙げてみます。
BD6231F
秋月電子で販売しているDCモータードライバです。
表面実装のICですが回路が簡単で使いやすいと思います。
http://akizukidenshi.com/catalog/g/gI-05088/

LV8548MC
秋月電子で最近販売されたDCモーター、ステッピングモータードライバです。
http://akizukidenshi.com/catalog/g/gI-14480/
2回路入りなのでHDDを2台演奏できます。
ただ、SOIC-10 NB(SSOP10 1mm相当?)という少し珍しいパッケージなため、変換基板が出回っていません。なので、SSOP16 1mmの変換基板を使うと良いでしょう。
http://akizukidenshi.com/catalog/g/gP-13594/



MOSFETを使用してフルブリッジドライバを作成しても良いでしょう。
この回路ではフォトカプラを変則的な使い方をしています。

フォトカプラのトランジスタがONになると2つの330Ωが直列となり、「(電源電圧 - (フォトカプラのVCEsat)) / 2」の電圧付近で分圧され安定します。この回路で言うと約5.8Vほどの電圧がゲート駆動用トランジスタのベースにかけられます。(ハイサイド側は電源電圧から見て約-5.8Vほど)
そしてゲート電圧が「5.8V - ゲート駆動用トランジスタのVBE」になるまで上昇し、MOSFETがONになります。

フォトカプラのトランジスタがOFFになると各330Ωはゲート駆動用トランジスタのベースにのみ繋がれるため、ゲートの電荷が抜けてMOSFETがOFFになります。

ここで注意しなければならないのがMOSFETのゲートしきい値電圧Vthです。
エンハンスメント型のMOSFETはゲートにしきい値以上の電圧(Vth)がかかると急激に電流を流すようになります。逆に言うとVthより中途半端に少し低い電圧になるとMOSFETの抵抗値が高くなり、無駄な損失が大きくなり、最悪破壊されます。
回路の特性上ゲートにかかる電圧は「((電源電圧 - (フォトカプラのVCEsat)) / 2) - (ゲート駆動用トランジスタのVBE)」となり、MOSFETによってはVthにぎりぎり満たない場合があります。
対策としては、電源電圧を12Vより上げる、Vthの低いMOSFETを使用する等があります。

また、フォトカプラもできるだけ応答性の速いものを使用します。
(この回路図上では手持ちのフォトカプラの関係上ILD217Tを使用しています)


3. HDDの改造

シークコイルで演奏するために改造していきます。もちろん不可逆的な改造なので改造または、分解した時点でHDDとしての使用が出来なくなりますので注意してください。
まずはHDD選びです。現在主流のHDDは3.5インチのものと2.5インチのものがあります。大きさの違いだけで中身の構造はほとんど同じなのでどちらを使用しても構いません。また、メーカーや生産時期によっても構造が変化しますが、ほとんどのHDDは改造可能です。ただし、近年はヘリウム入りのHDDも出始めているようです。ヘリウム入りのHDDは本体が溶接されているため、分解が非常に困難なので避けます。

大まかな改造手順は、
基板除去→本体開封→ヘッド退避磁石除去→シークコイルの駆動電極の特定→フィードバックコイル巻き
です。

では実際に改造例を示します。


改造するHDDはマーシェルのHDDのMAL3080SA-W72です。WDのリファービッシュ品なので構造はWDのHDDと同様です。代替処理済みセクタが急増したので故障と見なし改造することにしました。


まずは、基板を外します。HDDのネジはトルクスネジという特殊なものになっており、普通のドライバでは回せません。無理やりマイナスドライバを使い回すことも出来ますが、専用のドライバを用意することをオススメします。



次に本体の開封です。
銀色の大きい円盤がプラッタ、その斜め下の曲玉状の金具がヘッドを駆動するための磁石です。この磁石はネオジム磁石と言い、非常に強力で指などを挟んで怪我をする可能性があるので注意してください。




ネオジム磁石を外します。
2対になっている一方のみを外します。メーカーによっては片方の金具のみに磁石がついているものもありますが、簡単に取れるほうを外します。



ヘッド退避用磁石(金具)を外します。
この小さい磁石(金具)を取り外さないとヘッドが往復しません。
この磁石はシークコイルの根元または、ネオジム磁石の金具についています。メーカーによって取り付け位置や方法が違うので慎重に取り外します。特にWD製のHDDは樹脂の中に埋め込まれているものもあるため難易度は高めです。


ヘッドの調整を行います。
ヘッドがプラッタについた状態で往復させるとプラッタに傷がつくことがあるので爪楊枝等でほんの少し浮かせます。


ランプの取り外しをします。
ランプロード方式のHDDの場合はランプと呼ばれる金具が取り付けられています。
シッピングゾーン方式の場合はこの金具が取り付けられていませんので、この工程を飛ばしてください。


シークコイルの駆動電極の特定
HDDの基板を取り外した側を表にし、飛び出ている電極をテスターを使いシークコイルの駆動電極を特定します。
テスターのレンジは抵抗値測定モード(低抵抗)にして手当たり次第リードを当て探し出します。テスターにもよりますがシークコイルに繋がる電極にリードを当てるとヘッドが動きます。
もちろんフレキケーブルのパターンを見て特定しても良いです。プラッタの中心付近から出ている3~4ピンの電極はモーターなのでシークコイルには繋がっていません。
電極を特定したら導線などを2本を半田付けします。





フィードバックコイル巻き
外したネオジム磁石の端と端にエナメル線(ポリウレタン線)を5~15ターンほど巻きます。この時、ネオジム磁石をHDDに取り付けてみて、

①フィードバックコイルの巻き線がネオジム磁石の金具に挟まないようにする。
②シークコイルを手で動かしてみたときにシークコイルとフィードバックコイルが接触しないようにする。

この2点をクリアするようにフィードバックコイルを巻き付けます。
その後、フィードバックコイルから飛び出ている4本の線をコネクタなどに半田付けし、ネオジム磁石をHDDへ戻します。




HDDの改造は以上です。
基板は演奏に必要ないため部品取りなどにしてもかまいません。



4. 基本動作説明

パルス波が入力されるとまず74hc123でパルス幅を揃えます。この74hc123はパルスの入力があったときRとCで決められた時間出力します。ここで注目してほしい所は、回路中にこの部分が2つあることです。本来なら1つで十分なのですが音を大きくするために入れています。仕組みとしては3歩進んで2歩戻る方式です。またこのようにすることでシークコイルの動くスピードを調整しつつ、音の大きさも調整出来ます。例えるなら10歩進んで9歩戻るようにすると音を大きくしてゆっくり動かすことも出来ます。

74hc123の後ろにあるのはシークコイル移動方向セレクタとシークコイル駆動ドライバのアーム短絡防止回路です。アーム短絡防止回路はよくある回路です。回路の性質上74hc123の2つ目がHの時にパルス波が入力されるとハイサイドとロウサイドが両方Hになり、フルブリッジ内の素子がアーム短絡します。

フィードバックコイルは磁石の両端に5~15ターンくらい巻きます。
シークコイルにパルス電流が流れ、このフィードバックコイルに近づくとシークコイルとの距離に応じて起電力が発生します。その電圧とある一定の電圧を比較し、移動方向をセットします。


具体的には比較する部分はオペアンプ(コンパレータとして使用)で移動方向の維持はRSフリップフロップで行います。ここで比較にコンパレータを使わずオペアンプを使用した理由は、フィードバックコイルからフィードバックされる電圧が非常に小さいためグランド電位付近の比較が出来るC-MOSオペアンプを選びました。また、検出周波数も可聴域内と低いのでC-MOSオペアンプでも問題ありません。

今回、RSフリップフロップ、セレクタ、アーム短絡防止回路は74hc00等を多様しましたが、所持部品の関係です。もちろんそれぞれ専用ICを使うことでかなり回路が簡略化出来ます。また、モータドライバIC等を使うことでアーム短絡防止回路を省略出来る場合もあります。


5. 回路中の半固定抵抗の調整

この調整は難しく、慣れが必要です。大まかな調整方法を示しますが、自己流で調整してみるのも良いでしょう。
回路中に4つの半固定抵抗があります。
74hc123付近に2つ、コンパレータ付近に2つあり、

[A]前者はパルスのHの出力時間、
[B]後者はフィードバックコイルの電圧の反転閾値を設定をします。

基本的には[A]の調整をしてから[B]の調整します。
ファンクションジェネレータ等で信号を入力した状態で調整していきます。
まず、[A]の1段目の半固定抵抗(VR1)と2段目の半固定抵抗(VR2)を最低抵抗値状態に、[B]の2つの半固定抵抗(VR3,VR4)を最高抵抗値状態に回転させます。
この時HDDからは任意の音程の音が出てますが、シークコイルは動いていないと思います。
まずは音量と移動スピードを調整します。
①この状態で[A]の1段目の半固定抵抗(VR1)を抵抗値が上がる方向へ少しずつ回していきます。すると、シークコイルが少しずつどちらかに動いていき、可動域の端まで行きます。この時、出したい音量の半分くらいの音量になるまで半固定抵抗を回わします。
②次にその状態で[A]の2段目の半固定抵抗(VR2)を抵抗値が上がる方向へと少しずつ回していきます。すると、ある地点でシークコイルが今度は反対向きに動き出します。そのタイミングで半固定抵抗の回転方向を逆(抵抗値を下げる方向)へ少しだけ回わし、シークコイルが再び「①」の位置に向かう方向へ移動するようにします。この時、シークコイルの移動スピードを調整します。
これで音量と移動スピードの設定が終わりました。
続いてシークコイルの反転の調整をします。
③[B]の2つある半固定抵抗(VR3,VR4)のうち好きな方を抵抗値が低くなる方向へ少しずつ回します。するとある地点でシークコイルの進行方向が反転します。この時、回しきってしまってもシークコイルの進行方向が反転しない場合は半固定抵抗を最高抵抗値に戻し、もう一方の半固定抵抗をこの通りに操作します。
続いてもう一方の半固定を同様に操作していくと、シークコイルが大きく往復します。この段階ではシークコイルやヘッドの先端が様々な所に衝突を繰り返していると思います。なので半固定抵抗(VR3,VR4)を微量に抵抗値が低くなる方向へそれぞれ回し、衝突が起こらないように調整します。
入力した周波数に応じてシークコイルのスピードが変化するので、高周波や和音でも衝突しないようにするように調整します。

画像でイメージしやすくすると、
青色、赤色がそれぞれの反転検出位置です。紫色の部分は両方の反転検出位置が重なっており(両検出領域)、RSフリップフロップが異常発振するため、あまりよくありません。(2枚目の画像)
低い音を鳴らすときは1枚目の画像のように非検出領域を持たせることで振幅が安定します。
逆に高い音を鳴らす場合は3枚目の画像のように両検出領域をほんの少し持たせるようにすることでヘッドの衝突を減らすことができます。






6. 動作例

実際に改造したHDDで演奏させてみます。
マイコンでパルス波を発生させています。

音を出しながらヘッドが往復し、音程が高いほど速く動きます。
原理上音を止めるとヘッドの位置の検出が出来なくなるため、音を止めた瞬間シークコイルやヘッドが衝突します。

動画内では2台のHHDを用いて演奏しています。

動画は準備中です。

7. 終わりに

長い文章を読んでいただきありがとうございます。
部品点数も多く難易度も高めですが、ぜひチャレンジしてみてください。