2015年9月12日土曜日

32bit CPU搭載インバータw

「マイナスは黒」と書いてあるのはインダクタが赤に届かなかったので

■追記1■

当初この記事では「ジュールシーフ」と表記していましたが、「電子工作部」で「これはジュールシーフではなくてチョッパ型昇圧インバータ」というご指摘をいただきました。ありがとうございます、訂正致しました。

あと、適当に転がっていた0.5wの太陽電池をつないでみたところ、0.2vから動作を開始し0.6vでフル作動の状態になり、この時の電流は約50mAでした。

また、MacのBluetoothキーボードで使用できなくなったマンガン電池では0.2vまでしっかり電池を絞り尽くしました。そういう意味ではジュールシーフと言えなくもw

■追記2■

もうちょっとマシな制御をして指定した電圧でぴたっと止まるようにした続編はこちらです。

■32bit発信器w■

また無駄遣いをしてしまいました。しかも32bit CPUは単に

#include "mbed.h"
AnalogIn vol(dp4);
PwmOut pwm(dp18);
int main() {
    pwm.period(1.0/20000.0);
 
    while(1) {
        pwm = vol;
        wait(0.1);
    }
}

って書いているだけ。要するに単なるデューティー比可変方形波発振回路、CPUのムダにも程があるw

LPC810の方が向いている(こっちも32bitだけど)規模なのですが、LPC810にはADCがないのでLPC1114FN28を使いました。

■昇圧回路1■

回路は「芸が無いにも限度というものが!」と怒られそうですが、電池の1.2vをPFMで3.3vに昇圧してLPC1114と黄色LEDとインバータ回路の電源に。

HOLTEK社 HT77xxA仕様書より引用

■昇圧回路2■

LPC1114で約20khzのPWMを出力して、チョッパ型インバータ回路を構成するMOSFET 2SK2232をスイッチングしています。L1のところにつながっている電源はVccと書いてありますが、実際には電池のプラス極です。逆流防止ダイオードはショットキーバリヤー1S4、パワーインダクタは68μHの表面実装ものにピンヘッダをハンダ付けしたもの、あとは出力用の電解コンデンサ50v22μF、分圧抵抗1kΩと直列の青色LEDです。ボリュームはアナログ入力につながり、PWMのデューティー比を調整しています。

これ書くのに1時間近くかかった…IC1が立派すぎる

PWMをoff(0%)にしてもほんのわずか青色LEDが点灯して電流が流れますが、これは電池の1.2vが素通りになっているためです。Vfが3v近い青色LEDでも1.2vで点灯しちゃうんですね。

前記の通り手持ちの部品の耐圧が最大40v(1S4)しかないので30vまでしか試していませんが、部品(MOSFET, ダイオード, C1)をもっと高耐圧のものにしてLEDとR3を外せば200vぐらいは余裕で出せます。

■LPC1114fn28への書き込み■

いつも説明を省略していますが、LPC1114fn28への書き込み方法はここ(プログラムをフラッシュに書き込む)が詳しいです。

私はmbedのブラウザIDEからダウンロードしたbinをlpc21ispを使ってLPC1114FN28に送っています。

まずターミナルで ls /dev/tty.usb* を実行してUSBシリアルのドライバ名を表示します。私のところでは /dev/tty.usbmodem24131 でした。
USBシリアルのTXDをdp15, RXDをdp16に接続し、あと3.3vとVcc、GNDとGNDを接続します。なお、USBシリアルによってはTXDではなくTXと表記されている場合もあるのでご注意を。で、mbedでのコンパイルが終わるとバイナリがダウンロードされます。そうしたらLPC1114FN28のdp24をGNDに接続し、dp23をちょいとGNDに接触させて離し、dp24も離します。で、ターミナルで以下のコマンドを実行します。なお、このプログラムでは問題ないですが、dp23/24をGPIO特にDigitalOutやPwmOutとして使っている場合、そのままGNDに接続するとチップを破損します。なので、330-1kΩぐらいの抵抗を通じてGNDに接続すると安全です。
lpc21isp -bin <mbedから落ちた.binファイル> /dev/tty.usbmodem24131  115200 48000
メッセージとSector 1:のあとに「.」がととととと…と表示され、書き込みが行われます。もし表示が「Synchronizing (ESC to abort)..」の先に進まないようなら、もう一度dp23とdp24をGndに落としてみてください。
Now launching the brand new code
lpc21isp version 1.97
File Chopper_LPC1114.bin:
loaded...
image size : 11492
Image size : 11492
Synchronizing (ESC to abort)....... OK
Read bootcode version: 1
7
Read part ID: LPC1114.../102, 32 kiB FLASH / 4 kiB SRAM (0x1A40902B)
Will start programming at Sector 1 if possible, and conclude with Sector 0 to ensure that checksum is written last.
Erasing sector 0 first, to invalidate checksum. OK
Sector 1: ...........................|.........................|.........................|.........................
Sector 2: ...........................|.........................|.........................|.........
Sector 0: ..........................|.........................|.........................|.........................
Download Finished... taking 8 seconds

0 件のコメント:

コメントを投稿