JPH10503312A - Method and apparatus for providing serial in-pack programmability to a microcontroller - Google Patents

Method and apparatus for providing serial in-pack programmability to a microcontroller

Info

Publication number
JPH10503312A
JPH10503312A JP9515282A JP51528297A JPH10503312A JP H10503312 A JPH10503312 A JP H10503312A JP 9515282 A JP9515282 A JP 9515282A JP 51528297 A JP51528297 A JP 51528297A JP H10503312 A JPH10503312 A JP H10503312A
Authority
JP
Japan
Prior art keywords
microcontroller
data
battery
voltage
pin
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9515282A
Other languages
Japanese (ja)
Inventor
ノラン,ジェームス,ビー.
デラクロース,ブリアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of JPH10503312A publication Critical patent/JPH10503312A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B21/00Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • H02J7/0029Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries with safety or protection devices or circuits
    • H02J7/0031Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries with safety or protection devices or circuits using battery or load disconnect circuits
    • H02J7/0032Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries with safety or protection devices or circuits using battery or load disconnect circuits disconnection of loads if battery is not under charge, e.g. in vehicle if engine is not running
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Emergency Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Charge And Discharge Circuits For Batteries Or The Like (AREA)
  • Information Transfer Systems (AREA)
  • Power Sources (AREA)

Abstract

(57)【要約】 本発明により提供されるマイクロコントローラ(10)は、バッテリ充電及びバッテリ監視アプリケーションに用いられる。このマイクロコントローラは、マイクロプロセッサ(12)、及び、傾斜A/D変換器(30)やマルチプレクサ(32)を含む種々の前置アナログ回路を具備しており、複数のアナログ入力信号(50-51)を、信号レベル(48)を表す対応するディジタル計数値に変換することができるようにしている。マイクロコントローラは、さらに、双方向2ワイヤバス及びデータ伝送プロトコロルをサポートするために、他の周辺機器又はマイクロコントローラ装置(12)とのシリアルな通信に有用なI2Cインターフェース(58)を具備している。このI2Cインターフェースを使用することによって、マイクロコントローラは、最終アプリケーション回路においてプログラミングすることができる。このような特徴によって、顧客は、未だプログラムされてない装置をもつボードを製造し、それから、製品を出荷する直前にマイクロコントローラをプログラミングすることが可能になる。 (57) Abstract The microcontroller (10) provided by the present invention is used for battery charging and battery monitoring applications. The microcontroller includes a microprocessor (12) and various pre-analog circuits including a gradient A / D converter (30) and a multiplexer (32), and a plurality of analog input signals (50-51). ) Can be converted to a corresponding digital count representing the signal level (48). The microcontroller is further to support bidirectional 2-wire bus and data transmission Purotokororu, comprises a useful I 2 C interface (58) to the serial communication with other peripherals or microcontroller device (12) I have. By using this I 2 C interface, the microcontroller can be programmed in the final application circuit. Such features allow customers to manufacture boards with devices that have not yet been programmed, and then program the microcontroller just before shipping the product.

Description

【発明の詳細な説明】 マイクロコントローラに対してシリアルなパック内 プログラム性を提供するための方法及び装置発明の属する技術分野 本発明は、マイクロコントローラのプログラミングに関し、より詳細には、ユ ーザの最終利用アプリケーション〔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

Claims (1)

【特許請求の範囲】 1.複数の信号を受信するためのコネクタを備えるバッテリパック内で使用され 、半導体チップ上に作製されるバッテリ充電及びバッテリ監視アプリケーション 用マイクロコントローラであって、 プログラム及び命令を実行し、マイクロコントローラによるプログラム及び命 令の実行の結果として制御信号を発生して、バッテリ充電及びバッテリ監視シス テムを選択的に制御するようになっており、 命令を実行するためのマイクロプロセッサ手段、マイクロコントローラにより 実行されるべきプログラムを格納するためのプログラムメモリ手段、及び、デー タを格納するためのデータメモリ手段を具備する マイクロコントローラにおいて、さらに、 マイクロコントローラをシリアルにプログラミングするための手段であって、 マイクロコントローラと信号を送受信するために前記コネクタに接続される第1 及び第2の双方向性入力を備えるシリアルインターフェース制御手段 を具備することを特徴とするマイクロコントローラ。 2.さらに、 予め定められた電圧が供給されたときマイクロコントローラがシリアルにプロ グラミングされるのを可能にするために、前記コネクタに接続される電圧プログ ラミングピン を具備することを特徴とする請求項1に記載のマイクロコントローラ。 3.前記シリアルインターフェース制御手段はI2Cインターフェースであり、 第1及び第2の双方向性信号がそれぞれシリアルデータ信号及びクロック信号で あることを特徴とする請求項1に記載のマイクロコントローラ。 4.前記シリアルインターフェース制御手段は、 マイクロコントローラから読み出されるべきかマイクロコントローラに書き込 まれるべきかを指示するための状態レジスタ、 第1及び第2の双方向性入力に接続され、マイクロコントローラへのデータ又 はマイクロコントローラからのデータをシフトするためのシフトレジスタ手段、 及び、 このシフトレジスタ手段に接続され、マイクロコントローラから読み出される データ、或いは、マイクロコントローラに書き込まれるべきデータを格納するた めのバッファレジスタ手段を備える ことを特徴とする請求項1に記載のマイクロコントローラ。 5.バッテリ充電及びバッテリ監視アプリケーションのために、バッテリパック 内にインストールされているときにマイクロコントローラをプログラミングする 方法であって、 バッテリパックは、マイクロコントローラをプログラミングするのに用いられ る複数の信号を受信するためのコネクタを備え、 マイクロコントローラは、 半導体チップ上に作製され、プログラム及び命令を実行し、マイクロコントロ ーラによるプログラム及び命令の実行の結果として制御信号を発生して、バッテ リ充電及びバッテリ監視シ ステムを選択的に制御するようになっており、 命令を実行するためのマイクロプロセッサ手段、マイクロコントローラにより 実行されるべきプログラムを格納するためのプログラムメモリ手段、及び、デー タを格納するためのデータメモリ手段を備える 方法において、 バッテリパックのコネクタの第1ピン上にプログラミング電圧信号を供給する ステップであって、このコネクタの第1ピンはマイクロコントローラの第1ピン に接続され、プログラミング電圧信号をマイクロコントローラに供給してマイク ロコントローラがシリアルにプログラミングされるのを可能にするようになって いるステップ、 バッテリパックのコネクタの第2ピン上にシリアルデータ信号を供給するステ ップであって、このコネクタの第2ピンはマイクロコントローラの第2ピンに接 続され、シリアルデータ信号をマイクロコントローラに供給してプログラミング データをマイクロコントローラに供給するようになっているステップ、及び、 バッテリパックのコネクタの第3ピン上にクロック信号を供給するステップで あって、このコネクタの第3ピンはマイクロコントローラの第3ピンに接続され 、クロック信号をマイクロコントローラに供給してマイクロコントローラへのシ リアルデータ信号をクロックするようになっているステップ から成ることを特徴とする方法。 6.さらに、 マイクロコントローラに書き込まれるべきシリアルデータ信号を受信するため に、バッテリパックのコネクタとマイクロコ ントローラのプログラムメモリとの間にインターフェース回路を提供するステッ プ から成ることを特徴とする請求項5に記載の方法。 7.バッテリを充電し監視するためにバッテリ及びマイクロコントローラをバッ テリパック内に組み込んでいるシステムであって、 バッテリパックは、複数の信号を受信するためのコネクタを備え、 マイクロコントローラは、 半導体チップ上に作製され、プログラム及び命令を実行し、マイクロコントロ ーラによるプログラム及び命令の実行の結果として制御信号を発生して、バッテ リ充電及びバッテリ監視システムを選択的に制御するようになっており、 命令を実行するためのマイクロプロセッサ手段、マイクロコントローラにより 実行されるべきプログラムを格納するためのプログラムメモリ手段、及び、デー タを格納するためのデータメモリ手段を備える システムにおいて、さらに、 マイクロコントローラをシリアルプログラミングモードに投入することを可能 にするための手段、及び、 マイクロコントローラを、バッテリパック内にインストールされている状態で 、シリアルにプログラミングすることを許可するための手段であって、マイクロ コントローラをプログラミングするために、マイクロコントローラに信号を供給 するするように前記コネクタに接続される第1及び第2の双方向性入力を備える シリアルインターフェース制御手段 を具備することを特徴とするシステム。 8.前記シリアルインターフェース制御手段はI2Cインターフェースであり、 第1及び第2の双方向性信号がそれぞれシリアルデータ信号及びクロック信号で あることを特徴とする請求項7に記載のシステム。 9.前記シリアルインターフェース制御手段は、 マイクロコントローラから読み出されるべきかマイクロコントローラに書き込 まれるべきかを指示するための状態レジスタ、 第1及び第2の双方向性入力に接続され、マイクロコントローラへのデータ又 はマイクロコントローラからのデータをシフトするためのシフトレジスタ手段、 及び、 このシフトレジスタ手段に接続され、マイクロコントローラから読み出される データ、或いは、マイクロコントローラに書き込まれるべきデータを格納するた めのバッファレジスタ手段を備える ことを特徴とする請求項7に記載のシステム。[Claims] 1. A microcontroller for use in a battery pack having a connector for receiving a plurality of signals, for a battery charging and battery monitoring application fabricated on a semiconductor chip, wherein the microcontroller executes programs and instructions, and executes A control signal is generated as a result of the execution of the instruction to selectively control the battery charging and battery monitoring system, the microprocessor means for executing the instruction, and a program to be executed by the microcontroller. A microcontroller comprising program memory means for storing and data memory means for storing data, further comprising: means for serially programming the microcontroller; A micro-controller comprising serial interface control means having first and second bidirectional inputs connected to said connector for transmitting and receiving signals to and from said controller. 2. The method of claim 1, further comprising a voltage programming pin connected to the connector to enable the microcontroller to be serially programmed when a predetermined voltage is applied. Microcontroller. 3. The microcontroller according to claim 1, wherein the serial interface control means is an I 2 C interface, and the first and second bidirectional signals are a serial data signal and a clock signal, respectively. 4. The serial interface control means is connected to first and second bidirectional inputs to indicate whether the data is to be read from or written to the microcontroller; Shift register means for shifting data from the controller, and buffer register means connected to the shift register means for storing data to be read from the microcontroller or data to be written to the microcontroller The microcontroller according to claim 1, wherein: 5. A method of programming a microcontroller when installed in a battery pack for battery charging and battery monitoring applications, wherein the battery pack receives a plurality of signals used to program the microcontroller. The microcontroller is fabricated on a semiconductor chip, executes programs and instructions, generates control signals as a result of execution of the programs and instructions by the microcontroller, and selectively controls the battery charging and battery monitoring system. Microprocessor means for executing instructions, program memory means for storing a program to be executed by the microcontroller, and data for storing data. Providing a programming voltage signal on a first pin of a connector of the battery pack, the first pin of the connector being connected to a first pin of a microcontroller and providing a programming voltage signal to the microcontroller. Supplying a serial data signal on a second pin of the connector of the battery pack, the step of supplying a serial data signal to the controller, the step of providing a serial data signal on the second pin of the connector of the battery pack. A second pin connected to a second pin of the microcontroller for providing a serial data signal to the microcontroller and for providing programming data to the microcontroller; and on a third pin of the battery pack connector. clock Supplying a clock signal to the microcontroller to clock a serial data signal to the microcontroller. The third pin of the connector is connected to the third pin of the microcontroller. A method comprising the steps of: 6. 6. The method of claim 5, further comprising the step of providing an interface circuit between the connector of the battery pack and the program memory of the microcontroller for receiving a serial data signal to be written to the microcontroller. Method. 7. A system incorporating a battery and a microcontroller in a battery pack for charging and monitoring the battery, wherein the battery pack includes a connector for receiving a plurality of signals, and the microcontroller is fabricated on a semiconductor chip. Executing a program and instructions, and generating a control signal as a result of execution of the program and instructions by the microcontroller to selectively control a battery charging and battery monitoring system. System comprising a microprocessor means, a program memory means for storing a program to be executed by the microcontroller, and a data memory means for storing data, further comprising: Means for allowing the microcontroller to be loaded into the microcontroller, and means for permitting the microcontroller to be serially programmed with the microcontroller installed in the battery pack. A serial interface control means having first and second bidirectional inputs connected to said connector to provide a signal to a microcontroller. 8. The serial interface controller is I 2 C interface system of claim 7, wherein the first and second bi-directional signal is a serial data signal and a clock signal, respectively. 9. The serial interface control means is connected to first and second bidirectional inputs to indicate whether the data is to be read from or written to the microcontroller; Shift register means for shifting data from the controller, and buffer register means connected to the shift register means for storing data to be read from the microcontroller or data to be written to the microcontroller The system according to claim 7, characterized in that:
JP9515282A 1995-10-13 1996-10-11 Method and apparatus for providing serial in-pack programmability to a microcontroller Pending JPH10503312A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/542,679 1995-10-13
US08/542,679 US5841996A (en) 1995-10-13 1995-10-13 Serial communication interface system having programmable microcontroller for use in a battery pack
PCT/US1996/016429 WO1997014128A1 (en) 1995-10-13 1996-10-11 Method and apparatus for providing serial, in-pack programmability for a microcontroller

Publications (1)

Publication Number Publication Date
JPH10503312A true JPH10503312A (en) 1998-03-24

Family

ID=24164847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9515282A Pending JPH10503312A (en) 1995-10-13 1996-10-11 Method and apparatus for providing serial in-pack programmability to a microcontroller

Country Status (6)

Country Link
US (1) US5841996A (en)
EP (1) EP0829074A4 (en)
JP (1) JPH10503312A (en)
KR (1) KR100234842B1 (en)
TW (1) TW281728B (en)
WO (1) WO1997014128A1 (en)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100272472B1 (en) * 1995-09-19 2000-11-15 씨. 필립 채프맨 Microcontroller wake-up function having digitally programmable threshhold
US6021447A (en) * 1997-12-12 2000-02-01 Scenix Semiconductor, Inc. Non-intrusive in-system programming using in-system programming circuitry coupled to oscillation circuitry for entering, exiting, and performing in-system programming responsive to oscillation circuitry signals
US6161199A (en) * 1997-12-12 2000-12-12 Scenix Semiconductor, Inc. Non-intrusive in-system debugging for a microcontroller with in-system programming capabilities using in-system debugging circuitry and program embedded in-system debugging commands
TW368626B (en) * 1998-04-17 1999-09-01 Winbond Electronics Corp Microprocessor with self-programmed embedded flash memory and programming method
US6037750A (en) * 1998-09-17 2000-03-14 Qualcomm Incorporated Battery pack controller
US6510522B1 (en) * 1998-11-20 2003-01-21 Compaq Information Technologies Group, L.P. Apparatus and method for providing access security to a device coupled upon a two-wire bidirectional bus
WO2000051281A2 (en) * 1999-02-26 2000-08-31 Usar Systems, Inc. Power conservation with a synchronous master-slave serial data bus
US6560665B1 (en) * 1999-05-14 2003-05-06 Xilinx Inc. Embedding firmware for a microprocessor with configuration data for a field programmable gate array
US9235955B2 (en) 2000-12-22 2016-01-12 Bally Gaming, Inc. Universal game monitoring unit and system
US20020019891A1 (en) * 1999-12-30 2002-02-14 James Morrow Generic device controller unit and method
GB2368495B (en) * 2000-10-23 2004-06-30 Ericsson Telefon Ab L M Monitoring circuit
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
JP2002351825A (en) * 2001-05-29 2002-12-06 Rohm Co Ltd Communication system
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US7526422B1 (en) 2001-11-13 2009-04-28 Cypress Semiconductor Corporation System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US20030185062A1 (en) * 2002-03-28 2003-10-02 Micron Technology, Inc. Proximity lookup for large arrays
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US20070220499A1 (en) * 2003-07-23 2007-09-20 Silicon Laboratories Inc. USB tool stick with multiple processors
US7502883B2 (en) * 2003-07-23 2009-03-10 Silicon Labs Cp, Inc. USB integrated module
US7340366B2 (en) * 2004-03-04 2008-03-04 Atmel Corporation Method and apparatus of temperature compensation for integrated circuit chip using on-chip sensor and computation means
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US20060044725A1 (en) * 2004-08-31 2006-03-02 Cisco Technology, Inc. Monolithic solid state relay circuit for telecom wireline applications
US7084695B2 (en) * 2004-08-31 2006-08-01 Micron Technology, Inc. Method and apparatus for low voltage temperature sensing
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
TWI267747B (en) * 2005-02-24 2006-12-01 Sunplus Technology Co Ltd Method and apparatus for bi-directional signal fighting problem on serial interface
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US20070006057A1 (en) * 2005-06-30 2007-01-04 Paul Wallner Semiconductor memory chip and method of protecting a memory core thereof
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
JP4918866B2 (en) * 2006-03-13 2012-04-18 ミツミ電機株式会社 COMMUNICATION DEVICE, SEMICONDUCTOR INTEGRATED CIRCUIT DEVICE, AND COMMUNICATION SYSTEM
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US7663517B1 (en) * 2006-06-28 2010-02-16 Sun Microsystems, Inc. Accurate hardware Power OK (POK) generation methodology for processors with varying core voltage requirements
US7679369B2 (en) * 2006-10-06 2010-03-16 Enerdel, Inc. System and method to measure series-connected cell voltages using a flying capacitor
CN101563600A (en) * 2006-10-06 2009-10-21 埃纳戴尔公司 System and method to measure series-connected cell voltages
WO2008075311A2 (en) * 2006-12-20 2008-06-26 Nxp B.V. Clock generation for memory access without a local oscillator
US7859223B2 (en) * 2007-01-31 2010-12-28 Analog Devices, Inc. Battery montoring apparatus and daisy chain interface suitable for use in a battery monitoring apparatus
US8130000B2 (en) * 2007-03-02 2012-03-06 Analog Devices, Inc. Methods and apparatus for battery monitoring
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US7675270B2 (en) * 2008-04-30 2010-03-09 Dell Products L.P. System and method for reliable information handling system and battery communication
JP5258490B2 (en) * 2008-10-02 2013-08-07 ルネサスエレクトロニクス株式会社 Semiconductor integrated circuit and IC card using the same
US8227944B2 (en) * 2009-01-06 2012-07-24 O2Micro Inc Vertical bus circuits
US8022669B2 (en) * 2009-01-06 2011-09-20 O2Micro International Limited Battery management system
KR101036061B1 (en) * 2009-04-21 2011-05-19 에스비리모티브 주식회사 Battery management system and driving method thereof
WO2010127257A1 (en) * 2009-05-01 2010-11-04 Analog Devices, Inc. An addressable integrated circuit and method thereof
US20100277231A1 (en) * 2009-05-01 2010-11-04 Analog Devices, Inc. filtering on current mode daisy chain inputs
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8258792B2 (en) * 2009-05-11 2012-09-04 Semiconductor Components Industries, Llc. Monitoring system and method
US20110144840A1 (en) * 2009-12-15 2011-06-16 Ise Corporation Expandable Energy Storage Control System and Method
US8350522B2 (en) * 2010-03-10 2013-01-08 Apple Inc. External power source voltage drop compensation for portable devices
CN102255978B (en) 2010-05-20 2014-08-13 凹凸电子(武汉)有限公司 Address configuration device, method and system
US8525477B2 (en) * 2010-07-15 2013-09-03 O2Micro, Inc. Assigning addresses to multiple cascade battery modules in electric or electric hybrid vehicles
US8015452B2 (en) * 2010-08-31 2011-09-06 O2Micro International, Ltd. Flexible bus architecture for monitoring and control of battery pack
US9261568B2 (en) 2011-02-07 2016-02-16 Analog Devices, Inc. Diagnostic method to monitor battery cells of safety-critical systems
KR101254875B1 (en) 2011-05-18 2013-04-15 삼성에스디아이 주식회사 Battery pack management system
US9520888B1 (en) 2015-07-24 2016-12-13 Cypress Semiconductor Corporation Integrated circuit device with on-board calibration of signal generator circuits, and related methods
CN109644312B (en) 2016-08-29 2021-03-12 3M创新有限公司 Electronic hearing protector with switchable electrical contacts
DE102016117020B4 (en) * 2016-09-09 2022-12-15 Infineon Technologies Ag Method and device for analog to digital conversion

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051890A (en) * 1988-09-29 1991-09-24 Nec Corporation Program/data memory employed in microcomputer system
US5182810A (en) * 1989-05-31 1993-01-26 Dallas Semiconductor Corp. Isolation gates to permit selective power-downs within a closely-coupled multi-chip system
US5325464A (en) * 1990-05-22 1994-06-28 International Business Machines Corporation Pyramid learning architecture neurocomputer
DE4122371C5 (en) * 1991-07-05 2007-04-12 Rohde & Schwarz Gmbh & Co. Kg Microprocessor-controlled electronic measuring device
US5325041A (en) * 1991-08-09 1994-06-28 Briggs James B Automatic rechargeable battery monitoring system
US5321627A (en) * 1992-03-11 1994-06-14 Globe-Union, Inc. Battery monitor and method for providing operating parameters
US5284719A (en) * 1992-07-08 1994-02-08 Benchmarq Microelectronics, Inc. Method and apparatus for monitoring battery capacity
US5349535A (en) * 1992-10-20 1994-09-20 Digicomp Research Corporation Battery condition monitoring and recording system for electric vehicles
US5459671A (en) * 1993-02-19 1995-10-17 Advanced Micro Devices, Inc. Programmable battery controller
US5539298A (en) * 1993-03-19 1996-07-23 Compaq Computer Corporation Pulse charge technique to trickle charge a rechargeable battery
US5537343A (en) * 1993-09-02 1996-07-16 Elonex Technologies, Inc. Digital assistant system having a host computer with a docking bay and a moveable heat sink for cooling a docked module
TW327212B (en) * 1994-06-27 1998-02-21 Microchip Tech Inc Memory device with switching of data stream modes

Also Published As

Publication number Publication date
KR980700625A (en) 1998-03-30
EP0829074A1 (en) 1998-03-18
KR100234842B1 (en) 1999-12-15
TW281728B (en) 1996-07-21
WO1997014128A1 (en) 1997-04-17
US5841996A (en) 1998-11-24
EP0829074A4 (en) 1999-11-10

Similar Documents

Publication Publication Date Title
JPH10503312A (en) Method and apparatus for providing serial in-pack programmability to a microcontroller
JP3080655B2 (en) Microcontroller with analog pre-circuit for intelligent battery management
KR100272472B1 (en) Microcontroller wake-up function having digitally programmable threshhold
KR100267360B1 (en) Microcontroller with on-chip linear temperature sensor
KR100247184B1 (en) Digital trimming of on-chip analog components
WO1997014128A9 (en) Method and apparatus for providing serial, in-pack programmability for a microcontroller
WO1997012310A9 (en) Digital trimming of on-chip analog components
US5563496A (en) Battery monitoring and charging control unit
US6154012A (en) Gas gauge implementation
US10267662B2 (en) Method and apparatus for multi-channel sensor interface with programmable gain, offset and bias
US6522104B1 (en) Method and apparatus for measurement of charge in a battery
US20040105488A1 (en) On-chip digital thermometer to sense and measure device temperatures
US20120274341A1 (en) Resistance measurement circuit and measuring method employing the same
US7039150B1 (en) Serial interface for a battery management system
US6661204B2 (en) Battery charge monitor
JPH095366A (en) Method and equipment for highly accurate relative digital-voltage measurement
US20230006455A1 (en) Control device and charging system
WO2001028064A2 (en) Battery management system
KR100512165B1 (en) A method for calibrating a capacity of battery
Domain EFM32WG890 DATASHEET
KR20000055825A (en) A battery pack, a charging system and a remaining battery capacity display system
KR20040042302A (en) Detecting Circuits for Battery Voltage