プログラムをインポートします。ファイルのインポートをクリックし、保存してあったVBのプログラムをダブルクリックし、開きます。標準モジュールの下にmodule1ができます。これをダブるクリックするとVBのプログラムが表示されます。押すと自動的にチェックサムを書き換えますので、上書き保存してください。クリックしてください。ファイルをロードすればOKです。Basicのプログラムはここをクリックして下さい。メイン・メニューのダウンロードからも出来ます。ブラウザによっては直接テキストファイルが表示されますが、全コピーし、Module1.basとして保存して下さい。センターをクリック、右側のセキュリティーセンターの設定をクリックすると画像7が表示されますので、マクロの設定をクリックすると画像7のように右側にマクロの設定が表示されますので、警告を表示してすべてのマクロを有効にするにチェックを入れ、OKとOKとクリックし、EXCELの戻ってください。今後はマクロの入った表を開く時には警告が表示されますので、コンテンツを有効にするをクリックしてください。(2回目からは表示が出なくなり、マクロが有効になります。信頼できる物だけですよ。LINUX用のシェルスクリプトを作りました:LINUXが使える人はこちらの方が便利(EXCEL(有料ソフト)が必要ない)。ファイルを置いてください(LINUXは大文字と小文字を区別しますが、.motファイルでもOKです)。ダウンロードしたファイルに実行権限を与えます。いうファイルを作成します。ファイルが存在しないようにしてください。ないと現存のファイルに追記する形で作ってしまいます。LINUX用のシェルスクリプトはここをクリックして下さい。(ダウンロードからも出来ます)蛇足:Windows、エクセルのビジュアルベイシック(VB)用の説明とLinuxのシェルスクリプトの説明の長さの違いがこんなにある。これはEXCELがデフォルトでマクロ(VB)関係が表示されない(VBを使ったウィルス保護の為?)が原因だが、LINUXではダウンロードしたファイルは基本的に実行出来ない(ディレクトリーの設定によるが)ので万が一変なプログラムが知らない内にダウンロードされても、実行出来ないので比較的安全。ウィンドウでVBを使おうとすると設定が多すぎる(仕方ないか?)LINUXでは実行権限を与えるだけだ。コンバーターは日立フォーマットでチェックサムを作る。モニター・プログラムが要求しているのはモトローラー・フォーマットだ。そのせいでチェックサムエラーが出てロード出来ない。調べると日立フォーマットはデーターを足し桁上がりを無視し、2の補数を取った物モトローラーフォーマットはデーターを足し桁上がりを無視し、1の補数を取った物という事が分かった。)つまり、日立フォーマットからチェックサムを取り出し16進数で1を引いてやればモトローラーフォーマットに変更出来る。プログラムを作るが、私が普段使っているLINUXのスクリプトではWINDOWSの人が使えないので、エクセルのビジュアル・ベイシックで作ることにした。エクセルを持っていない人はどうしようもないが、後日オープンオフィスのマクロを勉強して作ろうかな(これは未定)プログラムは完成しているが、テスト後近日中に、ここで発表しますので乞うご期待。追伸:やっぱり省エネでは無いのでワンチップマイコン用に7Vを作るのをやめにし、DCDCコンバーターの出力を5Vに調整し、ワンチップマイコンボードにある5Vの3端子ICの出力をカットした。ヒット)SHARPの太陽電池から出ている線について皆さんは白と黒の線がある時、どちらがプラスだと思いますか?私は白だと思うし、弱電関係の殆どの人が同じように考えるのではないか。コンピューター(弱電の世界)ではアースまたはマイナスは黒である。大電力モーター(強電の世界)ではアースは緑かなでも調べると黒は電源、白は接地側とある。100Vでも2本の線のうち片側は接地してるがこれが白線か!これが問題の元。弱電の慣習とは違うので、皆さん気お付けましょう。私は逆に接続した事があった。ヒット)とその前に、今まで使用していた電池の電解液の写真をとりました。私は専門家ではないので詳しいことはわからないが、明らかにおかしい。過充電の為にこのように黒濁したと思われる。電池ケースの中央部分がわずかに膨れていた。電池上部をグラインダーでカットし構造材が見えるようにしてから、電解液を捨て、圧力をかけた水道水で洗っていたが、いつまでたっても、黒濁した水が流れ出して来た。本来は洗浄して、新たに電解液を作り、再生しようと思ったが、これでは無理(と思われる)と断念した。それでは本題のワンチップマイコンH8/3052を使った制御回路です。写真は実験をしている所。この右側にLEDのアレイを作って実験している。この時はまだリレーをつけていない。青いLEDが2つあるが、これがDCDCコンバーター、一つは電池から7Vを作り秋月のマイコン・ボード用の電源とする。5Vを作ってもいいがボード側を改造するのがめんどい(パターンをカットするだけだが)ので、このようにしている。一つはリレー用の電源。以前は電池から直接供給していたが、場合によっては31V以上になる。リレー自体は持ちこたえるが、触れなくなるほど熱を持つので、DCDCコンバーターで電圧を落とすことにした。電池の最低使用電圧を24Vにしたので、この時DCDCコンバーターからは24Vは出力できない、いろいろ実験して23V位と決めた。リレー自体の動作は問題無い。オンになるまでの時間が長くなると思うが、ミリセック以下の問題だし、リレーのオン時間用に100mSも取ってあるのでいい筈。一つ赤いLEDが点灯しているが、これはマイコンの5Vから点灯している。いうことはマイコンに電源が供給されているかのチェック用に付けたが、DCDCコンバーターにLEDがついているのなら、書き込みモードでオンにしたほうがいい。電源投入直後はワンチップマイコンが初期化されすべてのポートがゼロになる関係で電池関係のLEDがすべて点灯します(東側直列LEDと補助電源用のLEDは1(HIGH)で点灯なので点かない)(醜いときはブラウザの横幅を調整してみて)写真には写っていないが、3組目の電池は130F51ではなく(経済的な理由)90D26Rを直列にした。電流容量に違いがあるが、別々に制御しているし、いろんな関係で種々の判断電圧が異なる事になれば、プログラムで対応できる。現時点ではプログラムに色々なバグが潜んでいると思われるので、RAM上で運用しています。ROM化するのはもう少し後に。バグを出し切ったと思われたらプログラムを公開します。一つ大事な問題、実験中はAC100Vを安定化した電源からマイコンに供給し、多回転ボリュームで3組の電池の電圧を作り実験していました。......と表示が出て、セミコロンが表示されコマンド待ちになりますが(参照:https://www.kinryokai.net/modules/news/article.php?storyid=309)、電池の運用ではこのようにはなりません。原因はいまだに不明なのですが(グランドを疑っているのですが、どう考えてもグランドどうしは繋がっています)ただ以下のようにするとコマンドが入力できます。上でコマンドを打つとエコーバックが出る。(通信できていないときはエコーバックが返ってこないので入力コマンドが表示されないので判別が付く)これで後は同じになります。ヒット)1:今までのバージョンでもリレーは4つ、制作中の物は7つ(補充電用は半導体のゼロクロスSWなので入っていない)。これらの電源は電池から直接供給していましたが、満充電近くになると32Vにもなります(制作中の物は31Vにするつもり、どうも過充電が原因で電池の寿命が2年半しかない)リレーのコイル自体は持つようですが、何せ触れないくらい熱を持ちます。ここも安定化(と言うより電圧を上げない)します。問題は使用を止める電圧は24Vにしていますので、安定化電源を通すとそのドロップがあるので24Vは出ません。​S​t​u​d​i​oというメーカーのP​O​W​0​0​9​0​0​M​/​1​0​6​9​9​0​0​0​3と言う型番)2:最初はデジタルパネルメーター(3つある電池の電圧表示用)に供給する電源は非絶縁タイプのDCDCコンバーターでしたが、グランドが共通になる為、最小桁が3ー4デジットほどバラつきます。2405)に変更しました。写っていませんが銅板の焼け具合から想像出きると思いますし、そもそもリレーソケット側の端子も焼けています。(よく使えてたなー)なので、オムロンのG7J-2A2B-Bの24Vにしました。このリレーは2a2bで切り替えでは無いですがaとbを継ぎ切り替えとして使います。b(ブレーク)側の規格は8Aですが?4:ショートリレーに保護抵抗を直列に入れる。このリレーが働くのは数百ミリ秒ですが、電圧差は数ボルトですが、電池の容量がデカいので(内部抵抗が小さい)のでかなりの電流が流れますので、0.5オームのセメント抵抗を入れます。ヒット)モニタープログラムが手に入ったので、アッセンブラーでプログラムを書いていますが(まだ全然未完成、デバッグ中)モトローラーのSフォーマットに変換するプログラムで躓きました。コンバーター(.absから.motを作成。.motはH8に機械語を書き込む為のSフォーマットと呼ばれるテキストファイル)ただ、デバッグが終了するまではH8/3052にはモニタープログラムを乗せ、プログラムの作成(.MOT)はRAM上に置くように作り、それをモニタープログラムにロードしますが、ここでチェックサムエラーが出てしまい、書き込みが出来ません。調べるとチェックサムにはモトローラー・フォーマットと日立フォーマットがある様で、秋月のコンバーターは日立フォーマットでチェックサムを作り、モニター・プログラムが要求しているのはモトローラー・フォーマットです。これが問題でチェックサム・エラーが出て、書き込みが出来ないので、モトローラー・フォーマットのチェックサムを作るプログラムを探しました。http://www.vector.co.jp/download/file/other/h8/fh343170.htmlにそのプログラムがあります。(作者の福田さんに感謝)ただ一つだけ問題があります。それは私が使用しているWindows7は64ビットです。このプログラムはDOS窓にも対応していますが、32ビッットです。7に移してデバッグをしています。いうことはリンカーには対応していません。我々が作る(多分)プログラムの殆どがリンカーを使わなくてもいいと思われますし、私が作るプログラムもリンカーは使用しないので問題ありません。http://www.ohmsha.co.jp/data/link/4-274-06604-5/index.htmにありました。ダウンロードし、解凍すると二つのフォルダーとreadme.txtがあります。monitorフォルダーの中にmon3052r25.motがありますので、それが3052用のモニタープログラムです。ちなみにgccフォルダーにあるh8300-binutils-2.13.2.1-gcc-3.2.3-newlib-1.11.0-bin.exeは素のWindows上で動くGCCクロスコンパイラらしいのですが、Windows7プロフェッショナルではインストールできませんでした。XP用だと思われます。開発ソフトに入っているROMライターソフトをインストールしますが、方法は秋月の説明書を見てインストールしてください。ググれば簡単にダウンロードできるWEBが見つかります。設定ですが、プログラムを走らせると左の画面が表示されますので、シリアルを選び、ポートを選んでください。Converter使っていますのでそれを選んでいます。ゼロにして様子を見ます。して保存をすると次回からはその設定がデフォルトで反映します。55:書き込み回路の製作で作ったもののスイッチを書き込み側ににして電源を供給します。走らせると、左記のようなウィンドウが表示されますのでデバイス、通信ポート、通信スピードを選び、mon3052r25.motをドラッグし、このウィンドウ上で放すと(ドラッグオ-バー)書き込みが始まり、終わるとその旨の表示が出ます。これで、CPUにモニタープログラムがインストールされた筈です。走らせておいて、一度ワンチップCPUの電源をオフにし、スイッチをモード7側にして電源を供給すれば、ターミナルのウィンドウ上に画像のような表示が出ればOKです。入力すると簡単なhelpが表示されます。モニターの使い方はhttp://tokyo-ct.net/usr/kosaka/for_students/H8/akih83048fonemon/akih83048mon5A.htmlやhttp://tokyo-ct.net/usr/kosaka/for_students/H8/akih83048fonemon/akih83048mon5B.htmlやhttp://tokyo-ct.net/usr/kosaka/for_students/H8/akih83048fonemon/akih83048mon5C.htmlなどが参考になります。最後に私が迷った件ですが、デバッグは変更するためにプログラムをRAMに置きますが、本来作るプログラムはROMに置きます。ROMに置くプログラムのまま転送すると、モニターが自動的にRAMに移してくれるのか、それともデバッグするためのプログラムを最初からRAMに置くように書くのか?と言うことです。これは作成したプログラムはRAMに置くように書かなければならないようです。これはアッセンブラーの.SECTIONのLOCATEで指定を変えるだけなのでそれほど問題はありません。ヒット)早速書き込み回路を作りますがこの時、通常仕様モードであるモード7と兼用出来るようにします。訂正2016-09-16:又しても大嘘を言っていました。FWE(コネクター4の8番ピン)からつながっているスイッチのオープンになっている部分は間違いです。これは5Vに接続しないといけません。(基盤内部で10KΩでプルダウンしてあるので、オープンのままだと、high(1)になりません)上部からの画像はワンチップCPUボードに挿した状態です。裏からの画像に見にくいですが10Pのコネクターがあり、それをCPUボードに挿します。これで電源を入れるとスライドスイッチの位置により書く込みモードかモード7になります。回路では電源はコネクターになっていますが、基板上には無く、橙白と灰白の線の先にあります。回路図ではGRDに接続していない端子はオープンですが、これはCPUボード側でそれぞれの端子がプルアップされているので、この状態でHigh(1)になります。シリアル接続用のD-Sub9ピンのコネクターは太い灰色の線の先にあり、実際はこれにUSB-シリアル変換機を通し、コンピューターのUSB端子に入っています。(今時、シリアルコネクターが付いているコンピューターは無いなー)(見にくい時はブラウザの横幅を調整してください)後に出てくるモニタープログラムを書き込んで、Window機のターミナルを立ち上げておいて、スライド・スイッチをモード7にし、電源を入れるとプログラムのデバッグなどが出来ます。私は参考にしたWEBに二つあるシリアルポートのどちらを使うのかはっきりと書いてあるページが無かったのですが、実験したら書き込みもモード7もポートの1番でした。回路図に接続があるポートです。H8/3052Fを使用すると、ここまでは決まったが、この1チップマイコンがどんな規格か調べてプログラムを作らねばならないが、H8/3052Fなど触ったことも無い。そもそもアッセンブラーも勉強し直さなければならない。前途多難だがやる価値はある。これにかかりっきりになりそう。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個)にする。これは演算が簡素化する為。)の8個なので、充分余裕がある。ここまでは直に決まったがこれからが大変そう。書き込み回路(といってもピンを設定し、シリアル通信線を配線するだけだが)それとモニタープログラムを入手せねば、モニタープログラムとは一々ROMに書き込まなくてもいいように、試験したいプログラムをWindowのコンピュータから送り、RAM上で走らせる事が出来るもの。これが無いと作ったプログラム(絶対に一発では動かない)を何度も作り直し、そのたびにCPUのROMに書き込んだら、100回の書き換え制限は直に来る。ヒット)まずはグラフを見ていただきたい。これは現在(2016-7-26)のロガーのデーターである。グラフから分かるのは、明らかに内部抵抗の上昇により、補充電終了後、あまり時間が立たないのに再度補充電が入っている事である。これは以前なら十分に充電されてから電圧が上ったが、今は内部抵抗が高くなったので、少しの充電で電圧が上がり、補充電終了電圧に達する為である。太陽光で充電時もすぐに電圧が上がり、充電を並列にする電圧に達している。記録を見ると2013年12月25日に交換しているので、約2年半である。私はこれが寿命だとは思わない。25年以上前になるがハイエースのディーゼルの新車を買った時、バッテリーを寒冷地使用の(良くスキーに行く為)し、その時につけたバッテリーが今回と同じ130F51でしたが、10年以上も全然問題なく使用出来、交換したのも悪くなったためでは無く、10年も使っていたから交換したのである。ディーゼル車はエンジンスタートの時にかなりの大電流が(多分100A位)流れるが、今回は常に大体3A位である。それなのに寿命がかなり短い。過充電が問題してるかなー。両電池とも32.1Vに達してもそのままなので、この間に過充電になり、寿命を縮めたのではないかなー。これではまずいので、電池を交換することにした。電池は変えるが、その前に過充電防止を考えねば。ヒット)現在の電池は2013年に12月に交換したものですが(約二年半使用)経年変化で内部抵抗が高くなってきているようです。いうのも、このところ天気が悪く(梅雨だから当たり前、今年は空梅雨で雨はあまり降らない(東京)ので、水不足気味ですが、太陽は出ていない日が多い)ので、補充電がショッチュウ入ります。そこで気がついたのですが前は補充電が入って、数時間して補充電が切れたのですが、今は10分位で補充電をストップしてしまいます。これは電池の内部抵抗が増えたので、少しの充電で設定電圧に達し、ストップするようです。電池はまだ使えそうなので、設定電圧を変更し、対処しようと思います。後日、この項にその結果を追記します。本日充電終了電圧を変更しました。ヒット)近頃常に気になっていることがある。それはこのシステム太陽さえ出れば家庭用の電源を使わないのでいいのだが、経済的にはよろしくない。いうのは家庭用の太陽電池の発電はなるべく売った方が得をするのである。下記は2016年5月の我が家の電気代である。約倍ほども違うのである。いうことはコンピューターの電池に供給するのではなく、売った方が得をする。電池がなくなるので、家庭用電源から充電をする。停電になってもいいように、フローティング充電という方法で充電すれば、電池は常にほぼ100%の残がある事になるので2日間位は持つと思う。どれ位得をするか、あくまで目安だが(補充電を考えていない)我が家のサーバーはルーターやHUB等全部入れて2.5A+である。700円つまり、1ヶ月約700円の儲けになるのだ。うーん、そこそこの金額だな追記:この月は特別、普段は売電料より、使用料のほうが多い。ヒット)47:でデーターのリストがあるが、新しくページを作ることにした。上のデーターオフセットがおかしくなっている。真夜中で太陽が無いのに充電している!!!調べねば。2015年10月28日から11月20日までのデーターこのデーターは天気が悪かったので、補充電が何度も入っている。10月29日までは前回と同じで、夜でも太陽電池の充電電流があるが、その後はなくなっている。これは絶対計測に使用しているオペアンプのオフセットがずれた為だが、その理由は今もって解らない。これほどオフセットがズレる程の温度変化や電圧変化は無い。ヒット)近頃太陽が出て照度が充分あるのに東側の太陽電池が直列にならない。抵抗値が経年変化で変化したのかと思い、半固定の可変抵抗器で調節したが、すぐに再度調整が必要になった。おかしい、CDSがダメになったのかと思ったが、その時、日中で暑いので屋根には登らず、夕方やろうと思っていたが、寄る年波でそれを忘れ、今日(実は西日本に台風が接近中)雨を合間を見て屋根に登って驚いた。取り付けたあるはずの容器(タッパウェア状のプラスチック容器)が無い。見ると太陽電池モジュールの下に転がっていた。ここに容器の写真がある理由:プラスチックが経年変化でボロボロにもろくなり、取り付けビスから外れていた、ケースを触ると、ボロボロと分解する。教訓:屋外の直射日光の当たるところにプラスチック・ケースを設置してはいけない。いう訳でこのケースをアルミと曇りガラスで作ることにした。出来たらここで公開します。昔は家の隅に割れたガラスの破片がよく転がっていたが、今は見ないなー。小さな曇りがラスを買うのもなー?参考までに壊れたケースに入っていたCDSの写真。左上が比較の為に置いた新品のCDS。