FC2ブログ

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

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

トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)

【前振り】
この記事も、PICで構成するカウンタを設計するときの留意事項の話だ。

ゲート制御機能が付いたカウンタはTMR1で、TMR0のオーバフローでTMR1のゲートを制御できる。しかし、カウンタの動作速度はTMR0の方が3倍も早い。そのため、カウントはTMR0で行い、ゲートタイムの計測にTMR1を使いたい。そうすると、ゲートタイムの満了はTMR1の割り込みで拾い、ソフト処理でTMR0のカウント動作を止めるやり方になる。

このときに割り込みレイテンシが気になる。割り込みレイテンシは短くても長くても構わないが、一定でなければならない。割り込みレイテンシが変動するとゲートタイムが変動することになる。

割込みレイテンシが変動するか否かが今回の話題である。


【調査】
12F1822のデータシートでは、INTピン割り込みと内部割り込みともに、1サイクル命令と2サイクル命令とで割り込みレイテンシは同じであることが明記されている。
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)1822でINTピン割込みのレイテンシは変わらない
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)1822で内部割込みのレイテンシは変わらない

16F18313のデータシートでは、INTピン割り込みは1サイクル命令と2サイクル命令とで割り込みレイテンシは同じであることが明記されている。
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)313でINTピン割込みのレイテンシは変わらない

しかし、内部割り込みについては1サイクル命令の割り込みレイテンシは説明されているが、2サイクル命令の割り込みレイテンシは説明が無い。同じであるか異なるのかの記載も無い。

トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)313で内部割込みのレイテンシは2サイクル命令での記述が無い

と言うことは「異なる」から記載していないのかと勘ぐってしまう。

そのため、実機で動作確認することにした。


【確認方法】
1サイクル命令を実行中、及び2サイクル命令を実行中にTMR1割込みを発生させて割り込みレイテンシを実測する。

測定に使ったプログラムは以下の通り。
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)割り込みベクタ
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)初期設定
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)メインnop

RA4のピン出力をオシロで観察し、H期間を測定する。

TMR1割込みが発生するタイミングが1サイクル命令、2サイクル命令の1サイクル目、2サイクル命令の2サイクル目になるように命令の並びを変えて測定する。

1サイクル命令の場合は、全てnop命令にする。これは上記のソースコードの通り。

2サイクル命令の場合は、goto命令にする。
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)メインgoto

1サイクル目と2サイクル目のどちらに当てるかは先頭にnop命令を1個入れることで1Tcyだけタイミングをすらせる。
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)メインnop+goto

【確認結果】
1サイクル命令のとき
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)nop

2サイクル命令のとき、どちらが1サイクル目か2サイクル目か判らないが以下となった。
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)goto
トイラジ用キャリア周波数カウンタ製作(ゲート制御の実装検討)nop_goto

1サイクル命令、2サイクル命令の1サイクル目、2サイクル命令の2サイクル目のすべてで割り込みレイテンシは同じだった。メデタシメデタシ。

【3サイクル命令の考慮】
命令の実行サイクル数が3サイクルになる場合は割り込みレイテンシは1Tcy増加する。

そのようになり得る命令はdecfsz、incfsz、btfss、btfscの4つがあり、参照するレジスタが間接アドレスで、且つプログラムフラッシュを指している場合である。このような使い方をするシーンが想像できないが、カウント動作中に走るルートにそれを書いてはならない。
スポンサーサイト



  1. 2020/06/04(木) 09:54:32|
  2. 製作記事
  3. | コメント:0

トイラジ用キャリア周波数カウンタ製作(AN592の実装検討)

【前振り】
PICで構成するカウンタの製作事例はネットに沢山紹介されているが、PICならではの工夫があって、プリスケの内部値を読み取る方法だ。

PICではTMR0のプリスケの内部値をSFRとしては読み込めないので、カウンタとしての分解能はプリスケール値になってしまう。分解能を1サイクルまで上げるにはプリスケの内部値を読み出すことが必須になる。

そのやり方はAN592で下記の回路が示されている。

トイラジ用キャリア周波数カウンタ製作AN592回路図
・RA2を入力モードに設定して、T0CKIでカウントを実行する。

・ゲートタイムが満了したらRA2を出力モードにして、T0CKIの入力を固定する。

・RA2からダミーパルスを与えて、TMR0の変化を検査する。

・TMR0の値が進むまでに与えたダミーパルスの数の補数がプリスケの内部値だった値である。

このやり方では2つの問題がある。

・信号源から抵抗を介してT0CKIに入力する上に、RA2の入力容量が加わるので、動作可能な上限周波数に悪影響がある。IOピンの入力容量は5pF(16F18313のTyp値)であり、その2倍の10pFと470Ωとのロールオフ周波数は33MHz程度になる。入力容量の最大値は50pFもあり、最悪値設計では3.3MHzになってしまう。

・ダミーパルスを与えるためのポートが必要になる。

そこで、抵抗を使わない、且つ、必要なポートピンを増やさない方法を考えた。特に8ピンPICではポートに余裕が無いので、ポート数を節約しなければ実現できない。


【設計】
ターゲットデバイスは16F18313で、TMR0が進むまでダミーパルスを与えるやり方は同じ。

プリスケの内部値はTMR0Lへの書き込みの他に、T0CON0とT0CON1の書き込みでもクリアされてしまう。TMR0の構成を替えちゃダメってことだ。

そこで閃いたのがPPS機能を使ってクロックソースを切り替える方法だ。
トイラジ用キャリア周波数カウンタ製作(LCD接続)回路図

・PPS機能によりT0CKIをRA2に割り当てて、RFアンプからの信号をカウントする。

・ゲートタイムが満了したら、RA2をアナログ設定する。T0CKIは0に固定される。

・PPS機能によりT0CKIを一旦RA3に割り当てて、RA2に戻す。この操作で1個のダミーパルスがT0CKIに与えられる。

・TMR0の値が進むまでに与えたダミーパルスの数の補数がプリスケの内部値だった値である。


【評価】
PPSでT0CKIのピンを変えてもプリスケの内部値がクリアされないことを実機動作で確認した。

確認に使ったソースコードは以下の通り。
トイラジ用キャリア周波数カウンタ製作プリスケ値読み込み検証ソースコード

これを実行して取得したデバグログは以下となった。

0000-0000000000
0000-0000000000
0001-0101010101
0101-0101010101
0101-0102020202
0202-0202020202
0202-0202020303
0303-0303030303
0303-0303030303
0404-0404040404
0404-0404040404
0404-0505050505
0505-0505050505
0505-0505060606
0606-0606060606
0606-0606060607
0707-0707070707

PPSの設定変更前後でプリスケの内部値は連続性があり、1:16にプリスケされていることが確認できた。メデタシメデタシ。

この手法はこの一連の記事の検討テーマである 「断続するキャリアのカウント」 には利用できない。その方式上、カウント値の評価周期(10us)毎にTMR0の動作を止められないからだ。

しかし、フツウのカウンタとして設計するのには有効なやり方だ。
  1. 2020/06/01(月) 19:40:01|
  2. 製作記事
  3. | コメント:0

トイラジ用キャリア周波数カウンタ製作(LCD表示)の改善

【前振り】
トイラジ用キャリア周波数カウンタ製作(の検討) は使い勝手を含めて実用を目指した改善を行った。

【改善点】
①20回測定を行い、最もゲート時間が長かった測定データを採用する。キャリアの継続時間が変動する場合に分解能の良い測定結果を表示できる。

②アナログ式ラジコンやマイコンのクロック周波数の測定などではゲート時間が十分とれるので、ゲート時間の最大値を20msとする。ゲートタイムが20mSのときの分解能は0.1kHzとなる。

③周波数の表示をkHz単位で5桁とし、LCDの1行目に表示する。

④分解能を表現するため、ゲート時間を10us単位で4桁とし、LCDの2行目に表示する。

⑤数値を読み取り易くするため、表示を更新後は500ms待つ。

⑥RF入力の有無を表示する。

【実装画面】
トイラジ用キャリア周波数カウンタ製作(LCD表示)表示様式1
トイラジ用キャリア周波数カウンタ製作(LCD表示)表示様式2

【評価】
カウントのやり方とLCDへの表示はほぼ実用的になってきた。

未対応の課題は以下のとおり。

・外部クリスタルの実装

・電池1本からの電源昇圧

・電源制御


【資料】
資料の一式は ここから ダウンロードできる。

プロジェクトは RC_COUNTER_18313.X
  1. 2020/05/08(金) 15:37:52|
  2. 製作記事
  3. | コメント:0

トイラジ用キャリア周波数カウンタ製作(LCD表示)

【前振り】
トイラジ用キャリア周波数カウンタ製作(の検討) を始めたのだが、バックログに数10年も溜まっていた案件で、その必要性は相当低いということを意味している。どんなものを作るのか目標も曖昧で、取り敢えず表示器を付けてみるとイメージが湧くかなと。

【検討】
①分解能が数10kHzしかないので、例えば27MHz帯では「27.14[MHz]」であり、4桁あればよい。

②表示器は7セグLEDかLCDかの選択がある。

・7セグLEDをダイナミック点灯させるには50mAくらい用意しないといけない。しかし、電源電圧は低くできるので、電池2本での運用が可能だ。

・7セグLEDの場合は、7セグデコーダと桁ドライバーが必要になって、大袈裟な構成になる。

・OLEDがAliで安く出回っているが、グラフィックなのでフォントを用意しないといけない。数字だけならプログラムを含めて2kワードに収まるとは思うが。。。

・LCDは秋月のAQM0802Aがあるが、小さいのに高い。バックライトが無いので視認性が悪い。

どうしたものか思案したが、今回はAQM0802Aを使うことにした。

③AQM0802Aの電源電圧は3Vからなので電池2本での運用は無理だ。昇圧するのであれば、電池1本の運用で5Vに昇圧し、RFアンプは5V、PICとLCDは3.3Vで動かすのがよい。但し、この対応は今回は行わない。

④前回の記事では12F1572をターゲットにしていたが、12F1572は外部クリスタルが使えないので、今回から16F18313をターゲットとする。

⑤回路図
トイラジ用キャリア周波数カウンタ製作(LCD接続)回路図
PICとLCDとの配線のみを表示している。その他の配線はAQM0802Aのデータシートを参照。

⑥実装
トイラジ用キャリア周波数カウンタ製作実装
トイラジ用キャリア周波数カウンタ製作LCD表示

【評価】
①上記の画像ではLCDに5桁表示されているが、実際には10kHz以下の桁は一定しない。このままの仕様でも、有効桁位置が判って良いのではないかと思う。

②キャリアが連続していても2msでカウントを終了して周波数を計算している。このときの分解能は1kHzとなる。アナログ式ラジコンを測ってみると、1kHzの桁が揺れ動いていて設計通りに動作している。

③現在は内部OSCを使って実験しているので、温度による測定誤差が大きい。ドライヤーで温めるとすぐに数%も変動する。分解能が数10kHzとしても、実用に供するには外部クリスタルが必須だ。ここで初めて知ったが、1572は外部クリスタル用の発振回路が内蔵されていない。それで、今回は18313を使っていて、外部クリスタルを使うか内蔵オシレータを使うかを宣言できるようにしている。

【資料】
資料の一式は ここから ダウンロードできる。

プロジェクトは RC_COUNTER_18313.X
  1. 2020/05/06(水) 21:18:41|
  2. 製作記事
  3. | コメント:0

トイラジ用キャリア周波数カウンタ製作(2SC3110でRFアンプ)

【前振り】
先般、 トイラジ用キャリア周波数カウンタ製作(の検討) で使った BGA420のRFアンプ を紹介した。

しかし、BGA420は比較的高価なので、必要な帯域の範囲で廉価なデバイス(2SC3110)でやってみた。

【設計】
①帯域は0~100MHzで、トイラジの電波を受けて、PICのT0CKIの入力レベルにまで増幅する。

②T0CKIの入力レベルは、Vdd=3V、ポート入力レベルがTTLの設定で、Vil=0.45、Voh=1.55Vである。

③性能の良いデバイスを使って、オーソドックスな2段カスケードにする。

デバイスは 2SC3110 fT=4.5GHz。価格は20個200円(2020年秋月)。

④回路図と配線図
トイラジ用キャリア周波数カウンタ製作(2SC3110カスケードRFプリアンプ)回路図
トイラジ用キャリア周波数カウンタ製作(2SC3110カスケードRFプリアンプ)配線図1
トイラジ用キャリア周波数カウンタ製作(2SC3110カスケードRFプリアンプ)配線図2

⑤実装
トイラジ用キャリア周波数カウンタ製作(2SC3110カスケードRFプリアンプ)基板1
トイラジ用キャリア周波数カウンタ製作(2SC3110カスケードRFプリアンプ)基板2

【評価】
トイラジコンのコントローラのアンテナから5cm程度の位置でT0CKI入力(TTLレベル)に十分な電圧レベルが得られた。
トイラジ用キャリア周波数カウンタ製作(2SC3110RFアンプ)使用状況

T0CKIの信号波形
トイラジ用キャリア周波数カウンタ製作(2SC3110カスケードRFプリアンプ)出力波形
電源電圧をPICと共通にしているので大きな出力振幅を得るのは難しく、かなり歪んでいるが周波数カウンタの入力としては問題ない。

RF関連の測定器が無いので、取り敢えずディップメーターで20~105MHzを入力してみたが、利得の変化は感じられなかった。レガシーバンドのトイラジ用としてはOKだと思う。

消費電流は3Vで3.3mAだった。

【資料】
資料の一式は ここから ダウンロードできる。
  1. 2020/05/03(日) 09:30:05|
  2. 製作記事
  3. | コメント:0

トイラジ用キャリア周波数カウンタ製作(BGA420でRFアンプ)

【前振り】
先般の トイラジ用キャリア周波数カウンタ製作(の検討) で使った BGA420のRFアンプ を紹介する。

【設計】
①帯域は0~100MHzで、トイラジの電波を受けて、PICのT0CKIの入力レベルにまで増幅する。

②T0CKIの入力レベルは、Vdd=3V、ポート入力レベルがTTLの設定で、Vil=0.45、Voh=1.55Vである。

③性能の良いデバイスを使って、オーソドックスな2段カスケードにする。

1段目は BGA420 100MHzで電力利得が19dB、1.8GHzでも13dBある。価格は@29円(2019年AliExres)だった。

2段目は 2SC3136 fT=1.4GHz。これはジャンク箱に合ったものだが購入価格は不明。

④回路図と配線図
トイラジ用キャリア周波数カウンタ製作(BGA420RFプリアンプ)回路図
トイラジ用キャリア周波数カウンタ製作(BGA420RFプリアンプ)配線図

⑤実装
トイラジ用キャリア周波数カウンタ製作(BGA420RFプリアンプ)基板1
トイラジ用キャリア周波数カウンタ製作(BGA420RFプリアンプ)基板2

【評価】
トイラジコンのコントローラのアンテナから5cm程度の位置でT0CKI入力に十分な電圧レベルが得られた。
トイラジ用キャリア周波数カウンタ製作(BGA420RFアンプ)使用状況

T0CKIの信号波形
トイラジ用キャリア周波数カウンタ製作(BGA420RFプリアンプ)出力波形
電源電圧をPICと共通にしているので大きな出力振幅を得るのは難しく、かなり歪んでいるが周波数カウンタの入力としては問題ない。

RF関連の測定器が無いので、取り敢えずディップメーターで20~105MHzを入力してみたが、利得の変化は感じられなかった。レガシーバンドのトイラジ用としてはOKだと思う。

消費電流は3Vで4.6mAだった。

【資料】
資料の一式は ここから ダウンロードできる。
  1. 2020/05/03(日) 08:47:04|
  2. 製作記事
  3. | コメント:0

トイラジ用キャリア周波数カウンタ製作(の検討)

【前振り】
トイラジを診察するときに送信機のキャリア周波数を測りたいときがある。送信機のアンテナにカウンタのアンテナを近付けて測定すると、クリスタルの周波数とはかけ離れた周波数が表示される。しかも、一定しない。

デジタル式ラジコンではキャリアの断続で操作内容を伝えている。フツウのカウンタはキャリアが出ていない期間も含めて一定のゲートタイムでカウントするため、カウント結果がクリスタルの周波数よりもかなり小さくなり、ゲートのタイミングによりカウント結果が違ってくる。

そこで、キャリアが断続していても正しいキャリア周波数が測れるカウンタを作ることが数10年も前からバックログとして温めてきた課題だった。

但し、本記事の目標は、不連続なキャリアの周波数をカウントする方式のフィージビリティスタディとし、実用品の製作は行わない。検討の過程で、分解能には限界がありオシロで波形観測するのとあまり変わらないと思ってきたからだ。


【設計】
①早い話が、キャリアが出ている期間にカウントすればいい訳だ。

②TX2ではキャリアが出ている期間は、標準のタイミング設定では0.5msまたは1.5msである。僕が今までに診たラジコンでは100usの短いものがあった。

③ゲートタイムが100usでは1カウントは10kHzに相当する。周波数計測の分解能は10kHzしか得られないが、トイラジのクリスタルの良否判定には十分だ。

④カウント方法
トイラジ用キャリア周波数カウンタ製作カウント値の評価タイミング
カウンタはフリーランニングの状態にしておく。

10us間でのカウント値の増分を評価し、変化があればキャリアが断続したと認識する。変化がなければキャリアが継続していたと認識する。

キャリアが継続していることが確認できた連続期間でのカウント増分値から周波数を算出する。

例えば、キャリアが100usの期間継続する場合では少なくとも90us間のカウント増分値が獲得できる。周波数は 増分値/90us で求められる。分解能は11kHzとなり、40MHzに対しては0.03%の誤差率になる。

⑤PICでの実装

内蔵のカウンタで最速なのはプリスケ有りのTMR0であり、T0CKIの最小周期[ns]は 20 と (Tcy+40)/n の大きい方になる。nはプリスケール値である。

 n=(Tcy+40)/20=(125+40)/20=8.25

となり、最高動作周波数の50MHzまでカウントするにはプリスケール値は1:16が必要になる。

プリスケール値を1:8にした場合は、最高動作周波数は48.4MHzとなり、40MHzのトイラジ用としては許容範囲であり、ここでは1:8を採用する。

プリスケール値を1:8にすることで、分解能は1/8になり、キャリア継続時間が100usのときは88kHz、1msの場合は8kHzとなる。

50MHzで10usは500サイクルに相当するが、プリスケで1/8になりTMR0のカウント値は高々63になる。TMR0は8ビット動作とする。

T0CKIの入力のデューティサイクルが50%でない場合はカウント可能な上限周波数は低下することになる。この事情は実用品を作るときに考慮することにして、ここでは無視して進める。

カウント増分値の評価周期の10usはTMR1割り込みで生成する。割り込み処理ルーチン内でキャリアの継続性とカウント増分値の評価を行う。

カウント増分値から周波数の算出と外部への表示出力はタスク処理で行う。なお、表示器は設けず、デバグログでの出力に留める。デバグログはシリアルでPCに送って表示する。

測定の精度はFoscの安定性に依存するが、今回の目的は 「断続するキャリアをカウントする方式」 の評価であるので、内蔵オシレータで動作させる。内蔵オシレータの安定度はVddと温度に依存し、事前の実験では短時間でのドリフトは少なく、実験の時間内では分解能による誤差率に対して問題にならない程度だった。

⑥RFアンプ

入力されたRF信号をT0CKIの入力レベルに増幅しレベル変換するためのRFアンプをT0CKIに前置する。なお、信号周波数が比較的高いため、T0CKIの入力レベルはシュミットトリガレベルとせず、RFアンプの出力振幅が少なくて済むTTLレベルとする。


【ハード製作】
回路図
トイラジ用キャリア周波数カウンタ製作回路図

評価基板
トイラジ用キャリア周波数カウンタ製作外観

【ソフト製作】
プロジェクト一式は ここから ダウンロードできる。

プロジェクトは RC_COUNTER_1572.X


【評価】
T0CKI入力波形
トイラジ用キャリア周波数カウンタ製作T0CKI波形

TMR1割り込み処理タイミング
トイラジ用キャリア周波数カウンタ製作割込みタイミング検証
コンパイラが出力したコードが遅くて、当初は割り込み処理時間が割り込み処理周期の10usを超えてしまったが、遅い部分をインラインアセンブラで書き替えることで8us弱に高速化することができた。XC8のbuildで 「有償版では400%の速度にできる」とメッセージが表示されるが、貧乏な僕はインラインアセンブラでの書き換えで対処していくしかない。

ファームウェアのデバグログ
デジタル式(TX2)のカウント結果
トイラジ用キャリア周波数カウンタ製作ログTX2

アナログ式(2トーン+デューティ式)のカウント結果
トイラジ用キャリア周波数カウンタ製作ログ2トーン+デューティ式

デジタル式とアナログ式ともに、20kHz程度の分解能で安定して測定できた。

キャリアが継続している期間でカウントする方式の実用性が確認できた。
  1. 2020/05/01(金) 20:18:57|
  2. 製作記事
  3. | コメント:2

DCDCバックコンバータの変換効率(LM2596)

【前振り】
電源電圧が高い(6V程度)おもちゃで使われるモーターは高電圧低電流の定格となっている。これが壊れたときに、一般模型用の低電圧高電流のモーターで代替しようとすると印加電圧を落とす必要がある。シリーズレギュレータで落とすと損失が多くなり、電源の利用効率が低下するとともに放熱対策も必要になる。そこで、廉価に出回っている非絶縁バックコンバータを利用してみた。

【評価した商品】
DCDCバックコンバータの変換効率(LM2596)商品ページ
僕が買ったとき(2020年1月)は4個218円無料配送だった。

基板サイズは21mm×43mm×15mm、最大定格は24V3Aである。

【評価結果】
下記の回路で、入力6Vを出力3Vに変換したときの入出力波形を観測した。なお、CH2の入力電流は負極性で表示されている。
DCDCバックコンバータの変換効率(LM2596)測定図

入力6V出力1.5V0.5Aのとき
DCDCバックコンバータの変換効率(LM2596)観測入力6V出力1.5V0.5A
入力6V×0.2A=1.2W 出力1.5V×0.5A=0.75W ρ=0.75W/1.2W=0.63

入力6V出力1.5V1.0Aのとき
DCDCバックコンバータの変換効率(LM2596)観測入力6V出力1.5V1A
入力6V×0.5A=3.0W 出力1.5V×1.0A=1.5W ρ=1.5W/3.0W=0.5
バックコンバータでの損失は1.5Wであるが、シリーズレギュレータを使用した場合のレギュレータでの損失は4.5Wにもなる。

入力6V出力3V0.5Aのとき
DCDCバックコンバータの変換効率(LM2596)観測入力6V出力3V0.5A
入力6V×0.4A=2.4W 出力3V×0.5A=1.5W ρ=1.5W/2.4W=0.63

入力6V出力3V1.0Aのとき
DCDCバックコンバータの変換効率(LM2596)観測入力6V出力3V1A
入力6V×0.8A=4.8W 出力3V×1.0A=3.0W ρ=3.0W/4.8W=0.63

入力12V出力3V0.5Aのとき
DCDCバックコンバータの変換効率(LM2596)観測入力12V出力3V0.5A
入力12V×0.2A=2.4W 出力3V×0.5A=1.5W ρ=1.5W/2.4W=0.63

入力12V出力3V1.0Aのとき
DCDCバックコンバータの変換効率(LM2596)観測入力12V出力3V1A
入力12V×0.4A=4.8W 出力3V×1.0A=3.0W ρ=3.0W/4.8W=0.63

リプルが多めで、周波数が低いためサイズがデカい。
どうしても定格の違うモーターで交換せざるを得ないときには、観測した入出力の条件では使えるかなと思う。
  1. 2020/04/13(月) 12:15:47|
  2. 製作記事
  3. | コメント:0

DCDCバックコンバータの変換効率(MP2307)

【前振り】
電源電圧が高い(6V程度)おもちゃで使われるモーターは高電圧低電流の定格となっている。これが壊れたときに、一般模型用の低電圧高電流のモーターで代替しようとすると印加電圧を落とす必要がある。シリーズレギュレータで落とすと損失が多くなり、電源の利用効率が低下するとともに放熱対策も必要になる。そこで、廉価に出回っている非絶縁バックコンバータを利用してみた。

【評価した商品】
DCDCバックコンバータの変換効率(MP2307)商品ページ
僕が買ったとき(2020年1月)は5個144円無料配送だった。

基板サイズは11mm×18mm×5mmの超小型でありながら、最大定格は23V3Aと商品ページには掲載されていた。ほんまかいな。

【評価結果】
下記の回路で、入力6Vを出力3Vに変換したときの入出力波形を観測した。なお、CH2の入力電流は負極性で表示されている。
DCDCバックコンバータの変換効率(MP2307)測定図

入力6V出力3V0.5Aのとき
DCDCバックコンバータの変換効率(MP2307)観測0.5A
入力電流は0.3Aで、変換効率は83%、コンバータの消費電力は0.3Wとなった。
シリーズレギュレータ使用の場合はレギュレータの消費電力は1.5Wになる。

入力6V出力3V1.0Aのとき
DCDCバックコンバータの変換効率(MP2307)観測1A
入力電流は0.7Aで、変換効率は71%、コンバータの消費電力は1.2Wとなった。
シリーズレギュレータ使用の場合はレギュレータの消費電力は3.0Wになる。

出力電圧/入力電圧が1/2程度では安定動作するが、外れるとリプルが大きくなったり変換効率が低下する。
どうしても定格の違うモーターで交換せざるを得ないときには、観測した入出力の条件では使えるかなと思う。
  1. 2020/04/12(日) 19:57:22|
  2. 製作記事
  3. | コメント:0

「サーフボーイのクローンリモコン」新版の頒布

当おもちゃ病院で頒布している「サーフボーイ(大東電機工業スライブ)のクローンリモコン」について、新版に切り替える。

今まではダイソーの「ブザー付きLEDライト」を改造して作っていたが、製作作業の省力化のため、今後は市販の学習リモコン(下記)を利用することにした。

「サーフボーイのクローンリモコン」新版の頒布外観

市販品ではあるが、商品には保証書等の添付は無く、当方も頒布品の品質保証はしないしクレームにも対応しない。ジャンク品として現物を提供するのみだ。


【使い方】

・サーフボーイの電源の入り/切りは、「POWER」または「CH」のボタンを押す。

・サーフボーイの動作モードの切り替えは、「VOL」または「AV」のボタンを押す。

それぞれの機能に3個のボタンを割り当てている。リモコンの故障はボタンの接触不良が多く、ボタンは消耗品のようなもの。それが3個ずつあるので3倍の寿命が期待できる(かも知れない)。


【重要な注意事項】

この学習リモコンは、 「「サーフボーイのクローンリモコン」新版の頒布電源ボタン POWER」 と 「「サーフボーイのクローンリモコン」新版の頒布CHアップボタン CHアップ」 を同時に3秒間押すと学習モードに遷移する。そのまま操作を続けると、記憶していたサーフボーイのリモコンコードを上書きしてしまう恐れがある。

そのため、 「「サーフボーイのクローンリモコン」新版の頒布電源ボタン POWER」 と 「「サーフボーイのクローンリモコン」新版の頒布CHアップボタン CHアップ」 を同時に3秒間以上押してしまった場合は、操作をやめて電池を一旦外して入れ直すこと。

(参考)学習操作の説明
「サーフボーイのクローンリモコン」新版の頒布学習リモコン操作説明


【頒布について】

①頒布希望者は当おもちゃ病院へ メールにて申し出る こと。

②販売目的や商用利用ではないこと、購入者個人での使用に限る。且つ、当ブログの善良な読者であること。これらに反すると当方で判断した場合は頒布をお断りする。

③本クローンリモコンはジャンク品扱いとし、動作保証および品質保証はしない。また、本クローンリモコンを使用した結果、生じた損害についても一切の責を負わない。

④頒布代金と支払方法、および配送手段についてはメールで案内する。

⑤頒布希望者から頒布代金を口座振り込みし、入金確認後に送付する。指定期日までに入金確認ができなかった場合や入金額が不足の場合は頒布を取りやめる。如何なる場合も入金後の返金はしない。

⑥配送での不達や破損等の不具合については、当方は一切責任を負わない。

⑦本クローンリモコンに関して大東電機工業様へ問い合わせや苦情の申告等を一切行わないこと。

⑧数量に限りがあるので、頒布希望に応じられない場合がある。

⑨本クローンリモコンの仕様は予告なく変更することがある。
  1. 2020/02/18(火) 16:30:58|
  2. 製作記事
  3. | コメント:0

tiny13AのBOD解除のコード

【前振り】
2年近く前に 「ATtiny13Aのパワーダウン実験」 の記事を書いたのだが、最近になって記事内容に間違いがあることに気が付いたので、懴悔し訂正する。

【間違い】
下記の記述に間違いがあった。

「中身が定かでないライブラリの使用は避けて、展開が決まっているCの構文 とインラインアセンブラで書くのが確実だ。」

これは、BOD解除の手続きは「時間制限手順」を守らなければならないので、実行ステップが変わらないようにする方法を考えたことなのだが、実際にやってみると同じCソースでも場合によっては展開が異なることが判った。「結果が同じであれば展開はコンパイラの勝手」と言うことだ。

【事例】
BOD解除を main() に書いた場合
tiny13AのBOD無効化mainソース
tiny13AのBOD無効化main展開
BODCRへの設定値を予めワークレジスタへ設定しておいて、一気にBODCRへロードしているため、BODCRの更新に掛かるステップ数が最少で済んでいる。

BOD解除を 別の関数 に書いた場合
tiny13AのBOD無効化sleepソース
tiny13AのBOD無効化sleep展開
ワークレジスタへの定数設定とBODCRへのロードを交互に繰り返すため、BODCRの更新にステップ数が嵩んでいる。

この場合でも「時間制限手順」はギリギリで守られているが、他にどんな展開をされるのか判らないので、もし、BOD解除が効かなくなったらコンパイラの展開をチェックする必要がある。

このように同じCソースでもコンパイラの気持ち次第で展開が変わることが判ったので、「時間制限手順」を確実に守るためには下記のように、すべてインラインアセンブラで書いておくと良いと思う。
tiny13AのBOD無効化asmソース
tiny13AのBOD無効化asm展開
このように書いておけば、コンパイラの気持ちに左右されない。
  1. 2019/11/25(月) 16:38:50|
  2. 製作記事
  3. | コメント:0

ATtiny13Aのパワーダウン実験

最近になってATtiny13Aを弄っているのだが、この石のいいところを見付けた。それはパワーダウン時の消費電流が1uA以下になることだ。ボタン電池を前提とした応用には好適だと思う。因みにPIC16Fでは20uA程度、LFタイプでも2uA程度を消費する。XLP設定すると0.2uA程度になる。

ATtiny13Aは電源以外の6ピンともI/Oとして使えるところがPICの8ピンより使い手がある。ATtiny13A以外のAVRはコストパフォーマンスが悪いので敬遠している。

ATtiny13Aの省電力設定はちょっとしたコツが必要だったので忘備録として記事にしておく。

おもちゃへの応用ではSleep時は内蔵モジュールをすべて停止しピン変化割込みでWakeUpすればよいので、パワーダウンモードでSleepさせる。Sleep前にWDTとBODを無効化しておく。

この処理を具体的に書いたものが以下のソースコードだ。

ATtiny13AのSleep実験ソースコード1
ATtiny13AのSleep実験ソースコード2


【処理の流れ】
この処理では、パワーダウンの振る舞いを観察するためにポートをアクセスしているが、パワーダウンさせる目的では必要ない。

①PB1をHにして、WDTとBORを殺して、パワーダウンする。

②このとき消費電流は0.3uAである。

③PB4をLにすると、ピン変化割込みが発生しWakeUpする。

④WDTを生かして、PB1をLにする。BODは自動的に生き返る。

⑤PB3がLになるまでは、約16ms周期でWDT割込みが発生し、その都度PB0が反転する。

⑥このとき消費電流は約0.8mAである。

⑦PB3がLになるとメインループの先頭に戻る。

「ちょっとしたコツ」 とは、レジスタやシステムの状態をを変更するときには変更許可ビットを設定してから規定の命令サイクル以内に目的の操作を行わなければならいという「時間制限手順」を守るということだ。ここではWDTの変更、BODの変更、パワーダウンモードへの移行がそれに当たる。この制約に従うと上記の命令シーケンスが必然となる。

中身が定かでないライブラリの使用は避けて、展開が決まっているCの構文とインラインアセンブラで書くのが確実だ。

実験に使ったプロジェクトは ここから ダウンロードできる。

【後日談】
実は、この記事に掲げたBOD解除のコードは不適切であることが後日判明した。 ここ を参照されたい。
  1. 2018/01/26(金) 20:54:07|
  2. 製作記事
  3. | コメント:0

サーフボーイのクローンリモコン(ジャンク)の頒布

サーフボーイ(大東電機工業スライブ)のクローンリモコンに搭載するファームウェアの開発は ここ で紹介している。このファームウェアはダウンロードして自由に使って貰えばよいのだが、クローンリモコンのハードウェアも含めた製作依頼が当おもちゃ病院へ寄せられるようになってきた。そのため、評価のために試作したものをジャンク品の扱いで希望者に頒布することにした。

(追記1)
本記事の公開から年月が経ち、「今でも頒布しているのか」 との問い合わせをいただくことがある。頒布を終了するときは、本記事にその旨の修正を行うので、それまでは頒布を続けている、と解釈して欲しい。但し、僕が突発的な事故などで、本記事に修正を加えられないこともあり得るので、そのときは御免なさい。

(追記2)
今まではダイソーの「ブザー付きLEDライト」を改造して作っていたが、製作作業の省力化のため、今後は市販の学習リモコンを利用することにした。続き ここを 参照。


1.クローンリモコンについて
【概要】
サーフボーイ(大東電機工業スライブ)用赤外線リモコンのクローンである。

ブザー付LEDライト(ダイソー)を母体にして、中身をPICマイコンで換装している。
サーフボーイクローンリモコン外観
サーフボーイクローンリモコン外観2
サーフボーイクローンリモコンの電池

【赤外線信号のプロトコル】
赤外線信号のプロトコルは、「(埼玉県)東松山おもちゃの病院」様の分析結果に従った。詳細は ここ を参照。

【回路図】
コスト優先で、デバイスは12F509(2016年秋月@50円)を採用している。
サーフボーイクローンリモコン回路図12F509
赤外線LEDの電流制限抵抗は33Ω~68Ωで、飛距離と電池消耗のトレードオフで決める。

12F509はBOR機能が無い。今まで電池電圧低下時のトラブルは発生していないが、より安定な動作を担保するために、BOR機能を持つ12F615(2016年秋月@75円)を採用したものも作った。
サーフボーイクローンリモコン回路図12F615
12F615はGP3に内部プルアップを持たないので、プルアップ抵抗を外付けする必要がある。

【ファームウェア】
・ファームウェアと設計資料は ここから ダウンロードできる。

・デバイス別にプロジェクトを作っている。

・12F509のプロジェクトディレクトリは surfboyTX_509.X
ソースコードは surfboyTX_509.c の単一のソースファイルになっている。

・12F615のプロジェクトディレクトリは surfboyTX_615.X
ソースコードは surfboyTX_615.c の単一のソースファイルになっている。

2.頒布について
①販売目的や商用利用ではないこと、購入者個人での使用に限る。且つ、当ブログの善良な読者であること。これらに反すると当方で判断した場合は頒布をお断りする。

②本クローンリモコンは当おもちゃ病院での評価のために試作したものであり、ジャンク品扱いとし、動作保証および品質保証はしない。また、本クローンリモコンを使用した結果、生じた損害についても一切の責を負わない。

③頒布価格は部品代金と部品調達に要する実費(通販送料等)であり、本記事の執筆時点では325円(送料別)(詳細は設計資料を参照)となっている。頒布価格は仕様変更や調達の時期と調達先によって変動するので、実際の頒布価格は都度問い合わせとする。

④利用可能な宅配業者は以下のとおり。
・日本郵便
・佐川急便

 当おもちゃ病院へ直接来院しての受け取りも可能。

⑤宅配での不達や破損等の不具合については、当方は一切責任を負わない。

⑥頒布希望者から頒布価格と送料の税込み合計額を口座振り込みし、入金確認後に送付する。指定期日までに入金確認ができなかった場合や入金額が不足の場合は頒布を取りやめる。如何なる場合も入金後の返金はしない。

⑦本クローンリモコンは当方で独自に設計したものであり、本クローンリモコンに関して大東電機工業様へ問い合わせや苦情の申告等を一切行わないこと。

⑧頒布希望者は当おもちゃ病院へ メールにて申し出る こと。

⑨数量に限りがあるので、頒布希望に応じられない場合がある。

⑩本クローンリモコンの仕様は予告なく変更することがある。
  1. 2016/12/13(火) 22:06:23|
  2. 製作記事
  3. | コメント:12

100均プラレールの赤外線リモコン化の製作

子ども向けのマイコン工作講座でラジコンカーを作りたいのだが、それをたった半日でやるにはかなり無理がある。そこで、ラジコンはやめて赤外線リモコンにして、送信機と受信機を簡単にすることにした。更に家電品の赤外線リモコンを利用することで、送信機の製作も不要にする。メカを作るのは時間がかかるし、それに没頭すると「マイコン制御」という本来のテーマが疎かになってしまう。それで何か流用できるおもちゃメカが無いだろうかと見回していたら、100均ショップ(ダイソー)でプラレールもどきの電車おもちゃが売られていた。車を操縦する場合はステアリングとドライブの2つのchが必要だが、電車だとドライブだけの1つのchで済むのもよい。
ということで、近隣にある「越谷市科学技術体験センター」で「100均プラレールの赤外線リモコン化」という講座を実施したときのネタを公開する。

100均プラレールの赤外線リモコン化の制作外観

【設計】
(1)制御方式
①PWMでモーターの回転速度を制御する。

②リモコンの操作ボタンから2つ(例えばボリュームアップとボリュームダウン)を選び、一つを前進、もう一つを後退の機能に割り当てる。

③速度制御は3段階とする。前進のボタンを押下すると前進し、押下する毎に前進速度を増していく。3回目の押下で最高速になる。後退のボタンを押下する毎に前進を減速し、3回目の押下で停止する。更に押下すると後退の速度を増していく。

(2)ドライブ回路
HブリッジのドライブをデコーダのPICで直接行い、Hブリッジは4個のトランジスタで構成する。

(3)電源
①100均プラレールは単3電池1本の1.5V電源で設計されているが、さすがに1.5VではPICもHブリッジも動かないので、動力車に空車両を連結し、その空車両にもう1本の電池を積み、3V電源とする。

②電源SWは動力車に元々付いているものを使う。

(4)送信機との整合
①送信機は参加者が持参してくるものを使うので、個々のリモコンのプロトコルを調べて、フォーマットの種類とコード値によりデコーダをカスタマイズする。

②デコーダは予めNEC、家電協、SONY、三菱のフォーマットに対応しておく。出回っているリモコンの殆どは、これらのフォーマットのどれかに該当する。

③これ以外のフォーマットは予測できないので、予備のリモコン送信機をある程度用意しておき、当日は貸与することにした。

④フォーマットとコード値を判定する仕掛け(マイコンシステム)を用意する。

(5)フォーマットとコード値を判定する仕掛け
①マイコンボードで赤外線を受信し、フォーマットの種類とコード値を判定し、シリアルでPCへ送信する。

100均プラレールの赤外線リモコン化の制作モニタ全体

②PC側ではTeraTermで判定結果を表示する。

100均プラレールの赤外線リモコン化の制作モニタ画面

(6)デコーダ
入力は赤外線受信モジュール、出力はHブリッジのドライブ4本なので、8ピンで廉価版の12F509を採用した。

回路図
100均プラレールの赤外線リモコン化の制作回路図

【製作】
基板部品面
100均プラレールの赤外線リモコン化の制作基板1

半田面
100均プラレールの赤外線リモコン化の制作基板2

モーターのパスコン
100均プラレールの赤外線リモコン化の制作パスコン

基板実装
100均プラレールの赤外線リモコン化の制作基板実装

配線完了
100均プラレールの赤外線リモコン化の制作完了

マイコンチップ装着
100均プラレールの赤外線リモコン化の制作チップ

【送信機】
家電品のリモコンを流用するのは良いアイデアなのだが、既製のリモコンのコードを調べるのに赤外線モニタを作るのが面倒との意見が寄せられた。確かに、1台しか作らないのであれば赤外線モニタを作るよりも専用の送信機を作った方が合理的かも知れない。そこで、簡易な赤外線送信機の製作事例を追加した。(2016年8月22日)

①受信機側は日立製テレビデオのリモコンコード対応とし、プロジェク トP-Rail509TV_Hi.X のファームウェアを搭載する。送信機はそのリモコンのクローンとなり、以下の機能コードを送信する。
正転 : チャンネルUP(0x98)
逆転 : チャンネルDOWN(0x18)

②回路図
PICのポートを3本束ねることで、負荷電流をピン単位およびポート単位の最大定格内に収める。
100均プラレールの赤外線リモコン化簡易送信機回路図

③100均のLEDライト+防犯ブザーを母体にして、送信機の回路を組み込んだ。
100均プラレールの赤外線リモコン化簡易送信機母体

元々の基板に付いているタクトSWだけを残し、他の部品はすべて取り外す。COBも取り外したいが無理なので残すが、電気が流れないようにする。
100均プラレールの赤外線リモコン化簡易送信機組付け
待機時の消費電流は1uA以下だった。

④ファームウェアはダウンロードファイルに含まれているので、詳細はソースコードを参照。
受信側のプロジェクトは P-Rail509TV_Hi.X
送信側のプロジェクトは P-Rail509TX_Hi.X

【ダウンロード】
詳細な製作資料と開発したファームウェアは ここから ダウンロードできる。
赤外線モニタのファームウェアは IrMon
受信側のファームウェアと簡易送信機のファームウェアは P-Rail に収められている。メーカー(機能コード値)毎にプロジェクトを作っている。
  1. 2013/07/11(木) 17:51:02|
  2. 製作記事
  3. | コメント:0

ピニオンギア製作

おもちゃの故障原因で、ギアが破損している場合が多い。模型用の市販品が合えば交換できるが、市販品が無い場合は自分で作るしかない。今回はモジュール1.25 10枚のピニオンギアをフライス盤の切削加工で作った。

【フライス盤】
いくら手先の器用な人でも手作業でギアを削り出すのは無理だと思う。最低限の工作機械は必要だ。アマチュア向けの廉価なフライス盤があればよい。
ピニオンギア製作フライス

【ギアカッター】
既製品は高い。揃えるとフライス盤本体より高くつく。おもちゃのギアは殆どがジュラコンなので、折れたドリルや鋼線を削り出して自作すれば費用は掛からない。下の画像はモジュール1.25 10枚用の自作カッターの拡大写真だ。
ピニオンギア製作カッター

下はモジュール1.75 34枚のギアカッターの刃先形状を現物合わせしているところ。
ピニオンギア製作カッター刃型

【加工】
カッターホルダーもホームセンターで安く売られている建築金物を利用して自作した。一枚切ってはインデックスロータリーを1枚分進める。これを10枚分繰り返す。
ピニオンギア製作カッティング

【仕上がり】
モジュール1.25 10枚
ピニオンギア製作出来上がり

モジュール1.75 34枚
ピニオンギア製作出来上がり2
  1. 2008/12/14(日) 07:01:31|
  2. 製作記事
  3. | コメント:0

プロフィール

大泉茂幸

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

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

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

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

カテゴリ

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

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

QRコード

QR