• 締切済み

H8マイコンで電源停止後にシリアルEEPROMに書き込む

電子工作/マイコン暦3ヶ月の初心者です。 H8/3664を使って、自動車用の車速/距離計を作成しています。 長期間運転しない事が多いため、常時電源ではなくアクセサリー電源を使い、距離などのデータはシリアルEEPROMに保存しています。 先週プロトタイプが完成して早速テストしてみたところ、2つの問題点/改良点が見つかりました。色々調べて試してみたのですが、私の知識ではどうも解決できそうにないのでここで質問させていただきました。 1.現在は、車速が>0Kmから0Kmになった瞬間(車が停止した瞬間)に毎回EEPROMにデータを書き込んでいるが、これでは書き込み限度に達してしまう。これを何とか、「車のエンジン停止を検知した瞬間に1度だけ書き込む」というように改良したい 2.エンジン・スタート時の電圧降下で、H8がリセットされることがある いずれも、常時電源から電源を取っていれば解決できそうなのですが、なるべくアクセサリ電源のみを使って解決したいと考えています。 特に1は、アクセサリ電源でH8とEEPROMが駆動しているため、エンジンが停止すれば当然どちらも即時停止してしまいます。エンジンが切れてから1秒くらいの時間があれば書き込みできそうなのですが・・・。 9Vのバックアップ・バッテリーを利用し、エンジンが切れた(アクセサリ電源が落ちた)瞬間に9Vバッテリーに切り替え、EEPROMへの書き込みが完了した瞬間に9Vバッテリーも切る、というような動作をH8とトランジスタの組み合わせでできそうかな、と思って試してみたのですがうまく行きません。 先輩方のお知恵を拝借いただけると幸いです。どうぞ宜しくお願いします。何ぶん初心者なので具体的にご教授いただけると嬉しいです。

みんなの回答

  • kazusone
  • ベストアンサー率54% (33/61)
回答No.1

ルネサスの以下の資料はご存知でしょうか? 「低電圧検出時のEEPROMバックアップ処理」 http://documentation.renesas.com/jpn/products/mpumcu/apn/rjj06b0114_h8300hap.pdf この機能を実装すれば、お尋ねの問題は解決できると思います。 残念ながら、3664には低電圧検知がありません。3664に固執するか、他品種に変えても良いかご検討ください。 3664で開発を継続するなら、外部に低電圧割り込み回路を追加してAccダウンを知る必要があります。また、Accダウン後EEPROM書き込みに必要な4V/15mA/15msのマイコン電源を維持する回路が必要です。 瞬停対策電源の設計は、参考資料が多数発表されているはずですので、探してみてください。

shin178
質問者

お礼

ありがとうございます。このような資料があることすら知りませんでした。恐縮です。 早速読んでみましたが、やはり正攻法は常時電源を使ってH8を駆動し、ACCの電圧降下時にEEPROMに書き込んでからスタンバイに移行、そして電圧上昇で割り込み起動ということですね。 今回は、常時電源を使わず、ACCのみ接続で、バックアップ電池もしくはキャパシタを使ってACCが切れてからも1秒間だけEEPROM書き込み時間を稼ぐ、というのをしたかったのですが、やはり難しそうですね。 再度検討してみます。ありがとうございました。

関連するQ&A

  • カーナビの常時電源等について

    現在、ナビの常時電源をサブバッテリーから取り、また、スイッチを介して サブバッテリーからACCヒューズに電源を入れエンジン停止時でもメインバッテリーに 負担をかけずにオーディオを楽しめるようにしています。 そこで質問ですが、電圧を表示する車載時計を使っているのですが上記のサブーACC間の スイッチを入れると表示電圧が10V台を表示し警報がなります。 これはどうしてでしょうか。またこれを直す方法について教えてください。 尚、キーをACCかエンジンをかけるとメインバッテリーの正常電圧12V台が表示されます。

  • リンカーンナビゲーターの車速、バッテリー、アクセサリー電源、アースが。。。

    リンカーンナビゲーターの車速、バッテリー、アクセサリー電源、アースがわからなくなりました。。。 詳しい方どなたか訓えてもらえませんか?

  • 常時電源とACC電源とイルミ電源は同じ電流が流れますか?

    私が持っているカーオーディオには常時電源とアクセサリー電源とイルミ電源の三種類がついています。 質問です。この三種類には同じ大きさの電流が流れますか?それともイルミとアクセサリーはデッキがアクセサリーとか夜とかを判断する信号だけが流れますか? このデッキの消費電流は10アンペアです。 バッテリーからのプラス電流(常時電流)は最大10アンペア流れるのは間違い無いと思うのですが。 アクセサリーとイルミにこれだけのアンペア流れるのかなぁ。と疑問に思いました。

  • PIC16F1827のEEPROMへの書込み

    PCM V5.0(PIC用CCS社コンパイラ)を Mplab8.92に組込み、PICkit3を使ってプログラムしています。 PIC16F1827のEEPROMへの書込みがうまくいきません。 RAは入力ポートで固定してあります。 RBは出力ポートでLEDが接続してあります。 テストプログラムは一回のみの動作です。 実機で動作させると RAは固定してあるので当然(4)でLEDが点灯しますが、 実機からCPUを抜き取りMplab上でReadすると EEPROMのアドレス0,1,2は異なるデータであり 動作させるたびに違うデータが書込まれています。 しかし (1) a0=35h (2) a1=a6h (3) a2=93h と定数にすると EEPROMのアドレス0,1,2は正しいデータが 書込まれています。 Q1. a0,a1,a2をポート入力とする場合は CPU自体に何か設定する必要があるのでしょうか? それともプログラムに工夫が必要なのでしょうか? いままで使っていたPIC16F88では このようなことはなかったと思うのですが・・・。 ----- テストプログラム ----- a0 = RA; //(1) write_eeprom (0,a0); a1 = RA; //(2) write_eeprom (1,a1); a2 = RA; //(3) write_eeprom (2,a2); if (a0 == a1 && a1==a2) //(4) RB =255; else RB =0;

  • 常時電源って...

    初めて質問します。 車のETCの電源が買ってすぐ入らなくなり、車屋さんに見てもらったら、アクセサリー電源が安定していないみたいと言われました。 (バッテリーから直接つなぐとちゃんと作動) それで、「常時電源から取るようにしたので大丈夫です。電気がついたままになるけど、これでバッテリーがあがることはないから」と言われました。 これって問題ないんでしょうか? なんか気持ち悪くて。。。 電源のこともよく分からなくて質問しました。 回答お願いします。

  • ショートしちゃったかも・・(常時電源来ない・・)

    何度もこのサイトにてアドバイスを頂いております。 自分で調べろといわれたらそれまでですが、ディーラーも閉まっており、また不安なのでご指導のほどよろしくお願いします。 オンダッシュナビを取付けたのですが、昨日バッテリーのマイナス端子を外して配線の処理(短くする)をしていたのですが、何かの拍子にマイナス端子とバッテリーがくっついてしまい、その時にちょうどむき出しの常時電源のラインとアクセサリー(?)のラインとが接触してしまい「バチッ」という音がしました。 次の日配線の処理を終え、車のエンジンを掛けてもナビが作動しません。 検電テスターで調べてみるとアクセサリーの電源は来ているのですが、常時電源がナビまで来ていませんでした。 これはショートが原因でしょうか? なお電源はオーディオ裏から電源取り出しハーネスを使って常時、ACC、イルミを取り出しており、そこからナビ、モニター(常時は使用しない)、ETC(常時・ACC使用)を取り出していますが、ETCの常時には電源が来ており、オーディオの時計もリセットされないため常時が来ているのだと思います またこの場合ハーネスなど交換した方がいいのでしょうか? (通電状況:もしかしたらずれるかもしれません) 電源取り出しハーネス→常時→オーディオ(○)              ↓→ETC(○)              ↓→ナビ(×)           →ACC→ETC(○)               ↓→ナビ(○)           →イルミ(測定していません) 

  • 直流電源で始動しても大丈夫?

    しばらく走っていない250ccのバイク(Jade)のエンジンをかけようとしたところ、バッテリーが上がっていてほとんどセルが回りません。 とりあえず、エンジンがかかるかどうかを確認したいので、バッテリーを交換する前に、家にある12V5Aの直流電源をブースターのように接続してエンジンをかけようと思うのですが、危険はないでしょうか? なお、12V5Aの電源は、家庭用100Vコンセントから取得しています。

  • ETC接続

    車のバッテリーすなわち常時電源に接続する意味がわかりませんなぜですが? 私はアクセサリー電源とバッテリー電源すなわち常時電源を束ねて接続してます バッテリー上がりますから!

  • PIC のデータEEPROMに書き込みができません

    お世話になります。 PICのデータEEPROMへの初歩的な書き込みができずに悩んでいます。 ご経験のある方、私の誤りについてご教示いただければありがたく思います。 PICについてはいくつかの種類でプログラムを書いていますがEEPROMのデータ領域は初めてです。 各種のサイトでは簡単らしいのですが・・・ 当方の試験作業は次のとおりです。 対象チップ PIC16F819 パソコン Windows-XP 書き込み装置 PIC-kit3 書き込みソフト MP-LAB IDE V8.83 プログラム言語 HI-TECH C V9.83 電源 Pic-Kit3から5Vで供給 確認方法 ・MP-LAB- View- EEPROM- のFillmemoryにより、EEPROMにすべてFFH/00Hのいずれもが書き込めることを確認の上、256バイトすべてにFFH ・下記プログラムを走らせる (実行後1秒後に1回書き込み(十進15番地に十進20の例)、以降ランプの点滅。ランプの状態でひとまずの動作の正常は確認) ・MP-LAB- View- EEPROM- により確認・・(全部FFHのまま(泣)) そのほか、チップを新品に交換したり、書き込み時間をEEIFで検査するアルゴリズムにしてみたり、いろいろやってみましたが、壁にぶつかっています。 よろしくお願いいたします。 #include<htc.h> #ifndef _XTAL_FREQ #define _XTAL_FREQ 4000000 #endif __CONFIG(CP_OFF & BOREN_OFF & MCLRE_OFF & PWRTE_ON & LVP_OFF & WDTE_OFF & FOSC_INTOSCIO & DEBUG_OFF & CPD_OFF); void main() { OPTION_REG = 0b00000000; // output pullup OSCCON = 0b01100100; // internal OSC 4MHz TRISA = 0b11111110; // GP-A input RA7=output ADCON1 = 0b10000111; // No AD all digital TRISB = 0b00000000; // GP-B output INTCON = 0b00000000; // no interrupt RB1 = 0;    //Green Lamp off RB3 = 0; //Red Lamp off while (WR = 1) { __delay_ms(1000); } EEADR = 15; EEDATA = 20; EEPGD = 0; GIE = 0; WREN = 1; EECON2 = 0x55; EECON2 = 0xaa; WR = 1;      RB1 = 1; // Green Lamp __delay_ms(100);      RB1 = 0;     GIE = 1;  WREN = 0; EWWW:; // IDLE Lamp Red RB3 = 1; __delay_ms(400); RB3 = 0; __delay_ms(500); goto EWWW; }

  • ナビDR2000をパジェロミニ(平成7年車、H56A)に付けたい。

    ナビDR2000をパジェロミニ(平成7年車、H56A)に付けたい。 オーデオコネクターの中で車速がきてるのはどれでしょうか? 上6、下8あります。ちなみに上左2-イルミ、下左4-ACC,下左5-常時バッテリーです。