FC2ブログ

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

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

SN76604N(リモコンサーボアンプ)を代替するICの製作(第1弾:スロットル制御)

【前振り】
①プロポ式のラジコンのサーボアンプにはTI社のSN76604Nがよく使われている。このICが壊れていると、国内では入手が難しいし中華サイトでも百円強(2015年)していて修理に困る。そこで、PICでSN76604Nを代替するファームウェアを開発した。

②今回は第1弾として、ラジコンカーのスロットル制御への応用を目的としたファームウェアを公開する。スロットル制御ではchパルスでモーターをPWM制御するが、回転速度のフィードバックは無い。chパルスのパルス巾を測定してPWMデューティに変換するだけだ。

③ステアリング制御用のフィードバック有りのファームウェアは第2弾として開発を継続し、出来上がったら公開する予定だ。
 ⇒ 第2弾を公開済み

【要件と実現方法】
①SN76604Nはchパルスを入力して、DCブラシモーターを直接駆動する機能を持っている。サーボ制御するための基準パルス回路、エラーアンプ、パルスストレッチャ回路、ロックアウト回路等を内蔵していて、基準パルス、デッドバンド、デューティ等を外付けCRで調整することができる。

②PICでモーターを直接駆動することは不可能なので外付けのHブリッジは必須であり、PICからHブリッジの制御信号を出力することになる。SN76604Nに内蔵しているHブリッジは出力電流が最大400mAしか取れないため、SN76604Nをスロットル制御に使っている場合は外付けのHブリッジが装備されているのが普通だ。PICで換装する場合はそれを利用すればよい。

③SN76604NはアナログICなので動作条件の調整のために多くの外付けCR部品を必要としているが、PICでは調整パラメータをファームウェア内に数値で記述するので調整のための外付け部品は一切必要が無い。これはマイコンで実現する場合の大きなメリットだ。

④SN76604Nの電源電圧は6Vまでだが、PICは5.5Vまでである。このため電源の供給と周辺回路との信号レベルの整合は個別に設計が必要になるかも知れない。

⑤入力ポートはchパルスの1本と出力ポートはHブリッジへの正転と逆転の2本、合計3本のポートで済む。それで、8ピンで最も廉価な10F322(2015年秋月価格45円)を採用する。10F322は16MHzの内部オシレータが使え、PWMモジュールを2本内蔵しているので、今回の応用には最適だ。

【仕様】
①chパルスのパルス巾は1.0ms~2.0msとする。正論理/負論理をファームウェア内のパラメータで選択が可能。分解能は10usとし、操作角を100段階で識別する。

②PWM周期値は127、PWMパルス巾の最小値は16usとし、PWM周期は16us×127=2ms(500Hz)となる。SN76604NでのPWM周期はプロポ信号のフレーム周期の20ms(50Hz)程度であるので、10F322では10倍程度の高速化が図れる。なお、Hブリッジの応答速度が遅い場合はそれに見合った動作速度に合わせる必要がある。

③chパルスからPWMデューティへの変換はファームウェア内に変換テーブルを持ち、テーブル検索で変換する。変換テーブルの設定は利用者の自由である。公開ファイルはchパルスが1.0msでフル逆転、1.5msでニュートラル、2.0msでフル正転、それらの間はリニアな設定にしたテーブル設定となっている。但し、ニュートラル近辺には若干のデッドバンドを設けている。

④chパルスが0.7ms~2.3msのとき有効コードとする。それ以外のときは無効コードとして読み捨てる。

⑤有効コードが途絶えたとき、0.5秒間は直前の有効コードでPWM出力を継続し、その後は停止させる。

⑥電源投入後は停止状態になる。

⑦上記の仕様はカスタマイズが可能である。

⑧ポートの割当て
;ポートの割り当て
;RA0:正転出力
;RA1:逆転出力
;RA3:chパルス入力

【適用回路例】
SN76604N_a_322適用回路例

【テスト基板】
SN76604N_a_322テスト基板

【動作時の信号波形】
chパルス巾=0.7ms(無効コード)
SN76604N_a_322波形1

chパルス巾=0.75ms(フル逆転)
SN76604N_a_322波形2

chパルス巾=1.0ms(フル逆転)
SN76604N_a_322波形3

chパルス巾=1.05ms
SN76604N_a_322波形4

chパルス巾=1.25ms
SN76604N_a_322波形5

chパルス巾=1.4ms
SN76604N_a_322波形6

chパルス巾=1.5ms(ニュートラル)
SN76604N_a_322波形7

chパルス巾=1.6ms
SN76604N_a_322波形8

chパルス巾=1.75ms
SN76604N_a_322波形9

chパルス巾=1.95ms
SN76604N_a_322波形10

chパルス巾=2.0ms(フル正転)
SN76604N_a_322波形11

chパルス巾=2.25ms(フル正転)
SN76604N_a_322波形12

chパルス巾=2.3ms(無効コード)
SN76604N_a_322波形13

【ダウンロード】
開発したファームウェアの資料とMPLABプロジェクト一式は ここから ダウンロードできる。
解凍後のディレクトリ 「SN76604N」 の 「SN76604N_a_322.mcp」 がMPLABプロジェクトファイルになっている。

chパルスやHブリッジ制御等のパラメータは標準値になっているので、他のおもちゃに適用する場合はカスタマイズが必要である。全ソースを公開しているのでカスタマイズは自由に行うことができる。または当方へカスタマイズを依頼して貰っても良い。カスタマイズのご要望は 「故障したICやマイコンの代替品をお作りするサービス」 を参照。

スポンサーサイト
  1. 2015/12/25(金) 21:49:18|
  2. レガシーラジコン
  3. | コメント:2

シーリングファン/照明器(National)リモコンの修理(マイコン故障)

1.患者
Nationalのシーリングファン/照明器リモコン
シーリングファン/照明器(National)リモコン(マイコン故障)外観

2.症状
①キー操作をしていないのに常に送信していて、リモコン操作ができない。
シーリングファン/照明器(National)リモコン(マイコン故障)症状

②赤外線をモニターすると、申告通りに常に赤外線が飛んでいた。

3.診察
①電池は満タンだった。

②電源不良のときにBOR(ブラウンアウトリセット)を繰返していることがあるので、基板上でマイコンのVdd~GND間の信号を観察した。

基板(表)
シーリングファン/照明器(National)リモコン(マイコン故障)診察1

基板(裏)
シーリングファン/照明器(National)リモコン(マイコン故障)診察2

マイコン電源(Vdd~GND)の波形
シーリングファン/照明器(National)リモコン(マイコン故障)診察3
LED出力電流による電圧降下はあるが、誤動作するほどではない。

③キータッチを誤って認識しているようなので、キースキャン回路を探索する。このリモコンはNECの1チップマイコン「D17202AGF」で制御していて、キーマトリクスに対応している。セレクト線(KS0~KS4)はオープンドレインでGNDにプルダウンされる仕様だ。従ってセンス線(K0~K5)はVddにプルアップされていることになる。下記はデータシートの抜粋。

ピン接
シーリングファン/照明器(National)リモコン(マイコン故障)診察4

セレクト線
シーリングファン/照明器(National)リモコン(マイコン故障)診察5

センス線
シーリングファン/照明器(National)リモコン(マイコン故障)診察6

④センス線を観測した結果、K3の1本が、キータッチしていないのに1V程度に落ちていた。
シーリングファン/照明器(National)リモコン(マイコン故障)診察7
外部にプルアップ抵抗はなく、内蔵プルアップが壊れているか、GND側へリークしているようだ。

正常なK2の信号
シーリングファン/照明器(National)リモコン(マイコン故障)診察8

⑤K3の配線パターンを辿ったが、他の配線と接触するような箇所は認められなかった。導通チェックでもリークは無かった。マイコンの内部で異常が起きていると判断した。

⑥このような場合は、外部でプルアップしてやると救われるケースがあるので、今回も試してみた。5kΩでVddにプルアップしてやるとVddの2/3くらいまで電位が上がって、誤動作は治まった。10kΩではVddの1/2くらいになり、誤動作が再現したりしなかったり不安定な状況になった。プルアップ抵抗は5kΩで行くことにした。

5kΩでプルアップしたときのK3の波形
シーリングファン/照明器(National)リモコン(マイコン故障)診察9
K3の配線パターンの近辺で上記のような波形は観測されないので、マイコン内部のリークだと思われる。

⑦5kΩでプルアップした結果、電源電流は0.3mA弱になった。パナソニックのサイトにあったアルカリ電池の容量は以下のとおり。
シーリングファン/照明器(National)リモコン(マイコン故障)診察10
このリモコンは単三を使っているので、140時間×20mA/0.3mA=9333時間=389日もつことになる。これでよいかは依頼者に相談だが、NGなら電源SWを付けるしかない。

4.治療
①ハウジングに干渉せず、付け易いところにプルアップ抵抗を取り付けた。
シーリングファン/照明器(National)リモコン(マイコン故障)診察11

②一日通電し、温度ストレスも与えてみて動作確認したところ、良好であったので修理完了とした。


5.おまけ
①今回はK3を外部プルアップすることで復旧させることができたが、今後マイコンの故障状態が進んでいく可能性がある。突然に全く動かなくなることも考えられる。そうなったらマイコンを換装するしかないが、ファームウェアを開発するにはエンコードルールが判っていなければならない。どうにか動いている今のうちに、エンコードルールを調べておく必要がある。

②リーダー部の波形から、家電協フォーマットであることが判る。

フレームの開始部分(負論理で表示)
シーリングファン/照明器(National)リモコン(マイコン故障)おまけ1

フレームの修了部分(負論理で表示)
シーリングファン/照明器(National)リモコン(マイコン故障)おまけ2

③送信される赤外線信号を 「赤外線リモコンモニタ」 でキャプチャする。特定のボタンを操作することで変化するビット位置を調べることでエンコードルールが見えてくる。

【操作とキャプチャデータ】
k40040B48F48008844C021AEFt[F] 風量1
k40040B48F48008444C021A2Ft[F] 風量2
k40040B48F48008C44C021AAFt[F] 風量3
k40040B48F48008844C021AEFt[F] 風量1

k40040B48F44008844C021A2Ft[F] ゆらぎ入
k40040B48F48008844C021AEFt[F] ゆらぎ切
k40040B48F44008844C021A2Ft[F] ゆらぎ入

k40040B48F48008844C021AEFt[F] タイマー無し
k40040B48F48008844C821A6Ft[F] タイマー1
k40040B48F48008844C421AAFt[F] タイマー2
k40040B48F48008844CC21A2Ft[F] タイマー3
k40040B48F48008844C221ACFt[F] タイマー4
k40040B48F48008844CA21A4Ft[F] タイマー5
k40040B48F48008844C621A8Ft[F] タイマー6
k40040B48F48008844CE21A0Ft[F] タイマー7
k40040B48F48008844C121AFFt[F] タイマー8
k40040B48F48008844C921A7Ft[F] タイマー9
k40040B48F48008844C521ABFt[F] タイマー10
k40040B48F48008844CD21A3Ft[F] タイマー11
k40040B48F48008844C321ADFt[F] タイマー12
k40040B48F48008844C821A6Ft[F] タイマー1
k40040B48F48008844C021AEFt[F] タイマー取消し

k40040B48F44008844C021A2Ft[F] 風向↓
k40040B48F45008844C021A3Ft[F] 風向↑
k40040B48F44008844C021A2Ft[F] 風向↓

k40040B48F4800884CC021A6Ft[F] 停止
k40040B48F4800884CC021A6Ft[F] 停止

k40040B48F48008840CF29ADFt[F] 照明
k40040B48F48008840CF29ADFt[F] 照明


風向↓ ゆらぎ入 風量3 タイマー3
k40040B48F44008C44CC21AAFt[F]
k40040B48F44008C44CC21AAFt[F]

風向↑ ゆらぎ入 風量3 タイマー3
k40040B48F45008C44CC21ABFt[F]
k40040B48F45008C44CC21ABFt[F]

【ビット送信順序】
(先頭ビット)b0 b1 b2 ・・・ b94(最終ビット)

【固定コード】
照明ボタン押下で固定値(0x40040B48F48008840CF29ADF)を送信

停止ボタン押下で固定値(0x40040B48F4800884CC021A6F)を送信
停止ボタン押下によって 風向は↑、ゆらぎは入、風速は0、タイマーはオフ の状態になる

【可変コード】
運転/送信ボタン押下で下記コードを送信

b0-b39:固定値(0x40040b48f4)

b40-b41:ゆらぎ(切=10、入=01)

b42:固定値(0)

b43:風向(↓=0、↑=1)

b44-b55:固定値(0x008)

b56-b59:風量(1=0x8、2=0x4、3=0xc)

b60-b71:固定値(0x44c)

b72-b5:タイマー(オフ=0x0、1=0x8、2=0x4、3=0xc、4=0x2、5=0xa、6=0x6、7=0xe、8=0x1、9=0x9、10=0x5、11=0xd、12=0x3)

b76-b87:固定値(0x21a)

b88-b95:b16からb87までをバイト単位で排他的論理和を計算した結果

④最後の1バイトの値が変化するのだが特定のボタン操作には結びつかない。そのため、チェックディジットのようなものではないかと考えて、計算方法を試行錯誤した結果、上記の計算方法でピッタリ合った。これで、マイコンが壊れて復旧不可能になった場合でも、別のマイコンでの換装が可能になった。

⑤ランダムにリモコンを操作して、チェックディジットを計算した結果は以下のとおり。すべて合っている。
シーリングファン/照明器(National)リモコン(マイコン故障)おまけ3

6.その後
①2日間経って待機時の電源電流を確認したところ、なんと19uAになっていた。マイコン内部のリークが回復しているではないか。再度、温度ストレスを加えてみたが、電流は19uAに留まっていた。

②しかし、いつ再発するか判らないので外部プルアップ抵抗は付けたままにしておく。
  1. 2015/12/06(日) 21:28:21|
  2. 電子・電気修理
  3. | コメント:0

プロフィール

大泉茂幸

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