【発明の詳細な説明】
マイクロコントローラに対してシリアルなパック内
プログラム性を提供するための方法及び装置発明の属する技術分野
本発明は、マイクロコントローラのプログラミングに関し、より詳細には、ユ
ーザの最終利用アプリケーション〔end(-use)application〕回路内にあるときに
マイクロコントローラをプログラミングすることができるという能力に関する。
マイクロコントローラは、マイクロプロセッサコア、並びに、タイマ回路、R
OM及びRAMメモリ等を具備しており、これらは、単一の半導体集積回路(I
C)上に埋め込まれている。マイクロコントローラは、広く多様な現実のアプリ
ケーションにおいて使用され、これには、ほとんど毎日のようにみられる新しい
利用技術が伴う。ちっぽけなポケットベルのような可搬式機器において、マイク
ロコントローラは、受信される文字に応答して、機器に割込み、発信音を生成し
て到来メッセージをユーザに通知し、例えば液晶ディスプレイ(LCD)のよう
なディスプレイに適した多数のメッセージを生成するようにしている。マイクロ
コントローラは、また、パーソナルコンピュータ用キーボードを制御するために
用いられ、プロセッサにより形式的に取り扱われる多くのタスクを押しつける(o
ffload)役目を果たす。さらに、マイクロコントローラは、コマンド割込み及び
データ伝送用モデムにおいても、非常に低い動作速度でプリンタを駆動するため
の用意としてデータを高速ダンプする
ためのプリントバッファにおいても、そして、カラー複写機、電子タイプライタ
、ケーブルテレビジョン端末装置、芝生散水機制御器、クレジットカード電話機
、更には、エンジン制御器、アンチロックシステム、自動車サスベンション等の
、ユーザの好みに応じた乗車の柔軟性や厳格性といった所望の目的のための自動
車応用技術、並びに、産業上及び消費上の顧客により日常的に用いられるその他
のアプリケーションのホストにおいても、使用されている。
マイクロコントローラは、そのマイクロコントローラが既に最終利用アプリケ
ーションに置かれているときに、プログラミング(又は、再プログラミング)す
ることができる能力を有していることが望ましい。このような能力によって、ユ
ーザは、特定的なアプリケーションに対してマイクロコントローラの操作を最適
化するために、マイクロコントローラをプログラミングし或いはそのプログラム
を変更することができる。従来の技術
アルバー(ALBER)の米国特許第4,707,795号明細書にはバッテリ試験
及び監視システムが開示されており、このシステムは、バッテリセルの電圧、電
流及び温度を連続的に監視するためのマイクロコンピュータを備えている。そし
て、このシステムは、外部端子を介してプログラミングされる携帯式ユニット即
ち永久据付ユニット(parmanently installed unit)であり得る。
グプタ(Gupta)の米国特許第5,349,535号明細書には蓄電池に関する
情報を蓄積するための装置が開示されおり、この装置に備えられるマイクロコン
ピュータは、メモリ、及び、
各バッテリパック中に組込まれた関連センサを有している。そして、この装置は
、バッテリパックの使用及び条件に関するデータを蓄積し、バッテリパックの充
電動作中に外部コンピュータに伝送する。
しかしながら、上述したこれらの明細書には、マイクロコンピュータ又はマイ
クロコントローラが最終利用アプリケーションに置かれるときに、これをプログ
ラミングすることについて教示されていない。発明が解決しようとする課題
従って、本発明の目的は、マイクロコントローラが最終利用アプリケーション
にある間に、このマイクロコントローラをプログラミングすることができる能力
を提供することにある。課題を解決するための手段
本発明では、マイクロコントローラがバッテリ充電及びバッテリ監視アプリケ
ーションに用いられる。このマイクロコントローラは、マイクロコントローラコ
ア及び種々の前置アナログ回路を具備し、これらの前置アナログ回路には、傾斜
アナログ−ディジタル(A/D)変換器及びマルチプレクサが備えられ、複数の
アナログ入力信号を、その信号レベルを表すディジタル計数値に変換し、選択さ
れたアナログ入力の精確な電圧計測値を得るためにこのレベルを用いるようにす
ることができるようにしている。
選択されたアナログ入力の計測値をより精確にするために、マイクロコントロ
ーラは独自の較正手順を使用し、これによって、変動や変化を被りやすい選択さ
れたパラメータ/電圧が試
験中に計測され、それから、対応する較正定数が計算される。これらの較正定数
は、フォーマット化されてプログラムメモリに格納され、その後、アナログ入力
電圧に対するより精確な値を計算するために、マイクロプロセッサによって使用
される。
マイクロプロセッサのアナログ回路は、また、外部バッテリの充電及び/又は
放電率を制御するのに用いられる2つの充電率制御チャネルを備えている。各充
電率制御器(チャネル)は、比較器と共に使用されるディジタル的にプログラム
可能なディジタル−アナログ変換器(DAC)を有している。このDACにより
、プログラム可能な電圧が比較器の第1入力に供給され、一方、比較器の第2入
力にはバッテリの電流を表す電圧が与えられる。充電率制御器は、DACのプロ
グラム可能な出力電圧に実質的に等しい感知バッテリ電流を表す電圧を生成する
ように機能し、これによって、パッテリの充電/放電率を制御する各部電力トラ
ンジスタに制御信号を供給する。
各充電制御器は、また、入力信号がディジタル的にプログラム可能な閾値レベ
ルを超過するか或いは下回る時点を決定するためのレベル検出器として使用され
る。このプログラム可能な閾値レベルは、DACを介して比較器の第1入力に所
望閾値電圧をプログラムすることによって、ディジタル的にセットされ、これに
従って、比較器の他方の入力にはバッテリ電流を表す電圧のようなアナログ入力
信号が与えられる。アナログ入力信号がプログラム可能な閾値電圧を超過する(
或いは、逆に、下回る)時点で、レベル検出器は、フラグをセットしマイクロプ
ロセッサに割込みをかける。従って、この割込みは、マイクロプロセッサを非活
動(sleeping:スリーピング)モードから「起立(wake-up:ウエイクアップ)」
させ、これによって、マイク
ロプロセッサを起立させるようにディジタル的にプログラム可能な閾値を提供す
るのに用いることができる。
これとは逆に、反対の極性を検出するように2つのレベル検出器をプログラム
することによって、単一ウインドウ検出器を実現することができ、この場合、ア
ナログ入力信号が第1閾値レベルを超過するか或いは第2閾値レベルを下回ると
きに、マイクロプロセッサへの割込みが行われる。これによって、検出されるべ
き予め定められた絶対値を超過する正負両バッテリ電流を許可する。従って、こ
のようなウインドウ検出器は、目下使用状態にないバッテリが、その後、バッテ
リ電流からの電流の引出し/放電を行う装置内に配置されたり、バッテリに充電
電流を供給するバッテリ充電器内に配置されたりする際、検出用アプリケーショ
ンに有用である。
さらに、マイクロコントローラは、双方向性2ワイヤバスをサポートするため
のI2C(“Inter-Integrated Circuit”)インターフェース、及び、他の周辺
機器やマイクロコントローラとシリアルに通信するのに有用なデータ伝送プロト
コルを備えている。このI2Cインターフェースは、信頼性のあるデータ送受信
を保障するために、包括的なプロトコルを使用している。データを伝送している
とき、一方の装置がマスタとなってクロック信号を発生し、他方の装置はスレー
ブとして動作する。I2Cインターフェースプロトコル内の各装置は、関係する
特定アドレスを有しており、これによって、マスタがデータ転送を起動しようと
するとき、マスタは、通話しようとする装置のアドレスを先ず送信し、マスタに
より送られたアドレスがスレーブ装置のアドレスと一致した場合には、スレーブ
装置がデータ転送のために選択されるようにする。データ伝送を達成するため
に、マスタ装置はスタート条件及びストップ条件を発生してデータ伝送の開始及
び停止を決定し、これによって、スタート条件とストップ条件との間にデータが
伝送される。
I2Cインターフェースを使用することによって、マイクロコントローラは、
最終利用アプリケーションにおいてにシリアルにプログラムすることができる。
このような特徴によって、顧客は、プログラムされていない装置を備えたボード
を製造し、それから、製品を出荷する直前に、マイクロコントローラをプログラ
ムすることができる。このことにより、いちばん最新のファームウェア即ち顧客
ファームウェアをプログラムすることができる。
マイクロコントローラをプログラムモードにおくには、装置のシリアルクロッ
クピン及びシリアルデータピンを「ロー(low)」に保持する一方、電圧プログ
ラミングピンを必要なプログラミング電圧に上昇させる。いったんプログラムモ
ードになると、ユーザプログラムメモリは、試験プログラムメモリと同様に、最
終利用アプリケーションにおいてアクセス及びシリアルプログラミングを行うこ
とができる。
以下、添付した図を参照してなされる詳細な説明により、本発明をよりよく理
解することができよう。図面の簡単な説明
図1は、本発明を具体化するマイクロコントローラの概要的システムを表すブ
ロック図であり、
図2は、マイクロコントローラのクロックサイクルを表す図であり、
図3は、図1に示された傾斜アナログ−ディジタル変換器の詳細なブロック線
図であり、
図4は、図1のEPROMメモリに格納される較正定数についてのアドレス位
置及びデータフォーマットを表すテーブルであり、
図5は、A/D変換のためにアナログ信号の標本化インターリーブシーケンス
を示すテーブルであり、
図6は、A/Dデータフローを示す流れ線図であり、
図7は、図1のゼロ化回路の詳細なブロック線図であり、
図8は、マイクロコントローラの第1の充電制御器/レベル検出器の詳細なブ
ロック図であり、
図9は、ログDACレジスタの上位5ビットによる図1のDACの追跡同調さ
れた電流出力を表すテーブルであり、
図10は、ログDACレジスタの下位3ビットによる図1のログDACの追跡
同調された電流出力を表すテーブルであり、
図11は、充電/レベル検出制御(CHGCON)レジスタのビットを表すテ
ーブルであり、
図12は、第2の充電制御器/レベル検出器を表す詳細なブロック図であり、
図13は、I2Cインターフェースプロトコルに従うスタート条件及びストッ
プ条件を表すグラフ的線図であり、
図14,15は、それぞれ、I2C装置をアドレッシングするための7ビット
及び10ビットフォーマットを表し、
図16は、スレーブ装置による肯定応答の発生を表すグラフ的線図であり、
図17は、7ビットアドレスフォーマットを用いるI2Cデータ転送の一例を
表すグラフ的線図であり、
図18は、図2のI2Cインターフェースを表す詳細なブロック線図であり、
図19は、データの受信のためのI2Cインターフェースに関係する典型的な
波形を表すグラフ的線図であり、
図20は、データの送信のためのI2Cインターフェースに関係する典型的な
波形を表すグラフ的線図であり、
図21は、図1のマイクロコントローラの典型的な回路内シリアルプログラミ
ング接続を表すブロック図であり、
図22は、シリアルプログラム操作に使用可能な種々のコマンドを表すテーブ
ルであり、
図23,24は、それぞれ、シリアルプログラム操作のための負荷(load)デ
ータコマンド及び読出データコマンドを表すグラフ的線図であり、そして、
図25は、シリアルインターフェースについての別の実施例の詳細なブロック
図であり、
図26は、外部バッテリを監視するのに形成される図1のマイクロコントロー
ラを表すブロック図である。発明の実施の形態
〔システム概観〕
図1を参照すると、そこには、本発明を実現するマイクロコントローラ集積回
路10を表す詳細なブロック図が示されている。マイクロコントローラ10は、
マイクロチップテクノロジーインコーポレイテッドにより製造されておりバッテ
リ充電及びバッテリ監視のようなアプリケーションに用いられる“MTA 140xx
/Callisto”プログラム可能制御集積回路の形式を採用することきができる。マ
イクロコントローラ10は、バッテ
リ充電及び監視制御が望まれる箇所における可搬式の計算、細胞電話、カムコー
ダ(camcorder)及び他の低価格製品などの非常に多数のアプリケーションに向い
ている。しかしながら、マイクロコントローラ10及び本発明は、このようなア
プリケーションに限定されず、以下の詳細な説明から明らかになるように、(入
力アナログ電圧を精密に計測することが望まれる各種装置のような)他のアプリ
ケーションで使用することができる。
マイクロコントローラ10に備えられるマイクロコントローラコア12には、
これ又マイクロチップテクノロジーインコーポレイテッドにより製造されている
“PIC16C6X/7X”マイクロコントローラを採用することきができる。
マイクロコントローラコア12は、8レベル深度(deep)スタック並びに多重の
内部及び外部割込み源を有する8ビット縮小命令セットコンピュータ(RISC
:Reduced Instruction Set Computer)CPUを備えている。このマイクロコン
トローラコアは、分離命令をもつハーバードアーキテクチャ、及び、分離8ビッ
ト長データをもつ14ビット長命令語を許可するためのデータバスを有している
。さらに、2ステージ命令パイプラインによって、2サイクルを要求するプログ
ラム分岐を除き、全ての命令(35トータル)を単一サイクル内で実行すること
ができる。
図2を参照すると、そこには、マイクロコントローラコア12のクロックサイ
クルを表すグラフ的線図が示されている。ピンOSC1或いは内部発振器からの
クロック入力は4つの位相Q1,Q2,Q3,Q4に内部分割され、これらの4
位相によって、全プロセッサクロックサイクルが生成される。2つのクロックサ
イクルは命令を完遂するのに必要であり、これによって、命令は、1つのクロッ
クサイクルの間にフェッチされ、次
のクロックサイクルの間に実行される。しかしながら、2ステージパイプライン
によって、1命令サイクルの実行が次の命令サイクルのフェッチに重なり、これ
により、命令について1クロックサイクルに対するサイクル時間を実効的に減少
する。しかし、或る命令が、“GOTO”命令のように、プログラムカウンタを
変化させる場合は、その命令を完遂するのに2サイクルが必要である。端的にい
うと、クロックサイクルのQ1部分の間に、プログラムカウンタ(PC)が増分
する操作を伴いつつフェッチが始まる。フェッチ命令は、命令レジスタ内にラッ
チされ、クロックサイクルのQ2〜Q4部分の間にデコードされ実行される。
マイクロコントローラコア12は、何ら外部要素を必要としない自由動作オン
チップRC発振器として実際化されるウォッチドッグタイマ14を備えている。
このウォッチドッグタイマは、典型的には、18ミリ秒〔ms〕の名目タイムアウ
トを有する。しかしながら、より長いタイムアウトが望まれる場合、ウォッチド
ッグタイマには、1:128にまでの分周比をもつ前置スケーラ(prescaler)をソフ
トウエア制御の下で割り当てることができる。従って、2.3秒〔s〕までのタイ
ムアウト期間を実際化することができる。
マイクロプロセッサコア12は、また、実時間クロック/カウンタ(RTCC
:Real-Time Clock/Counter)16及び計算を遂行するための算術論理ユニット
(ALU:Arithmatic Logic Unit)18を備え、さらに、種々の較正定数を格
納するために64語の較正メモリ空間を含む消去可能プログラム可能読出専用メモ
リ(EPROM:Erasable Programmable Read-Only Memory)20を備える。マ
イクロプロセッサコア12は、さら
にまた、一時的格納のためのランダムアクセスメモリ(RAM:Random Access
Memory)22、汎用入出力(I/O:Input/Output)を提供するためのI/O制
御器24、及び、割込みを受けてこれに応答する割込み制御器26を備えている
。
数個のアナログ周辺機器がマイクロコントローラコア12のためのアナログ前
置手段を構成する。このようなアナログ周辺機器は、バッテリ充電及び監視制御
のような数多くの応用に有用な信号条件付け及びアナログ−ディジタル変換動作
を行う。全てのアナログ機能は、マイクロコントローラコアにより直接的に制御
されて、柔軟性を最大にししかもファームウェアを介してカスタマイズすること
ができる。
前置アナログ周辺機器には、傾斜A/D変換器30及びマルチプレクサ(MU
X)32があり、これによって、複数の外部アナログ入力をその信号レベルを表
すディジタル計数値に変換することができるようにする。傾斜A/D変換器30
は、中間速度の高精度変換器であって、DC信号及び低周波数AC信号を監視す
るのに理想的である。
アナログ前置回路に含まれるバンドギャップ基準34は、外部電圧源の必要性
をなくする。バンドギャップ基準ブロック34は、また、電圧を分圧器ブロック
38に供給し、このブロックは、傾斜A/D変換器30による使用のために、精
度のよい高・低の傾斜基準電圧を発生する。高い傾斜基準電圧は、典型的には1.
23ボルトであり、A/D変換における傾斜検出上限のために用いられる。低い傾
斜基準電圧は、典型的には、高い傾斜基準電圧の1/9即ち約0.14ボルトである
。バンドギャップ基準ブロック34は、さらに、低い電圧条件を検出するための
低電圧検出器38に電圧を供給する。
発振器選択ブロック40は、外部発振信号(OSC1)、或いは、内部発振器42よ
り供給される内部4MHz発振信号を選択する。選択された信号は、傾斜A/D
変換器30へのクロック信号を提供すると共に、外部クロック信号(CLKOUT)を提
供する。
マイクロコントローラ10は、さらに、調整された外部用電圧VREGを提供
するためのオンチップ電圧調整制御器44を備えており、これによって、外部電
圧調整器の必要性をなくする。電圧調整制御器44は、また、3又は5ボルト動
作の選択ができる。
2つの充電制御チャネルを形成するために、2つの3デケード(decade)8ビ
ットディジタル−アナログ変換器(DACs)が2つの比較器に接続されている
。これらの二重DACs及び比較器は、単一ウインドウ検出器或いは2分離形レ
ベル検出器のように、複数のレベル検出器として機能するように、二者択一的に
構成することができる。さらに、これらのレベル検出器は、起立や制限検出動作
を行うために、マイクロコントローラコアへの割込みを発生するのに用いること
ができる。
内部温度監視を要求するアプリケーションのために、オンチップ温度センサ54
も設けられている。
ゼロ電流条件を模擬することにより低値のアナログ入力計測値の精度を高める
ために、平滑化及びゼロ化回路56が使用される。この「ゼロ化(zeroing)」
技術は、低バッテリ電流の計測精度を向上するのに用いられる。
マイクロコントローラ10がシリアルデータピン(SDAA)及びシリアルク
ロックピン(SCLA)を介して他のI2C互換性装置と通信することができる
ようにするために、さらに、I2Cインターフェース制御器58が設けられてい
る。このようなインターフェースは、また、最終利用アプリケーションにおいて
マイクロコントローラ10をプログラムするのに用いることができる。
〔傾斜A/D変換器〕
図3を参照すると、そこには、傾斜A/D変換器30のより詳細なブロック線
図が示されている。傾斜A/D変換器30は、アナログ前置回路の心臓部であり
、MUX32の入力に現れる複数のアナログ入力のうちの選択された一つをディ
ジタル計数値に変換して、選択された入力の電圧計測値を得るようにする。例え
ば、A/D変換器30は、バッテリ監視及び充電両制御のために、バッテリ電圧
、電流及び温度をディジタル計数値に変換する。MUX32によるアナログ−デ
ィジタル変換のために選択される複数のアナログ入力には、バッテリ電圧(BATV)
、バッテリ電流(BATI)、バッテリ温度(BATT)、外部アナログ電圧(RA3/AN3)、バ
ンドギャップ基準ブロック34からのバンドギャップ基準電圧、分圧器38から
の高・低の傾斜基準信号(SREFHI,SREFLO)、温度センサ54からの内部温度電圧
、及び、二重DACブロック48からの2つのDAC出力(CHARGE DAC A,CHAR
GE DAC B)を含ませることができる。
RC低域フィルタ103は、アナログMUX32の出力と比較器101の非反
転端子との間に介挿される。RCフィルタ103の典型的な時定数は5ミリ秒〔
ms〕である。
傾斜A/D変換器30の心臓部である精密比較器101は、非反転入力が選択
された複数のアナログ入力の一つを受信するように接続され、反転入力が外部ピ
ン(RAMPピン)105に接続される。ピン105には外部コンデンサ104
が接続され、この端子にランプ電圧が発生されるようにする。
4ビットプログラム可能傾斜制御DAC102には複数のスイッチング可能な
電流源が設けられて、4ビットディジタル制御信号ADDACによって、外部コ
ンデンサ104への充電電流を2.5μA刻みで値域0〜37.5μAに選択的に制御
する。この外部コンデンサは、例えば、0.1とμFの値を有し、最適な結果を得
るために低い温度係数をもつようにすべきである。
比較器101の出力はカウンタ/捕獲タイマ106の入力に供給され、このカ
ウンタの出力は捕獲レジスタ108の入力に供給される。
トランジスタ109は、信号ADRSTが論理“1”の場合に全ての電流源を
消勢するために、DAC102に接続される。
動作について説明すると、各アナログチャネルは、MUX32からの複数アナ
ログ入力のうちの一つを選択することによって、独立的にディジタル計数値に変
換される。変換動作は、先ずカウンタ106をリセットすると同時に、外部コン
デンサ104を、予め定められた最少時間、例えば、200ミリ秒〔ms〕の間、
大地に放電することによって行われる。それから、リセットは解除され、カウン
タ106が計数を始め、同時にコンデンサ104がDAC102により供給され
る充電電流に基づいて充電を始める。コンデンサ104を放電するのに必要な時
間量が、リセット時に結果として残る中間的なゼロでないコンデンサ電圧の効果
を相殺するために、マイクロコントローラ10
の能力によって正確である必要がないことは、注目する価値がある。同様に、コ
ンデンサ104が充電を始めると同時に正確に計数を始めることは重要ではない
。外部コンデンサ104の端子電圧が選択されたアナログ入力の電圧を超過する
とき、比較器101は論理「ハイ(high)」から論理「ロー」に切り換える。こ
の遷移によってマイクロコントローラコア12への割込みが起動され、割込み制
御信号によって、カウンタ106の計数値を捕獲レジスタ108内にラッチ(捕
獲)するという捕獲事象を引き起すようにする。レジスタ108に格納された計
数値は、コンデンサ104が充電完了し選択されたアナログ入力電圧を超過する
のに要した時間を表し、選択されたアナログ入力の電圧計測値に対応する。そし
て、この計数値は、この後に説明されるように、独特の較正手順及び平滑化アル
ゴリズムを用いることによって選択されたアナログ入力に対するより精確な電圧
計測値を得るのに用いられる。同様の方法で、各アナログ入力に対するディジタ
ル計数値は、MUX32からの各アナログ入力を独立的に選択することによって
得ることができ、これによって、複数のアナログ入力の各々の電圧をディジタル
的に計測することができる。
〔較正手順〕
選択されたアナログ入力の計測値をより精確にするために、本発明では、以下
に説明されるように、独特の較正手順が利用される。一般的に、最小セットのパ
ラメータが、試験の間、調整即ち「微調整(トリミング)」がなされる必要があ
り、従って、較正定数が較正されてEPROMユーザ空間内に格納されるように
される。微調整が必要なこれらの最小セットのパラメ
ータには、傾斜A/D変換器の高位傾斜基準電圧に対する低位傾斜基準電圧の比
、バンドギャップ電圧、内部温度センサ(サーミスタ)電圧、及び、選択された
発振器周波数がある。それ故、本発明では、以下に示されるように、これらのパ
ラメータが試験の間計測され較正定数が計算されるが、較正定数は、すべて、そ
の後の検索及び使用のために、EPROM20のユーザ空間に格納され、これら
の定数の多くがA/D計測精度をより精密に高めるのに使用される。
A.A/D傾斜基準較正定数(Kref)
オンチップ傾斜A/D変換器30には、線形伝達関数の係数を決定するために
、2つの電圧点間の既知の比が必要である。(図1の)傾斜基準発生器36は、
バンドギャップ基準回路34から供給されるバンドギャップ電圧より、高位傾斜
電圧及び低位傾斜電圧を発生する。高位傾斜基準電圧に対する低位傾斜基準電圧
の比は、これらの電圧の夫々の計測値から計算される。
より詳細にいうと、A/D傾斜基準較正定数を計算するのに用いられる手順は
次のとおりである。アナログMUX32は、傾斜基準発生器36により供給され
る電圧の一つである高位傾斜基準電圧(SREFHI)を選択するようにセットされる。
精密電圧計測回路を用いて、高位傾斜基準電圧が計測されその値が記録される。
この精密電圧計測回路は、MUX32の出力に接続されており、分離形試験負荷
ボード上に配置することができる。さて、アナログMUX32を切り換えて低位
傾斜基準電圧(SREFLO)が選択され、この電圧が傾斜基準発生器36の他の出力と
なる。精密電圧計測回路を用いて、低位傾斜基準電圧が計測されその値が記録さ
れる。そして、比“SREFLO/(SREFHI-SREFLO)”
に等しい較正定数Krefが計算される。
B.バンドギャップ基準電圧較正定数(Kbg)
バンドギャップ基準回路34により供給されるバンドギャップ電圧は、およそ
1.23ボルトにすべきである。しかしながら、この電圧は電源電圧(1mV以下)
及び温度(典型的には10mV以下)にやや依存する性質がある(電源電圧で1m
V以下、温度で典型的には10mV以下)。従って、バンドギャップ基準回路34
により供給される実際電圧が計測され、その値がEPROM20に格納されるべ
きである。
バンドギャップ基準回路34により供給される電圧の実際計測値を得るために
、次の手順が実行される。先ず、アナログMUX32が、バンドギャップ基準回
路34の出力を選択するようにセットされる。精密電圧計測回路を用いて、MU
X32の出力に現れるバンドギャップ電圧が精密に計測される。この計測電圧が
バンドギャップ基準電圧較正定数Kbgとなる。
C.サーミスタ較正定数(Kthrm)
内部温度センサ/サーミスタ54の温度係数は温度に関して比較的一定である
が、その電圧出力の絶対値はプロセスに伴い十分に変化する。それ故、サーミス
タ54の出力電圧の絶対値は予め定められた温度にて計測すべきであり、この測
定値が較正EPROMに格納される。
サーミスタ電圧の計測する手順は、MUX32がサーミスタ54を選択するよ
うにプログラムされる点を除いて、バンドギャップ電圧を計測するための上述し
た手順と同一である。
D.温度係数較正定数(Ktc)
サーミスタの温度係数は温度に関して比較的一定であると考えられている。し
かしながら、この温度係数はプロセスにやや依存的であるという性質がある。こ
の依存性は、先ず(MUX32の出力における)サーミスタ電圧を計測し、それ
から、計測された電圧値に基づいて温度係数較正定数(Ktc)を調整することに
よって、外挿することができる。
この温度係数較正定数は、典型的には、サーミスタ出力電圧とその傾斜との間
に相関が存在する種々の温度に関するサーミスタ出力電圧の特性データから得る
ことができる。従って、サーミスタの温度係数は、所定温度での出力電圧に基づ
いて、精度を改良するように補償することができる。
次の2つの定数は、A/D変換の精密性を高めるためにそれほど重要ではない
が、精密な時間ベースの計測値/事象を得る上で重要である。
E.内部発振器較正定数(Kin)
プロセス変動による内部クロックの周波数のための較正には高い精度を得るこ
とが要求される。この較正ファクターKinは内部クロックの計測された周波数F
oscから計算され、この周波数は外部“OSC2/CLKOUT”ピンにて計測される。より
詳細には、この較正定数Kinは、〔(計測された周波数−3.00MHz)/10kH
z〕の整数部になるように計算される。これは、計測された周波数が3.0MHz
より大きいと仮定していることに注意すべきである。
F.ウオッチドッグタイマ較正定数(Kwdt)
プロセス変動によるウオッチドッグタイマの周波数のための較正にも高い精度
を得ることが要求される。この較正ファクターKwdtは、図1のウオッチドッグ
タイマ14の動作周波数を計測することにり計算される。ウオッチドッグタイマ
の周波数は外部ピンに供給されないが、ウオッチドッグタイマの周波数は、状態
レジスタ内の予め定められたビットの論理状態を監視することによって計測する
ことができ、この場合、そのビットの論理状態はウオッチドッグタイマ信号の論
理レベルを表している。この較正定数Kwdtは〔(計測された周波数)/1Hz
〕の整数部に等しい。
上述した諸較正定数/ファクターを得た後、各較正定数は、フォーマット化さ
れ、EPROMメモリ20内の所定アドレス位置に、図4に示されるようなデー
タフォーマットでプログラムされる。
〔格納された較正定数を用いるA/D変換〕
A/D変換器30により得られたA/D計数値を対応する入力電圧値に変換す
る操作は、マイクロコントローラコア12により次式(1)に従って実行される
:
ここで、
Coffset=Creflo-Kref(Crefhi-Creflo);
Vin=選択された入力の結果的(ディジタル)電圧絶対値、
Cin=選択された入力についてのA/D計数値、
Creflo=A/D低位基準点についてのA/D計数値、
Crefhi=A/D高位基準点についてのA/D計数値、
Cbg=バンドギャップ基準についてのA/D計数値。
オフセット項(Coffset)は、傾斜A/D変換器の電圧ランプを開始するのに
生じることがあるターンオン遅延即ち電圧オフセットに対して補償を行う。例え
ば、ランプ電圧が増大する前にこのランプが計数を開始した場合、或いは、ラン
プ電圧が正確に0ボルトから開始しなかった場合、オフセットが変換ごとに生じ
る。従って、このオフセット項は、ターンオン遅延即ち電圧オフセットの計数値
である。
種々のアナログ入力についてA/D変換を実行するとき、本発明では、バッテ
リ電流のような高優先順位の信号に対するサンプリング率を最大化するために、
そして、温度入力のように比較的低速度で変化する優先順位の信号に対する低サ
ンプリング率を減少するために、A/D変換用アナログ入力の選択がインターリ
ーブされる。図5を参照すると、そこには、種々のアナログ入力信号をサンプリ
ングするためのインターリーブ優先順位スキームが示されている。バッテリ電流
は、最高優先順位にあり、16A/Dサイクルにつき8回サンプリングされる。バ
ッテリ電圧は、次の優先順位にあり、16A/Dサイクルにつき2回サンプリング
される。外部サーミスタ入力からのバッテリ温度及び内部温度は、16A/Dサイ
クルの間にそれぞれ1回サンプリングされる。同様に、電流回路網ゼロ電圧、バ
ンドギャップ電圧、並びに、高位及び低位A/D基準電圧は、毎16変換サイクル
について1回サンプリングされる。
基準値を安定化しさらにA/D精密度を高めるために、A/Dアナログ入力に
ついて実際電圧値を計算するのに先立って、
A/D変換器から得られる所定アナログ入力の生計数データが平滑化される。図
6を参照すると、そこには、A/Dデータフローを示すフロー図が示されており
、このA/Dフローには平滑化アルゴリズム112〜114及び平均化アルゴリ
ズム115〜116が含まれ、これらのアルゴリズムはA/D計数値から実際電
圧値を計算するために用いられる。バンドギャップ電圧(Cbg)の計数値は、最
後に得られた16個の計数値の総平均(rolling average)を計算することによっ
て平滑化される。バンドギャップ計数値の平滑化された値(Cfbg)は次式(2
)に示されるように計算される:
ここで、添字“i”はインターリーブシーケンス番号を表す。
このバンドギャップ計数値の平滑化値は、それから、マイクロプロセッサコア
12に供給され、後述するように、ブロック118の出力における電圧を計算す
るのに用いられる。
計数オフセット値(Coffset)は、次式(3)に示されるように最後に得られ
た16個の計数値の総平均を計算することによって平滑化される:
ここで、
Coffseti=Crefloi-Kref(Crefhii-Crefloi)。
このオフセット計数値の平滑化された値(Cfoffset)も、マイクロプロセッ
サコア12に供給され、A/D入力電圧を計算するのに用いられる。
電流入力ゼロオフセット計数値(CIzero)は、次式(4)
に示されるように最後に得られた16個の計数値の総平均を計算することによって
平滑化される:
ここで、
Coffseti=Crefloi-Kref(Crefhii−Crefloi)。
この電流入力ゼロオフセット計数値の平滑化された値(CIzero)も、入力電
圧を計算するために、マイクロプロセッサコア12に供給される。
本発明では、さらに、バッテリ電圧及びバッテリ電流チャネルから得られる生
データが平滑化/平均化される。バッテリ電流計数値(Clbat)は、次式(5)
に示されるようにインターリーブシーケンスから入力チャネルの8サンプルの平
均をとることによって、平滑化される:
この平滑化されたバッテリ電流計数値(CfIbat)は、バッテリ容量を追跡す
るディジタル積分器に送られる数量データである。
同様に、バッテリ電圧についての計数値(CVbat)が、次式(6)に示される
ようにインターリーブシーケンスから入力チャネルの2サンプルの平均をとるこ
とによって、平滑化される:
後で平滑化された計数値は、EPROM20に格納される較正定数に関係して
、次式(7),(8)に示されるように、バッテリ電流及びバッテリ電圧につい
ての入力電圧に対応して、
より正確なディジタル値をそれぞれ計算するのに用いられる:
注意すべきことは、式(7)の分子には、入力ゼロ電流条件に対応する計数値
である項(CfIzero)があり、後でさらに詳細に説明されるように、この項が低
電流値についての計測値の精密性を向上するのに使用されることである。
さらに、内部及び外部温度電圧についてのより正確なディジタル値は、それぞ
れ、次式(9),(10)に示されるように計算することができる:
従って、本発明は、種々の較正定数及び種々の平滑化アルゴリズムにより計測
しメモリに格納する操作により、これらの外部バッテリの電圧、電流及び温度を
表すこのような選択されたアナログ入力の非常に精確な計測値を得るようにして
いる。
〔ゼロ化回路〕
低レベルアナログ信号を計測しようとするとき、精密な結果を得るために重要
なことは、ゼロ基準点が存在する箇所を正確に知ることである。従って、本発明
には、低電流値の計測の精密性を向上するためのゼロ化技術が備えられる。図7
を参照すると、そこには、(図1の)ブロック56のゼロ化回路138
の詳細なブロック線図が示されている。このゼロ化回路には、ゼロ電流条件を模
擬するために、2つの整合された通過ゲート140,142が備えられている。
電界効果トランジスタの形式が採用されるスイッチ140,142は、精確には
整合されておらず、非整合は、たとえあるとしても、計測しEPROM内の付加
的較正定数として格納して、A/D精密性を改良するために用いることができる
。スイッチ142はマイクロコントローラコア12の信号ADZEROに応答し、また
、スイッチ140はインバータ141を介してその反転信号に応答する。ゼロ化
回路には、さらに、入力保護回路147及びスイッチング可能な電流バイアス源
149が備えられている。
動作について述べると、スイッチ140が開路しスイッチ142が閉路してい
るときは、ゼロ電流条件に対応する電圧がMUX32(及び比較器50又は51
)に供給される。従って、ピン143に生じるゼロ電流条件が模擬される。これ
によって、傾斜A/D変換器が可能化されてピン143上のゼロ電流に対応する
ディジタル計数値が得られるようにする。従って、スイッチ140が閉路しスイ
ッチ142が開路しているときは、ピン143上のその後のアナログ電流計測値
に対応するその後のディジタル計数値がこのゼロ計測値に関係して計算される。
このゼロ化技術は、このような高精度が非常に必要とされる際、低電流値での極
めて高い精度を提供する。
さらに小さい電流パルスを捕獲するためには、オプションとして、フィルタコ
ンデンサ152を電流平均化ピン(IAVG)154及び大地に接続してもよい
。コンデンサ152及び内部抵抗156はRC回路網を形成してDC平均化フィ
ルタとして動作するようにし、その際、コンデンサ152は、所望の時定
数が得られるように調整することができる。ゼロ化回路138とIAVGピ154と
の間に接続されたスイッチ158は、A/Dサンプリングの間は閉路され、ゼロ
化操作の間は信号ADZEROの反転信号により自動的に開路される。
バッテリ監視アプリケーションにおいて、ゼロ化回路138は、バッテリ146によ
り供給される計測電流の精度を高めるのに使用され、その際、外部感知抵抗をバ
ッテリに直列接続することによって、ピン143にて電流が計測される。より詳
細には、バッテリ146の出力に接続された回路ノード148は、ピン143に
接続される一方、感知抵抗150を介して大地に回帰的に接続される。感知抵抗
150は、典型的には、例えば0.05Ωオーダの低抵抗である。従って、抵抗15
0の両端には概して低い電圧が発生する。±5Aのバッテリパック及び0.05Ωの
感知抵抗に対して、値域−0.25〜+0.25ボルトの電圧(極性は、バッテリが充電
されているのか、或いは、出力電流を供給しているのかに応じる)がピン143
に現れる。さらに、低いバッテリ電流のケースでは、抵抗150の端子電圧が非
常に小さく、例えば、数mVのオーダである。それ故、このような低い電流に対
してバッテリ電流の精密計測値を得るためには、ゼロ電流条件に対応するA/D
ディジタル計数値を知ることが重要である。例えば、ゼロ電流条件がA/Dディ
ジタル計数値“100”に対応する場合には、特に、比較的低いディジタル計数値
を与える低電流で、バッテリ電流に対応する電圧を計測する際に、このようなオ
フセットを考慮しなければならない。上述したように、ゼロ化回138は、スイ
ッチ140,142によりゼロ電流条件を模擬することによって、このようなゼ
ロ電流を提供する。
〔充電制御/電流フロー検出器〕
システムの概要で述べたように、マイクロコントローラ10に接続される2つ
の3デケード8ビットDACs48は、比較器50,51に接続されて、外部バ
ッテリの充電率を制御するために、2つの充電率制御チャネルを形成するように
することができる。これらの二重DACs及び比較器は、これに代わって、レベ
ル検出器として、つまり、2つの分離したレベル検出器として、或いは、単一の
ウインドウ検出器として動作するように構成することができる。
図8を参照すると、そこには、比較器の一方(50に関連して使用され、第1
の充電制御チャネル(チャネルA)を構成する二重DACsの一方(201)を
表す詳細なブロック図が示されている。端的にいうと、DAC201は、その出
力(MUX208の出力)及び比較器50の非反転入力にプログラム可能な電圧
を供給する。比較器50の他の(反転)入力は、ゼロ化回路56から、例えば、
外部バッテリから感知される電流を表す電圧を受けるように接続されている。充
電制御モードで動作しているときは、比較器50の出力はXORゲート212に
接続されピン214に充電制御信号を供給し、これによって、ピン214は、バ
ッテリ充電電流を制御するために外部電界効果トランジスタ(FET)に接続さ
れる。充電制御モードにおいては、データ8の充電制御回路は、フィードバック
動作を行って(感知された電流に対応する)電圧をDAC201の出力電圧に実
質的に等しくさせるとともに、バッテリにみられる充電量を効果的に制御する。
レベル検出器として動作するときは、この回路はバッテリ電流モニタとして動
作して、(バッテリ感知電流に対応する)電
圧が低下するか、或いは、逆に上昇するかした場合に、DAC201の出力電圧
により比較器50の状態を切り換え、起立割込みフラグ(WUIF)をセットするこ
とによって、マイクロコントローラコア12に割込みをかけるようにする。
DAC201は、より詳しく述べると、2つの抵抗ラダー203,204、電
流源205及び或いは、マルチプレクサ207,208を備えている。抵抗ラダ
ー203は出力電圧の追跡(course)調整に使用され、抵抗ラダー204は、こ
のラダーの中央点がゼロ電流フローにほぼ等しくなるように、電流感知バイアス
抵抗に整合される。従って、これにより、DAC201によって電流フローの充
電及び放電の双方、即ち、正負両電流フローを制御し監視することができる。
抵抗ラダー203は、32のタップを備え2つのデケード/領域に分割される
。第1デケードは、細流(trickle)又は最高充電率を制御するために定められ
、分解能5mV及び値域±50mVを有する。これは、0.05Ωの外部感知抵抗の使
用に伴う電流分解能100mA及び値域±1mAに対応している。
第2デケードは、高速充電アプリケーションのために定められ、分解能は50m
Vであり最大値域±0.35Vを有する。これは、0.05Ωの外部感知抵抗の使用に伴
う電流分解能1A及び値域±7mAに対応している。
微細同調抵抗ラダーは、8つのタップを有し追跡ラダーからのバッファード出
力電圧を分圧するのに使用される。これによって、ほぼ0.714の全域最小電圧分
解能、即ち、0.05Ω感知抵抗の場合の約14.3の電流分解能がもたらされる。
DAC201の電圧細分及び値域は、DACAレジスタ(LDACA)内に格
納されている論理ビットの値に依存する。L
DACAレジスタは、DAC201の出力電圧を制御するためのデータレジスタ
であり、ここで、LDACAレジスタの上位5ビット(ビット3〜7)は、図9
に示されるテーブルに従って追跡ラダー203を介して電圧出力値域を選択する
ために、MUX207を制御する。図9には、0.05Ω抵抗を使用する対応感知電
流が示されており、そこでは、電流値域テーブルの下半部の()内に示される電
流値域は、バッテリの充電に対応する負電流を表している。また、LDACAレ
ジスタの下位3ビット(ビット0〜2)は、図10に示されるテーブルに従って
ラダー204を介して電圧出力値域を選択するために、MUX208を制御する
。
一つの例としては、340mAの正の/放電電流が望まれるとき、LDACAレ
ジスタは、2進値“00011010”にセットされるようになっている。上位5ビット
(“00011”)は、図9に示されるように、追跡値域300〜400mAをもたらし、下
位3ビット(“010”)は、図10に示されるように、追跡値域最大値の3/8倍
、つまり、37.5mAという微細同調設定を選択する。注意すべきことは、負の/
充電電流340mAが望まれる場合には、LDACAが“10011010”にセットされ
るようになっていることである。
アナログMUX208の出力は、DAC201のアナログ電圧出力であって、
A/D変換器30の複数の入力に供給され、外部ピン210を介して外部フィル
タコンデンサに接続することができる。
アナログMUX208の出力は、また、比較器50の非反転入力に接続するこ
とができ、この比較器の反転入力は、ゼロ化回路56を通過した後の外部バッテ
リ感知電流(BATI)に対応
する電流感知電圧を受けるように接続されている。
比較器50の出力はXORゲート212の第1入力に接続され、このゲートの
第2入力は、充電制御極性ビットCPOLAを受けるように接続されており、論理“
1”にセットされたとき比較器50の出力を反転させるようにする。従って、X
ORゲート212は、感知電圧がCHGCONレジスタ内のCPOLビットによりD
AC電圧を超えるか或いは下回るかした場合に割込みをかけるようにプログラム
されている。
XORゲート212の出力は、充電制御信号(CCTRLA)を提供し、外部バッテ
リへの充電電流を制御するために、ピン214を介して外部FETに供給される
。
充電制御モードを可能化するためには、充電/レベル検出制御(CHGCON
)レジスタの充電制御機能可能ビット(CCAEN)が論理“1”がセットされ、ピン
210,214はそれらの通常の入出力(I/O)ポート機能をとるようになる
。CHGCONレジスタの諸ビットは図11に詳細に示されている。ビットCCAE
Nが論理“1”である場合、充電制御回路は、比較器50の反転入力に現れる電
流感知電圧を比較器50の非反転入力に現れるプログラム可能なDAC出力電圧
に等しくするように動作し、これによって、バッテリにより外部電力トランジス
タ217を介して起こされる充電電流の量を効果的に制御する。充電制御比較器
50の状態(ビットCCOMPA)及び充電制御極性ビットA(CPOLA)は、CHGCO
Nレジスタより読み出すことができる。CHGCONレジスタは、また、対応す
る比較器及びチャネルBに組み合わされる極性ビット(CCOMB,CPOLB)を備える。
図12を参照すると、そこには、比較器51に関連してブロック48の第2の
DACを使用する第2の充電制御/レベル検出チャネル(チャネルB)201’
を表す詳細なブロック図が示されている。充電制御チャネルBは、図8の充電制
御チャネルAと非常に類似しており、ここでは、図8に示された要素と同一の図
12の要素は、前の参照番号が使われている。チャネルBの比較器51の入力は
、図8の比較器50に対して転換されており、従って、比較器51の非反転入力
はDAC201’の出力に接続され、比較器51の反転入力は、感知されたバッ
テリ電流(BATI)に対応するゼロ化回路よりの電圧を受ける。また、DAC20
1’の出力に供給される電圧は、LDACAレジスタがDAC201の出力にお
ける電流を図9,10に示されるテーブルに従って制御するのと同様の方法で、
DACB(LDACB)レジスタの8ビットにより制御される。
当初述べたように、これらの二重の充電制御/レベル検出器は、また、入力信
号がプログラム可能な閾値レベルを超過するか或いは下回ったときを検出するの
に使用することができる。これらのレベル検出器は、充電制御が実行されていな
いときでさえ使用することができる。このようなケースでは、CHGCONレジ
スタの充電制御可能化ビット(CCAEN)は論理“0”に留まっている。図8のチャ
ネルAに戻ると、プログラム可能な閾値レベルは、DACに対する所望の電圧出
力をLDACAレジスタによりプログラムすることによって、ディジタル的にセ
ットされる。このことは、予め定められたプログラム可能な閾値電圧が比較器5
0の非反転入力に供給されて、比較器50の反転入力に現れる信号がプログラム
可能な閾値電圧を超過したとき、比較器50が論理状態を切り換えることを意味
する。こ
の論理切換によって、フラグをセットしマイクロプロセッサコア12に割込みを
かけることができ、これによって、直ちにとられるべき作業を求めるようにする
。さらに、比較器50の出力の論理状態は、上述したように、CHGCONレジ
スタ(ビット2)を読み出すことによって監視することができる。
〔ディジタル的にプログラム可能な閾値をもつ起立機能〕
マイクロコントローラ10は、特定の非活動命令の実行により投入される非活
動モードを備えている。この非活動モードにおいては、オンチップ発振器はター
ンオフされるがウオッチドッグタイマは運行を続ける。さらに、マイクロコント
ローラ10は、ウオッチドッグタイマがターンオフされることを除いて、非活動
モードと同一である不動(hibernate)モードを備えている。これらのモードは
、発振器が消勢され実質的に電力節減をもたらすので、低電力消費という結果を
もたらす。
マイクロコントローラ10は、外部リセット入力、ウオッチドッグタイマのタ
イムアウト(可能ならば)、I2Cシリアルラインでのスタート/ストップビッ
トの検出、或いは、A/D変換の完了のような事象の発生に応答して、非活動モ
ードからの脱出即ち「起立」を行うようになっている。また、マイクロコントロ
ーラ10がバッテリ監視及び充電アプリケーションに使用される場合には、感知
されたバッテリ電流がマイクロプロセッサコア12を起立するためのプログラム
可能な閾値を超過するか下回るときを検出するのに使用することができる。図8
を再び参照すると、バッテリの感知電流(BATI)を表す感知電圧がDAC201
によりセットされたプログラム可能な閾値電圧を超過すると、比較器50が論理
「ハイ」から論理「ロー」
に切り換わり、これによって、起立割込みフラグ(WUIF:Wake-Up Interrupt Fla
g)をセットしマイクロコントローラコア12に割込みをかける。従って、マイ
クロコントローラコアは非活動モードから脱出することができ、バッテリからの
増大する電流出力は、真に精密でタイムリーなバッテリレベルの正確測定のため
に、適切に監視することができる。
上述したのと同様に、(図12の)チャネルBのレベル検出器は、別の入力信
号がディジタル的にプログラム可能な閾値レベルを超過するときを検出するため
に、独立的なレベル検出器として使用することができる。例えば、ゼロ化回路よ
りの電圧がDAC201’によりセットされたプログラム可能な閾値電圧を超過
すると、比較器51が論理「ロー」から論理「ハイ」に切り換わり、これによっ
て、起立割込みフラグ(WUIF)をセットしマイクロコントローラコア12に割込
みをかける。
この代わりに、反対極性を検出するように2つのDACをプログラムすること
によって、ウインドウ検出器を実現することができ、この場合、プログラム可能
な閾値を超過する正のバッテリ電流及びにプログラム可能な閾値を下回る負のバ
ッテリ電流の双方によって、マイクロコントローラコアに割込みをかけることが
でき、この際、比較器50,51の出力を表す論理ビット(CCOMPA,CCOMPB)を
それぞれ読み出して、2つの検出器の何方かにより割込みが生じるようにするこ
とができる。このようなウインドウ検出器は、目下使用状態にないバッテリが、
後になって、カムコーダのように、バッテリ電流から電流の引出/放電を行う装
置に配備されたり、或いは、バッテリに充電電流を供給するバッテリ充電器に配
備されたりしたときの検出用バッテリ応用に有用である。どちらの状況において
も、マイ
クロプロセッサコアを直ちに起立してバッテリ電力の真に精密な正確測定のため
の電流フローを検出するようにすることが肝要である。
〔I2C(Inter-Integrated Ciccuit)インターフェース〕
マイクロコントローラ10は双方向2ワイヤバス及びデータ伝送プロトコルを
サポートしている。特に、I2Cインターフェース58は、シリアルなEEPR
OM、シフトレジスタ、ディスプレイ駆動器、A/D変換器などのような他の周
辺機器或いはマイクロコントローラ装置と通信するのに有用なシリアルインター
フェースである。I2Cインターフェースは、また、I2C(Inter-Integrated C
iccuit)仕様、システム管理バス(SMBUS)及びアクセスバスと互換性がある。
I2Cバスは、Philips/Signeticsにより開発された2ワイヤシリアルインター
フェースである。そのオリジナル仕様即ち標準モードは、100キロビット/秒(
Kbps)までのデータ転送に対して指定され、拡張仕様即ち高速モードは、40
0kbps〔キロビット/秒〕までのデータ転送をサポートしており、標準及び
高速の両モード装置は、同一バスに結合した場合相互動作を行うようになってい
る。
I2Cインターフェースは、データの信頼性ある送受信を確実にするための包
括的なプロトコルを実現する。データを伝送する際には、一方の装置がマスタと
なってクロック信号を発生し、他方の装置がスレーブとして動作する。I2Cイ
ンターフェースにおける各装置は、それに関係する特定アドレスを有しており、
マスタは、データ転送を望むとき、先ず、会話を望む装置のアドレスを送信し、
マスタにより送られたアドレスがス
レーブ装置のアドレスに一致した場合に、そのスレーブ装置がデータ転送のため
に選択される。
データ転送がない期間には、クロックライン(SCLA)及びデータライン(SDAA
)が外部プルアップ抵抗により「ハイ」に引き上げられる。データ転送を完遂す
るためには、マスタ装置がスタート及びストップの両条件を発生して、データ転
送の開始及び停止を決定するようにする。図13を参照すると、スタート条件は
、クロックラインが「ハイ」にあるとき、データライン上での「ハイ」から「ロ
ー」への遷移として定義され、ストップ条件は、クロックラインが「ハイ」にあ
るとき、データライン上での「ロー」から「ハイ」への遷移として定義されてい
る。さらに、このようなスタート及びストップ条件の定義の故に、データが伝送
されているとき、データラインは、図13に示されるようにクロックラインが「
ロー」にあるときに変化するだけである。
I2C装置をアドレスするために、2つのアドレッシングフォーマットが存在
する。第1のフォーマットは、図14に示されるように、書込/読出ビットを有
する7ビットアドレスフォーマットである。簡単にいうと、スタートビット(S
)の後、マスタにより8ビットが発生され、その最初の7ビットがスレーブ装置
のアドレスであり、最後のビットが書込/読出ビットである。
第2のアドレッシングフォーマットは、図15に示されるように、書込/読出
ビットを有する10ビットアドレスフォーマットである。簡単にいうと、スタート
ビットの後、マスタにより2バイトが発生されなければならず、第1バイトの最
初の5ビ
ットがそのアドレスを10ビットアドレスであるように特定する。次の10ビットが
スレーブ装置のアドレスであり、最後のビットが書込/読出ビットである。
伝送データの各バイトの後には、スレーブ/受信装置により肯定応答ビットが
発生される。図16を参照すると、そこには、スレーブ装置による肯定応答の発
生を表すグラフ的線図が示されている。より詳細には、スレーブ装置は、肯定応
答のためのクロックパルスの間、データ出力ラインを「ロー」に保持することに
よって、データ最後のバイトの受信に対して肯定応答を行う。例えば、7ビット
アドレスフォーマットについては、毎第9クロックパルスが肯定応答クロックパ
ルスに対応している。
図17を参照すると、そこには、7ビットアドレスフォーマットを用いるI2
Cデータ転送の一例を表すグラフ的線図が示されている。簡単にいうと、スター
トビット(S)の後、マスタによりスレーブ装置の7ビットアドレス並びに書込
/読出ビットが発生される。このアドレスが受信されたとすると、スレーブ装置
は、データ出力を「ロー」に引下げアドレス受信の肯定応答を行う。それから、
マスタは1バイトのデータを発生し、その受信についてスレーブ装置により肯定
応答が行われる。データ転送が完了すると、マスタはストップビット(P)を発
生する。
さて図18を参照すると、そこには、I2Cインターフェース58の詳細なブ
ロック図が示されている。I2Cインターフェース58は、全てのスレーブ機能
を完全に実現し、マスタ機能のソフトウエア実施を容易にするためにハードウエ
アでのサポートを提供する。I2Cインターフェースは、標準及び高速
モード仕様、並びに、7ビット及び10ビットの両アドレッシングを実行する。
データ転送のために、2つのライン/外部ピン、つまり、I2Cクロックであ
るRC6/SCLAピン、及び、I2CデータであるRC7/SDAAピンが使
用される。
I2Cインターフェース58は、I2C操作のために5つのレジスタを有してい
る:[1]I2C制御(I2CCON)レジスタ、[2]I2C状態(I2CSTAT
)レジスタ、〔これらのレジスタ(I2CCON,I2CSTAT)はファイルレ
ジスタ(データ)空間に位置している〕、[3]シリアル受信/送信バッファー
(I2CBUF)301、[4]I2Cシフトレジスタ(I2CSR)303、及び
、[5]アドレス(I2CADD)レジスタ305。I2Cインターフェース58
には、さらに、比較器/一致検出器307及びスタート及びストップビット検出
回路309が備えられている。
I2CCONレジスタはI2C操作を制御し、このレジスタによって、次のI2
Cモードの1つを選択することができる:
1)7ビットアドレッシングを伴うI2Cスレーブモード、
2)10ビットアドレッシングを伴うI2Cスレーブモード、
3)7ビットアドレッシング及びマスタモードサポートを伴うI2Cスレーブモ
ード、
4)10ビットアドレッシング及びマスタモードサポートを伴うI2Cスレーブモ
ード、及び、
5)I2Cマスタモード、ここで、スレーブはアイドル状態である。
I2CSTATレジスタは読み出されるだけであり、データ転送の状態を与え
る。これは、受信されたバイトがデータ又は
アドレスである場合、次のバイトが完全な10ビットアドレスである場合、及び、
これが読出及び書込データ転送であろう場合のスタート及びストップビットの検
出のような情報を含んでいる。
I2CBUFレジスタは、転送データが書き込まれたり読み出されたりするレ
ジスタ/バッファーである。I2CSRレジスタは、マイクロコントローラ10
へのデータ或いはマイクロコントローラ10からのデータをシフトする。I2C
ADDレジスタは、スレーブのアドレスを格納する。
図19を参照すると、そこには、7ビットアドレスフォーマットを伴うデータ
受信のためのI2Cインターフェース58に関係する典型的な波形を表すグラフ
的線図が示されている。I2Cインターフェース58は、いったん可能化されて
しまうと、スタート条件が生じるのを待つ。スタート条件続いて、7ビットのア
ドレス及び書込/読出ビットがI2CSRレジスタ303内にシフトされてくる
。全ての到来ビットがシリアルクロックの立ち上がりエッジ(前縁)でサンプリ
ングされる。I2CSRレジスタの内容が、第8クロックパルスの立ち下がりエ
ッジ(後縁)で、I2CADDレジスタの内容と比較される。両アドレスが一致
する場合、I2CSRレジスタの内容が、I2CBUFレジスタにロードされ、I2
CSTATレジスタの書込/読出ビットがクリアされる(データはインターフ
ェース58に書き込まれつつあることを表す)。さらに、肯定応答パルスが発生
され、各データバイトの転送後、I2C割込みビット(I2CIF)がセットされ、その
際、割込みビットはソフトウエアにおいてクリアされ、I2CSTATレジスタ
は、そのバイトの状態を決定するのに使用される。しかしながら、I2CBU
Fレジスタが以前の受信から読み出されてしまわなかった場合は、アドレスバイ
トオーバフロー条件が存在する。このような状況においては、非肯定応答パルス
が発生され、I2CCONレジスタ内のオーフロービット(I2COV)をセットするこ
とにより、オーバフロー条件が示される。
図20を参照すると、そこには、7ビットアドレスフォーマットを伴うデータ
送信のためのI2Cインターフェース58に関係する典型的な波形を表すグラフ
的線図が示されている。アドレス一致が生じアドレスバイトの書込/読出ビット
がセットされると(データはインターフェース58に書き込まれつつあることを
表す)、I2CSTATレジスタの書込/読出ビットもまたセットされる。受信
されたアドレスは、I2CBUFレジスタ内にロードされ、肯定応答パルスが第
9クロックパルス上で発生される。送信すべきデータは、I2CSRレジスタを
さらにロードするI2CBUFレジスタ内にロードされなければならない。8ビ
ットのデータはシリアルクロックの後縁でシフトアウトされる。データ受信と同
様に、各データ転送バイトについてI2C割込みフラグ(I2CIF)が発生され、その
際、12CIFビットはソフトウエアにおいてクリアされ、I2CSTATレジスタが
、そのバイトの状態を決定するのに使用される。
〔マイクロコントローラの回路内プログラミング〕
I2Cインターフェース58を使用することによって、マイクロコントローラ
10は、最終アプリケーション回路においてシリアルにプログラムすることがで
きる。この様な特徴によって、顧客はプログラムされていない装置を備えるボー
ドを製造し、その後、製品を出荷する直前に、マイクロコントローラを
プログラムすることができる。このことによって、最も最新のファームウェア即
ち顧客ファームウェアをプログラムすることができる。
マイクロコントローラ10は、シリアルクロック及びシリアルデータピンを「
ロー」に保持すると共に電圧プログラムピンを、Vssに対して電圧Vpp、例えば
、12ボルトに高めることによって、プログラム/検証モードにおくことができ
る。一旦プログラムモードになると、ユーザプログラムメモリ並びに試験プログ
ラムメモリは、シリアル又はパラレル手法のいずれかでアクセス及びプログラム
を行うことができ、その際、操作の初期モードはシリアルであり、アクセスされ
るメモリはユーザプログラムメモリである。
本発明では、マイクロコントローラ10へのクロック及びデータ並びにマイク
ロコントローラ10からのクロック及びデータを提供するために、マイクロコン
トローラ10の2つの外部ピン(SCLAピン及びSDAAピン)を利用するこ
とによって、回路内シリアルプログラミングが完遂される。さらに、回路内プロ
グラミングを実行する際、電力、アース、及び、マイクロコントローラ10への
プログラミング電圧(Vpp)を供給するのに3つの他のピンが利用される。図2
1を参照すると、そこには、マイクロコントローラ10の典型的な回路内シリア
ルプログラミング構成が示されている。例示的な目的だけのために、図21のマ
イクロコントローラ10は、最終回路/バッテリパック403の内部に存在して
おり、バッテリ(330)の充電監視を制御するのに使用される。図21に示さ
れるように、マイクロコントローラ10をプログラミングするのに使用する目的
で、マイクロコントローラ10には、バッテリパック
403の外部コネクタ401に接続するための外部ピンの一部が備えられており
、このとき、マイクロコントローラ10はバッテリパック403内に既に組み込
まれている。外部コネクタ401は、クロック及びシリアルデータ信号を、マイ
クロコントローラ10のSCLA及びSDAAピンに夫々供給するために、外部
信号を受ける。クロックピンはマイクロコントローラにクロックを供給するのに
使用され、データピンは、コマンドビットを入力し、シリアル操作の間、データ
をシリアルに入出力するのに使用される。コネクタ401は、また、プログラミ
ング電圧、例えば、12ボルトを受け、これをマイクロコントローラ10のマスタ
クリア(MCLR)/電圧プログラミングピンに供給して、マイクロコントローラ1
0を可能化し、シリアルプログラミングモードに投入するようにする。そして、
コネクタ401は、マイクロコントローラ10の外部電力ピンVDD,VSS(
大地)間に、+5Vを夫々供給する。
本発明は、また、図21に示されるように、外部サーミスタ入力と共にプログ
ラミング電圧を多重化することができるという能力を有している。このような多
重化の特徴によって、バッテリパックが存在する環境温度を監視するのに用いる
ために、外部温度センサからの信号をマイクロコントローラ10に入力すること
ができる。さらに、たった5つの端子が多数のバッテリバック上で一般的に利用
可能であり、そのうち4つの端子は、通常、シリアル伝送(クロック及びデータ
)に対して2つが考慮されるので、このような多重化の特徴は重要である。従っ
て、本発明によると、第5の端子は、プログラミング電圧、及び、外部サーミス
タからマイクロコントローラ10への信号の双方を供給するのに使用することが
可能になる。
プログラミング電圧及びサーミスタ入力の多重化は、抵抗321〜327の配
置を介して達成される。通常操作の間は、サーミスタピンは左が開いている(外
部サーミスタが使用されていない場合)か、或いは、外部10〜50kΩ〔オーム〕
サーミスタによって、例えば、+5V〔ボルト〕で駆動される。この例では、+85
℃の温度に対応するおよそ2Vに対して-40℃に対応するおよそ0.3mVの範囲内
にある電圧が、抵抗325,327を介してAN3ピンに供給される。AN3ピ
ンに現れるこの電圧は、それから、図1,3に示されるように、MUX32の入
力の1つに供給され、その後、上述したように計測され処理される。
マイクロコントローラをシリアルにプログラミングするためには、コネクタ4
01の「データ1」ピン及び「データ2」ピンが「ロー」に保持され、この間、
サーミスタ(「温度」)ピンは-24〜+40V間を転移する。-24Vは、抵抗323
を介してマイクロコントローラ10のMCLR/Vpp入力ピンに供給される0
Vに対応し、この0Vによって、マイクロコントローラ10がリセットされる。
注意すべきことは、この-24Vは、或る負電圧及び対応する電流がAN3ピンに
供給されているにも拘わらず、マイクロコントローラ10を損傷しないというこ
とである。より詳細にいうと、この負電圧は(図示されていない)入力保護ダイ
オードによって阻止され、一方、対応する電流は例えば、1MΩである抵抗32
5の大きな抵抗値により小さくなっている。これに対して、+40Vは、MCLR
/Vpp入力ピンに供給される約+13Vに対応し、この+13Vによって、マイク
ロコントローラ10がプログラム/検証モードにおかれる。このときには、それ
から、コネクタ401の「データ1」
ピン及び「データ2」ピンにクロック及びデータ信号が供給され、これにより、
コネクタ401のマイクロコントローラのSCLA及びSDAAピンを介してマ
イクロコントローラがシリアルにプログラミングされる。このようにして、コネ
クタ401の「温度」ピンは、外部サーミスタに対応する電圧、及び、マイクロ
コントローラをシリアルにプログラミングするためのプログラミング電圧の両者
を受けるのに使用される。
図22を参照すると、そこには、シリアルプログラミングに利用可能な種々の
コマンドを表すテーブルが示されている。先ず、「試験ロード」コマンドは、試
験プログラムメモリ内に14ビット語をロードするのに用いられ,その際、このコ
マンドの受信に基づいて、プログラムカウンタが試験プログラムメモリ内の予め
定められた位置にセットされる。「データロード」コマンドは、14ビット語をユ
ーザプログラムメモリ内にロードするのに用いられる。「データ読出」コマンド
は、14ビット語をユーザプログラムメモリから伝送するのに用いられる。「アド
レス増分」コマンドは、受信に基づき、マイクロコントローラ10のプログラム
カウンタを増分するのに用いられる。「プログラミング開始」コマンドは、試験
プログラムメモリ或いはユーザプログラムメモリの何れかのプログラミングを開
始するのに用いられ,その際、このコマンドに先立って試験ロード又はデータロ
ードコマンドが与えられなければならない。「パラレルモード投入」コマンドは
、パラレルモードでデータを受容するようにマイクロコントローラ10をプログ
ラムするのに用いられる。このパラレルモードは、バッテリパックに典型的には
外部コネクタがほんの僅かしか備えられていないので、マイクロコントローラの
回路内プログラミングには、一般的に適用す
ることができない。最後に、「プログラミング終了」コマンドは、プログラムメ
モリのプログラミングを停止するのに用いられる。
図23,24を参照すると、そこには、シリアルプログラミングのための試験
ロード及びデータロードコマンドを夫々表すグラフ的線図が示されている。コマ
ンドを入力するために、クロックピンにはサイクルが6回与えられ、その際、各
コマンドビットが初めに入力されているコマンドの最下位ビット(LSB)に伴
うクロックの後縁でラッチされる。SDAAピン上のデータは、図23,24に
示されるように、クロックの後縁に関して、最小のセットアップ(tset0,tse
t1)及び保持時間(thld0,thld1)を有するように要求されており、このセッ
トアップ及び保持時間は、例えば100ナノ秒〔ns〕である。さらに、これに関
係するデータ読出及びデータロードコマンドのようなコマンドは、図23,24
に示されるように、コマンドとデータとの間に、最小の遅延(tdly1)を有する
ように特定されており、この遅延は、例えば1マイクロ秒〔μs〕である。この
遅延の後、クロックピンにはサイクルが16回与えられ、第1サイクルはスタート
ビットであり最後のサイクルはストップビットであり、また、データは、中間の
14クロックサイクルに伴い最下位ビットを最初にして、入力又は出力がなされる
。特に、読出操作の間には、最下位ビットは、第2サイクルの前縁でSDAAピ
ン上に伝送され、ロード操作の間には、最下位ビットは、第2サイクルの後縁で
ラッチされるようになっている。
本発明はマイクロコントローラの回路内シリアルプログラミ
ングにI2Cプロトコルを用いることについて説明されているが、このような回
路内プログラミングは、I2Cプロトコルに限定されず、クロック線及びシリア
ルデータ線を使用する任意のシリアルな通信技術を包含する。例えば、図25に
は、シリアルインターフェース回路(410)についての別の実施例の詳細なブ
ロック線図が示されている。このようなインターフェース回路は、通信されるべ
き集積回路チップには、I2Cプロトコルを実施するためのハードウエアを有し
ないものがあるが、このような場合のアプリケーションに、図示のインターフェ
ース回路が有用である。インターフェース回路410はシリアルデータ(ADA
A)ピン及びクロック(SCLA)ピンに応答的であって、マイクロコントロー
ラ10をプログラミングするのに用いられる一方で、その最終利用アプリケーシ
ョンにも用いられる。インターフェース回路410は、一時的にデータを保持す
るためにシリアルデータピン及びクロックピンに接続されるシフトレジスタ41
2を備えており、このデータはバッファ414を介して、EPROM20に書き
込まれたり、EPROM20から読み出されたりする。
バッファ414及びレジスタ412には、適切なデータがEPROM20に書
き込まれたことを検証するために、比較/検証ブロック416が接続される。
シフトレジスタ412には、図23に示されるような実行されるべきコマンド
を解読するするために、コマンドデコードブロック418が接続される。
デコードブロック418の出力には、実行コマンドを実行するという制御機能
を遂行するために、状態機械制御ブロックが接続される。例えば、データをEP
ROM20にロードすると
きには、このブロックは、プログラミング電圧がEPROM20に供給されるべ
き時点を制御する。
要するに、本発明によって、マイクロコントローラ10の回路内シリアルプロ
グラミングを行われる。このことによって、エンドユーザ(最終利用者)はマイ
クロコントローラ10を、バッテリ充電及び監視制御用バッテリパックのような
最終利用アプリケーションにおかれたときに、プログラムすることができる。
〔バッテリ監視アプリケーション〕
図26を参照すると、そこには、外部バッテリ450を監視するためのアプリ
ケーションにおいて構成されるマイクロコントローラ10を表すブロック図が示
されている。バッテリ450の電圧は、分圧回路452を介してマイクロコント
ローラ10のAN0/BATVアナログ入力に供給される。バッテリ450の電
流は感知抵抗454を介して通流し、マイクロコントローラ10のAN1/BA
TIアナログ入力に、バッテリ電流を表す電圧を供給する。マイクロコントロー
ラ10のRAMPピンは、外部コンデンサ456を介して大地に接続され、この
コンデンサ両端にプログラム可能なランプ電圧を発生するようになっている。マ
イクロコントローラ10のIAVGピンは、オプションとして外部コンデンサ4
58を介して大地に接続され、短持続時間電流パルスを捕獲するのに使用される
。電圧調整器ピン(VREG)は、電圧調整を行うために、外部NチャネルFE
T460のゲート電極に接続される。このFET460は、ドレイン電極がバッ
テリ電圧を受けるように接続され、ソース電極からマイクロコントローラ10に
調整された電圧V
DDを供給する。さらに、この調整された電圧は、外部アナログ入力AN2を介
して計測することができる。
ここでは所定の好ましい実施例について説明してきたが、説明された実施例及
び方法の種々の変形及び変更が本発明の真の精神及び範囲から逸脱しないで作ら
れ得ることは、当業者に明らかであろう。従って、本発明は、添付された請求の
範囲並びに適用される法律の規則及び原則によって要求される範囲にのみに限定
されるべきであると考えられる。DETAILED DESCRIPTION OF THE INVENTION
In pack serial to microcontroller
Method and apparatus for providing programmabilityTechnical field to which the invention belongs
The present invention relates to the programming of microcontrollers, and more particularly to
End (-use) application is in the circuit
Regarding the ability to program a microcontroller.
The microcontroller comprises a microprocessor core, a timer circuit, R
OM and RAM memory, etc., which are connected to a single semiconductor integrated circuit (I
C) embedded on top. Microcontrollers are a wide variety of real-world apps
Applications, which include new, almost everyday
Utilization technology is involved. In portable equipment such as small pagers, microphones
The controller interrupts the device and generates a dial tone in response to the characters received.
To notify the user of the incoming message, such as a liquid crystal display (LCD).
It generates many messages suitable for various displays. micro
The controller also controls the personal computer keyboard
Pushes many tasks that are used and handled formally by the processor (o
ffload) plays a role. In addition, the microcontroller has a command interrupt and
To drive the printer at a very low operating speed, even for data transmission modems
Data dump at high speed
Print buffers, and color copiers, electronic typewriters
, Cable television terminal, lawn sprinkler controller, credit card telephone
, As well as engine controllers, anti-lock systems, automotive suspension, etc.
Automatic, for the desired purpose, such as flexibility and rigor of the ride according to the user's preference
Vehicle application technology and others used daily by industrial and consumer customers
It is also used in hosting applications.
The microcontroller has already been
Programming (or reprogramming) while in the
It is desirable to have the ability to With these abilities, you
Optimizes microcontroller operation for specific applications
To program the microcontroller or to program
Can be changed.Conventional technology
US Pat. No. 4,707,795 to ALBER discloses a battery test.
And a monitoring system is disclosed, which includes a battery cell voltage,
A microcomputer is provided for continuous monitoring of flow and temperature. Soshi
This system is compatible with portable units that are programmed via external terminals.
It can be a permanently installed unit.
U.S. Pat. No. 5,349,535 to Gupta relates to storage batteries.
A device for storing information is disclosed, and a microcomputer provided in the device is provided.
Pewter has memory and
It has an associated sensor built into each battery pack. And this device is
Accumulates data on battery pack use and conditions, and recharges the battery pack.
Transmit to external computer during power operation.
However, these documents mentioned above do not include microcomputers or microcomputers.
When the cross controller is placed in an end-use application,
There is no teaching about ramming.Problems to be solved by the invention
Therefore, the purpose of the present invention is to
Ability to program this microcontroller while in
Is to provide.Means for solving the problem
In the present invention, the microcontroller has a battery charging and battery monitoring application.
Used for This microcontroller is
And various pre-analog circuits.
An analog-to-digital (A / D) converter and multiplexer are provided.
The analog input signal is converted to a digital count representing its signal level and
Use this level to get accurate voltage readings of the analog input
To be able to
For more accurate measurements of the selected analog input, the microcontroller
The controller uses a proprietary calibration procedure, which makes the selection vulnerable to fluctuations and changes.
Parameter / voltage
Measured during the experiment, then the corresponding calibration constant is calculated. These calibration constants
Is formatted and stored in program memory, and then
Used by microprocessor to calculate more accurate values for voltage
Is done.
The analog circuitry of the microprocessor can also charge an external battery and / or
It has two charge rate control channels used to control the discharge rate. Each charge
The power controller (channel) is a digitally programmed program used with the comparator.
It has a possible digital-to-analog converter (DAC). With this DAC
, A programmable voltage is provided to a first input of the comparator, while a second input of the comparator is provided.
The force is provided with a voltage representing the current of the battery. The charge rate controller is a DAC professional.
Generating a voltage representing a sensed battery current substantially equal to a programmable output voltage
Power transformers that control the charge / discharge rate of the battery.
The control signal is supplied to the transistor.
Each charge controller also has a digitally programmable threshold level for the input signal.
Used as a level detector to determine when the level exceeds or falls below
You. This programmable threshold level is located at the first input of the comparator via a DAC.
Digitally set by programming the desired threshold voltage,
Therefore, the other input of the comparator is an analog input, such as a voltage representing battery current.
A signal is provided. Analog input signal exceeds programmable threshold voltage (
Or, conversely, below), the level detector sets the flag and
Interrupt the processor. Therefore, this interrupt deactivates the microprocessor.
"Wake-up" from sleep mode
Let this be the microphone
Provides a digitally programmable threshold to wake the microprocessor
Can be used to
Conversely, program the two level detectors to detect opposite polarities
By doing so, a single window detector can be realized, in this case
When the analog input signal exceeds the first threshold level or falls below the second threshold level
At this time, an interrupt to the microprocessor is performed. This should be detected
Both positive and negative battery currents exceeding a predetermined absolute value are permitted. Therefore,
Window detectors, such as the ones that use a battery that is not currently in use,
It is placed in the device that draws / discharges current from the re-current or charges the battery
Or when placed in a battery charger that supplies current.
Useful for
In addition, the microcontroller supports a bidirectional 2-wire bus
ITwoC (“Inter-Integrated Circuit”) interface and other peripherals
Data transmission protocol useful for serial communication with devices and microcontrollers
It has a col. This ITwoC interface for reliable data transmission and reception
To ensure that a comprehensive protocol is used. Transmitting data
When one device becomes the master and generates a clock signal, the other device
Act as a loop. ITwoEach device in the C interface protocol is involved
Have a specific address, which causes the master to initiate a data transfer
The master first sends the address of the device to talk to,
If the sent address matches the address of the slave device,
Ensure that the device is selected for data transfer. To achieve data transmission
In addition, the master device generates start and stop conditions to start and stop data transmission.
And stop, so that the data is between the start and stop conditions.
Transmitted.
ITwoBy using the C interface, the microcontroller
It can be serially programmed in end use applications.
With these features, customers can use boards with unprogrammed equipment
The microcontroller and then program the microcontroller just before shipping the product.
Can be This allows the most up-to-date firmware,
Firmware can be programmed.
To place the microcontroller in program mode, the serial clock
Pin and the serial data pin are held “low” while the voltage
Raise the ramming pin to the required programming voltage. Once the program
User mode, the user program memory, like the test program memory,
Perform access and serial programming in end-use applications.
Can be.
The present invention will be better understood from the detailed description given below with reference to the accompanying drawings.
Could be solved.BRIEF DESCRIPTION OF THE FIGURES
FIG. 1 is a block diagram illustrating a schematic system of a microcontroller embodying the present invention.
It is a lock diagram,
FIG. 2 is a diagram illustrating a clock cycle of a microcontroller,
FIG. 3 is a detailed block diagram of the gradient analog-to-digital converter shown in FIG.
FIG.
FIG. 4 shows the address locations for the calibration constants stored in the EPROM memory of FIG.
Is a table representing the location and data format,
FIG. 5 shows a sampling interleave sequence of an analog signal for A / D conversion.
Is a table showing
FIG. 6 is a flow chart showing the A / D data flow,
FIG. 7 is a detailed block diagram of the zeroing circuit of FIG.
FIG. 8 shows a detailed block diagram of the first charge controller / level detector of the microcontroller.
It is a lock diagram,
FIG. 9 shows the tracking synchronization of the DAC of FIG. 1 by the upper 5 bits of the log DAC register.
A table representing the current output
FIG. 10 illustrates tracking of the log DAC of FIG. 1 by the lower three bits of the log DAC register.
A table representing the tuned current output;
FIG. 11 is a table showing bits of a charge / level detection control (CHGCON) register.
Table,
FIG. 12 is a detailed block diagram illustrating a second charge controller / level detector;
FIG.TwoStart conditions and stops according to the C interface protocol
FIG. 3 is a graphical diagram showing a condition
14 and 15 respectively show ITwo7 bits for addressing the C device
And 10-bit format,
FIG. 16 is a graphical diagram illustrating the generation of an acknowledgment by the slave device;
FIG. 17 illustrates an I using a 7-bit address format.TwoAn example of C data transfer
FIG. 3 is a graphical diagram representing
FIG.TwoFIG. 3 is a detailed block diagram showing a C interface;
FIG. 19 is a block diagram of I for receiving data.TwoTypical related to C interface
FIG. 3 is a graphical diagram showing a waveform,
FIG. 20 shows an ITwoTypical related to C interface
FIG. 3 is a graphical diagram showing a waveform,
FIG. 21 shows a typical in-circuit serial program of the microcontroller of FIG.
FIG. 2 is a block diagram illustrating a signaling connection;
FIG. 22 is a table showing various commands available for serial program operation.
And
FIGS. 23 and 24 show load data for serial program operation, respectively.
FIG. 3 is a graphical diagram showing data commands and read data commands; and
FIG. 25 is a detailed block diagram of another embodiment for a serial interface.
FIG.
FIG. 26 shows the microcontroller of FIG. 1 formed to monitor an external battery.
FIG.Embodiment of the Invention
[Overview of the system]
Referring to FIG. 1, there is shown a microcontroller integrated circuit for implementing the present invention.
A detailed block diagram illustrating the road 10 is shown. The microcontroller 10
Battery manufactured by Microchip Technology, Inc.
"MTA 140xx" used for applications such as recharging and battery monitoring
/ Callisto ”programmable control integrated circuit format.
The microcontroller 10 is
Portable calculations, cell phones, camcorders where recharging and monitoring and control are desired
For a large number of applications such as camcorders and other low cost products
ing. However, microcontroller 10 and the present invention provide such an
Not limited to applications, but as will become apparent from the detailed description below,
Other apps (such as various devices where precise measurement of force analog voltage is desired)
Can be used in applications.
The microcontroller core 12 provided in the microcontroller 10 includes:
Also manufactured by Microchip Technology Inc.
A "PIC16C6X / 7X" microcontroller can be employed.
The microcontroller core 12 includes an eight level deep stack as well as multiple
8-bit reduced instruction set computer (RISC with internal and external interrupt sources)
: Reduced Instruction Set Computer) CPU is provided. This microcontroller
The Troller core has a Harvard architecture with separate instructions and a separate 8-bit
A data bus for permitting a 14-bit instruction word having data length
. In addition, a program that requires two cycles by a two-stage instruction pipeline
Execute all instructions (35 total) in a single cycle, except ram branches
Can be.
Referring to FIG. 2, there is a clock size of the microcontroller core 12.
A graphical diagram representing the creel is shown. From pin OSC1 or internal oscillator
The clock input is internally divided into four phases Q1, Q2, Q3, Q4,
The phase generates all processor clock cycles. Two clocks
The cycle is required to complete the order, so that the order can be
Fetched during the cycle
During the first clock cycle. However, a two-stage pipeline
As a result, the execution of one instruction cycle overlaps the fetch of the next instruction cycle,
Effectively reduces the cycle time for one clock cycle for instructions
I do. However, some instructions, like the “GOTO” instruction, use a program counter.
If so, two cycles are required to complete the instruction. Straightforward
The program counter (PC) is incremented during the Q1 portion of the clock cycle.
The fetch starts with an operation to perform. The fetch instruction is stored in the instruction register.
And is decoded and executed during the Q2 to Q4 portions of the clock cycle.
The microcontroller core 12 is free-running and does not require any external elements.
It has a watchdog timer 14 that is implemented as a chip RC oscillator.
This watchdog timer typically has a nominal timeout of 18 milliseconds [ms].
Have However, if a longer timeout is desired, watched
The timer has a prescaler with a division ratio up to 1: 128.
Can be assigned under software control. Therefore, the tie until 2.3 seconds [s]
The actual time out period can be realized.
The microprocessor core 12 also has a real-time clock / counter (RTCC
: Real-Time Clock / Counter) 16 and an arithmetic logic unit for performing calculations
(ALU: Arithmatic Logic Unit) 18 and further stores various calibration constants.
Erasable programmable read-only memo with 64 words of calibration memory space to store
(EPROM: Erasable Programmable Read-Only Memory) 20. Ma
The microprocessor core 12 further
Also, random access memory (RAM) for temporary storage
Memory) 22, an I / O system for providing general-purpose input / output (I / O)
Controller 24 and an interrupt controller 26 that receives and responds to an interrupt.
.
Several analog peripherals are pre-analog for microcontroller core 12
Constituting the mounting means. Such analog peripherals include battery charging and monitoring and control
Conditioning and analog-to-digital conversion operations useful for many applications such as
I do. All analog functions are directly controlled by the microcontroller core
To maximize flexibility and customize via firmware
Can be.
The pre-analog peripheral devices include a gradient A / D converter 30 and a multiplexer (MU).
X) 32, which allows a plurality of external analog inputs to represent their signal levels.
Be converted to digital count values. Tilt A / D converter 30
Is a medium speed high precision converter that monitors DC and low frequency AC signals.
Ideal for
The bandgap reference 34 included in the analog pre-circuit is based on the need for an external voltage source.
To eliminate. The bandgap reference block 34 also provides a voltage divider block.
38, which blocks are refined for use by the gradient A / D converter 30.
Generates high and low graded reference voltages. A high slope reference voltage is typically 1.
23 volts and is used for the upper limit of tilt detection in A / D conversion. Low tilt
The slope reference voltage is typically 1/9 of the high slope reference voltage, or about 0.14 volts.
. The bandgap reference block 34 further includes a
A voltage is supplied to the low voltage detector 38.
The oscillator selection block 40 receives an external oscillation signal (OSC1) or an internal oscillator 42.
The internal 4 MHz oscillation signal supplied is selected. The selected signal is the slope A / D
It provides a clock signal to the converter 30 and an external clock signal (CLKOUT).
Offer.
Microcontroller 10 also provides a regulated external voltage VREG
An on-chip voltage regulation controller 44 for controlling
Eliminates the need for a pressure regulator. The voltage regulation controller 44 also operates at 3 or 5 volts.
You can choose the work.
To form two charge control channels, two 3 decade 8
Digital-to-analog converters (DACs) are connected to the two comparators
. These dual DACs and comparators can be either single-window detectors or
Alternatively, like a bell detector, to function as multiple level detectors
Can be configured. In addition, these level detectors provide upright and limit detection
Used to generate an interrupt to the microcontroller core to perform
Can be.
On-chip temperature sensor 54 for applications requiring internal temperature monitoring
Is also provided.
Improve the accuracy of low analog input measurements by simulating zero current conditions
To this end, a smoothing and zeroing circuit 56 is used. This "zeroing"
Techniques are used to improve the accuracy of low battery current measurements.
The microcontroller 10 controls the serial data pin (SDAA) and the serial
The other I through the lock pin (SCLA)TwoCan communicate with C compatible devices
To ensure thatTwoC interface controller 58 is provided
You. Such interfaces can also be used in end-use applications.
It can be used to program the microcontroller 10.
[Tilt A / D converter]
Referring to FIG. 3, there is a more detailed block line of the gradient A / D converter 30.
The figure is shown. The gradient A / D converter 30 is the heart of the analog pre-circuit.
, A selected one of a plurality of analog inputs appearing at the input of the MUX 32.
It is converted to a digital count to obtain a voltage measurement of the selected input. example
For example, the A / D converter 30 controls the battery voltage for both battery monitoring and charging.
, Convert current and temperature into digital counts. Analog data by MUX32
The analog inputs selected for digital conversion include a battery voltage (BATV)
, Battery current (BATI), battery temperature (BATT), external analog voltage (RA3 / AN3), battery
Bandgap reference voltage from the bandgap reference block 34, from the voltage divider 38
High and low slope reference signals (SREFHI, SREFLO), internal temperature voltage from the temperature sensor 54
, And two DAC outputs (CHARGE DAC A, CHAR
GE DAC B) can be included.
The RC low-pass filter 103 outputs the output of the analog MUX 32 and the non-
It is interposed between the transfer terminals. A typical time constant of the RC filter 103 is 5 milliseconds [
ms].
The non-inverting input is selected for the precision comparator 101, which is the heart of the gradient A / D converter 30.
Connected to receive one of the analog inputs, and the inverting input is connected to an external pin.
(RAMP pin) 105. An external capacitor 104 is connected to the pin 105.
Is connected so that a lamp voltage is generated at this terminal.
The 4-bit programmable tilt control DAC 102 has multiple switchable
A current source is provided, and external control is performed by a 4-bit digital control signal ADDAC.
The charge current to the capacitor 104 is selectively controlled in the range of 0 to 37.5 μA in steps of 2.5 μA.
I do. This external capacitor has, for example, a value of 0.1 and μF to obtain optimal results.
Should have a low temperature coefficient.
The output of comparator 101 is provided to the input of counter / capture timer 106,
The output of the counter is provided to the input of capture register 108.
Transistor 109 turns off all current sources when signal ADRST is logic "1".
Connected to DAC 102 to deactivate.
In operation, each analog channel has multiple analog inputs from MUX32.
By selecting one of the log entries, it is independently converted to a digital count.
Is replaced. The conversion operation is performed by first resetting the counter 106 and at the same time
The denser 104 is set for a predetermined minimum time, for example, 200 milliseconds [ms].
This is done by discharging to ground. Then the reset is released and the counter
The capacitor 106 begins counting while the capacitor 104 is supplied by the DAC 102.
The charging is started based on the charging current. When necessary to discharge capacitor 104
The effect of the intermediate non-zero capacitor voltage on the amount of time that remains during reset
Microcontroller 10 to offset
It is worth noting that there is no need to be accurate depending on your ability. Similarly,
It is not important that the capacitor 104 begins counting exactly as it begins to charge
. The terminal voltage of the external capacitor 104 exceeds the voltage of the selected analog input
At this time, the comparator 101 switches from logic “high” to logic “low”. This
Transition to the microcontroller core 12 is started by the transition of
The count value of the counter 106 is latched in the capture register 108 by a control signal.
Capture event. The total stored in the register 108
The number exceeds the selected analog input voltage when the capacitor 104 is fully charged
And corresponds to the measured voltage value of the selected analog input. Soshi
This count is then calculated using a unique calibration procedure and a smoothing algorithm, as described below.
More accurate voltage for selected analog input by using algorithm
Used to get measurements. In a similar manner, the digital
The count value is determined by independently selecting each analog input from MUX32.
Which allows the voltage of each of the multiple analog inputs to be digital
Can be measured.
(Calibration procedure)
In order to make the measured value of the selected analog input more accurate,
A unique calibration procedure is utilized, as described in US Pat. Generally, a minimum set of
The parameters need to be adjusted or "trimmed" during the test.
So that the calibration constants are calibrated and stored in EPROM user space.
Is done. These minimum set of parameters that need tweaking
The ratio of the lower slope reference voltage to the higher slope reference voltage of the slope A / D converter.
, Bandgap voltage, internal temperature sensor (thermistor) voltage, and selected
There is an oscillator frequency. Therefore, in the present invention, these parameters are set as shown below.
Parameters are measured during the test and calibration constants are calculated, but all calibration constants are
Stored in the user space of the EPROM 20 for later retrieval and use.
Are used to more precisely increase the A / D measurement accuracy.
A. A / D slope reference calibration constant (Kref)
In order to determine the coefficient of the linear transfer function, the on-chip gradient A / D converter 30
A known ratio between the two voltage points is required. The slope reference generator 36 (of FIG. 1)
A higher slope than the band gap voltage supplied from the band gap reference circuit 34
Voltage and a lower ramp voltage. Low slope reference voltage with respect to high slope reference voltage
Is calculated from the respective measurements of these voltages.
More specifically, the procedure used to calculate the A / D slope reference calibration constant is
It is as follows. The analog MUX 32 is provided by a slope reference generator 36
Is set to select one of the high-order slope reference voltages (SREFHI).
Using a precision voltage measurement circuit, a high-order slope reference voltage is measured and its value is recorded.
This precision voltage measurement circuit is connected to the output of MUX32,
Can be placed on board. Now, switch the analog MUX32
A ramp reference voltage (SREFLO) is selected and this voltage is
Become. Using the precision voltage measurement circuit, the low slope reference voltage is measured and its value is recorded.
It is. And the ratio “SREFLO / (SREFHI-SREFLO)”
Is calculated.
B. Bandgap reference voltage calibration constant (Kbg)
The bandgap voltage provided by the bandgap reference circuit 34 is approximately
Should be 1.23 volts. However, this voltage is the power supply voltage (1 mV or less)
And slightly dependent on temperature (typically 10 mV or less) (1 m at power supply voltage).
V or less, typically 10 mV or less at temperature). Therefore, the band gap reference circuit 34
The actual voltage supplied by the device is measured and the value should be stored in the EPROM 20.
It is.
To obtain an actual measurement of the voltage provided by the bandgap reference circuit 34
The following steps are performed. First, the analog MUX 32 operates as a bandgap reference circuit.
It is set to select the output of path 34. Using a precision voltage measurement circuit, the MU
The bandgap voltage appearing at the output of X32 is precisely measured. This measurement voltage
It becomes the bandgap reference voltage calibration constant Kbg.
C. Thermistor calibration constant (Kthrm)
The temperature coefficient of the internal temperature sensor / thermistor 54 is relatively constant with respect to temperature.
However, the absolute value of the voltage output changes sufficiently with the process. Hence thermist
The absolute value of the output voltage of the data 54 should be measured at a predetermined temperature.
The constant value is stored in the calibration EPROM.
The procedure for measuring the thermistor voltage is such that the MUX 32 selects the thermistor 54.
Described above for measuring the bandgap voltage, except that
The procedure is the same.
D. Temperature coefficient calibration constant (Ktc)
It is believed that the temperature coefficient of the thermistor is relatively constant with respect to temperature. I
However, this temperature coefficient has the property of being somewhat dependent on the process. This
Is measured by first measuring the thermistor voltage (at the output of MUX32)
To adjust the temperature coefficient calibration constant (Ktc) based on the measured voltage value
Therefore, it can be extrapolated.
This temperature coefficient calibration constant is typically between the thermistor output voltage and its slope.
From the characteristic data of the thermistor output voltage for various temperatures where correlation exists
be able to. Therefore, the temperature coefficient of the thermistor is based on the output voltage at a given temperature.
And can be compensated to improve accuracy.
The next two constants are less important to increase the accuracy of the A / D conversion
Is important in obtaining accurate time-based measurements / events.
E. FIG. Internal oscillator calibration constant (Kin)
Calibration for the frequency of the internal clock due to process variations should be highly accurate.
Is required. The calibration factor Kin is the measured frequency F of the internal clock.
Calculated from osc, this frequency is measured at the external "OSC2 / CLKOUT" pin. Than
Specifically, the calibration constant Kin is [(measured frequency−3.00 MHz) / 10 kHz.
z]. This means that the measured frequency is 3.0MHz
Note that it is assumed that they are greater.
F. Watchdog timer calibration constant (Kwdt)
High accuracy for calibration for watchdog timer frequency due to process variation
Is required. This calibration factor Kwdt is the watchdog of FIG.
It is calculated by measuring the operating frequency of the timer 14. Watchdog timer
Frequency is not applied to an external pin, but the watchdog timer frequency is
Measure by monitoring the logic state of a predetermined bit in a register
In this case, the logic state of that bit is the logic of the watchdog timer signal.
It represents the management level. This calibration constant Kwdt is [(measured frequency) / 1 Hz
].
After obtaining the calibration constants / factors described above, each calibration constant is formatted
At a predetermined address position in the EPROM memory 20, data as shown in FIG.
Data format.
[A / D conversion using stored calibration constants]
The A / D converter 30 converts the A / D count value obtained by the A / D converter 30 into a corresponding input voltage value.
Is performed by the microcontroller core 12 according to the following equation (1).
:
here,
Coffset = Creflo-Kref (Crefhi-Creflo);
Vin = the resulting (digital) voltage absolute value of the selected input;
Cin = A / D count value for selected input,
Creflo = A / D count value for A / D low reference point,
Crefhi = A / D count value for A / D high reference point,
Cbg = A / D count for bandgap criteria.
The offset term (Coffset) is used to start the voltage ramp of the slope A / D converter.
Compensate for any turn-on delay or voltage offset that may occur. example
If the lamp starts counting before the lamp voltage increases, or
If the loop voltage does not start exactly at 0 volts, an offset
You. Therefore, this offset term is the turn-on delay or the count of the voltage offset.
It is.
When performing A / D conversion on various analog inputs, the present invention
To maximize the sampling rate for high priority signals such as re-current,
And, for low priority signals that change at a relatively low speed, such as temperature input,
In order to reduce the sampling rate, the selection of analog input for A / D conversion
Be moved. Referring to FIG. 5, various analog input signals are sampled.
An interleaving priority scheme for interleaving is shown. Battery current
Is the highest priority and is sampled eight times per 16 A / D cycles. Ba
Battery voltage has the following priority and is sampled twice per 16 A / D cycle
Is done. The battery temperature and internal temperature from the external thermistor input are 16 A / D
Each sample is made once during the cycle. Similarly, the current network zero voltage,
The gap voltage and the high and low A / D reference voltages are calculated every 16 conversion cycles.
Is sampled once.
A / D analog input to stabilize the reference value and increase A / D precision
Before calculating the actual voltage value
Raw count data of a predetermined analog input obtained from the A / D converter is smoothed. Figure
Referring to FIG. 6, there is shown a flow diagram illustrating the A / D data flow.
The A / D flow includes smoothing algorithms 112 to 114 and an averaging algorithm.
Algorithms 115-116, these algorithms are based on the actual
Used to calculate pressure values. The count value of the band gap voltage (Cbg) is
By calculating the rolling average of the 16 counts obtained later
And smoothed. The smoothed value (Cfbg) of the band gap count value is given by the following equation (2)
) Is calculated as shown:
Here, the subscript “i” indicates an interleave sequence number.
The smoothed value of this bandgap count is then
12 to calculate the voltage at the output of block 118, as described below.
Used to
The count offset value (Coffset) is finally obtained as shown in the following equation (3).
Smoothed by calculating the total average of the 16 counts obtained:
here,
Coffseti= Crefloi-Kref (Crefhii-Crefloi).
The smoothed value of this offset count value (Cfoffset) is also
It is provided to the sakoa 12 and is used to calculate the A / D input voltage.
The current input zero offset count value (CIzero) is calculated by the following equation (4).
By calculating the total average of the last 16 counts obtained as shown in
Smoothed:
here,
Coffseti= Crefloi-Kref (Crefhii−Crefloi).
The smoothed value of this current input zero offset count value (CIzero) is also
The pressure is provided to the microprocessor core 12 for calculation.
The present invention further provides for the generation of battery voltage and battery current channels.
The data is smoothed / averaged. The battery current count value (Clbat) is given by the following equation (5).
From the interleaved sequence as shown in Fig.
By taking the average, it is smoothed:
This smoothed battery current count (CfIbat) tracks battery capacity.
This is the quantity data sent to the digital integrator.
Similarly, the count value (CVbat) for the battery voltage is expressed by the following equation (6).
Averaging two samples of the input channel from the interleaved sequence
And is smoothed by:
The later smoothed count is related to the calibration constant stored in EPROM 20.
, As shown in the following equations (7) and (8),
For all input voltages,
Used to calculate each more accurate digital value:
It should be noted that the numerator of equation (7) has a count value corresponding to the input zero current condition.
There is a term (CfIzero) which is low, as will be explained in more detail later.
It is used to improve the accuracy of the measured value of the current value.
In addition, more accurate digital values for internal and external temperature voltages are
And can be calculated as shown in equations (9) and (10):
Therefore, the present invention measures with different calibration constants and different smoothing algorithms.
The operation of storing in external memory allows the voltage, current and temperature of these external batteries to be stored.
To obtain a very accurate measurement of such selected analog input
I have.
[Zero circuit]
Important for accurate results when trying to measure low-level analog signals
What is important is to know exactly where the zero reference point is. Therefore, the present invention
Is equipped with a zeroing technique for improving the accuracy of measurement of a low current value. FIG.
, There is a zeroing circuit 138 of block 56 (of FIG. 1).
Is shown in a detailed block diagram. This zeroing circuit simulates the zero current condition.
To simulate, two aligned passage gates 140, 142 are provided.
The switches 140 and 142 in which the field effect transistor type is adopted are precisely
Unaligned, non-aligned, if any, measured and added in EPROM
Stored as dynamic calibration constants and used to improve A / D precision
. Switch 142 responds to signal ADZERO of microcontroller core 12 and
, Switch 140 responds to its inverted signal via inverter 141. Zeroization
The circuit further includes an input protection circuit 147 and a switchable current bias source.
149 are provided.
In operation, switch 140 is open and switch 142 is closed.
When the voltage corresponding to the zero current condition is equal to the MUX 32 (and the comparator 50 or 51).
). Therefore, a zero current condition occurring at pin 143 is simulated. this
Allows a slope A / D converter to accommodate zero current on pin 143
A digital count value is obtained. Therefore, the switch 140 is closed and the switch is closed.
When the switch 142 is open, the subsequent analog current measurement on the pin 143
Is calculated relative to this zero measurement.
This zeroing technique can be used at very low current values when such high precision is very important.
Provide high accuracy.
To capture even smaller current pulses, an optional filter
Capacitor 152 may be connected to a current averaging pin (IAVG) 154 and ground.
. Capacitor 152 and internal resistor 156 form an RC network to provide a DC averaging filter.
The capacitor 152, and the capacitor 152 operates at a desired time.
It can be adjusted to get a number. Zeroing circuit 138 and IAVG pin 154
Is closed during A / D sampling and the switch 158
During the conversion operation, the circuit is automatically opened by the inverted signal of the signal ADZERO.
In a battery monitoring application, the zeroing circuit 138
Used to increase the accuracy of the measured current supplied by the external sensing resistor.
The current is measured at pin 143 by connecting in series to the battery. More details
Specifically, a circuit node 148 connected to the output of battery 146 is connected to pin 143.
While being connected, it is recursively connected to ground via the sensing resistor 150. Sensing resistance
150 is typically a low resistance, for example, on the order of 0.05Ω. Therefore, the resistance 15
A low voltage generally develops across zero. ± 5A battery pack and 0.05Ω
A voltage in the range of -0.25 to +0.25 volts (polarity indicates that the battery is charged)
Pin 143), or whether it is supplying an output current).
Appears in Further, in the case of low battery current, the terminal voltage of
It is always small, for example of the order of a few mV. Therefore, against such low current
In order to obtain a precise measurement value of the battery current, the A / D
It is important to know the digital count. For example, if the zero current condition is A / D
Digital counter values of “100”, especially for relatively low digital count values.
When measuring the voltage corresponding to the battery current at a low current that gives
Fset must be considered. As described above, the zeroing operation 138
By simulating the zero current condition by the switches 140 and 142,
Provide current.
[Charge control / current flow detector]
As described in the overview of the system, the two connected to the microcontroller 10
Are connected to comparators 50 and 51, and are connected to external buses.
To control the charge rate of the battery, form two charge rate control channels
can do. These dual DACs and comparators may instead
Or two separate level detectors, or a single
It can be configured to operate as a window detector.
Referring to FIG. 8, there is one of the comparators (used in connection with 50, the first
Of the dual DACs (201) constituting the charge control channel (channel A) of
A detailed block diagram is shown to represent. In short, DAC 201 has its output
A programmable voltage at the output (output of MUX 208) and the non-inverting input of comparator 50
Supply. The other (inverted) input of the comparator 50 is output from the nulling circuit 56, for example,
It is connected to receive a voltage representing a current sensed from an external battery. Filling
When operating in the power control mode, the output of comparator 50 is applied to XOR gate 212.
Connected to provide a charge control signal to pin 214, which causes pin 214 to
Connected to an external field effect transistor (FET) to control the battery charging current
It is. In the charge control mode, the charge control circuit of the data 8 performs feedback control.
The operation is performed and the voltage (corresponding to the sensed current) is applied to the output voltage of the DAC 201.
Equalize qualitatively and effectively control the amount of charge seen in the battery.
When operating as a level detector, this circuit operates as a battery current monitor.
Power (corresponding to the battery sensing current)
Output voltage of the DAC 201 when the voltage decreases or conversely increases
Switches the state of the comparator 50 and sets the rising interrupt flag (WUIF).
Thus, the microcontroller core 12 is interrupted.
More specifically, the DAC 201 includes two resistor ladders 203 and 204,
A flow source 205 and / or multiplexers 207 and 208 are provided. Resistance ladder
-203 is used for output voltage course adjustment, and the resistance ladder 204 is
Current sense bias so that the center point of the ladder is approximately equal to zero current flow.
Matched to resistance. Thus, this allows the DAC 201 to fill the current flow.
Both charging and discharging, ie both positive and negative current flows, can be controlled and monitored.
The resistor ladder 203 is divided into two decades / regions with 32 taps
. The first decade is defined to control trickle or maximum charge rate.
, A resolution of 5 mV and a value range of ± 50 mV. This is due to the use of an external sense resistor of 0.05Ω.
Corresponding to a current resolution of 100 mA and a value range of ± 1 mA.
The second decade is defined for fast charging applications and has a resolution of 50m
V and has a maximum value range of ± 0.35V. This is with the use of an external sense resistor of 0.05Ω.
Current resolution of 1 A and a value range of ± 7 mA.
The fine tune resistance ladder has eight taps and a buffered output from the tracking ladder.
Used to divide the force voltage. This results in a minimum voltage of approximately 0.714 over the entire area.
Resolution, ie, a current resolution of about 14.3 for a 0.05 ohm sensing resistor.
The voltage subdivision and range of the DAC 201 are stored in a DACA register (LDACA).
Depends on the value of the stored logical bit. L
The DACA register is a data register for controlling the output voltage of the DAC 201.
Here, the upper 5 bits (bits 3 to 7) of the LDACA register are as shown in FIG.
The voltage output value range is selected via the tracking ladder 203 according to the table shown in FIG.
For this purpose, the MUX 207 is controlled. FIG. 9 shows a corresponding sensing voltage using a 0.05Ω resistor.
Current is shown, where the current shown in parentheses in the lower half of the current range table is shown.
The flow range represents a negative current corresponding to charging of the battery. In addition, LDACA
The lower three bits (bits 0 to 2) of the register are determined according to the table shown in FIG.
Control MUX 208 to select voltage output range via ladder 204
.
As an example, when a positive / discharge current of 340 mA is desired, the LDACA
The register is set to the binary value "00011010". Upper 5 bits
("00011") results in a tracking range of 300-400 mA, as shown in FIG.
As shown in FIG. 10, the 3 most significant bits (“010”) are 8 times the maximum value of the tracking range.
That is, the fine tuning setting of 37.5 mA is selected. Note that negative /
If a charging current of 340 mA is desired, LDACA“10011010 ”
That is to say.
The output of the analog MUX 208 is the analog voltage output of the DAC 201,
An external filter is supplied to a plurality of inputs of the A / D converter 30 and is supplied through an external pin 210.
Capacitor.
The output of analog MUX 208 is also connected to the non-inverting input of comparator 50.
The inverting input of the comparator is connected to the external battery after passing through the zeroizing circuit 56.
Compatible with re-sensing current (BATI)
Connected to receive a current sensing voltage.
The output of comparator 50 is connected to a first input of XOR gate 212, the gate of
The second input is connected to receive the charge control polarity bit CPOLA and has a logic "
When set to "1", the output of the comparator 50 is inverted.
The OR gate 212 sets the sense voltage to DOL by the CPOL bit in the CHGCON register.
Program to interrupt when AC voltage goes above or below
Have been.
The output of the XOR gate 212 provides a charge control signal (CCTRLA),
Supplied to an external FET via pin 214 to control the charging current to the
.
To enable the charge control mode, the charge / level detection control (CHGCON
) The charge control function enable bit (CCAEN) of the register is set to logic “1” and the pin
210 and 214 will assume their normal input / output (I / O) port functions
. The bits of the CHGCON register are shown in detail in FIG. Bit CCAE
If N is a logic "1", the charge control circuit determines the voltage appearing at the inverting input of comparator 50.
Programmable DAC output voltage that appears at the non-inverting input of comparator 50
To provide an external power transistor with a battery.
Effectively control the amount of charging current generated through the resistor 217. Charge control comparator
50 (bit CCOMPA) and charge control polarity bit A (CPOLA)
It can be read from the N register. The CHGCON register also has a corresponding
And a polarity bit (CCOMB, CPOLB) associated with channel B.
Referring to FIG. 12, there is shown a second block 48 in conjunction with the comparator 51.
Second charge control / level detection channel using DAC (Channel B) 201 '
Is shown in a detailed block diagram. The charge control channel B is the charge control channel of FIG.
Very similar to the control channel A, and here the same diagram as the elements shown in FIG.
The twelve elements use the previous reference numbers. The input of the comparator 51 of channel B is
, The non-inverting input of comparator 51.
Is connected to the output of DAC 201 ', and the inverting input of comparator 51 is
Receives the voltage from the zeroing circuit corresponding to the battery current (BATI). In addition, DAC20
1 ′ is supplied to the output of the DAC 201 by the LDACA register.
In the same manner as controlling the current flowing according to the tables shown in FIGS.
Controlled by 8 bits of the DACB (LDACB) register.
As mentioned earlier, these dual charge control / level detectors also provide input signal
To detect when a signal exceeds or falls below a programmable threshold level
Can be used for These level detectors do not perform charge control.
Can be used even when not. In such cases, the CHGCON
The star charge control enable bit (CCAEN) remains at logic "0". Fig. 8
Returning to channel A, the programmable threshold level will set the desired voltage output to the DAC.
Digitally by programming the power with the LDACA register.
Is set. This means that a predetermined programmable threshold voltage is
0 is applied to the non-inverting input of the comparator 50 and the signal appearing at the inverting input of the comparator 50 is programmed.
Means that comparator 50 switches logic states when possible threshold voltage is exceeded
I do. This
Set the flag and interrupt the microprocessor core 12
Can be called upon, thereby prompting for work to be done immediately
. Further, the logic state of the output of the comparator 50 is, as described above, the CHGCON register.
It can be monitored by reading the star (bit 2).
[Standing function with digitally programmable threshold]
The microcontroller 10 is activated by executing a specific inactive instruction.
Operation mode. In this inactive mode, the on-chip oscillator is
Is turned off, but the watchdog timer continues to operate. In addition, microcontrollers
Roller 10 is inactive, except that the watchdog timer is turned off.
It has a hibernate mode that is the same as the mode. These modes are
, Which results in lower power consumption because the oscillator is de-energized, resulting in substantial power savings.
Bring.
The microcontroller 10 has an external reset input and a watchdog timer timer.
Imout (if possible), ITwoStart / stop bit on C serial line
Inactivity mode in response to the detection of an event or the occurrence of an event such as the completion of an A / D conversion.
Escape from the card, that is, "stand up". In addition, microcontroller
Sensor 10 is used for battery monitoring and charging applications.
For causing the stored battery current to wake up microprocessor core 12
It can be used to detect when a possible threshold is exceeded or below. FIG.
Referring again to FIG. 2, the sensing voltage representing the sensing current (BATI) of the battery is equal to the DAC 201.
Exceeds the programmable threshold voltage set by
High to logic low
Is switched to the wake-up interrupt flag (WUIF).
g) is set to interrupt the microcontroller core 12. Therefore, my
The black controller core can escape from inactive mode and
Increasing current output for truly accurate and timely battery level accurate measurements
Can be properly monitored.
As before, the channel B level detector (of FIG. 12) provides another input signal.
To detect when a signal exceeds a digitally programmable threshold level
Alternatively, it can be used as an independent level detector. For example, zeroing circuit
Voltage exceeds the programmable threshold voltage set by DAC 201 '
Then, the comparator 51 switches from logic “low” to logic “high”, which causes
To set the wake-up interrupt flag (WUIF) and interrupt the microcontroller core 12.
Apply.
Instead, program the two DACs to detect opposite polarities
Can implement a window detector, in which case it is programmable
Positive battery current above the threshold and negative battery below the programmable threshold
Both battery currents can interrupt the microcontroller core.
At this time, the logical bits (CCOMPA, CCOMPB) representing the outputs of the comparators 50 and 51 are changed.
Read each one so that an interrupt is generated by one of the two detectors.
Can be. Such a window detector has a battery that is not currently in use,
Later, a device that draws / discharges the current from the battery current, such as a camcorder.
Or a battery charger that supplies charging current to the battery.
It is useful for battery applications for detecting when the battery is installed. In either situation
Well, my
Immediately raise the microprocessor core for truly accurate and accurate measurement of battery power
It is important to detect the current flow.
[ITwoC (Inter-Integrated Ciccuit) interface]
The microcontroller 10 implements a bidirectional 2-wire bus and data transmission protocol.
Supported. In particular, ITwoC interface 58 is a serial EEPROM
Other peripherals such as OM, shift register, display driver, A / D converter, etc.
Serial interface useful for communicating with peripheral devices or microcontroller devices.
Face. ITwoThe C interface alsoTwoC (Inter-Integrated C
iccuit) compatible with specifications, system management bus (SMBUS) and access bus.
ITwoThe C bus is a 2-wire serial interface developed by Philips / Signetics.
Face. Its original specification, or standard mode, is 100 kilobits / second (
Kbps), and the extended specification, ie, high-speed mode, is 40
It supports data transfer up to 0 kbps (kilobits / second),
High-speed, dual-mode devices are designed to interact when coupled to the same bus.
You.
ITwoThe C interface is a package that ensures reliable transmission and reception of data.
Implement a comprehensive protocol. When transmitting data, one device must be the master
To generate a clock signal, and the other device operates as a slave. ITwoC
Each device at the interface has a specific address associated with it,
When the master wants to transfer data, it first sends the address of the device that wants to talk,
The address sent by the master is
If the slave device address matches, the slave device is
Is selected.
During periods when there is no data transfer, the clock line (SCLA) and data line (SDAA)
) Is pulled high by an external pull-up resistor. Complete the data transfer
To do this, the master device generates both start and stop conditions and
Determine the start and stop of sending. Referring to FIG. 13, the start condition is
When the clock line is high, the data line changes from high to low.
A stop condition when the clock line is high.
Is defined as a low to high transition on the data line.
You. In addition, because of the definition of such start and stop conditions,
When the data line is set as shown in FIG.
It only changes when it's low.
ITwoTwo addressing formats exist for addressing C devices
I do. The first format has a write / read bit as shown in FIG.
7-bit address format. Simply put, the start bit (S
)), 8 bits are generated by the master and the first 7 bits are the slave device
And the last bit is a write / read bit.
The second addressing format, as shown in FIG.
10 bit address format with bits. Simply put, start
After the bit, two bytes must be generated by the master, the last byte of the first byte.
First 5 videos
The unit specifies that address to be a 10-bit address. The next 10 bits
This is the address of the slave device, and the last bit is a write / read bit.
After each byte of transmitted data, an acknowledge bit is set by the slave / receiver.
Generated. Referring to FIG. 16, there is an acknowledgment issued by the slave device.
A graphical diagram representing raw is shown. More specifically, the slave device
To hold the data output line low during the clock pulse for the answer
Therefore, an acknowledgment is given to the reception of the last byte of data. For example, 7 bits
Regarding the address format, every ninth clock pulse is an acknowledgment clock pulse.
It corresponds to Luz.
Referring to FIG. 17, there is an I using a 7-bit address format.Two
A graphical diagram illustrating an example of C data transfer is shown. Simply put, a star
After the write bit (S), the master writes a 7-bit address and a slave device.
/ Read bit is generated. If this address is received, the slave device
Pulls the data output low and acknowledges address reception. then,
The master generates one byte of data and acknowledges its receipt by the slave device.
A response is made. When data transfer is completed, the master issues a stop bit (P).
Live.
Referring now to FIG.TwoDetailed interface of C interface 58
A lock diagram is shown. ITwoC interface 58 has all slave functions
Hardware to completely implement the master function and facilitate software implementation of the master function.
Provide support in a. ITwoC interface is standard and high speed
It performs mode specification and both 7-bit and 10-bit addressing.
For data transfer, two line / external pins, ITwoC clock
RC6 / SCLA pin and ITwoThe RC7 / SDAA pin, which is C data, is used.
Used.
ITwoThe C interface 58TwoHas 5 registers for C operation
: [1] ITwoC control (ITwoCCON) register, [2] ITwoC state (ITwoCSTAT
) Register, [these registers (ITwoCCON, ITwoCSTAT)
Located in the register (data) space], [3] Serial receive / transmit buffer
(ITwoCBUF) 301, [4] ITwoC shift register (ITwo(CSR) 303, and
, [5] address (ITwoCADD) register 305. ITwoC interface 58
Also includes a comparator / match detector 307 and start and stop bit detection.
A circuit 309 is provided.
ITwoThe CCON register is ITwoC operation, and this register allows the next ITwo
One of the C modes can be selected:
1) I with 7-bit addressingTwoC slave mode,
2) I with 10-bit addressingTwoC slave mode,
3) I with 7-bit addressing and master mode supportTwoC slave mode
Mode,
4) I with 10-bit addressing and master mode supportTwoC slave mode
Mode, and
5) ITwoC master mode, where the slave is idle.
ITwoThe CSTAT register is only read, giving the status of the data transfer.
You. This means that the bytes received are data or
If the next byte is a complete 10-bit address, and
Start and stop bit detection if this would be read and write data transfer
Contains information such as out.
ITwoThe CBUF register is a register where transfer data is written and read.
It is a register / buffer. ITwoThe CSR register is the microcontroller 10
Or data from the microcontroller 10 is shifted. ITwoC
The ADD register stores the address of the slave.
Referring to FIG. 19, there is data with a 7-bit address format.
I for receptionTwoA graph showing a typical waveform related to the C interface 58
A schematic diagram is shown. ITwoOnce the C interface 58 has been enabled
Then, wait for the start condition to occur. Following the start condition, a 7-bit
Dress and write / read bit are ITwoShifted into CSR register 303
. All incoming bits are sampled on the rising edge (leading edge) of the serial clock
Is performed. ITwoThe content of the CSR register is the falling edge of the eighth clock pulse.
At the edgeTwoIt is compared with the contents of the CADD register. Both addresses match
If ITwoIf the content of the CSR register is ITwoLoaded into CBUF register, ITwo
The write / read bit of the CSTAT register is cleared (data is
Write to the base 58). In addition, an acknowledgment pulse is generated
After each data byte transfer, ITwoC interrupt bit (I2CIF) is set,
The interrupt bit is cleared in softwareTwoCSTAT register
Is used to determine the status of that byte. However, ITwoCBU
If the F register has not been read from a previous reception, the address
An overflow condition exists. In such situations, the non-acknowledgment pulse
Is generated and ITwoSet the overflow bit (I2COV) in the CCON register.
Indicates an overflow condition.
Referring to FIG. 20, there is data with a 7-bit address format.
I for transmissionTwoA graph showing a typical waveform related to the C interface 58
A schematic diagram is shown. Write / read bit of address byte when address match occurs
Is set (data is being written to interface 58).
Represents), ITwoThe write / read bit of the CSTAT register is also set. Receiving
Address is ITwoLoaded into CBUF register, acknowledge pulse
Generated on 9 clock pulses. The data to be transmitted is ITwoCSR register
I load moreTwoMust be loaded into the CBUF register. 8 vi
Data is shifted out on the trailing edge of the serial clock. Same as data reception
Thus, for each data transfer byte ITwoC interrupt flag (I2CIF) is generated and
At this time, the 12CIF bit is cleared by software,TwoCSTAT register
, Used to determine the status of that byte.
[In-circuit programming of microcontroller]
ITwoBy using the C interface 58, the microcontroller
10 can be serially programmed in the final application circuit.
Wear. These features allow customers to install boards with unprogrammed equipment.
Microcontrollers, and then just before shipping the product.
Can be programmed. This allows the most up-to-date firmware
Or customer firmware can be programmed.
The microcontroller 10 sets the serial clock and serial data pins to “
Low "and the voltage program pin is at a voltage Vpp relative to Vss, e.g.
, Can be in program / verify mode by increasing to 12 volts
You. Once in program mode, the user program memory and test program
RAM memory is accessed and programmed in either a serial or parallel manner.
Where the initial mode of operation is serial and accessed.
The memory is a user program memory.
In the present invention, the clock and data to the microcontroller 10 and the microphone
Microcontroller to provide clock and data from the
Use two external pins (SCLA pin and SDAA pin) of the controller 10
Thus, in-circuit serial programming is completed. In addition, in-circuit professional
When performing gramming, power, ground, and
Three other pins are used to supply the programming voltage (Vpp). FIG.
Referring to FIG. 1, there is a serial circuit in a typical circuit of the microcontroller 10.
The default programming configuration is shown. For exemplary purposes only, the matrix in FIG.
The microcontroller 10 exists inside the final circuit / battery pack 403.
And is used to control charging monitoring of the battery (330). Shown in FIG.
Purpose used to program the microcontroller 10 to be
The microcontroller 10 has a battery pack
Some of the external pins for connecting to the external connector 403 are provided.
At this time, the microcontroller 10 is already installed in the battery pack 403.
It is rare. The external connector 401 sends clock and serial data signals to
To supply the SCLA and SDAA pins of the microcontroller 10, respectively.
Receive a signal. The clock pin is used to supply a clock to the microcontroller.
The data pin is used to input command bits and data during serial operation.
Used to input / output serially. The connector 401 is also a program
Receiving a switching voltage, for example, 12 volts,
Supply to the clear (MCLR) / voltage programming pin to provide microcontroller 1
Enable 0 and enter serial programming mode. And
The connector 401 is connected to external power pins VDD and VSS (
+ 5V is supplied between the two.
The present invention also provides for programming with an external thermistor input, as shown in FIG.
It has the ability to multiplex ramming voltages. Such a lot
Used to monitor the ambient temperature where the battery pack is located, depending on the weighting feature
Input a signal from an external temperature sensor to the microcontroller 10
Can be. In addition, only five terminals are commonly used on multiple battery bags
It is possible to use four terminals, usually for serial transmission (clock and data).
This multiplexing feature is important because two are considered for). Follow
Thus, according to the present invention, the fifth terminal is connected to a programming voltage and an external thermistor.
Used to supply both signals from the
Will be possible.
Multiplexing of the programming voltage and thermistor inputs is accomplished by placing resistors 321-327.
Attained through the installation. During normal operation, the thermistor pin is open on the left (outside
If no thermistor is used) or external 10-50 kΩ [Ohm]
It is driven by, for example, +5 V [volt] by a thermistor. In this example, +85
Within about 0.3 mV corresponding to -40 ° C for about 2V corresponding to temperature of ℃
Is supplied to the AN3 pin via the resistors 325 and 327. AN3
This voltage appearing at the input of the MUX 32, as shown in FIGS.
One of the forces is applied and then measured and processed as described above.
To program the microcontroller serially, connector 4
01 "Data 1" and "Data 2" pins are held "Low" while
The thermistor ("temperature") pin transitions between -24 and + 40V. -24V is a resistor 323
Supplied to the MCLR / Vpp input pin of the microcontroller 10 via
The microcontroller 10 is reset by this 0V.
Note that this -24V means that some negative voltage and corresponding current
It does not damage the microcontroller 10 despite being supplied.
And More specifically, this negative voltage is connected to an input protection die (not shown).
The current is blocked by the resistor, while the corresponding current is a resistor 32, for example 1 MΩ.
5 is smaller due to the large resistance value. On the other hand, + 40V is MCLR
/ Vpp corresponding to about + 13V supplied to the input pin, and this + 13V
Controller 10 is in the program / verify mode. At this time, it
From the “data 1” of the connector 401
The clock and data signals are provided to the "data2" pin and the "data2" pin,
Via the SCLA and SDAA pins of the microcontroller on connector 401, the
The microcontroller is serially programmed. In this way,
The “temperature” pin of the inductor 401 has a voltage corresponding to the external thermistor,
Both programming voltages for serially programming the controller
Used to receive.
Referring to FIG. 22, there are various types available for serial programming.
A table representing the commands is shown. First, the “test load” command
Used to load a 14-bit word into the test program memory,
Based on the received command, the program counter is stored in the test program memory in advance.
It is set to a fixed position. The Load Data command uses 14-bit words
Used to load into user program memory. "Data read" command
Is used to transmit 14-bit words from user program memory. "Ad
The “less increment” command is executed by the microcontroller 10 based on the reception.
Used to increment a counter. The “Start Programming” command
Open programming of either program memory or user program memory.
Test load or data load prior to this command.
Mode command must be given. "Parallel mode input" command is
Program microcontroller 10 to accept data in parallel mode
Used to ram. This parallel mode is typically used for battery packs.
With only a few external connectors, the microcontroller
Generally applied to in-circuit programming
Can not be. Finally, the “End Programming” command is
Used to stop memory programming.
Referring to FIGS. 23 and 24, there are tests for serial programming.
A graphical diagram representing a load and a data load command, respectively, is shown. Frame
The clock pin is given six cycles to input a command,
The command bit is associated with the least significant bit (LSB) of the first input command.
Latched on the trailing edge of the clock. The data on the SDAA pin is shown in FIGS.
As shown, with respect to the trailing edge of the clock, the minimum setup (tset0, tse
t1) and holding time (thld0, thld1).
The setup and holding time is, for example, 100 nanoseconds [ns]. In addition,
Commands such as related data read and data load commands are shown in FIGS.
Has the minimum delay (tdly1) between command and data as shown in
This delay is, for example, 1 microsecond [μs]. this
After the delay, the clock pin is given 16 cycles and the first cycle starts
Bit and the last cycle is a stop bit, and the data is
Input or output is done with least significant bit first with 14 clock cycles
. In particular, during a read operation, the least significant bit is the SDAA pin at the leading edge of the second cycle.
During the load operation, the least significant bit is transmitted on the trailing edge of the second cycle.
It is designed to be latched.
The present invention is a serial program in a microcontroller circuit.
To ITwoAlthough the use of the C protocol has been described,
In-road programming is ITwoNot limited to C protocol, clock line and serial
Includes any serial communication technology that uses data lines. For example, in FIG.
Is a detailed block diagram of another embodiment of the serial interface circuit (410).
A lock diagram is shown. Such interface circuits should be communicated.
Integrated circuit chipsTwoWith hardware to implement the C protocol
Although there are not, the application shown in this case
Source circuit is useful. The interface circuit 410 is connected to the serial data (ADA)
A) Responsive to pin and clock (SCLA) pin,
10 is used to program the
Also used for The interface circuit 410 temporarily holds data
Shift register 41 connected to the serial data pin and clock pin
This data is written to the EPROM 20 via the buffer 414.
Or read from the EPROM 20.
Appropriate data is written to the EPROM 20 in the buffer 414 and the register 412.
A compare / verify block 416 is connected to verify that the input was successful.
The shift register 412 has a command to be executed as shown in FIG.
Is decoded, a command decode block 418 is connected.
The output of the decode block 418 has a control function of executing an execution command.
A state machine control block is connected to perform For example, if the data is EP
When loaded into ROM20
Block, the programming voltage should be supplied to the EPROM 20.
Control the point in time.
In short, according to the present invention, the serial processor in the circuit of the microcontroller 10 is provided.
Gramming is performed. As a result, end users (end users)
Black controller 10 such as a battery pack for battery charging and monitoring and control.
Can be programmed when placed in an end use application.
[Battery monitoring application]
Referring to FIG. 26, there is an application for monitoring the external battery 450.
FIG. 1 is a block diagram showing a microcontroller 10 configured in an application.
Have been. The voltage of the battery 450 is supplied to the microcontroller via the voltage dividing circuit 452.
The signal is supplied to the analog input AN0 / BATV of the roller 10. Battery 450
The current flows through the sensing resistor 454 and the microcontroller 10's AN1 / BA
A voltage representing the battery current is supplied to the TI analog input. Microcontroller
The RAMP pin of the RAM 10 is connected to the ground via an external capacitor 456.
A programmable ramp voltage is generated across the capacitor. Ma
The IAVG pin of the microcontroller 10 has an optional external capacitor 4
Connected to ground via 58 and used to capture short duration current pulses
. The voltage regulator pin (VREG) is connected to an external N-channel FE to perform voltage regulation.
Connected to gate electrode of T460. This FET 460 has a drain electrode
Connected to receive the terror voltage, from the source electrode to the microcontroller 10
Regulated voltage V
Supply DD. Further, this regulated voltage is applied via an external analog input AN2.
Can be measured.
Although certain preferred embodiments have been described herein, the described embodiments and examples
Various modifications and alterations of the method and method may be made without departing from the true spirit and scope of the invention.
It will be apparent to those skilled in the art that this can be done. Accordingly, the present invention is directed to the appended claims.
Limited only to the extent required by the rules and principles of applicable law
It should be done.
【手続補正書】
【提出日】1997年6月13日
【補正内容】
【図1】
【図2】
【図7】
【図3】
【図4】
【図15】
【図16】
【図5】
【図6】
【図13】
【図8】
【図14】
【図9】
【図10】
【図12】
【図11】
【図17】
【図22】
【図18】
【図19】
【図20】
【図21】
【図23】
【図24】
【図25】
【図26】
[Procedure amendment] [Submission date] June 13, 1997 [Content of amendment] [Fig. 1] FIG. 2 FIG. 7 FIG. 3 FIG. 4 FIG. FIG. 16 FIG. 5 FIG. 6 FIG. 13 FIG. 8 FIG. 14 FIG. 9 FIG. 10 FIG. FIG. 11 FIG. FIG. FIG. FIG. FIG. FIG. 21 FIG. 23 FIG. 24 FIG. 25 FIG. 26