FET駆動波形を作った

3.jpg
PICでDC-DCコンバータ用FETの駆動波形を作った。
周期は100μsでデューティーは5%/10%/20%にしてみた。
出力電圧が低い時には20%で、設定電圧近くまで上がったら5%にした。
その後10%〜5%の可変の方が消費電流が少なくなるので変更した。

ADC読み込み値の平均は取らずヒステリシスを付けた。
しかしスイッチングノイズなどで結構読み込み値が不安定なので、8回の平均を取るように変更した。
PWMを止めた時の端子のレベルが不定だと言うことで、PWM機能そのものを止めることが必要だった。

SCRのトリガは10msごとのタイマ割り込みを数えている。
この割り込み回数カウンタをメインルーチンでチェックして、カウントアップしていないとウォッチドッグがかかる。
勿論メインルーチンでここを通らなくなってもリセットだ。

SCRのゲートトリガ時間を短くすると、ターンオンに失敗することがあった。
SCRにもよるとは思うが、意外に多くのトリガ電流が必要だ。
バイポーラだから仕方がないけど。

モニタ用LEDを付けて、その点滅回数で自己診断表示をしようかと思った。
点滅パターンを1バイトにバイナリ列で入れ、シフトしてキャリーなりボローなりでLEDを点灯させれば簡単だ。
だがこれってMPLABのCでどうやって書くのか?
こういう場合は配列を使いましょうみたいな例はあり、しかしそれだとLEDを点滅させるためだけにRAMを随分使ってしまう。
試しにやってみたらRAM使用率が80%以上になった。
で別の方法で、点滅回数カウンタと、点滅させるための偶数回奇数回判断とを組み合わせた。
これならRAMは殆ど食わない。

こんな記述も見つけた
if((変数 & 0b10000000) == 1)
あとで実験して確かめてみよう。

タイマ0は10msごとの定時割り込み処理に、タイマ1はPWMに使っている。
タイマ2で500μsごとの割り込みを作って、音を出してみようかと思った。
しかしうまく行かなかった。
タイマ1或いはタイマ2割り込み内でポート操作を行うと、メインルーチンで行っているポート操作がおかしくなる。
タイマ2割り込み内でポート操作を行うと、タイマ1で行っているポート操作がおかしくなる。
勿論ポートは全部バラバラだ。

GP0=0 これはGPIO0をLレベルにする命令だが、内部的にはGPIOを読んで→レベルを変化させるためにANDやORを取り→GPIOに書き込むのかなと思った。
そこで割り込み禁止→GP0=0→割り込み許可とやってみたがダメだった。

実験してみると、GPIO端子に1を出力する命令は上手く動作する。

GP0=1でGP0がHレベルになる。
GP1=1でGP1がHレベルになる。

しかしLレベルに戻す方がおかしい。

GP0=0とするとGP0〜GP5まで全てLになる。
GP1=0でも同じようにGP0〜GP5までが全てLになる。

ポートの値が読み返せていないのだと思う。
入力のチェックをすると、確かに読めない。
いったい何が原因なのかと何時間も悩んだあげく、コンパレータ機能をOFFにしなければいけない事が分かった。
コンパレータとは、いわゆるアナログコンパレータでレベル検出が出来る仕掛けだ。
これがデフォルトでON(OFFにするにはレジスタに1を書く必要がある)になっていた。

これで想定どおりの動作となり、タイマー2によるビープ音も出来た。

今回はちゃんと組み立てると言うより、PICでも作れるという事で実験的に組んで動作させただけだ。
ソフトウエアとしては簡単で短いものだし、PICは100円くらいだし、しかしSCRドライブにトランジスタが必要になったりとデバイスが増えた。
回路図とソフトはいずれまとめてページにする予定である。

にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村

この記事へのコメント

  • F&F

    テクトロ脱獄、知りませんでした。
    ファームを見つけられれば面白そうですね。
    LANが付いていたはずなのでシリアル接続は不要なのかな。

    バッテリーは今のところ大丈夫です。
    スペアナのバッテリーと同じものなら予備があったかも。
    違うかな。
    2020年09月27日 13:58
  • JerryBard

    脱獄記事のリンク先→ TDS 1000,2000,3000 BW Hack
    そこの投稿→ July 19, 2017, 02:41:53 pm
    ファームのリンクはまだ生きてますよ~ B-)

    お手持ちの TDS30xxが末尾 無印なら、コミュニケーションモジュールを貸出せますので、一報ください~w
    2020年09月27日 14:15
  • F&F

    リンク、見落としていました。
    ダウンロードしたのであとでやってみます。
    モデルは3012Bです。
    とりあえず帯域拡張がうまく行くかどうか。
    2020年09月27日 14:58
  • JerryBard

    もし 300~600MHzを吹ける SSGお持ちでしたら、拡張前・拡張後の波形など見せて下さい~ B-)
    100MHz方形波でも立上がり 1ns程度なら違いが判るかなぁ?
    2020年09月27日 16:53
  • F&F

    簡単には測ってみましたが、フラットではないですねぇ。
    明日記事を公開しますので少しお待ちください。
    立ち上がりの鋭い矩形波の出せる計測器がないので、正弦波での比較だけになりますけど。
    2020年09月27日 17:08
  • JerryBard

    矩形波だとプローブが標準品 100MHz帯域だとプローブでナマっちゃうかも?ですねぇ~
    0.5GHzプローブって中古でも高いですけど、中華プローブなんてマトモなのかなぁ??
    2020年09月27日 18:01