バンダイから発売されている『1.5才からタッチでカンタン!アンパンマン知育パッド』という知育パッドの修理の依頼がありました。
症状は、電源が入らなくなってしまったそうです。
乾電池を交換しても、専用のACアダプターでもうんともすんともということです。
そこで、地元のおもちゃ病院に持ち込み診断をされ、半田付け部分の溶かしなおしや信号の解析をされたそうですが、基板のCPU故障とのことで修理不可能で返却されたそうです。
そこで、メーカーのバンダイさんにも相談したそうですが、部品がないのでということで断られたそうです。
当医院の修理記事に同じ知育パッドの記事をご覧になり、藁にもすがる思いでお問い合わせいただきました。
お誕生日のプレゼントとのことなので、修理をされたい旨をお聞きしましたので、受け付け修理を承りました。
ただ、過去に修理した実績も少ないのですが、ご事情を鑑み何としても修理をしたいので、頑張ります。ᕙ( ‘ω’)ᕗ
まず、起動しない要因は、もちろんですが、制御ICの故障の線もありますが、ヒューズ切れやACアダプター用のジャックの故障なども過去にありました。
因みに、過去に液晶割れの修理相談もあったのですが、本商品に採用されている5インチ版の容量式のタッチパネル付き液晶は交換用の在庫がありません。
インターネットで調べてみると、部品自体はあるにはあるのですが、装着可否などを検証する必要があり、そのために投資が必要となります。
仕様の異なる数種の液晶を購入し正常に描画操作できるか検証するなどです。
ですが、そもそも部品の単価が数千円してしまうので、おいそれとはできないという状況です。
さて、診断に話を戻します。電源系や発振回路まわりを確認します。
この液晶が、5インチの容量式で指でタッチして操作します。
ACアダプターは、専用のプラグでDC 5.4V 700mAです。大きさからスイッチング式ですね。
因みに電池ボックスの乾電池は、単三が4本で1.5V * 4本 = 6Vとなります。
電源基板に実装されているDCジャックで給電の排他接続がなされており、ACアダプター側が優先です。つまり、乾電池が挿入されていてもACアダプターを指すと電池ボックスの配線が遮断されACアダプター側からのみ給電されるということです。
電源のヒューズは、基板上にH刻印1.0Aのチップヒューズが実装されております。また、乾電池側の電池ボックスの電極間のショート防止のため、別途アキシャルのヒューズが別に実装されています。
前任のドクターは、DCジャック、電池ボックスの導線の半田付け部を一式溶かしなおされておりました。また、発振回路のクリスタルの足も溶かしなおされています。
で、ヒューズは以下の箇所にあります。
電池ボックスのアキシャルヒューズは、ケーブルの裏にあります。
さっさとヒューズは切れていないことを確認します。
どちらも問題ありませんでした。
電池ボックスからの給電とACアダプター側の給電は、ダイオードで集約されチップヒューズに接続されております。
この主電源は、後段のレギュレーターにて3.3Vに減圧され液晶のドライバーや音声用のオペアンプ、COB内の制御ICに給電されております。※なので、ACアダプターの電圧と電池ボックスの電圧が違いますが、稼働の主電源は、レギュレーター後の給電にて動作します。
さて、各電源系を順に確認し正常に給電されているのを確認できました。
特にCOBモールドの基板真裏に3.3Vの電源経路がリングになっており各パスコンが仕込まれております。VIAが各所に打たれているので、ICの電源パッドの配置制約で配線されています。配線幅が太いのですぐ分かります。
電源の配線端、基板の下方にノイズ対策のインダクターでL結されています。さらに逆起対策用のダイオードもありますが、電源が2系統あるので、それぞれの電流量にあわせ個別配線されています。
表面もテストパッドが各所にあり、VDDもシルクでテストパッドが設置され正常に3.3Vに上がっていることが確認できました。
電源系は問題ありませんでした。
プリント基板設計のセオリー通りの配線でしたので、実務での経験があればすぐ電源経路が目視ですぐ分かります。
給電の電流量で配線幅が規定されていて、配線角やVIAの打ち方も教科書通りになってました。ただ、CADの仕様なのでしょうか、GNDべた面の鋭角部分の削除があったりなかったりします。これはEMIなどの放射ノイズ対策なのですが、設計担当が別々だったのかもしれませんが、出図前のチェックがマチマチでした。
車載マイコンの設計開発時分、このEMI対策でいやというほど、ECUメーカーさんと評価対策をした経験を思い出します。
話が脱線しがちですね。。。次に発振回路を確認します。
まぁ、確認するまでもなく、予想はできていましたが、張り付きもしておらず、何ならACアダプターからのスイッチングノイズ的なノイズも見えたので、まったく動作してしないことが分かります。
ただ、IC側が動作していないのか、発振回路が問題で機能していないのかまではまだ切り分けできていません。
順に確認しましょう。
次は発振回路回りです。
基板上は、6MHzのクリスタルとコンデンサーのみしか配置されておりません。
バッファアンプは、IC内なので基板上に無いにしても帰還抵抗と電流制限抵抗が基板上に見当たりません。
おそらく、COBのモールド内のベアチップの近くに配置されているようです。
後で判明しますが、これが原因解析の糸口になります。
まぁ、COBモールド内でIC側に電源端子の断線で給電できていない場合や、発振回路のボンディングワイヤーが剥がれていたりもあるので、一つづつ要因を潰していきましょう。
まず、過去経験あるあるのクリスタル部品の故障を疑って6MHzのクリスタルを交換してみます。
刻印6MHzのクリスタルです。
配線は、そのままCOBのモールド内に引き込まれております。
で、基板の裏面にC11, C13のコンデンサーがあります。
前任のドクターが、溶かしなおしの際にフラックスの塗ったのかフラックス入りの半田だったのかフラックスの痕があります。
6MHzのクリスタルってなかなか在庫ないですよね。
手持ちの6MHzのクリスタルに交換しますが、まったく改善の兆しなしです。
(´・_・`)
要因がはっきりしませんね。そんな簡単にはいきません。
そこで、消費電流を計測してみます。
この商品は、ACアダプターや電池を挿入すると、即ICが起動します。電源をOFFしてもスリープ状態に遷移するのみです。
起動はしませんが、電流がどのくらい流れているかとリセットボタンやボリュームボタンや電源ボタンの押下で電流量が変化するかも確認しておきます。
これで何かしらの動作の状況の判断材料にします。
まず、電源印加状態のままで16mAほど流れています。
ですが、どのボタンを押下してもこの16mAの増減はしませんでした。
あれ、、、。そうですか。。。
ピクリともしないのです。
給電をやめると、電流は完全にストップするので、これはこれで、やはり完全に制御ICが起動しておらずスリープのままのようです。16mAは、スリープ時の待機電流でしょう。
※スリープで16mAってすごいですよね。知育系タブレットの電池の持ちが悪いという評価が多いのは、このような仕様にも起因するのかもしれません。
さて、少なくともIC側への給電はできていそうです。
でも、しかしまだ故障個所の切り分けができていません。
まぁ、COB内の制御IC回りはどうしょうもなく、できる策は限られるので、次に発振回路が機能していない前提で解析を続けます。
というのも、前述の発振回路の抵抗類がCOBのモールド内にあるので、この部品の不具合を疑いました。
発振回路内の不具合で発振できていなかったとう前提で手持ちのSGで外部からクロックを印加してみます。
ICは、外付け発振回路前提の回路設計されているのですが、如何せん発振回路の一部がCOBモールドの中なので、前述の水晶の発振回路であると予想しクリスタルのどちらかの足に直接外部から6MHzのクロックを印加します。
振幅は、IC用電源である3.3Vとします。
すると、起動し出しましたー!
キタ――(゚∀゚)――!!
やはり、原因は発振回路でしたか。
総括すると故障は、以下のように推測できます。
バッファアンプは活きていたようで外部からのクロックは内部のクロックツリーに伝播できたようです。
帰還抵抗か電流制限抵抗に異常があるようです。定数が変化したため発振できなくなったようです。
外部クロックは、クリスタルの足の決まった片側の足側のパッドからでしか起動しなかったので、電流制限の抵抗部にも問題があるかもしれません。
さて、COBモールド内の外付け回路ではどうもできないので、外部からクロックを印加できるようにマイコンで波形を生成して印加できるようにしましょう。
ちょうど手持ちのCH32V003があるので、PWMで6MHzを生成してそのまま空きスペースに設置しましょう。
ちょうど、3.3V電源用の電解コンデンサーが基板の隅にあるのでそこに設置します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#include <ch32v00x.h> void setup() { // PLL setting RCC->CTLR |= RCC_PLLON; // PLL enable while((RCC->CTLR & RCC_PLLRDY) == 0); // Wait PLL clock locked RCC->CFGR0 = bit_replace(RCC->CFGR0, 0b10, 2, 0); // PLL clock source 24MHz * 2 = 48MHz RCC->CFGR0 = bit_replace(RCC->CFGR0, 0b0001, 4, 4); // AHB HCLK prescaler 1/2 (AHB) 48MHz / 2 = 24MHz => TIM1/TIM2/Serial // PC setting RCC->APB2PCENR |= RCC_IOPCEN; // GPIOC enable // PC4 Multiplexed timer setting GPIOC->CFGLR = bit_replace(GPIOC->CFGLR, 0b11, 2, 16); //PC4 output mode on 50MHz GPIOC->CFGLR = bit_replace(GPIOC->CFGLR, 0b10, 2, 18); //PC4 with multiplexed fuction(TIM1) push-pull mode. // TIM1 setting RCC->APB2PCENR |= RCC_TIM1EN; // TIM1 enable TIM1->SWEVGR |= TIM_UG; // Update Event Generation TIM1->BDTR |= TIM_MOE; // TIM1 output enable TIM1->CCER |= TIM_CC4E; // TIM1 PC4 output enable TIM1->CHCTLR2 = bit_replace(TIM1->CHCTLR2, 0b110, 3, 12); // TIM1 CH4 PWM mode 1 => OC4M[2:0] = 0b110 TIM1->CHCTLR2 |= TIM_OC4PE; // TIM1 ch4 preload enable TIM1->CTLR1 |= TIM_ARPE; // TIM1 auto preload enable TIM1->PSC = 0; // TIM1 prescaler value TIM1->ATRLR = 3; // TIM1 auto load value => 24MHz / 3 => 6MHz TIM1->CH4CVR = 2; // TIM1 ch4 duty 3 / 2 => 50% TIM1->CTLR1 |= TIM_CEN; // TIM1 counter ON } void loop () { } // bit replace uint32_t bit_replace(uint32_t data, uint32_t byte, uint8_t len, uint8_t shift) { uint32_t mask = ~(((1 << len) - 1) << shift); data &= mask; data |= byte << shift; return data; } // The end of file |
起動と同時に矩形波を発振し続ける至極単純なプログラムです。
基板の端のちょうどよいスペースも見つかり、ちょうどIC系の電源用の電解コンデンサーもあります。そこに設置します。
それと、元々付いていたクリスタルは念のため外しておきます。
たぶん、付いたままでも悪さはしないとは思いますが、念のため外します。
最終動作確認も問題ありませんでした。
故障原因の切り分けが難航しましたが、大事なプレゼントの品物を復活でき感無量です。
依頼者様のお子様もよろこんでもらえるとうれしいです。
気に入ってずっと遊んでいたおもちゃだったので、遊べなくなった時は本当に悲しそうにしていたのですが、久しぶりに起動したのを見て、子どもの顔がパァッと輝いていました。
宅配おもちゃ病院様のおかげで、夢中で遊んでいる姿をまた見ることができてとても嬉しいです。
修理の依頼をしてから返送していただくまで、経過を細かく連絡していただき、起動しなくなった原因や修理内容を詳しく教えてくださいましたので、安心してお任せすることができました。
無理なお願いだったにも関わらず、お引き受けいただき本当にありがとうございました。
これからも大切に使っていきます。お世話になりました。
~依頼者のご感想より~