FC2ブログ

名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

断線チェッカーの製作

(新潟)おもちゃ病院 新津様から、「断線チェッカー」のファームウェアの開発依頼があった。

「断線チェッカー」とは、おもちゃパソコンのマウスコードや有線リモコンで使われている多芯コードが断線しているときに、その断線箇所を特定するツールとのこと。それをタッチセンスでやる発想だ。

【設計】
タッチセンサーにタッチパッドとして多芯コードの1本の芯線を繋ぐということで、フツウのタッチセンスのファームウェアでよい。

タッチSWの場合はオン/オフの認識ができればよいのでセンスの精度は大雑把でよいのだが、断線チェッカーでは微妙なタッチ度合いを把握する必要があるので、CPSを使ってキチンとセンスしないといけない。また、参照電圧と電流レンジを設定して、タッチセンスの感度を稼ぐ必要がある。

CPSのカウンタにはTMR1を充てて、カウント値が16ビットに収まり、最大になるように、実機でモニタしながら最適な設定をカット&トライで決めた。その結果はソースコードを参照。

CPSのカウント結果をPWM周期に反映し、音程の高低でタッチセンスの状況を表示する。その音の微妙な変化を聴いて、人が断線箇所を特定する。実際の運用方法は 【デモ動画】 を参照。

依頼元からLEDへの表示も要望されたので、10エレメントのバーLEDへの表示機能も付けた。LED表示が必要無ければ12F1822、必要なら16F1823を使う。それぞれのタイプのファームウェアを用意した。

こういったツールは電源を切り忘れることが多いので、5分で電源が切れるようにオートパワーオフの機能も付けた。それで、電源SWは不要だ。FタイプのPICでは、Sleep時の消費電流は24uAとなった。LFタイプにすると1uA以下になるハズだ。オートパワーオフの動作は以下の通り。

・Vddの印加ですぐにSleepする。
・SW押下で稼働開始する。
・5分間稼働すると、Sleepする。
・稼働中にSWを押下すると、オートパワーオフの時限がクリアされ、その時点から5分間稼働する。
・稼働中にSWを長押し(1秒)すると、すぐにSleepする。

バーLEDを付けないタイプは稼働中かどうか解り辛いので、稼働中はパイロットランプを点灯するようにした。

【回路図】
LED表示無し(12F1822)
断線チェッカー回路図1822

LED表示有り(16F1823)
断線チェッカー回路図1823

CPSのポートに挿入している1kΩは、ポートの保護用である。実験では、10kΩでタッチセンスの感度に影響が出た。

【実装】
LED表示無し(12F1822)
断線チェッカー1822

LED表示有り(16F1823)
断線チェッカー1823
断線チェッカーLED

被試験コードへの接続
断線チェッカークリップ
断線している芯線にCPSに割り当てたポートを繋ぐ。その他の芯線は開放のままでよい。
ノイズを拾って誤動作するのを防止するために、GNDラインを手で持つ(人をGNDレベルにする)とよい。

【デモ動画】


【ダウンロード】
設計資料と開発プロジェクトは ここから ダウンロードできる。

【感想】
断線チェッカーの構想は古くからあって、数々の製作例がある。しかし、断線検出部分をIC(マイコン)1個だけで構成しているものは今まで見たことが無い。時代の流れとともに、同じ要件でも実現方法が大きく変わってきている。おもちゃの修理も同じだな。

見えないところの断線箇所を当てる仕掛けは面白いのだが、修理としては新しいコードに交換するので、断線箇所が判ったとしても益は無い。まぁ、よもやま話のネタにでもなればいいかな。
スポンサーサイト



  1. 2019/05/27(月) 11:16:43|
  2. その他のツール
  3. | コメント:2

OSCキャリブレーションツール(ATtiny13A)

【前振り】
AVRの工場出荷時に校正された内部オシレータの誤差は10%もある。手持ちのATtiny13Aを実測してみると5%以上の誤差があった。タイミングに精度を求められる応用、例えば赤外線リモコンやラジコンのエンコーダ/デコーダに使うにはユーザ側でデバイス個別に校正をしなくてはいけない。その作業を効率的に行うためのツールを作った。

【校正のやり方】
①AVRを内部オシレータで稼働させ一定周波数のパルスをポートに出力する。

②そのパルス周波数を外部でカウントして規定値との乖離を視る。

③乖離の具合によって、OSCCAL値の増減を入力ポートを介して指示して、合わせ込む。

④最後に、入力ポートを介して校正値のEEPROMへの書き出しを指示する。

⑤プログラマーでEEPROMを読み出して、OSCCALの校正値を得る。

【操作方法】
①PB0(ピン5)とGND(ピン4)にカウンタを繋ぐ。

②内部オシレータが9.6MHz・8分周のときはPB0の周波数は585.9375Hzが正解値になる。

③内部オシレータが9.6MHz・分周無しのときはPB0の周波数は4687.5Hzが正解値になる。

④そうなるようにPB3とPB4を操作する。

⑤PB3(ピン2)をLにするとOSCCAL値がインクリされる。

⑥PB4(ピン3)をLにするとOSCCAL値がデクリされる。

⑥目標の周波数になったら、PB1(ピン6)をLにするとOSCCAL値がEEPROMの0番地に書込まれる。

⑦PBnは内部プルアップされている。

【ダウンロード】
このツールの開発プロジェクトは ここから ダウンロードできる。
  1. 2018/01/17(水) 20:30:51|
  2. その他のツール
  3. | コメント:0

OSCキャリブレーションツール(12F629等)の製作

【前振り】
昔々の話だが、12F629という石があった。当時はコンパレータ付きで比較的廉価だったのでよく使っていた。
しかし12F1822が出てからは12F629は使わなくなり、今ではジャンク箱の肥やしになってしまっている。
そこで機能と性能が求められない用途には積極的に12F629を使って、ジャンクの減量を進めて行こうと思った。

12F629は8ピンなのでI/Oポートは6本しかなく、それらを無駄なく使うために内部RCオシレータを使うことが多い。
しかし、12F629の内部RCオシレータはOSCCAL値を校正しなければ正確なタイミングでプログラムが動かない。
しかも、工場出荷時のOSCCAL値のバックアップはなく、プログラム消去で簡単に消えてしまう。
ジャンク箱の12F629は殆どが工場出荷時のOSCCAL値を失っているので、これらを使う前にOSCCAL値の校正が必要になった。

この校正作業を簡略化するためのツールを作った。12F629だけでなく、OSCCAL値の校正が必要なデバイスを対象とする。

【デバイス別の事情】
秋月で販売されていたデバイスでOSCCAL値の校正が必要なものについて、デバイス別の事情を記す。

①12F629/675、16F630/676
OSCCAL値はプログラムメモリにしか無く、容易に消えてしまう。バックアップも持たない最悪のデバイスだ。

②10F200/10F222、12F509/510
OSCCAL値はプログラムメモリにあり、容易に消えてしまう。
バックアップがCONFIGメモリにあるので、OSCCAL値を復元することが可能である。
但し、バックアップは標準のバルクイレースでは消去されないが、CONFIGメモリを指したバルクイレースでは消去される。

③12F609/615/635/683
校正値は、デバイスのイレース操作で消去されないので、本ツールの対象としない。


【校正のやり方】
①12F629/675、16F630/676はCONFIGをINTRCCLKの設定にして、CLKOUTピンからFosc/4の1MHzを出力させる。
 10F200/10F222、12F509/510はCLKOUT機能が無いので、ポートからソフトウェアで10KHzを出力させる。

②上記①の出力を周波数カンターで測定し、規定の周波数(1MHzまたは10KHz)になるようにOSCCAL値を増減する。

③OSCCAL値の増減は、ポートに接続した「増加SW」と「減少SW」を人が操作することで行う。

④OSCCAL値はポートに非同期シリアルで、常時表示する。この信号はオシロスコープで読み取ることを前提として、以下の仕様とする。
 ビットレートは 10Kbps(ビット巾は100us)
 フレーム構成は スタートビット(H)+データ6ビット(OSCCALのMSBから順に6ビット分、正論理)、ストップビット(L)
 フレーム周期は 64ms

⑤12F629/675、16F630/676ではポートに接続した「書込みSW」を操作すると、OSCCAL値をEEPROMの0番地に書込む。

⑥プログラムメモリ領域へのOSCキャリブレーション値の設定は、本ファームウェアでは行わないので、プログラマーにて書込みを行うこと。

【実行回路の例】
OSCCALの校正回路図
ポートの割り当てはデバイスによって異なり、SW入力は内部プルアップのあるポートに割り当てている。
個々には各デバイス毎のファームウェアのソースコードを参照。

【実行時の接続例】
OSCCALの校正接続
プログラマーからのICテストクリップでデバイスを挟み、クロック出力をオシロスコープの周波数カウンタで観測する。
上昇、下降、書込みのSWは省略して、GNDに繋いだ導線でポートピンを触れることでオンする。

【クロック出力の観測例】
OSCキャリブレーションツール(12F629等)波形1

【OSCCAL値表示の観測例】
OSCキャリブレーションツール(12F629等)波形2
OSCCALは上位6ビットが有効であり、下位2ビットは常に0である。
本ツールは有効ビットのみを表示している。

【ファームウェア】
本ツールのファームウェアは ここから ダウンロードできる。
デバイス毎にプロジェクトが存在する。
  1. 2017/01/08(日) 16:55:13|
  2. その他のツール
  3. | コメント:1

導通チェッカー&電池チェッカーの製作

導通チェッカー+電池チェッカー
導通チェッカー+電池チェッカー外観

テスターにも導通チェックの機能があるが、測定端子(テスターリード)間の電圧が0.5V以上出るものが殆どである。これを電子回路に当てるのは大変危険である。回路に実装されているICを壊してしまうかも知れない。だから、測定端子間電圧が僅か15mVの導通チェッカーを作った。ついでに、電池チェッカーの機能も盛り込んで出張おもちゃ病院への携帯を便利にした。

【電池チェッカーの要件】
①1.5V電池(単1~単5)と9V電池(006P)に対応
②高負荷測定モードあり
③被測定電池で動作

【導通チェッカーの要件】
①測定端子オープン時15mVの超低電圧で測定
②10Ω-100Ω-1kΩ-10kΩ-100kΩの5レンジ
③最高分解能は0.5Ω(10Ωレンジ)
④最高感度は500kΩ(100kΩレンジ)
⑤オートパワーオフ

【共通の要件】
①落下等の衝撃に強いこと
②小型であること
③単三電池1本で動作すること

【設計の狙い】
(1)対衝撃性
①機械式メータを使用せず、表示器としてバーグラフLEDを用いる

(2)小型化
①レンジ切替えは1個のタクトSWで行う
②部品の誤差やバラツキの調整はプログラム内のパラメータやテーブルの設定値の変更で行い、
 半固定抵抗等の調整用部品をなくす
③乾電池チェッカーと導通チェッカーの機能を一つに統合することで、全体の容積を小さくする

(3)簡易な構成
①OPアンプを内蔵したPICを用いて1チップで構成する
②レンジの表示と測定結果の表示を一つのバーグラフLEDに同時に表示する
③CPUクロックは内蔵クロックを使用する

(4)経済性
①電源は乾電池1本(1.5V)とし、3.3Vに昇圧して各回路に供給する
②導通チェッカーのとき、長時間動かない(導通検出しない)場合はオートパワーオフする
③CPUクロックは500kHzとし、電力消費を抑える

【処理方式】
(1)電源オンの仕方
①電池チェッカーとして起動する場合は、被測定電池から回路電源を給電するので
 給電開始時はレンジ切替SWはオフ状態である
②導通チェッカーとして起動する場合は、レンジ切替SWが電源オンのボタンを兼ねているので
 給電開始時はレンジ切替SWはオン状態である
 レンジ切替SWのオン状態を一定時間監視した後に、電源オンを保持する

(2)電源オフの仕方
①電池チェッカーとして起動した場合は、被測定電池を外すことで電源が切れる
②導通チェッカーとして起動した場合は、レンジSWの長押し若しくは導通が無い状態での
 タイマー監視で電源オンの保持を切る

(3)導通チェッカーのレンジ切替え
①MOS-FETで電子スイッチを構成する
②レンジSWの押下毎に10Ω→100Ω→1kΩ→10kΩ→100kΩ→10Ωと循環させる

(4)電池チェッカーの負荷切替え
①レンジSWを押下している間だけ高負荷にする

(5)ブザー音の発生
①導通チェッカーで導通レベルが5程度以下(導通のある方)で鳴動させる
②導通測定結果で周期を変化させる
③CCPモジュールをPWMモードで使用する

【安全性】
(1)導通チェッカーのプローブに過大な電圧が印加された場合
①PICのポートは、保護用ダイオードの順方向電圧以下にクランプされる
②流入電流は10Ωレンジの場合に最大となり、印加電圧が巨大な場合は10Ω抵抗が焼損する
・10Ω1/6Wの許容電圧は1.29Vであり、決して大きな値ではない
・プローブの開放電圧は15mV程度に抑えていて測定対象に影響を及ぼさないようにしているが、
 内部抵抗は10Ωであるので測定対象が通電中はプローブを当てないように注意すること
・10Ωはヒューズ抵抗として位置付け、焼損時は交換することとする
・レンジ切換え用のFETの耐圧は20Vであり、これを超えるとFETが破壊される

(2)電池チェッカーの端子に過大な電圧が印加された場合
①1.5V端子は直接DC/DCコンバータに繋がっているので、FT7733Aの耐圧6Vが許容電圧になる
②9V端子は定電圧回路に繋がっていて、回路電流を15mAとすると2SC3325のコレクタ損失200mW
 以内では、9V端子の許容電圧は16Vとなる
③9V端子は負荷切替え用FETに繋がっていてFETの許容電圧は30Vである
④1.5V端子、9V端子ともに逆電圧が印加された場合は、負荷切替え用FETに逆電圧が掛かる
 ことになり、耐圧は-30V程度と思われる
⑤負荷用抵抗の許容損失は定格の50%としているので、1.5V端子および9V端子の許容電圧は
 定格値の1.4倍までとなる

【回路図】
導通チェッカー+電池チェッカー回路図

【基板画像】
導通チェッカー+電池チェッカー基板

【ダウンロード】
詳細な製作資料とファームの開発プロジェクトは ここから ダウンロードできる。
  1. 2010/07/23(金) 16:28:21|
  2. その他のツール
  3. | コメント:0

おもちゃ修理用電源器の製作

おもちゃ修理用電源器
降圧型SW電源外観

おもちゃを修理するときに電池替わりに使う電源器を作る。

病気のおもちゃは回路の短絡や動作不良のために過電流が流れることがあり、過電流が流れると故障状態を更に悪化させてしまう恐れがある。そのため、おもちゃ修理用の電源器には迅速に働く電流制限機能が必須である。しかし、市販の電源器は出力側に大容量の電界コンデンサが入っているので、電流制限機能が働いてもコンデンサの放電電流は流れてしまう。つまり、この電流制限機能は電源器自身を過電流から守るものであり、ターゲットのおもちゃを守るものにはなっていない。そこで、出力側にコンデンサを繋がない、病気のおもちゃに優しい電源器を作った。ということで、「おもちゃ修理用」な訳だ。

【要件】
①使い勝手がよい
・出力電圧0~15V、負荷電流2Aまでとする
・電池代わりに使用することを想定し、電圧設定は1.5V刻みとする
・電池以外の電圧設定も可能とするため、0.5V刻みの設定も可能とする
・出力端子に外部から電圧が印加されても壊れない
・複数台の電源器や電池と組み合わせての直列運転を可能とする
②ターゲットを壊さない
・電流制限は高電流(2A)と低電流(150mA)の2段階を設定可能とする
・過渡的(短絡の瞬間)にも確実に過電流を抑止する
③衝撃に強い
・機械式メーターは避けて、バーグラフLEDに設定電圧と負荷電流を表示する
④高効率化、小型化する
・SW周波数は数100KHz以上とする
・操作機能を集約して、SW類の部品点数を少なくする
・嵩張るロータリーSWは避けて、タクトSWを採用する

【回路図】
降圧型SW電源制御部回路図
降圧型SW電源表示部回路図

【制御方式】
①ジャンクの電源アダプタを利用して、その後ろにバックコンバータを配置した構成とする
②ADCは時間が掛かる(17uS)ので、電圧制御と電流制限には動作が速いコンパレータを使う
・電圧制御用コンパレータの基準電圧を可変することで、出力電圧設定を変える
・電流制限用コンパレータの基準電圧は高電流と低電流で同一とし、固定にする
③定時間間隔で割り込みを発生させ、割り込み処理で電圧と電流を制御する
・割り込み処理のダイナミックステップ数を20ステップ以内とすれば、32MHzクロックで2.5us
④表示系と操作系の処理はタスク部分で実行する
・タスク処理の走行時間比を1/10としても、タスク処理は3.2MHzクロック相当で実行できる
・割り込み処理を抜けてから次の割り込みまでのタスク走行ステップは2ステップでも十分である

【電圧制御】
①電圧制御用の基準電圧
・内蔵DACは32段階の分圧が可能だが、外部回路で合わせ込みが必要なので採用しない
・PWMは1/1024の分解能でソフトでの調整が可能であり、PWM出力の外部に平滑回路を装備して基準電圧として使う
②定電圧制御
・出力電圧を固定比で分圧後、基準電圧と比較し、FETをオン/オフする
・比較周期は2.5us以下を狙う

【電流制限】
①負荷電流のセンス
・Highサイドでのセンスは回路構成が煩雑になるので、Lowサイドでセンスする
・センス電圧を出力電圧にフィードバックするべきであるが、回路構成が煩雑になるので対処しない
・センス電圧の出力電圧への影響を少なくするため、センス電圧は0.1V程度までとする
②過渡的な過電流の抑止
・出力端子に平滑コンデンサを置かない、それでも安定動作する方式を考える
・瞬時的には、トランジスタのIc-Vce特性の飽和部分を利用して定電流制御を行う
・2Aで飽和させるにはかなり大きなトランジスタが必要(2SD880、2SC5198のデータシート参照)
・定常的には、過電流の抑止を制御マイコンのソフト制御で行う
・定常的な負荷電流のセンスも上記のトランジスタのVceで行う
③電流制限用の基準電圧
・制限電流の高および低で共通とし、Vrefの1.024VをDACで4/32分圧して0.128Vを得る
・制限電流の高、低の切り替えはトランジスターのIBで変化させる

【電流測定】
①負荷電流のセンス
・電流測定用のトランジスタのVceをADCで測定する
・Ic-Vce特性の非直線性はテーブル変換によりソフトで対処する
②タスク処理で実行する
・負荷電流の測定と表示は速くなくても良いので、タスク処理でゆっくり(10mS間隔程度)実行する
③測定値を平均化して表示することで、表示を滑らかに見せる
・累積値=累積値-平均値+今回測定値
 平均値=累積値/サンプル数
・実験の結果、サンプル数=2の場合が見た目に良い感じ

【操作系】
①操作SWを節約し、小さく実装する
・設定電圧の上昇/下降、電流制限の大/小の設定機能を2個のタクトSWに集約する
②押し間違えても安全な方向へ推移するようにする
・1個は設定電圧の上昇と電流制限の大設定を割り当てる
・もう1個は設定電圧の下降と電流制限の小設定を割り当てる
③タクトSWの押下時間で機能を分別する
・短時間(20mS~0.3S)は1.5V刻みで設定電圧の増減
・中時間(0.3S~1S)は0.5V刻みで設定電圧の増減
・長時間(1S~)は電流制限の大/小切り替え
・極短時間(~20mS)はノイズとみなし無視する

【表示系】
①表示器を集約し、小さく実装する
・10セグメントのバーグラフLEDに設定電圧と負荷電流を重ねて表示する
・設定電圧は、左半分の5セグメントと右半分の5セグメントに同じ値を2進数表示する
 これは負荷電流の表示と重なってもどちらかで読み取れるようにする工夫
②視認性を良くする
・負荷電流の表示は明点灯、設定電圧の表示は暗点灯とする
・設定電圧は0.5V単位の2進5桁で表示するが、最下位は更に暗点灯として桁位置を認識し良くする
③ポート数の節約
・10セグメントのバーグラフLEDのドライブを5個のポートで行う。(2行×3列×極性=12セグメント)
・タクトSWの読み込み時のセレクト信号線をバーグラフLEDのドライブ信号線と一部共用する

【調整】
①電流測定用のトランジスタのVce特性のバラつきによる負荷電流の測定誤差を補正する
・ADC結果の電流表示への変換表で個々のバラつきを吸収する
・電流制限の閾値はコンパレータのVrefを決めるDAC設定で個々のバラつきを吸収する

【ダウンロード】
詳細な製作資料とファームの開発プロジェクトは ここから ダウンロードできる。
  1. 2010/07/23(金) 13:12:03|
  2. その他のツール
  3. | コメント:0

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

当ブログで公開している技術情報や成果物の複製、改変および再配布はフリーです。読者様のおもちゃ病院活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。なお、公開ファイルは最新版を載せているので、古い記事の内容から変わっている場合があります。

カテゴリ

おもちゃ修理技術 (124)
¦ ・電子オルゴール+音声再生 (52)
¦ ・音声再生・録音再生 (13)
¦ ・2.4GHzラジコン (35)
¦ ・レガシーラジコン (13)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (4)
ツール製作 (35)
¦ ・プログラマー (27)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (5)
修理事例 (157)
¦ ・マイコン換装 (75)
¦ ・電子・電気修理 (59)
¦ ・メカ修理 (23)
製作記事 (5)
PIC開発 (4)
おもちゃ病院 (9)
ドクター研修会 (2)
未分類 (0)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QR