54:改造の基本方針

Date 2016-8-20 6:13:20 | Topic: 太陽電池を使った無停電電源(サーバー用) 奮闘記

1:電池セットを3組にする
2:3組にすると今までの様にディスクリートで組むには大変なので、制御回路は1チップマイコンにする
3:1チップマイコンには秋月電子の H8/3052Fを使用する
と、ここまでは決まったが、この1チップマイコンがどんな規格か調べてプログラムを作らねばならないが、H8/3052Fなど触ったことも無い。
そもそもアッセンブラーも勉強し直さなければならない。前途多難だがやる価値はある。当分これにかかりっきりになりそう。
まずはH8/3052Fの仕様
メモリー、ROM:512Kバイト RAM:8Kバイト
タイマー、ITU(インテグレイテッド・タイマー・ユニット):16ビット 5チャンネル、WDT(ウォッチ・ドッグ・タイマー)
A/D変換、10ビット分解能 8チャンネル
D/A変換、8ビット分解能 2チャンネル
シリアル、SCI(シリアル・コミュニケーション・インターフェース) 2チャンネル
I/Oポート、最大78ポート
このIC、DRAMが使えたり(リフレッシュ・コントローラーを内臓している)、16Mバイトモードがあったりする。また、IC内部のROM(EEPROM)を書き込むのに高い電圧は必要とせず、セレクトピンを設定し、電源を入れるだけで書き込みモードになり、秋月のソフトではそのソフトにデーターをドラッグオーバーするだけで書きが行える優れものだ。
測定したいデーター、A、B、C、3組の電圧。[サーミスタの電圧(温度測定の為)。CDSの電圧(照度の測定):現在は太陽電池の出力電圧を大きくしたので、使用していない]
このうちサーミスタとCDSは東側の電池を直列にする判断の為ですので、最初から十分な電圧出力のある太陽電池なら直列にする必要は無いので要らない。
ということは8チャンネルあるA/Dコンバーターの5チャンネルを使って、これらを測ることにし、表示用LEDとしてABCの電池で使用中(放電中)の電池を知らせるLED,24V以下(過放電防止)になったら点灯するLED,そして満充電に達したら点灯するLEDをそれぞれの電池用に作る。ということは出力ポートとして9ポートいる。
また、電池をセレクトする(充電と放電)リレー、東側太陽電池を直列にするリレーと合計4つのリレーがいる。つまり4つの出力ポート
それと全部の電池が24V以下になったら補充電する為にSW電源をONにするポートが1つ

CPUの仕様書によると、ポート2,4,5はプルアップMOSのオン・オフ制御が出来るので、リレーの制御にポート5の0から3を使います。
出力ポートで直接リレーを駆動は出来ないので、MOS・FETを介して駆動する。
また、ポート1、2、5、BはLED(10mA)を駆動できるので、ポート1の0から5とポート2の0から2にLEDを直接付け表示させる。
私が使うのはモード7と呼ばれるシングルチップ・アドバンスモードで内臓のROM,RAMだけで動作するモードです。
次にデーターを記録しておく領域だが、RAMを使わずCPUが持っている汎用レジスター(16Bitなら16個もあるが、その内2組で32ビットのスタックポインターとして使うので実質14個)にする。これは演算が簡素化する為。
保存しておくべきデーターは3組の各電池の電圧、サーミスターと照度の電圧、定数としての24V、31V(満充電)、26.5V(それぞれ使用中止電圧、充電中止電圧、補助電源終了電圧)の8個なので、充分余裕がある。
と、ここまでは直に決まったがこれからが大変そう。まずは書き込み回路(といってもピンを設定し、シリアル通信線を配線するだけだが)それとモニタープログラムを入手せねば、
モニタープログラムとは一々ROMに書き込まなくてもいいように、試験したいプログラムをWindowのコンピュータから送り、RAM上で走らせる事が出来るもの。これが無いと作ったプログラム(絶対に一発では動かない)を何度も作り直し、そのたびにCPUのROMに書き込んだら、100回の書き換え制限は直に来る。


This article comes from 錦稜会 KINRYOKAI
https://www.kinryokai.net

The URL for this story is:
https://www.kinryokai.net/article.php?storyid=307