FC2ブログ

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

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

「つつじが丘おもちゃ病院 電子オルゴール」の宣伝

つつじが丘おもちゃ病院 電子オルゴール」 は大変よくできたファームウェアだと自負しているのだが、おもちゃ病院業界に今一浸透して行かない。たった100円でおもちゃのマイコン換装ができるものは他にないと思う。それであらためて 「つつじが丘おもちゃ病院 電子オルゴール」 について、その有用性をアピールしたいと思う。

実際の演奏音と音声再生音を下記の 【適用事例】 で試聴して欲しい。きっと 「つつじが丘おもちゃ病院 電子オルゴール」 のファンになるハズ。


背景

音楽を鳴らしたりおしゃべりすおもちゃは専用のICが使われていて、それが故障していると修理不能となってしまう。そこで、そのICを1チップマイコンで換装しようと、つつじが丘おもちゃ病院では電子オルゴールのファームウェアを開発した。

既製品の電子オルゴールICや音声再生ICを使う方法もあるが、マイコンで換装する理由がいくつかある。

①元々のおもちゃの曲が既製品のICには無いことが多い。特にアンパンマンのようなキャラクターものの曲は無い。

②音楽の演奏と同時にLEDやモーターを制御することが多く、おもちゃの制御のためにマイコンを使うのなら、音楽演奏もマイコンにやらせるのが合理的だ。

③カラオケ絵本では前奏や間奏、繰り返しなどのアレンジは絵本の楽譜の通りに再現する必要があり、そうするにはマイコンで作るしかない。

④音声再生ICを使う場合は音声の選択と再生開始のトリガを引くために別にマイコンが必要になり、それならマイコンで音声再生させるのが合理的だ。

⑤PICマイコンなら@100円からあり、既製品のICを組み合わせて構成するより遥かに安くできる。

こうなれば、PICマイコンで行くしかない。


つつじが丘電子オルゴールの概要

①最大3パートの演奏が可能。これは同時に3音の発音が可能と言うことだ。メロディのパートと伴奏のパートで、2音が発音できればおもちゃのオルゴールとしては十分だと思う。

②収容曲数はマイコンの実装メモリによる。8kワードの16F1705(2018年秋月@100円)で15曲の実績あり。

③音源波形とエンベロープ波形はPCMデータで定義するので、豊富な楽音表現が可能である。生ピアノの音を採取して音源波形データを作って、それで演奏させたのが 【適用事例】の 「ピアノ音でオルゴール演奏」 だ。是非試聴して欲しい。

④テンポもダイナミックに変更でき、多彩な曲表現が可能である。

⑤ピッチベンドの制御も可能であり、サイレン音やジャンプ音などの効果音をオルゴール演奏で表現できる。PCMデータで音声再生するより、遥かに少ないメモリで実現できる。

⑥音声再生は最大3チャンネルの同時発声が可能である。

⑦音声ソースはPCMデータでマイコンのプログラムメモリの他に、シリアルEEPROMやSDカードにも収容することができる。

⑧オルゴール演奏と音声再生はコンカレントに実行可能である。

・例えば、アンパンマンドライブのおもちゃでは、アンパンマンマーチを演奏しながら、エンジン音を鳴らして、同時にアンパンマンがしゃべるということだ。

・例えば、アンパンマンたいそうのおもちゃでは、アンパンマンたいそうを演奏しながら、飛んだり跳ねたりの効果音を出して、同時に体操の号令や指導をしゃべることができるということだ。

【適用事例】の殆どが、オルゴール演奏と音声再生を同時に行っている。実際のおもちゃがそのような動作をしているので、これを1個のマイコンで実現できるのは 「つつじが丘おもちゃ病院 電子オルゴール」 しかない(と思う)。

⑨オルゴール演奏と同時におもちゃの制御を行うことができる。

・音楽の進行やおもちゃの操作に合わせて、モーターやLEDの動作、音声の再生などを制御する。(例えば、人形・ロボット、楽器おもちゃなど)

・赤外線リモコン信号の受信とデコードを行い、おもちゃを制御する。(例えば、リモコン乗用自動車)

・RFIDタグを識別して、おもちゃを制御する。(例えば、おしゃべりレジスター)

⑩出力はPWMなので、スピーカーバッファアンプが簡易にでき、電力効率がよい。

上記のように多機能でカスタマイズも柔軟に対応できることから、おもちゃの故障ICを換装するときは殆どの場合 「つつじが丘病院 電子オルゴール」 をベースにして開発している。下記の 【適用事例】 を参照。


使い方

①電子オルゴールエンジンの呼び込み

include "orgel.asm"

②初期設定
音声PCMデータをシリアルEEPROMやSDカードに置く場合は、それらとのインタフェースを初期化しておく必要がある。

③API関数
;(0)共通仕様
;ページ設定/回復は自動的に行われる。
;バンク設定はAPI側で保障される。
;
;(1)曲選択処理関数(SONG_SEL)
;引数 W:曲番号(0=演奏中断、1~255=指定曲番号を演奏開始)。
;戻り値無し。
;
;(2)音声選択処理関数(VOICEn_SEL)
;nは音声chの番号で0~2、I、及びS
;引数 W:音声番号(0=再生中断、1~63=指定音声番号を再生開始)。
;戻り値無し。
;
;(3)ミュート設定処理関数(MUTE_SET)
;引数 W:ミュート設定値
;戻り値無し。
;
;(4)出力バッファのデータ数取得処理関数(BUF_CHK)
;引数無し。
;戻り値 W:出力バッファのデータ数

④コールバック関数
;(0)共通仕様
;ページ設定/回復は自動的に行われる。
;バンク設定はコールバック関数側で行うこと。戻り時にバンク設定を保障しなくて良い。
;
;(1)固有の初期設定関数(CB_INIT)
;POR、およびリセット後に1度だけ呼び出される。
;引数無し。
;固有の初期設定の中では以下の処理を行う。
;・周辺機能を構成する。
;・演奏出力ポートを初期化する。
;・おもちゃ固有の初期化を行う。
;戻り値無し。
;
;(2)固有の処理関数(CB_KOYUU)
;定期的(PLAY_OWN_MS[ms]毎)に呼び出される。
;引数無し。
;固有の処理の中では以下の処理を行う。
;・オルゴール演奏の開始、再開始、中断を指示する。
;・音声再生の開始、再開始、中断を指示する。
;・LEDやモーター制御等のおもちゃ固有の処理を行う。
;・必要により省電力設定をしてsleepする。
;・再起動する場合はresetする。
;戻り値無し。
;
;(3)演奏終了時の処理(CB_SONG_END)
;曲の演奏が終了した直後に呼び出される。
;引数無し。
;「(2)固有の処理関数(CB_KOYUU)」と同様の処理を行うことができる。
;戻り値無し。
;
;(4)演奏終了時の処理(CB_VOICEn_END)
;nは音声chの番号で0~2、及びI
;音声再生が終了した直後に呼び出される。
;引数無し。
;「(2)固有の処理関数(CB_KOYUU)」と同様の処理を行うことができる。
;戻り値無し。
;
;(5)割込みサービスの固有処理関数(CB_ISR)
;引数無し。
;エンジン部の割込みサービスルーチンからPWMデューティサイクルの設定後に呼び出される。
;処理の中では割込み許可/禁止の操作を行わないこと。
;ダイナミックステップ数は数10ステップ以内に抑えること。
;戻り値無し。

仕様の詳細は 【ダウンロード】 の orgel.asm の先頭部分に記述されている。

使用例は下記の 【適用事例】 のダウンロードファイルを参照。


適用事例

ピアノ音でオルゴール演奏

RFIDタグで電子オルゴールを制御

アーロと少年

ブルーインの光とサウンドの汽車

キッズドライバーのハンドルV2

不思議なドレッサー ミラーナ

ラッピングバス

星形おもちゃ

アンパンマンじゃかじゃか消防車

アンパンマンキッチン

アンパンマンおでかけメロディハンドル

犬のおもちゃ

たんたんたのしいタンバリン

笑い転げる猫

サウンドきかんしゃトーマス

アンパンマン電動レールでGO!GO!DX

TOHOブルドーザー

糸魚川)Dr.渡辺氏の曲目を追加
(糸魚川)Dr.渡辺氏 は、電子オルゴールの特質を設計者である僕よりも上手に活かして素晴らしい曲データを提供していただいている。 多謝。

ダウンロード

「つつじが丘おもちゃ病院 電子オルゴール」 の開発資材とサンプルプロジェクトは ここに 公開している。

公開ファイルの複製・改変・2次公開はフリーである。

「つつじが丘おもちゃ病院 電子オルゴール」 がおもちゃ病院業界に広く浸透し、おもちゃドクター諸氏の手によって改良されていくことを願っている。


カスタマイズ

「つつじが丘おもちゃ病院 電子オルゴール」 に限らず、当ブログで公開しているファームウェアのカスタマイズ、新規開発のご依頼は ここを 参照。
スポンサーサイト
  1. 2018/02/23(金) 17:40:39|
  2. 電子オルゴール+音声
  3. | コメント:1

PIC電子オルゴールVer5_7でRFIDをサポート

PIC電子オルゴールVer5_7でRFIDをサポートした。

【デモ】


【実行環境】
PICマイコン(16F1705など)とRFIDリーダライタモジュールだけだ。
RFIDタグからシリアル番号を取得する実行環境

【RFID機能の位置付け】
電子オルゴールのエンジンが直接タグを読み書きすることは無い。この点がSDカードをサポートしたときとは異なる。

SDカードの場合は、アプリケーションはオルゴールエンジンに対して音声再生の実行を指示するだけで、後はオルゴールエンジンがSDカードからPCMデータを読み出してPWMへ送り出す。アプリケーションがSDカードをアクセスすることは無い。

RFID機能の場合は、タグをアクセスするのはアプリケーションである。アプリケーションがタグ情報を読み出して、そのタグを識別し、オルゴール演奏や音声再生をオルゴールエンジンへ指示する。このような動作になるので、オルゴールエンジンが直接タグを読むことは無い。

上記のことから、RFID機能はアプリケーション機能の一部として、リーダライタをアクセスするプログラムモジュールをアプリケーションが呼び込む形態とする。つまり、「PIC電子オルゴールVer5_7でRFIDをサポートした」と言うのは不正確で、「PIC電子オルゴールVer5_7のアプリケーションで簡単にRFIDが使えるようにした」と言うのが正しい。


【RFID機能】

サポートするリーダライタモジュールはRFID-RC522のみ、インタフェースはSPIのみである。

サポートする機能は、タグのタイプとシリアル番号の取得のみである。

PICでRFIDのリーダ/ライタモジュールをアクセスするファームウェアは ここ を参照。本記事はこれをPIC電子オルゴールの環境に移植したものだ。


【API】
アプリケーションに対して下記2つのAPIを提供する。

①初期化

リーダライタモジュールを初期化する。
パラメータは無く、呼び出すだけでよい。

②タグ情報取得

タグ情報(タイプ・シリアル番号)を取得する。
パラメータは無く、呼び出すだけでよい。
タグ検出の有無が戻り値で返される。
タグを検出した場合はグローバル変数にタグのタイプとシリアル番号が格納されている。

使い方はサンプルソースを参照。


【PIC側の初期化】

リーダライタモジュールを接続するポートの初期設定はアプリケーションの初期化の一環として行うこと。

実行内容はサンプルソースを参照。


【使用例】
デモを行ったファームウェアのソースコードからRFIDに関連する部分を抜粋。

MFRC522制御モジュールの呼び込み
PIC電子オルゴールVer5_7でRFIDをサポートソースコード1

初期化
PIC電子オルゴールVer5_7でRFIDをサポートアプリコード2

タグを検出したときの処理
PIC電子オルゴールVer5_7でRFIDをサポートアプリコード3

上記のコードを書くだけでRFIDタグでPIC電子オルゴールを制御できる。

タグ情報が格納されるグローバル変数(MF_type、MF_serial)
PIC電子オルゴールVer5_7でRFIDをサポートアプリコード4

【ダウンロード】

PIC電子オルゴールのファームウェアと関連資料は ここから ダウンロードできる。

RFIDを使ったプロジェクトは onsei_RFID_PIC1705_PROG.X
ソースコードは onsei_RFID_PIC1705_PROG.asm
MFRCアクセスモジュールは MFRC522.asm
  1. 2018/02/20(火) 21:10:04|
  2. 電子オルゴール+音声
  3. | コメント:0

「RFIDタグからシリアル番号(UID)を取得する」のtiny13A版

「RFIDタグからシリアル番号(UID)を取得する」 のターゲットを安いものでできないかと考えていたら、ATtiny13A(@50円2018年2月秋月)を思い出した。それで、今回はATtiny13Aへの移植の話だ。

C言語なのでソースコードの大半はそのまま使える。初期設定やポートのI/Oなどのハードウェアに依存する部分のみ改変すればよいので、ソースコードの変更はすぐに出来た。しかし、コンパイルは正常終了したが、プログラムメモリの使用率が140%になり、遭えなく撃沈されてしまった。僅か0.5kワードのATtiny13Aに過度の期待を寄せてはいけない。同じ価格のPIC12F509(@50円2018年2月秋月)は1kワードあるので、この点では優位性があるが、こちらはスタックが2段しかなく使えない。

実装メモリの倍にはなっていないので、アセンブラで書けば収まりそうに思う。SPIインタフェースでは最低4本のポートを喰うので、少ピンでやるならI2Cインタフェースのリーダライタモジュールを使ってやりたい。

と言うことで、今回はこれで御仕舞い。

撃沈されたプロジェクトは ここから ダウンロードできる。
  1. 2018/02/18(日) 15:50:55|
  2. RFID
  3. | コメント:0

「RFIDタグからシリアル番号(UID)を取得する」の改善

RFIDタグからシリアル番号(UID)を取得するファームウェア の改善の話だ。

おもちゃのファームウェアはとにかく忙しい。例えばPIC電子オルゴールでは、複数パートの音符の発音処理、音声再生、赤外線受信、モーターやLEDの制御など沢山のイベントを同時並行処理しなければならない。しかもレイテンシは数usが要求されるときもある。1本道を真直ぐに歩くプログラムは誰だって作れるが、短いレイテンシでのマルチイベント処理を書くとなると少しハードルが高くなる。

RFIDの応用として、タグを読んで対応する言葉をしゃべることが考えられる。レジのおもちゃがそれだ。商品に貼り付けたタグで商品を識別して、商品の名前と値段をしゃべる。これを実現するには、PIC電子オルゴールにRFID機能を統合するのが早道だ。RFIDに限らず、おもちゃのファームウェアは殆どPIC電子オルゴールをベースに機能をカスタマイズして作っている。PIC電子オルゴールにいろんな機能を集約することで、その応用範囲を大きく拡大して来ている。

しかし、RFID機能の統合は一筋縄では行かない。それは、PIC電子オルゴールの処理のレイテンシが数10usを要求されるのに対して、RFIDの処理のレイテンシはタグとの同期を含めて数10msもある。せっかちな人とおっとりな人が一緒に行動するとどんなことになるか、結果は見えている。

こんなときはステートマシンにすると解決する。RFIDの処理を細かなステートに分割して、10msのコールバック周期で1ステート分ずつ処理をコツコツと進めて行く。RFIDリーダライタの処理待ち時間はコールバック周期に隠してしまう。

それで、RFIDタグからシリアル番号を取得するファームウェアをステートマシン向けに書き砕いた。それとアセンブラ化に向いたデータとモジュール構造に変えた。PIC電子オルゴールに組み込む前の、他のプロジェクトに応用し易い状態で公開する。

口で説いても判り辛いのだが、ソースコードを見るとご理解いただけると思う。 MFRC522_STATE.c の最後の方にある 「タスク処理」 がステートマシンになっていて、タグ検出からシリアル番号取得までの一連の処理を12のステートに分割している。PIC電子オルゴールに組み込んだ場合は1個のタグを読み取るのに120ms掛かることになるが、レスポンスとしては十分だ。

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

16F1503用のプロジェクトは MFRC522_SERIAL_STATE_1503.X
16F1705用のプロジェクトは MFRC522_SERIAL_STATE_1503.X
  1. 2018/02/16(金) 20:55:43|
  2. RFID
  3. | コメント:0

RFIDタグからシリアル番号(UID)を取得する

RFIDを利用したおもちゃが増えてきて、おもちゃ病院にもそのようなおもちゃが持ち込まれるようになった。幸いにもリーダ部の故障には出会ったことが無いのだが、今のうちにRFIDの使い方を修得しておく必要がある。そこで、リーダ部を換装するためのプロトタイプを作ってみた。公開されているArduinoのスケッチを素に必要最小限の内容に絞ってPIC環境に移植した。猿真似で、独自の設計は行っていない。素人は無意味な創意工夫をしないで、猿真似に徹することが成功の秘訣だ。

現時点での到達点は、タグからシリアル番号(UID)を取得して外部へ表示するところまでだ。おもちゃ病院での修理は個々のおもちゃに特化した対応になるのでシリアル番号でタグが識別できれば十分だし、タグ内の情報をハンドリングするようなおもちゃは今のところは見受け無い。PIC電子オルゴールへの機能統合を考えて、嵩張らないように最小限の機能に止めておく。

アプリケーションは実際のおもちゃの要件に合わせて開発する必要がある。

【実行環境】
構成はPICマイコンとRFIDリーダライタモジュールだけだ。

この事例では、ターゲットは 16F1503 と 16F1705 で開発したが、SPIはソフト実装だしUARTもソフト実装可能なので、デジタルI/Oポートさえあればターゲットは何でもよい。但し、スタック2段ではダメだ。
RFIDタグからシリアル番号を取得する実行環境

RFIDリーダライタモジュールは RFID-RC522。
RFIDタグからシリアル番号を取得するリーダライタ
今回はSPIインタフェースの物を使った。I2Cインタフェースの物に比べて廉価なのと、Arduinoでの製作例がそれを使っていたので同じ環境にするのが無難だと思ったからだ。

【実行例】
リーダのアンテナから5cm以内にタグをかざすと自動的にシリアル番号を読み取り、その情報をシリアルポートから送信する。
シリアルの通信パラメータは、9600bps・パリティ無し、2ストップビット。
かざしたままにしても1回しか読まない。一旦離してから再度かざすと2回目を読み取る。
1件を 「タイプ-シリアル番号」 の形式で表示する。

以下はTeraTermで表示した例
RFIDタグからシリアル番号を取得するTera画面
タイプの 0x0400 は Mifare_One(S50)を示している。

【対応タグ】
RFID-RC522の石(MFRC522)はNXPなので、当然Mifareのみの対応だ。日本で広く普及しているFliCaには非対応。
MifareはFliCaより価格が安いので、おもちゃの修理にはMifareの方が向いている。
素のソースコードでは下記のタイプがサポートされているようだが、このプロトタイプで実機確認したのは Mifare_One(S50) と Mifare_UltraLight のみだ。それ以外のタグは持っていないので試験していない。
Mifare_UltraLight
Mifare_One(S50)
Mifare_One(S70)
Mifare_Pro(X)
Mifare_DESFire

【コスト】
RFIDリーダライタモジュールは@150円程度(AliExpress2018年2月)。これにはテスト用のタグとカードが1個ずつ付いている。

タグは@15円程度(AliExpress2018年2月)。おもちゃの換装にはシールタイプのタグが使いやすく、価格も安い。

制御用マイコンは、PIC16F1503T-I/SLの場合は@70円(秋月2018年2月)。

合わせると200円を超えてしまうのでおもちゃ修理にはまだ高価だが、価格は徐々に下がってきていて、今後の低価格化に期待する。

【商品ページ】
リーダライタモジュール
RFIDタグからシリアル番号を取得するRC522商品1
RFIDタグからシリアル番号を取得するRC522商品2

タグ
RFIDタグからシリアル番号を取得するRC522商品3RFIDタグからシリアル番号を取得するタグ商品

【ファームウェア】
開発したファームウェアと関連資料は ここから ダウンロードできる。
16F1503用のプロジェクトは MFRC522_SERIAL_1503.X
16F1705用のプロジェクトは MFRC522_SERIAL_1705.X
ピン割り当てはソースコード中のコメントを参照。
  1. 2018/02/11(日) 21:06:27|
  2. RFID
  3. | コメント:0

2.4GHzラジコン用ファームウェアの開発(nRF24L01+) 続報

2.4GHzラジコンの修理を目的に、市販の nRF24L01+ トランシーバモジュールを使ったラジコン用のファームウェア を開発したのだが、飛びが悪いという問題を抱えていた。

このファームウェアを実際のラジコンに搭載して50mの飛距離を確認した、との報告を長崎大村おおもちゃ病院様からいただいた。僕の実験結果を遥かに超える飛距離であり、実施環境をお訊きしたところ、ファームウェアは僕が公開しているものをそのまま使用し、トランシーバモジュールは(パワー)強化版とのことだった。あらためてAliExpressを見ると、多くの商品が強化版であることを謳っている。僕がファームウェア開発に取り組んだ半年前にはそのような商品は無かった(気付かなかった)。

それで、僕も強化版で試してみようと注文しておいたのが、今日届いた。早速評価したところ、出力レベルがかなり大きくなっていた。絶対的なRF電力を測る機器を持っていないので、RFチェッカーで従来版のトランシーバモジュールとの比較を行った。

従来版から10cmの信号強度が強化版からは100cmくらいのときと同等だった。アンテナの指向性を考慮しても100倍以上の出力パワーの差がある。

対向試験では基板アンテナだけで10mの飛距離が確認できた。これは SE8R01 トランシーバモジュール のときと同じ距離だ。強化版を使えばトイラジコンの修理に問題無いことが確認できた。

また、各種の無線設定やパワーダウンモードなどのファームウェアの互換性にも問題は無かった。

従来版と強化版の相互間の互換性も確認した。送信側を強化版・受信側を従来版での動作、その逆の送信側を従来版・受信側を強化版での動作も可能だったが、ともに飛距離は伸びないのでラジコン修理には適用できない。

従来版と強化版は外観上は全く同じに見えて区別が付かない。

【従来版】
従来版外観

【強化版】
強化版外観

商品ページも掲げておく。

【従来版】
従来版amazon1
従来版amazon2

【強化版】
強化版Ali1
強化版Ali2
強化版Ali3

強化版の価格はSMDタイプでは2018年2月時点で70円くらいで、従来版とあまり変わらない。この半年間で安くはなってきたが、50円を超えるとおもちゃ修理には採用し辛い。当面は SE8R01 の方を使って行くことになる。
  1. 2018/02/09(金) 18:46:21|
  2. 2.4GHzラジコン
  3. | コメント:0

アンパンマンことばずかんの修理(センサーピン半田クラック)

1.患者
アンパンマンことばずかん
アンパンマンことばずかん(センサーピン半田クラック)外観

2.症状
①オープニングメッセージは流れるが、絵本にタッチしても全く反応しない。

3.診察
①ペン先端の穴をケータイのカメラで覗いたら、赤外線LEDは光っていなかった。

②イメージプロセッサ「SN9P700ANG-201」のオシレータの波形を観測するとXINもXOUTも0Vに張り付いていた。クリスタルの不良で発振しない場合は、インバータの入出力端子はVccのほぼ1/2になっているハズなので、0Vに張り付いているのはインバータの動作状態がおかしい。

③イメージプロセッサの全ピンの信号を観測したところ、ピン15がH、その他のピンはLに張り付いている。クロックが止まっているので信号に動きが無いのは当然だが、そもそも、イメージプロセッサのVccは複数のピンがあるので、Hのピンが1本だけと言うことは電源が供給されていないことを示している。だから、XINもXOUTも0Vになっていたんだ。なお、ピン15はレギュレータ前の+3.6V電源のようだ。

④唯一ピン接が明らかになっているシリアルEEPRPM「24C02B」(U4)のVccであるピン8を診たら、やはり0Vで、電源が供給されていなかった。
アンパンマンことばずかん(センサーピン半田クラック)EEPROM

・参考にEEPROMのVccと導通があるイメージプロセッサのピンを調べたら 1、3、9、13、23、32 だった。これらのピンのうち何本かがVccピンであるハズだ。

⑤近くに3端子レギュレータと思われる石(U3)があり、そのピン接を探る。制御端子付きの3端子レギュレータのピン接は何種類かが存在する。
アンパンマンことばずかん(センサーピン半田クラック)3端子レギュレータ

・24C02BのVccと導通があるピン5がVout。

・ピン1には3.6Vが印加されており、大きなセラコンでGNDにバイパスされているので、これがVin。

・ピン2はGND。

・ピン3はCONTROLと思われるが、0Vである。GND間の導通をチェックすると数kΩあった。

・ピン3に1kΩを介して、Hを与えるとVoutから3.3Vが出て来た。ピン3はCONTROLに間違いない。

・これで、3端子レギュレータのピン接は下記の通りと判った。
アンパンマンことばずかん(センサーピン半田クラック)3端子レギュレータピン接

・ファミリーチップの「SN9P700FG-201」のデータシートに示されている回路例にもLDO「AME8801」が載っていて、ピン接はこのおもちゃと同じだった。その回路例によると、LDOのENピンはイメージプロセッサ「SN9P700FG-201」のピン29「PWR_EN」から制御されている。つまり、イメージプロセッサがシリアルEEPROMとセンサーの電源を制御している。このおもちゃもそうなっているのであろう。

⑥3端子レギュレータのCONTROLに強制的にHを与えている間は当然Voutが出力されるが、強制Hを止めても5秒くらい出力が続く。CONTROLの信号線は2.2kΩを介してイメージプロセッサのピン19に繋がっていて、そのピンは強制Hにしてから5秒くらい3.6Vになる。しかし、強制Hのままにしていても、その後は0Vになる。センサーが応答しないとか、不具合を検出するとシリアルEEPROMとセンサーの電源をオフするようだ。

⑦CONTROLの信号は「TP6」に出されていて、動作確認時のキー信号のようだ。CONTROLを弄るときはTP6から信号線を引き出すとよい。
アンパンマンことばずかん(センサーピン半田クラック)TP6矢印

⑧3端子レギュレータのCONTROLを強制Hにしてから5秒間程度は、16MHzのクリスタルは正常に発振した。しかし、その後はXIN、XOUTともにVccレベルに張り付く。発振している間もLEDの点灯信号(イメージプロセッサのピン28、ピン31)は出ない。

⑨数分間放置するとオートパワーオフするが、その後にCONTROLを強制Hにするとパワーオンした。この振る舞いの仕掛けは判らない。

⑩5秒程度のイメージプロセッサが動いている間にイメージセンサーとの信号を観測する。イメージセンサーのピン番号はシルク印刷されている。
アンパンマンことばずかん(センサーピン半田クラック)イメージセンサーピン接1
アンパンマンことばずかん(センサーピン半田クラック)イメージセンサーピン接2

・センサーのピン接については、このおもちゃに使われているイメージプロセッサのファミリーデバイスである 「SN9P701」 のデータシートに記述があった。

ピン1(SEN_SD1)
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン1(SD1)
ピン1には信号が乗っていない。

ピン2(SEN_SD0)
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン2(SD0)

ピン3(SEN_CLK)
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン3(CLK)

ピン4(CMD)
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン4(CMD)

⑪ファミリーチップのデータシートには、イメージセンサーのピン1「SD1」とピン2「SD0」はイメージセンサーからイメージプロセッサへの信号線である旨の説明がある。SD0には信号が出てSD1には出ないことから、ピン1ラインの断線が疑われる。ピン1の半田付けを確認するとクラックが認められた。導通チェックすると確かに通じていない。
アンパンマンことばずかん(センサーピン半田クラック)センサーピン1クラック矢印

⑫再半田して、ピン1の波形を観測すると
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン1(SD1)再半田後

SD1に信号が乗って来た。イメージプロセッサへの通電は途絶えることなく、クロック発振も止まらなくなった。

⑬ペン先端の穴をケータイのカメラで覗くと赤外線LEDの点灯が確認でき、絵本に当てると正常に動作した。

⑭三端子レギュレータのCONTROLの制御を含むイメージプロセッサの動作条件については解明できなかったが、恐らくイメージセンサーからの応答が無いため、電源をオフして、自らはSleepすると思われる。

・このおもちゃは謎が多く、修理にいつも難儀している。デバイスのデータシートや設計情報をお持ちでしたらご教示をいただきたい。

4.治療
①診察の過程で、イメージセンサーのピン1を再半田することで、機能が回復した。

・イメージセンサーの半田付けがクラックした事例は他のおもちゃ病院でも報告されていて、16MHzクリスタルの不良に並んで多い故障個所だ。

・初めからイメージセンサーの半田付けを目視点検すれば早く解決したと思うが、それは結果論であって、論理的な切り分けが正攻法だし、その方が楽しい。
  1. 2018/02/04(日) 22:08:58|
  2. 電子・電気修理
  3. | コメント:1

PICプログラマーの機能改善 (12F1571/2 をサポート)

PICプログラマー
プログラマー外観
PICプログラマーと呼んでいるが、シリアルEEPROMやAVRもサポートしている。
当初の製作記事は ここ
その後の改善記事は、「PICプログラマー」 でブログ内を検索。


【今回の改善事項】

先日(2018年2月1日)秋月から12F1572が@80円で販売開始された。12F1822(2018年秋月@100円)の機能を上回り、廉価なので使い道がありそうだ。それで、PICプログラマーで12(L)F1571/1572をサポートした。
プログラマー上の8Pソケットでプログラムできる。


【サポートデバイス一覧】

10F200/204/220
10F202/206/222
10F320
10LF320
10F322
10LF322
12F508
12F509/510/16F506
16F54
16F57/59
12F609/615/16F610
12HV609/615/16HV610
12F617/16F616
16HV616
16F627/LF627
16F628/LF628
16F627A/LF627A
16F628A/LF628A
16F648A/LF648A
12F629/675/16F630/676
16F631
12F635
16F636/639
12F683/16F684/677/687
16F685/688/689/690
16C711
16F716
16F785
16HV785
16F818
16F819
16F84A
16F87/88
16F870/871/872
16F873/874
16F876/877
16F873A/874A
16F876A/877A
16F882
16F883/884
16F886/887
16F913/914
16F916/917/946
16F1454/1455/1459
16LF1454/1455/1459
12F1501
12LF1501
16F1503/7
16LF1503/7
16F1508
16LF1508
16F1509
16LF1509
16F1571
16LF1571
16F1572
16LF1572
16F1574/8
16LF1574/8
16F1575/9
16LF1575/9
12F1612/16F1613
12LF1612/16LF1613
16F1614/1618
16LF1614/1618
16F1615/1619
16LF1615/1619
16F1703/1707
16LF1703/1707
16F1704/1708/1713
16LF1704/1708/1713
16F1705/1709/1716/1717
16LF1705/1709/1716/1717
16F1718/1719
16LF1718/1719
16F1782
16LF1782
16F1783/1784
16LF1783/1784
16F1786/1787
16LF1786/1787
16F1788/1789
16LF1788/1789
12F1822/16F1823
12LF1822/16LF1823
12F1840/16F1824/1828
12LF1840/16LF1824/1828
16F1825/1829/1847
16LF1825/1829/1847
16F1826
16LF1826
16F1827
16LF1827
16F18313/18323
16LF18313/18323
16F18324/18344
16LF18324/18344
16F18325/18345
16LF18325/18345
16F18326/18346
16LF18326/18346
16F18854
16LF18854
16F18855/18875
16LF18855/18875
16F18856/18876
16LF18856/18876
16F18857/18877
16LF18857/18877
16LF1902
16LF1903/1904
16LF1906/1907
16F1933/1934
16LF1933/1934
16F1936/1937/1946
16LF1936/1937/1946
16F1938/1939/1947
16LF1938/1939/1947
18F1320/2320
18F22x1
18F23x1
18F24x0/24x3/44x0/44x3
18F24x5/24x8/44x5/44x8
18F25x0/25x3/45x0/45x3
18F25x5/45x5
18F26x0/46x0
18F26x2/46x2
18F26x5/46x5
18F13K22
18LF13K22
18F14K22
18LF14K22
18F13K50
18LF13K50
18F14K50
18LF14K50
18F23K20/43K20
18F23K22/43K22
18LF23K22/LF43K22
18F24K20/44K20
18F24K22/44K22
18LF24K22/LF44K22
18F25K20/45K20
18F25K22/45K22
18LF25K22/LF45K22
18F26K20/46K20
18F26K22/46K22
18LF26K22/LF46K22
18F24Jxx/44Jxx
18F25Jxx/45Jxx
18F26Jxx/46Jxx
18F27Jxx/47Jxx
24FJ16GA0xx
24FJ32GA0xx
24FJ64GA0xx
24FJ96GA0xx
24FJ128GA0xx
30F1010
30F2010
30F2011/2012
30F2020/2023
30F301x
30F401x
30F501x
30F6010/0A/2/2A/4/4A/5
30F6011/1A/3/3A
33FJ/24HJ12GP201/202
33FJ32GP/MC202/204
33FJ32GP/MC302/304
33FJ64GP/MCx02/x04
33FJ128GP/MCx02/x04
33FJ256GP/MCx06/x08/x10/A
32MX110/210
32MX120/220
32MX130/230
32MX150/250
24FC32A
24FC64
24FC128
24FC256
24FC512
24FC1025
24FC1026
CAT24M01
25AA320A
25AA640A
25AA128
25AA256
25AA512
25AA1024
90S1200
90S2313
90S2323
tiny13/13A
tiny13/13A-HV(高電圧シリアルプログラミング)
tiny2313
mega48
mega88
mega168
mega328


【ダウンロード】

PICプログラマーの設計資料とソフトウェアは ここから ダウンロードできる。

PC側の制御ソフトはGUIとプログラマー制御の2つから成る。
①GUIを担うVBプロジェクトは「ISP」、実行ファイルは「ISP\bin\ISP.exe」

②プログラマー制御を担うVCプロジェクトは「ISPdll」、実行ファイルは「ISPdll\Release\ISPdll.dll」

プログラマー側の制御ソフトは
③18F14K50のファームウェアでディレクトリは「ISPpic18F14K50」、実行ファイルは「ISPpic18F14K50\USB\ISPpic18F14K50\Firmware\ISPpic18F14K50.hex」

今回のバージョンアップは上記の①と②が更新されているので、PC側の制御ソフトだけを差し替えればよい。

PC側の制御ソフトは、OSへのインストールは必要なく、任意の1つのフォルダにISP.exeとISPdll.dllをコピーするだけで良い。
VisualStudio2008のランタイムが無いと言われたら、ビルゲイツの指示に従って別途インストールする。

PICプログラマーを始めて導入するときはUSBドライバーの登録が必要である。USBドライバー本体はWindows標準のものを使用する。infファイルとcatファイルは「ISPpic18F14K50\USB\ISPpic18F14K50\inf」にある。

ハードウェアの設計書は「USB接続簡易共用プログラマー設計・回路図・配線図.xls」。
各デバイス毎のソケットアダプタ結線は、シート名「ソケット・・・」を参照。
  1. 2018/02/03(土) 21:55:29|
  2. プログラマー
  3. | コメント:1

プロフィール

大泉茂幸

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

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

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

当ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

カテゴリ

おもちゃ修理技術 (83)
¦ ・電子オルゴール+音声 (28)
¦ ・音声再生・録音再生 (4)
¦ ・2.4GHzラジコン (29)
¦ ・レガシーラジコン (12)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (3)
ツール製作 (22)
¦ ・プログラマー (15)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (4)
修理事例 (149)
¦ ・マイコン換装 (69)
¦ ・電子・電気修理 (58)
¦ ・メカ修理 (22)
製作記事 (4)
PIC開発 (4)
おもちゃ病院 (8)
ドクター研修会 (2)
未分類 (2)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

ブロとも申請フォーム

この人とブロともになる

QRコード

QR