34
2016 Microchip Technology Inc. DS00001980A_JP - p.1 AN1980 はじめに CDI システムは、内燃エンジンで使う電子点火システム です。点火システムとは、筒内で混合気に点火するため の高電圧火花を発生させる仕組みです。 CDI システムは、 高電圧のコンデンサ放電電流を使って点火プラグに 火花を生じさせます。 本書では、8 ビット PIC ® マイクロコントローラの標準 周辺モジュールを使ったシングル プロファイル点火 ピックアップ (Profile Ignition Pickup、略して PIP) 向け CDI の実装と、このような設計に関連する課題について 簡単に説明します。また、以下に示す PIC マイクロ コントローラの CIP( コアから独立した周辺モジュール ) を使った CDI システムの実装についても説明します。 位相角タイマ (AT) 信号計測タイマ (SMT) 算術演算アクセラレータ 構成可能なロジックセル (CLC) 従来の設計課題を克服する方法を実証する事で、これ らの周辺モジュールを使う利点も説明します。さらに 本書では、CDI システムの性能と CPU 使用率低減の 観点から、CIP を使って実現できる改善について説明 します。 最後に、マルチ PIP システム、算術フォーマット、 数値計算性能を向上させる各種の有用なヒントとコツ について説明します。 内燃エンジン 内燃エンジンは自動車の基本的な構成要素であり、化学 反応による熱エネルギを機械エネルギに変換します。 空気と燃料の混合物 ( 混合気 ) が燃焼し、大きな熱が 発生します。これが燃焼ガスを膨張させ、ピストンを 動かしします。これによりクランクシャフトを回転させ、 運動エネルギを生成します。運動エネルギはドライブ トレインを使って車輪に伝えられます。 1 に、4 つ行程 ( 吸入、圧縮、燃焼、排気 ) 1 の動作サイクルとなる4ストローク エンジンを示します。 1: 4 ストローク エンジンと構成部品 Authors: Ashutosh Tiwari Shailendra Vengurlekar Namrata Dalvi Microchip Technology Inc. Intake Compression Power Ex aust Piston Valves closed Valves closed Air-fuel mixture drawn in Exhaust gases pushed out Spark Plug firing Air-fuel mixture compressed Combustion Chamber Intake valve open Exhaust valve open 位相角タイマを使った CDI( 容量放電点火 ) 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980位相角タイマを使った CDI( 容量放電点火 )

注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジナルの英語版をご参照願います。

はじめに

CDI システムは、内燃エンジンで使う電子点火システムです。点火システムとは、筒内で混合気に点火するための高電圧火花を発生させる仕組みです。CDIシステムは、高電圧のコンデンサ放電電流を使って点火プラグに火花を生じさせます。

本書では、8 ビット PIC® マイクロコントローラの標準周辺モジュールを使ったシングル プロファイル点火ピックアップ (Profile Ignition Pickup、略して PIP) 向けCDI の実装と、このような設計に関連する課題について簡単に説明します。また、以下に示す PIC マイクロコントローラのCIP(コアから独立した周辺モジュール )を使った CDI システムの実装についても説明します。

• 位相角タイマ (AT)• 信号計測タイマ (SMT)• 算術演算アクセラレータ

• 構成可能なロジックセル (CLC)

従来の設計課題を克服する方法を実証する事で、これらの周辺モジュールを使う利点も説明します。さらに本書では、CDI システムの性能と CPU 使用率低減の観点から、CIP を使って実現できる改善について説明します。 最後に、マルチ PIP システム、算術フォーマット、数値計算性能を向上させる各種の有用なヒントとコツについて説明します。

内燃エンジン

内燃エンジンは自動車の基本的な構成要素であり、化学反応による熱エネルギを機械エネルギに変換します。空気と燃料の混合物 ( 混合気 ) が燃焼し、大きな熱が発生します。これが燃焼ガスを膨張させ、ピストンを動かしします。これによりクランクシャフトを回転させ、運動エネルギを生成します。運動エネルギはドライブトレインを使って車輪に伝えられます。 図 1 に、4 つ行程 ( 吸入、圧縮、燃焼、排気 ) で 1 つの動作サイクルとなる4ストローク エンジンを示します。

図 1: 4 ストローク エンジンと構成部品

Authors: Ashutosh TiwariShailendra VengurlekarNamrata DalviMicrochip Technology Inc.

Intake Compression Power Ex aust

Piston

Valves closed Valves closed

Air-fuel mixture drawn in

Exhaust gases

pushed out

Spark Plug firing

Air-fuel mixture

compressedCombustion Chamber

Intake valve open Exhaust

valve open

2016 Microchip Technology Inc. DS00001980A_JP - p.1

Page 2: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

混合気を筒内で燃焼させるため、燃焼行程前に点火プラグに電流を流す事で高電圧の火花発生させます。これが混合気に点火し、ピストンを押し下げる圧力波を生み出します。燃焼行程で生じたクランクシャフトの運動が、4 行程を通してエンジンを動かし続けます。

上死点 (TDC) とは最も高いピストン位置 ( 点火プラグ近傍 ) であり、下死点 (BDC) とは最も低い位置 ( クランクシャフト近傍 ) です。点火プラグが火花を発生させて燃焼行程に入った後、混合気が燃焼を完了するのに一定の時間を必要とします。この燃焼プロセスは段階的に進行します。すなわち、点火プラグ近傍の混合気が燃焼を始め、下方に火炎が伝播して行きます。従って、混合気を完全燃焼させ最も効率よくエネルギをクランクシャフトに伝えるには、ピストンが TDC に達する前に正確な時期に点火プラグに火花を発生させる必要があります。この角度はエンジン回転数で決まります。温度、スロットル開度 ( 混合気質量 ) 等の他の要因も最適な点火時期の決定に影響します。正確な時期で火花を発生させるためには点火制御システムを使います。点火システムには、以下の 2 種類があります。 • 誘導放電点火 (IDI) またはトランジスタ制御点火

(TCI) • 容量放電点火 (CDI)本書では CDI システムを取り上げます。

容量放電点火 (CDI) システム

CDI システムは、コンデンサの放電で生じさせた電流を使って点火プラグに火花を発生させます。図 2 に、基本的な CDI システムを示します。 CDI システムを構成する部品を以下に示します。

• 高電圧電源

• コンデンサ

• 点火コイル

• 高圧スイッチ

• パルサーコイル

• 信号コンディショニング

• マイクロコントローラ

図 2: 基本的な容量放電点火 (CDI) システム

MCU

DC-DC Converter12V Battery

ThermistorThrottle

Signal Conditioning

Ignition Coil

Spark Plug300-400V

HV SupplyCapacitor

SCR

SCR Gate Control

Pick-up signal from coil

+

-

Pulser Coil

HV Supply (AC CDI)

PWM

HV Supply(DC CDI)

Magneto

DS00001980A_JP - p.2 2016 Microchip Technology Inc.

Page 3: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

高電圧電源

CDI システムには、以下の 2 種類があります。

• 交流容量放電点火 (AC-CDI)• 直流容量放電点火 (DC-CDI) AC-CDI システムでは、CDI を含む全ての電子システムのための電力を、オルタネータまたはステータ ( マグネト ) で発生させます。コンデンサは、マグネト AC電源の整流出力 (DC200 ~ 400 V) で充電します。エンジン始動時にはキックスタート等でエンジンとマグネトを回転させる必要があります。キックスタートではコンデンサを完全に充電するのに必要なマグネトー電力が得られず、高電圧火花を発生させられません。極低回転では点火時期は一定です。従って、マグネトフライホイールのパルサーコイルからのPIP出力が負の場合、回転数は計算せずに負パルスで点火を使います。

DC-CDI システムではバッテリの DC12 V を常に使えます。このシステムでは、DC12 V を DC200 ~ 400 Vに昇圧する DC/DC コンバータ回路が必要です。このため、AC-CDI システムより若干大きくなります。始動時にも DC 電源が常に使えるため、正確に計算した点火時期でエンジンを始動できます。

コンデンサ

点火プラグで高電圧火花を発生させるために、DC/DCコンバータ出力 (DC-CDI)またはマグネト (オルタネータ )出力 (AC-CDI) を使って、高耐圧コンデンサを充電します。コンデンサは通常 200 ~ 400 V に充電します。

点火コイル

コンデンサは、点火コイルまたは非常に高い電圧(40 kV 以上 )を発生させる昇圧型パルストランスに接続します。

高圧スイッチ

高電圧スイッチは、コンデンサを点火コイルの 1 次側に接続するために使います。マイクロコントローラがこのスイッチのゲートにパルスを印加すると、スイッチが ON になります。コイルの 1 次側の放電電流が 2 次側に非常に高い電圧を生じさせます。この電圧がプラグに火花を発生させ、混合気に点火します。従って、マイクロコントローラは火花を発生させるスイッチの動作を制御しています。

サイリスタ (SCR) は、CDI の高電圧スイッチとして最も一般的に使われています。SCR は、高い動作電圧および電流レンジと中程度の周波数応答を備えており、きわめて耐久性に優れています。SCR の欠点は一方向のスイッチである事です。つまり ON にしかできません。SCR は、入力が下側の動作しきい値より小さくなると、自動的に OFF になります。

最新の CDI 設計では、ON と OFF を切り換える事ができ広い動作レンジと周波数応答を備えているという理由で、絶縁ゲートバイポーラ トランジスタ (IGBT) とMOS電界効果トランジスタ (MOSFET)が使われます。

パルサーコイル

パルサーコイル ( ピックアップ / タイミングコイル ) は、タイミング信号を点火制御システムに供給するためのものです。フライホイールには磁石が取り付けられています。フライホイールはマグネトシャフトに取り付けられています。フライホイールが回転すると、磁石がパルスコイルの近くを通過する事でタイミングパルスが生じます。1 極につき 1 パルスです。従って、各磁石に対して 2 つの出力 (1 つの正パルスと続く 1 つの負パルス ) が得られ、1 対のパルスが発生します。シングル PIP システムでは、1 対しか発生しません。マルチパルス システムでは、フライホイールに取り付けた磁石の数に応じて複数のパルス対が発生します。これらのパルスは、上死点に対して一定の角度で発生します。

1 回転あたりに発生するパルスの数に基づいて、パルサーコイル システムは以下のタイプに分ける事ができます。

• シングル PIP システム

• マルチ PIP システム

図 3: シングル PIP システムのピックアップ信号

シングル PIP システム

シングル PIP システムでは、図 3 に示すように、パルサーコイルは 1 つの正パルスと後に続く 1 つの負の基準パルスを提供します。2 つのパルスの間の角度と、負パルスと TDC の間の角度は一定です。火花の発生時期は、エンジン動作温度、スロットル開度、回転数に基づいて決める必要があります。この時期は通常正パルスと負パルスの間にあります。負パルスは、極低回転数での火花発生の基準点です。高回転時の点火時期は 2 つのパルス間に移動します。

2016 Microchip Technology Inc. DS00001980A_JP - p.3

Page 4: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

図 4: デュアル PIP システムのピックアップ信号

マルチ PIP システム

マルチ PIP システムでは、パルサーコイルは複数のパルスを提供します。図 4 に、デュアル PIP システムのピックアップ信号を、TDC と点火時期のレンジと共に示します。2 番目の負パルスは TDC 前の基準点です。これは点火進角の最小値です。下側しきい値より低い回転数では、この角度で火花を発生させます。

1 番目の正パルスと負パルスは、エンジン回転数の計算に使えます。2 番目の正パルスは、高回転での点火時期の基準点として使えます。

信号コンディショニング

パルサーコイルは、正負両方のパルスを備えたタイミング信号を発生させます。これらのパルスの電圧は、フライホイールに取り付けた磁石の磁界強度に応じて±3 V から ±90 V のレンジです。信号コンディショニング回路を使って負パルスを反転させ、0 ~ 5 V のレンジに制限します。この回路はスプリアスノイズのフィルタ処理にも使います。信号コンディショニング回路は2 つの正出力 ( 正パルスに対応する出力と負パルスに対応する出力 ) を提供します。信号コンディショニング回路の出力はマイクロコントローラに接続します。

マイクロコントローラ

デジタル CDI システムでは、マイクロコントローラは主に以下の 2 つの機能を果たします。

• パルサーコイル、サーミスタ、スロットル開度等のセンサ入力を基にした点火時期の決定と点火パルスの生成

• DC/DC コンバータのための PWM デューティ サイクルの設定

エンジンから最適性能を得るのに必要な点火時期は主に回転数で決まります。従って、システムは現在の回転数、温度、スロットル開度を把握する必要があります。MAP と呼ばれるルックアップ テーブルがマイクロコントローラのプログラムメモリに保存されており、各回転数に対して適切な点火時期を指定します。スロットル開度と温度レンジごとに複数の MAP が保存されています。回転数が計算できたら、コントローラは適切な点火時期を MAP から検索します。点火時期の選択とMAP の例は AT を使った CDI の実装と図 12 を参照してください。

DS00001980A_JP - p.4 2016 Microchip Technology Inc.

Page 5: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

タイマ、キャプチャ、コンペア モジュールを使った CDI の実装( 従来の方法 )PIC MCU の周辺モジュール ( 例 : キャプチャ コンペアまたは PWM (CCP)、ADC) と割り込みピン INT を使って CDI による点火時期を決定します。

キャプチャ / コンペア /PWM (CCP)キャプチャモード

信号コンディショニング回路からの正のPIP信号出力をキャプチャ モジュールに入力します。キャプチャモジュールは、2 つの正パルス間の時間 ( パルサーコイル出力の周期 ) を計測します。パルスの周期からエンジン回転数が求まります。

A/D コンバータ (ADC)ADC は、エンジン温度とスロットル開度 ( アナログの場合 ) を求めるために使います。スロットル開度入力はアナログとデジタルのどちらでかです。デジタルスロットルの場合、全開 (WOT) が 1 つの状態で、パーシャル (POT) がもう 1 つの状態です。スロットル開度および温度レンジごとに別々の点火時期 MAP があります。 図 5 に、CDI を実装する従来の方法を示します。

図 5: CDI の実装 ( 従来の方法 )

(Compare)PIC MCU

CDI LOGIC

DC-DC Converter12V Battery

CCP (Capture)

Map Selection RPM Calculation

Firing Angle Calculation

ADC

PWM

I/O

ThermistorThrottle

RPM

Signal Conditioning

Ignition Coil

Spark Plug

INT

Firing Angle to Timer Counts Conversion

CCP

CCPRx

300-400V HV Supply

Capacitor

SCR

SCR Gate Control

Pick-up signal from puls r coil

+

-

PWM

2016 Microchip Technology Inc. DS00001980A_JP - p.5

Page 6: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

CDI のロジック

回転数の計算

式 1 に示すように、エンジン回転数は外部信号周波数 fsignal から計算できます。

式 1: TIMER1 を使った回転数の計算

点火 MAP の選択

エンジンは常にエンジン回転数と点火時期の関係を示す点火マップと関連付けられています。これらの MAPはスロットル開度とエンジン温度で異なります。現在のエンジン温度とスロットル開度をセンサを通して収集し、その結果に応じて点火 MAP を選択します。

点火時期の計算

現在の回転数がルックアップ テーブルにある値と値の間にある場合、その回転数に対する点火時期は線形補間を使って計算できます。

点火時期からタイマカウントへの変換

点火時期を対応するタイマカウントに変換します。

キャプチャ / コンペア /PWM (CCP) コンペアモード

点火時期に対応するタイマカウントは CCP コンペアレジスタに格納します。タイマカウントとコンペアレジスタの値が一致すると、割り込みが生成されます。割り込みサービスルーチンで SCR のゲートに接続したデジタル出力にパルスを印加し、SCR をトリガさせて火花を発生させます。

従来の CDI 手法の課題

点火時期からタイマカウントへの変換

MAP から点火時期を選択して補間したら、点火時期をタイマカウントに変換する必要があります。点火時期の値が回転数のレンジに対して同じだとしても、対応するタイマカウントは異なります。従って、点火時期からタイマカウントへの変換は回転数が変わるたびに必要です。予測される点火イベント時期までに計算が完了しない場合、前回の点火時期の値を使います。

回転数の計算

従来の回転数計算の方法では、16ビットTimer1とキャプチャモジュールを使います。60 (1 Hz に相当 ) 未満のような低い回転数では、タイマクロック周波数が1 MHz だと 16 ビット Timer1 がオーバーフローします。回転数の計算でタイマ オーバーフロー ビットに注意する必要があります。

分解能

点火時期の分解能は回転数に依存します。 例えば、Timer1 クロックが 1 MHz で 250 回転の場合、角度分解能は AR = 360/(250 回転の時の Timer1 カウント ) = 360/4000 = 0.09˚ です。10,000 回転の場合、角度分解能は AR = 360/(10,000 回転の時の Timer1カウント ) = 360/100 = 3.6˚ です。

fsignalTimer1 CLK

Timer1Prescaler CCPRx-----------------------------------------------------------------------=

RPMEngineTimer1 CLK

Timer1Prescaler CCPRx----------------------------------------------------------------------- 60=

Timer1 CLK = T1CON レジスタを使った Timer1 クロック入力 = Fosc/4 = 32/4 = 8 MHzTimer1 Prescalar = T1CON レジスタで選択した Timer1 クロック プリスケーラ分周比 = 1:8 = 8CCPRx は、fsignal の立ち下がりエッジで取り込んだ Timer1 の値です。

fsignal は、ピックアップ信号の入力信号周波数です。

スカラ値 60 を乗算して Hz を回転数に変換します (RPMEngine = fsignal * 60)。

DS00001980A_JP - p.6 2016 Microchip Technology Inc.

Page 7: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

AT を使った CDI の実装

8 ビット PIC マイクロコントローラの PIC16F161Xファミリは位相角タイマ (AT) と呼ぶ CIP を備えています。これを内燃エンジンで使うと、CPU にほとんど負荷をかけずに正確な点火時期で火花を発生させる事ができます。

ATAT は、入力周期信号 (1 サイクル ) を等間隔の小さい角度に分割します。これにより、時間ではなく位相角に基づいて信号を分割できます。入力信号の周波数に関係なく、分割は常に一定かつ設定可能です。

図 6 に示すように、AT への周期パルス入力には、内部の CIP または外部ピンを選択できます。AT は 2 つのカウンタ ( 周期カウンタと位相カウンタ ) を備えています。外部パルスが印加される度に外部パルス長として周期カウンタの値を ATxPER レジスタに保存します。

周期カウンタはカウントのクロックとして (ATxCLK/(ATxRES+1)) を使います。位相カウンタは、入力周期パルスまたは 1 回転を等間隔の角度に分割します。位相カウンタはカウントのクロックとして (ATxCLK/(ATxPER+1)) を使います。ATxRES レジスタは 1 サイクルあたりの角度分割数を定義します。この値はユーザが決定します。外部パルス周波数が減少すると、周期カウンタ値は直前の周期の間に保存したATxPERレジスタの値を超えます。周期カウンタ値が ATxPER の1.5 倍になると AT はミッシングパルス トリガを発生させ、外部周波数が急激に減少した事を知らせます。これを適応モードのミッシングパルス トリガと呼びます。この ATxMISS レジスタを設定すると、固定値でミッシングパルス出力を生成できます。このパルスを使うと、ライン周波数検出のエラーを検出しエンジン式発電機の回転数を制御できます。これを固定ミッシングパルス モードと呼びます。

ATは出力を備えていませんが、周期パルス、位相パルス、ミッシングパルスごとに割り込みを生成します。 ATはシングルパルス モードまたはマルチパルス モードに設定できます。

図 6: シングルパルス モードの AT のブロック図

Rev. 10-000245A

1/21/2015

000

011010001

100101110111LC4_out

LC3_out

LC2_out

LC1_out

ZCD1_out

C2OUT_sync

C1OUT_sync

ATxINPPS

SSEL

Sync

(2 Clocks)

10FOSC

CS

HFINTOSC (16 MHz)Prescaler

PS

ATxPER

15

15

Divide by

ATxRES+1

Period

CounterR R

PREC

ATxRES

15

Divide by

ATxPER+1R

Phase

CounterR

10

ATxPHSInstruction

Clock

PRP

Set PERIF

ATx_perclk

PHP

ATx_phsclk

Set PHSIF

ATxclkcc

To Capture/

Compare

1 Clock

Delay

LD

PPS

ATxsig

ATxclk

PPS

LD

Difference

-

+

Comparator

01

Divide by 2

ATxMISS

MPP ATx_missedpulse

APMOD

2016 Microchip Technology Inc. DS00001980A_JP - p.7

Page 8: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

図 7: シングルパルス モードのタイミング図

シングルパルス モード

図 7 に示すように、シングルパルス モードでは全ての外部パルスは周期パルスであり、1 サイクルつまり 0 ~ 2π(360) の回転をこの周期パルスで決定します。周期レジスタ (ATxPER) は周期ごとに一度のみ更新されるため、位相パルス出力は直前の周期値で決まります。

AT は、周期および位相カウンタに式 2 のクロックを使います。

式 2: AT のクロック

シングルパルス モードの ATxPER と ATxPHS の瞬時値は式 3 で求める事ができます。

式 3: シングルパルス モードの ATxPER と ATxPHS

ATxPHS

AT Period Pulse

AT Phase Pulse

ATxPER

fsignal

360°

Period

ATperiodClockATclock

ATxRES 1+-------------------------------=

ATphaseClockATclock

ATxPER 1+-------------------------------=

ATclock は以下で与えられる AT 入力クロックです。

ATclockATxCLK

ATPrescalar----------------------------------=

ATxCLK は ATxCLK レジスタで選択したクロックです。

ATPrescalar は AT のクロックのプリスケーラ値です。

ATxRES はユーザが設定する AT 分解能レジスタであり、1 サイクルあたりの角度の分割数を決定します。

ATxPER は外部信号 fsignal( 入力周期パルス信号 ) の 1 周期のサイクルに相当する周期カウンタ値です。

ATxPERATperiodClock

fsignal---------------------------------------- ATxCLK

ATPrescalar ATxRES 1+ fsignal-----------------------------------------------------------------------------------------------------= =

ATxPHSATphaseClock

fsignal-------------------------------------- ATxCLK

ATPrescalar ATxPER 1+ fsignal-----------------------------------------------------------------------------------------------------= =

DS00001980A_JP - p.8 2016 Microchip Technology Inc.

Page 9: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

式 4 に示すように、シングルパルス モードの ATxPHS カウンタの位相の最大値は ATxRES( 角度分解能 ) と等しくなります。

式 4: ATxPHS の位相の最大値

例 1: シングルパルス モードの AT レジスタ値

マルチパルス モード

AT マルチパルス モードでは、図 9 に fsignal として示すように入力信号は 1 サイクルに複数のパルスを含みます。

図 8: マルチパルス モードの AT のブロック図

ATxPHSmax ATxRES AR 1–= =

ATxPHSmax は、AT 位相レジスタの最大値です。

ATxRES の値は、AT 角度分解能レジスタで設定します。

AR は要求角度分解能です。

ATxCLK = 32 MHz, ATPrescalar = 1:1 = 1, AR = 360˚, fsignal = 250 Hz と仮定した場合、

ATxRES = AR - 1 = 359 となり、以下に示すように計算できます。

ATxPER 320000001 359 1+ 250----------------------------------------------- 355.55555555556 355 and= =

ATxPHS 320000001 355 1+ 250----------------------------------------------- 359.55 360= =

Rev. 10-000246A

1/21/2015

000

011010001

100101110111LC4_out

LC3_out

LC2_out

LC1_out

ZCD1_out

C2OUT_sync

C1OUT_sync

ATxINPPS

SSEL

Missing

Pulse Period

Trigger

10FOSC

CS

HFINTOSC (16 MHz)Prescaler

PS

ATxPER

15

15

Divide by

ATxRES+1

Period

CounterR R

PREC

ATxRES

15

Divide by

ATxPER+1R

Phase

CounterR

10

ATxPHSInstruction

Clock

PRP

Set PERIF

ATx_perclk

PHP

ATx_phsclk

Set PHSIF

ATxclkcc

To Capture/

Compare

Difference

-

+

Comparator

01

Divide by 2

ATxMISS

MPP ATx_missedpulse

ATxperiod

ATxsig

ATxclk

ATx_in

1 Clock

Delay

APMOD

ATx_missedpulse

LD

PPSPPS

LD

2016 Microchip Technology Inc. DS00001980A_JP - p.9

Page 10: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

図 9: マルチパルス モードのタイミング図

入力信号の周期を決定するにはミッシングパルスが必要です。図 9 の例では 5 つの信号パルスと 1 つのミッシングパルスで 1 周期あたり 6 パルスです。5 番目のパルスの後にパルスが検出されない場合、AT がミッシングパルスを生成します。ミッシングパルスの後のfsignal の最初の立ち上がりエッジで、AT 周期パルスが出力されます。従って、ミッシングパルスと周期パルスは同じ長さです。ATxPER レジスタは、ミッシングパルス直後のパルスを除いて外部パルスの立ち上がりエッジごとに更新されます。これにより ATxPHS は、同じ周期内で位相パルスを正しく出力するために、ATxPER に従って各立ち上がりエッジ後に自己補正できます。

ATxPER 値 ( ここでは 210 の値を持つ 10 ビットレジスタ ) は、ミッシングパルス直後のパルスを除く全ての外部パルスをリセットするため、ATxPHS が最大カウント 1024 を超えないように ATxRES を選ぶ必要があります。 マルチパルス モードの例として、例 2 に必要な角度分解能 (AR)を得るための分解能レジスタ (ATxRES)値の選び方を示します。

マルチパルス モードの周期および位相レジスタの瞬時値は、式 5 で求めます。

式 5: マルチパルス モードの ATxPER と ATxPHS

ATxPHS

AT Period Pulse

AT Phase Pulse

ATxPER

fsignal

AT Missing Pulse

360°

Period

ATxPER ATxCLKATPrescalar fpulse ATxRES 1+ --------------------------------------------------------------------------------------------------=

ATxPHS ATxCLKATPrescalar fMis gPulsesin

ATxPER 1+ ---------------------------------------------------------------------------------------------------------------------------=

fpulse は周期信号内のパルスの周波数です。

fmissingPulse は AT のミッシングパルスの周波数であり、fsignal と同じです。

DS00001980A_JP - p.10 2016 Microchip Technology Inc.

Page 11: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

そのため、ATxPHS の最大カウントと ATxRES の関係は式 6 で求める事ができます。

式 6: マルチパルス モードの ATxPHS の最大値

その結果マルチパルス モードでは、同じ角度分割または角度分解能(AR)でもシングルパルス モードと比べてATxRESの値は異なります。式 7 を参照してください。

式 7: マルチパルス モードの ATxRES の計算

上記の ATxRES 値と式 5 を使うと、ATxPER と ATxPHS の値は例 2 に示すように計算できます。

例 2: マルチパルス モードの AT レジスタ値

キャプチャおよびコンペア機能

AT は 3 つのキャプチャ / コンペア モジュールを備えています。

キャプチャモード キャプチャモードでは、キャプチャ入力信号の立ち上がりエッジまたは立ち下がりエッジで、位相カウンタ(ATxPHS)の値をキャプチャレジスタ(ATxCCy)に保存します。 キャプチャ イベントも、他の周辺モジュール ( 例 :ADC、CLC 入力 ) をトリガまたは割り込みを発生させるのに使うパルスを生成します。

コンペアモード

コンペアモードでは、AT モジュールは現在の位相カウンタ値 (ATxPHS) をコンペアレジスタ (ATxCCy) の値と比較します。コンペアレジスタ (ATxCCy) には、シングルパルス モードの角度分解能 AR (ATxRES) 以下の角度値を書き込む事ができます。両者が一致するとコンペアイベントが発生します。このイベントを使うと、他の周辺モジュール ( 例 : ADC、CLC 入力 ) をトリガまたは割り込みを発生させる事ができます。

ATxPHSmax ATxRESfpulse

fmis gPulsesin--------------------------------------- =

ATxRES ARfmis gPulsesin

fpulse--------------------------------------- 1– AR

TpulseTmis gPulsesin----------------------------------------- 1–= =

Tpulse = 1/fpulse, TmissingPulse = 1/fmissingPulse

ATxCLK = 32 MHz, ATPrescalar = 1:1 = 1, AR = 360˚,

fsignal = fmissingPulse = 250 Hz, fpulse = 2500 Hz と仮定します。 式 7 を使うと、以下の結果が得られます。

ATxRES 3602502500------------ 1– 360

10--------- 1– 36 1– 35= = = =

ATxPER 320000001 2500 35 1+ ----------------------------------------------- 355.55555555556 355= =

ATxPHS 320000001 250 355 1+ ----------------------------------------------- 35.955 35= =

2016 Microchip Technology Inc. DS00001980A_JP - p.11

Page 12: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

AT を使った CDI の実装

図 10 に、PIC16F1619/5 の AT と CIP( コアから独立した周辺モジュール ) による CDI システムの実装例を示します。 CDI の点火角度制御に PIC マイクロコントローラのCIP( 例 : CLC、AT、SMT、算術演算アクセラレータ )を使います。

構成可能なロジックセル (CLC) 信号コンディショニング回路の出力はCLCに接続します。信号コンディショニング回路の出力は、ピックアップ コイルからの正および負パルス以外は論理1状態です。図 11 に示すように、CLC 出力が両方の入力に対して正パルスとなるように CLC を XOR ゲートとして構成します。CLC 出力は内部で AT の入力に接続します。AT は SMT に周期パルスを出力します。

信号計測タイマ (SMT)回転数の計算には 24 ビット SMT を使います。SMT は、ウィンドウ入力が AT 周期パルスに設定されたウィンドウ計測モード内で設定します。AT が周期パルスを出力するたびに SMT はタイマ値を SMTxCPR レジスタに書き込み、タイマカウントをリセットし、カウントを再開します。SMTxCPR レジスタにタイマ値を書き込むとキャプチャ周期割り込みが生成されます。

ADC ADCはエンジン温度とスロットル開度 (アナログの場合 )の入力に使います。スロットル開度入力はアナログとデジタルのどちらでも可能です。デジタル スロットル開度の場合、全開 (WOT) が 1 つの状態で、パーシャル(POT) がもう 1 つの状態です。各種スロットル開度と各種温度レンジに対して別々の点火 MAP が保存されています。

図 10: PIC16F161X による CDI の実装

PIC16F161x MCU

Angular Timer

CDI LOGIC

DC-DC Converter12V Battery

CLC

Map Selection

RPM Calculation

Firing Angle Calculation

ADC

CWG I/O

ThermistorThrottle

RPM

Signal Conditioning

Ignition Coil

Spark Plug

SMT

Math Accelerator

SMTxCPR

200-400V HV Supply

Capacitor

SCR

SCR Gate Control

Pick-up signal from pulser coil

Phase CompareATxCCy

AT Input

AT Period Pulse

Capture

Firing Angle

+

-

PWM

DS00001980A_JP - p.12 2016 Microchip Technology Inc.

Page 13: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

CDI のロジック

回転数の計算

式 8 に示すように、エンジンの回転数は外部信号周波数 fsignal から計算できます。

図 11: 信号コンディショニング出力

式 8: SMT を使った回転数の計算

Pick-up SignalPulser output

PeriodTDC

Input signals to

MCU After signal

conditioning

p_PIP

n_PIP

+ve Advance

pulse

-ve Referencepulse

+5to15V

-5to15V+5V

+5V

CLC (XOR) output

AT Period Pulse

fsignalSMTxCLK

SMTPrescalar SMTxCPR------------------------------------------------------------------------=

RPMEngineSMTxCLK

SMTPrescalar SMTxCPR------------------------------------------------------------------------ 60=

SMTxCLK = SMTxCLK レジスタを使った SMT のクロック入力 = Fosc = 32 MHz、SMTPrescalar = SMTxCON0 で選択した SMT クロック プリスケーラ分周比 = 1:8 = 8SMTxCPR はウィンドウ入力イベント時の SMTxTMR の値です。

fsignal は AT と SMT への入力信号の周波数です。

スカラ値 60 を乗算して Hz を回転数に変換します (RPMEngine = fsignal * 60)。

2016 Microchip Technology Inc. DS00001980A_JP - p.13

Page 14: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

点火 MAP の選択

エンジンは常に、エンジン回転数と点火時期の関係を示す点火マップと関連付けられています。これらのMAP はスロットル開度とエンジン温度により異なります。エンジン温度とスロットル開度から点火 MAPの 1 つが選択されます。MAP は非線形かつ非決定的であり、エンジンによって異なります。従って、これらのMAP は小さな線形 MAP( 区分線形曲線 ) に分割され、左側に回転数、右側に点火時期を示す表に表されます。

図 12: 回転数と点火時期 (THETA) の MAP の例

図 12 に、点火MAPの例を示します。この点火MAPは、区分線形曲線をグラフにしたものです。赤の曲線はスロットル ON 時、青の曲線はスロットル OFF 時の回転数と点火時期との関係を示します。

点火時期の計算 MAP 上の 2 点間の点火時期を求めるには、以下のように線形補間を使います。

式 9: 線形補間を使った点火時期の計算

式 9 で、比 ((y2-y1)/(x2-x1)) は一定であり、線分の傾き m と呼びます。この傾きを線図に対してあらかじめ計算しておくと、計算量を低減できます。

y y1

x x1

– +y2 y1–x2 x1–-----------------=

y は点火時期の瞬時値であり、y1 と y2 の間にあります。

y はエンジン回転数の瞬時値であり、この値は既知で x1 と x2 の間にあります。

(x1, y1) と (x2, y2) はその間に 1 本の線分が引かれる線図上の連続する点であり、それぞれ点火 MAP表のそれぞれ点火 MAP 上の 1 行として示します。

x1 と x2 は線分の 2 つの端点のエンジン回転数を表し、y1 と y2 は点火時期を表します。

DS00001980A_JP - p.14 2016 Microchip Technology Inc.

Page 15: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

例えば、表 1 はエンジン仕様による点火 MAP です。「傾き」列の値は隣り合う 2 つの行の値から計算され、線分の傾きと呼びます。

例 3: 補間を使った点火時期の計算

従って、1915 rpm の時の点火時期は 18˚ です。

算術演算アクセラレータ

算術演算アクセラレータ モジュール (PID モジュールとも呼ぶ ) は、現在の回転数の点火時期を式 9 で計算するために使います。算術演算アクセラレータを使う事で計算を速く実行できます。算術演算アクセラレータは式 10 に示すように加算と乗算を実行します。

式 10: 算術演算アクセラレータによる乗算 /加算

算術演算アクセラレータは、符号付きまたは符号なしフォーマットでこれらの 16 ビット整数演算を実行します。この演算の結果は 32 ビットサイズであり、PIDxOUT レジスタに保存します。この演算の結果は、累積するかしないかを設定できます。結果を累積する場合、PIDxACC レジスタを使って前の結果に加えます。

AT分解能レジスタ (ATxRES) の角度分解能の設定に応じて AT はカウントを開始します。AT は入力信号を等間隔の角度に分割します。それに応じて位相カウンタ(ATxPHS) がインクリメントされます。

CDI 実装のための AT の ATxRES 値の選択

位相カウンタの粒度を角度分解能と呼びます。ATxRES レジスタの値を使って、AT の位相カウンタの角度分解能を決定します。

角度分解能は、以下の式 11 で求める事ができます。

式 11: 角度分解能

AT では、周期は ATxRES のインクリメントで計測します。ATxRES 値が小さい場合、ATxPER 値は大きくなります。AT は、周期レジスタ (ATxPER) に値を書き込むために周期値を切り捨てます。誤差の割合を小さくするには、ATxPER値を大きくする必要があります。

表 1: エンジンの点火 MAP の例

エンジン回転数点火時期

(θ°)傾き (m)

250 10 0500 10 01600 10 01800 10 0.0752000 25 0.0122500 31 04100 31 04200 31 05100 31 05200 31 05900 31 08500 31 -0.0429000 10 0

10000 10 0

RPMEngine = 1915 rpm と仮定します。 表 1 から、この回転数の値は 1800 rpm( 点火時期10˚) と 2000 rpm( 点火時期 25˚) の間にあります。 従って、式 9 から各項は以下の通りです。

y1 = 10, y2 = 25, x1 = 1800, x2 = 2000, x = 1915

結果は以下の通りです。

y 10 1915 1800– + 25 10–2000 1800–------------------------------ 18.625 18= =

R A B+ C=

A は加算の第 1 入力オペランドです(PIDxIN レジスタ )。 B は加算の第 2 入力オペランドです(PIDxSET レジスタ )。 C は加算の結果との乗算の第 3 入力オペランドです (PIDxK1 レジスタ )。 R は一連の加算および乗算演算の結果です (PIDxOUT レジスタ )。

Angle Resolution 360ATxRES 1+-------------------------------=

2016 Microchip Technology Inc. DS00001980A_JP - p.15

Page 16: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

システムの FOM (Figure Of Merit) は ATxPER の最小期待値として定義されます。誤差を 0.2% 未満とする場合、FOM は式 12 のようにする必要があります。

式 12: FOM (FIGURE OF MERIT)

従って、最大回転数に対応する ATxPER の最小期待値(FOM) が 500 より大きくなるように、AT のクロックと分解能 (ATxRES) を選択する事を推奨します。

例 4: ATxRES の計算

低回転補正

回転数ゼロから非常に低い回転数では、AT 周期カウンタはそのサイズの制限 (15 ビット長 ) によりオーバーフローする事があります。回転数が低いと、この AT周期カウンタの値は多きなります。従って、AT 入力に対して十分低いクロックを選び、低い回転数にも対応できるようにする必要があります。結果として、例 5で求めるように回転数の最小値は 60 です。AT 入力クロック周波数を減らす事とATクロック プリスケーラ分周比を増やす事は、角度分割の精度を低下させます。しかし、低回転に対応するために必要です。

FOM 1001

Error--------------- 100

10.2--------- 500= = =

以下の値を仮定します。

エンジンの最大回転数 = 10000fsignal = RPM/60 = 10000/60 = 166.66 HzATxCLK = 32 MHz ATPrescalar = 1:1

ATxPER は以下により求められます。

ATxPERminATxCLK

ATPrescalar ATxRESmax 1+ fsignal_max----------------------------------------------------------------------------------------------------------------------------=

500 の FOM (ATxPERmin) に対して、ATxRESmax は以下のようになります。

ATxRESmaxATxCLK

ATPrescalar ATxPERmin fsignal_max------------------------------------------------------------------------------------------------------------- 1– = =

320000001 500 166.66------------------------------------------ 1– 383=

ATxRESmax より小さい ATxRES の値を選択する事を推奨します。

1° の角度分解能を得るために ATxRES を 359° とした場合、最大回転数に対応する ATxPER 最小値 (FOM) は以下のようになります。

ATxPER ATxCLKATPrescalar ATxRES 1+ fsignal_max----------------------------------------------------------------------------------------------------------------- = = 32000000

1 360 166.66------------------------------------------ 533.33=

DS00001980A_JP - p.16 2016 Microchip Technology Inc.

Page 17: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

例 5: 低回転補正

SCR/IGBT による点火 計算した点火時期は AT コンペアレジスタに書き込まれます。コンペアレジスタの値が AT 位相カウンタと一致すると、図 13 に示すようにコンペア割り込みが生成され IGBT またはSCR がONします。IGBT の場合、ON を OFF に切り換えるためにもう 1 つのコンペアレジスタを使います。

図 13: SCR による点火のタイミング図

ATxCLK = 32 MHz, ATxRES = 60, ATxPER max = 32767 (15 ビットカウンタ ) と仮定した場合、fmin は以下のように計算されます。

fminATxCLK

ATPrescaler ATxRES 1+ ATxPERmax-------------------------------------------------------------------------------------------------------------------=

よって、上記の ATPrescalar = 1 の場合、fmin は 16.27 Hz ( 回転数 976) です。 低回転に対応するために ATxCLK = 16 MHz, ATPrescalar = 8 を選択した場合、以下のように計算されます。

fmin16000000

8 60 32767------------------------------------ 1.017 Hz 60 RPM= =

Pick-up SignalPulser output

PeriodTDC

+ve Advance

pulse

-ve Referencepulse

+5to15V

-5to15V

SCR/IGBT trigger from MCU

Firing Angle ΘF

TDC

360°

ATxPHSPhase Counter

CLC (XOR) output

AT Period Pulse

Advance Angle ΘA

Θ=ΘA-ΘF

2016 Microchip Technology Inc. DS00001980A_JP - p.17

Page 18: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

相補波形ジェネレータ (CWG)CWG を使って DC/AC インバータを構成するための、PWM 信号で変調された半波または、全波用相補正弦波を生成します。この逆変換はバッテリからの DC12 VをAC220 Vrmsに変換するために必要です。このAC220Vrms を再び整流して DC300 V を発生させます。このDC300 V を使って CDI コンデンサを充電します。シングル PWM では半波分しか構成できないのに対し、相補 PWM では全波 AC 変換を構成できます。非常に小さいエンジン ( 例 : チェーンソー、芝刈り機 ) で回転数が非常に低い場合、半サイクルあればコンデンサを十分充電できます。

ファームウェア

図 14 にファームウェアのフローチャートを示します。

図 14: ファームウェアのフローチャート

Note 1: FAU は点火時期更新変数であり、点火時期計算のステップ番号を記録します。それが済むと、ON とOFF の点火周期を更新します。

2: ADC は、各 AT 周期パルスのエンジン温度とスロットル開度をサンプリングします。これらを現在のパラメータ値と見なし、これらの値に基づいて点火 MAP を選択します。

Start

Initialize

AT period Int? & FAU = 0?

AT1CC1 Int? AT1CC2 Int?ADC Int? & FAU = 2?

SMT1 Int? & FAU = 3?

Calculate RPM from SMT timer

Convert ADC to Temperature

Mode = Thermister?

Mode = Throttle?

Mode = Thermister

Mode = Throttle

Convert ADC to Throttle

Set FAU = 2

Select Firing Map using Temperature

and Throttle

FAU = 1?

Get ON and OFF firing angles from MAP

SetAT1CC1 = On Firing AngleAT1CC2 = Off Firing Angle

Ignition coil Switch ON

Ignition coil Switch OFF

Set FAU = 3

Set FAU = 1

Set FAU = 0

YES

NO NO NO NO NO

YYEESSYES

YES YES

NO

NOYES

YESYES YES

NO

ADC channel = Throttle

ADC channel = Temperature

DS00001980A_JP - p.18 2016 Microchip Technology Inc.

Page 19: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

プログラムフロー

プログラムは以下のステップで回転数と点火時期を計算します。

1. 初期化 :ボードを電源ONまたはリセットすると、全ての周辺モジュール (ADC, PID, CWG, CLC1,SMT1, AT1) は初期化されます。

2. 入力の収集 : CLC1は2つの入力からATに入力するXOR 出力を生成します。AT はカウントを開始し、周期パルスを出力します。この AT 周期パルスは、

「ウィンドウ付き計測モード」のウィンドウ入力として SMT が使います。SMT は、AT 周期入力ごとに SMT1TMR レジスタの値を SMT1CPR レジスタに取り込み、対応する割り込みを生成します。プログラムは、新規 SMT 値が計算に利用可能である事を通知します。以上が収集のステップです。

3. ADC: エンジン温度とスロットル開度のセンサのアナログ出力は、内蔵 10 ビット ADC でデジタル化します。

4. 回転数の計算 : エンジン回転数は、SMT1CPRレジスタの値から求めます。

5. MAP の選択 : 温度とスロットル開度から MAP を選択します。この MAP をルックアップ テーブルとして使い、現在の回転数に対応する点火時期を読み出します。現在の回転数がテーブル内値の中間にある場合、一時補間で点火時期を計算します。

6. 点火時期の更新 : 点火時期は AT コンペアレジスタ(AT1CCy) に格納します。

7. AT コンペア割り込み : AT コンペア割り込みサービスルーチン (ISR) で SCR/IGBT のゲートに接続したポートピンにパルスを印加し、スイッチをONにして火花を発生させます。IGBT の場合、IGBTを OFF に切り換えるためにもう 1 つの ATxCCyレジスタを使います。

8. AT 周期サイクルごとにステップ 2 ~ 7 を繰り返します。

2016 Microchip Technology Inc. DS00001980A_JP - p.19

Page 20: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

AT を使った CDI と従来の CDI の比較

点火時期からタイマカウントへの変換

従来の方法を使う場合、点火時期をタイマカウントに変換する必要があります。一方、MAP から得られる点火時期の値は直接 AT コンペアレジスタに書き込む事ができます。角度の値が一致すると、AT は割り込みを発生させ、SCR を ON できます。AT は内蔵 CIP であるため CPU に負荷をかけません。

点火時期の補間

従来の方法では、点火時期の補間とタイマカウントへの変換は長い処理を要します。

算術演算アクセラレータを使うと、短時間で点火時期を補間できます。

回転数の計算

従来の方法では、低回転でタイマがオーバーフローする恐れがあります。

SMT は 24 ビットのタイマです。1 MHz のクロックで回転数を計算する場合、オーバーフローせずに 0.125 Hz( 回転数 7.5) までカウントできます。

分解能

タイマ、キャプチャ、コンペア モジュールを使った従来の方法では、角度分解能は回転数により異なります。一方、AT の分解能レジスタ (ATxRES) には希望する点火時期分解能を直接書き込む事ができます。シングルパルス モードで 1° の分解能を望む場合、分解能レジスタに値 359 を書き込みます。角度分解能はエンジン回転数に依存しません。

全体の比較

CDIシステムへのピックアップ入力信号の最大周波数は500 Hz にする事ができ、これは 30,000 回転 (500 Hz すなわち 2 ms 周期 ) に対応します。この 2 ms の周期のうちに、CDI 動作は全ての実行と計算を終える必要があります。32 MHzで8 MIPSの実行速度を持つPIC16Fで従来の方法と AT を使った方法を使った場合の CPU使用率を下表に示します。

MIPS は、式 13 に示すように計算できます。

式 13: MIPS の計算

上記の場合、TMIN = 2 ms, MIPSTotal = 8 です。最大MIPS に基づく CPU 使用率は、以下の式 14 に示すように求める事ができます。

式 14: CPU 使用率 (%)

MIPSActualMIPSTotalTMIN

----------------------------- TExecution=

MIPSActual は、現在のプログラム実行のMIPS の計算値です。

TMIN は、最小入力周期 (1/fMAX、つまり入力信号周波数の最大値の逆数 ) です。

MIPSTotal は、デバイスの最大 MIPS 値です。

TExecution は、プログラムの実際の実行時間です。

%CPUUSAGEMIPSActualMIPSTotal-------------------------------- 100=

表 2: タイミングの比較

プログラム 動作

位相角タイマ (AT) を使った CDI 従来の方法を使った CDI

実行時間 (µs) MIPSCPU使用率

(%)実行時間

(µs) MIPSCPU使用率

(%)

Long 変数の除算 150 0.6 7.5 200 ( 計算に含まれる T1 カウント オーバーフロー値のための追加時間を含む )

0.8 10

点火時期計算 150 ( 算術演算

アクセラレータ使用 )

0.6 7.5 350 1.4 15.5

角度から T1カウントへの変換

0 0 0 200 0.8 10

ISR とその他のプログラム コマンド

50 0.2 2.5 50 0.2 2.5

合計 350 1.4 17.5 800 3.2 40

DS00001980A_JP - p.20 2016 Microchip Technology Inc.

Page 21: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

表 3 に、CDI 実装のための 2 つの方法のリソースの比較をまとめます。

表 4 に、CDI 実装のための 2 つの方法の性能の比較をまとめます。

まとめ

PIC16F マイクロコントローラを使うと、従来の方法または CIP( 例 : AT、CLC、SMT、算術演算アクセラレータ、CWG) を使って CDI を実装できます。しかし、CIP を使うと CDI の性能を改善し、実装が容易になります。 AT を使うと、入力信号の角度分割を CPU に大きな負荷をかけず実行できます。さらにルックアップ テーブルを使った角度から時間への変換を不要にする事で性能を高める事ができます。またこれらの角度分割は、入力信号レンジ全体を通して非常に正確です。本書の比較表 ( 表 2 ~表 4) に示すように、AT を使う事で CDIシステムの性能を大幅に向上させる事ができます。また、CPU の負荷を軽減するため CPU の計算能力を他のタスクに使う事ができます。さらに、算術演算アクセラレータを使うと、計算はさらに高精度かつ高速になります。高い分解能を備える SMT は低回転の追従と応答動作の実行に適しています。本書の目的外ではありますが、同様の実装技術は他のシステムにも適用できます。例えば、同じ CIP を使う誘導式放電点火 (IDI)システムです。

表 3: リソースの比較

パラメータ AT を使った CDI 従来の方法を使った CDIフラッシュメモリ ( ワード )

1994 3347

RAM( バイト ) 65 233使用する周辺モジュール ADC、CLC、AT、SMT、

算術演算アクセラレータ、CWGADC, CCP, Timer1, PWM

表 4: 性能の比較

パラメータ AT を使った CDI 従来の方法を使った CDI精度 FOM と ATxRES 値で決まる エンジン回転数に依存する ( 回転数と点火時期計算のタイマ

カウントの粒度 ) 分解能 最小分解能 0.35˚ (10 ビット ) の

ATxRES 値Timer1 クロックと回転数に依存する (1 MHz クロックの時 250回転では角度分解能 0.09˚、10,000 回転では角度分解能 3.6˚)

2016 Microchip Technology Inc. DS00001980A_JP - p.21

Page 22: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

補遺 A: マルチ PIP システムを使ったCDI の実装

パルサーコイルからのピックアップ信号が 1 周期あたり複数パルスで構成されている場合、AT マルチパルスモードを使います。図 4 に、マルチパルス出力の例を示します。

シングルパルス モードとマルチパルス モードの CDIシステムの実装は、AT モードの設定と ATxRES レジスタ値を除いて同じです。ATxRES レジスタ値は ATを使った CDI の実装の「マルチパルス モード」セクションの式 7 で説明します。マルチパルス モードの場合、AT1CON0 レジスタの LSb は 1にセットします。

回転数計算、MAP 選択、点火時期計算は全て同じです。ATxCCy レジスタに書き込む値も同じであり、以下の式 A-1 のように表されます。

式 A-1: AT コンペア モジュール値の計算

シングルまたはマルチパルス モードでφはパルサーコイルが最初の正パルスを出力する反時計回りの角度を表します。この角度は BDC と TDC 間です。

ATxCCy –=

は、反時計回りの TDC に対する正パルスの角度です。

θ は、反時計回りの点火時期の計算値です。

DS00001980A_JP - p.22 2016 Microchip Technology Inc.

Page 23: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

補遺 B: Q15 数値フォーマットと数値演算アクセラレータによる点火時期の計算

点火時期を計算する式 9 は、外部信号 1 サイクルあたり 1 つの加算、3 つの減算、1 つの除算、1 つの乗算の演算を必要とします。8 ビット MCU では、これらの算術演算に長時間を必要とする場合があります。計算量を減らすために、表 1 に示すように点火時期計算の際に傾きをあらかじめ計算しておく事ができます。従って、式 9 は式 B-1 のように表す事ができます。

式 B-1: 線形補間

表 1 に示すように、m の値は 1 未満の場合があるため浮動小数点演算を使って式 B-1 を計算する必要があります。8 ビット MCU では、この演算に長時間かかる場合があります。この計算を簡単にするため、Q15 数値フォーマットを使います。Q15 フォーマットでは、全ての数値はそのパラメータタイプの最大値で除算され、次に 16 ビット符号付き整数の最大値 (32767) で乗算されます。これにより、数値は 16 ビット数形式になります。この手法は正規化とも呼びます。

このように正規化したQ15数を計算に使う事で整数演算を使えます。全ての計算が終了すると、演算結果は元の単位に変換し直されます。

例 B-1: Q15 フォーマットの点火時期の計算

上記の式を使うと、表 1 は以下の表 B-1 のように書く事ができます。

y y1

x x1

– + m=

m = (y2 – y1)/(x2 – x1)m は (x1, y1) と (x2, y2) の間の線分の傾きです。

RPMMAX = 30660, fMAX = RPMMAX/60 = 511,

θMAX = 63( 最大点火時期 ) の場合、

RPM = 10000 と点火時期 = θ = 25 に Q15 を適用すると、以下の式が得られます。

f RPM60

------------- 1000060

--------------- 166.666667 167= = =

fQ15f

fMAX-------------- 32767 167

511--------- 32767 10687.21461 10687= = =

Q15

MAX---------------- 32767 25

63------ 32767 13002.77778 13002= = =

2016 Microchip Technology Inc. DS00001980A_JP - p.23

Page 24: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

表 B-1 の傾きは、Q15 フォーマット化した点火 MAP値から計算したものであり、実際の回転数と点火時期の値から計算したものではありません。表 B-1 から実際の点火時期を計算するために、式 B-1 を以下のように修正して使います。

式 B-2:

表 B-1: Q15 フォーマットで表した点火 MAPfsignal

(Q15 で表した Hz)

Q1 点火時期(Q15 で表した θ˚)

スロープ(m ˚/Hz)

267 5201 0534 5201 01710 5201 01924 5201 372137 13003 62672 16123 04382 16123 04489 16123 05450 16123 05557 16123 06305 16123 09084 16123 -209618 5201 010687 5201 0

yy1Q15

xQ15 x1Q15

– + m MAX

Q15MAX-------------------------------------------------------------------------------------------------------=

DS00001980A_JP - p.24 2016 Microchip Technology Inc.

Page 25: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

例 B-2: Q15 から角度への変換による Q15 フォーマットの点火時期の計算

これらの結果は例 3 の補間を使った点火時期の計算の結果と一致します。 上記の整数算術演算は、算術演算アクセラレータで簡単に実行できます。上記の例の結果には式 10 の演算が 2 回含まれています。1 つ目の乗算 / 加算演算は、分子の [(2046 - 1924) x 37] です。2 つ目の乗算 / 加算演算は、1 つ目の演算結果を 5201 と加算し、それに63 を乗算しています。次に、論理的に右に 15 回シフトする事で 32767 による除算を実行し、2 つ目の演算の最終的な出力を得ます。

例 3 で求めた値を使って Q15 計算を実行すると、以下の結果が得られます。

f RPM60

------------- 191560------------ 31.91666667 32= = =

fQ15f

fMAX-------------- 32767 32

511--------- 32767 2046.6 2046= = =

Q15

MAX---------------- 32767 10

63------ 32767 5201.111111 5201= = =

y 5201 2046 1924– 37+ 6332767

---------------------------------------------------------------------------------- 18.6787 18= =

従って、表 B-1 と上記の計算値から以下のような結果が得られます。 y1Q15 = 5201, xQ15 = 2046, x1Q15 = 1924, m = 37, Q15 MAX = 32767 式 B-1 を使うと、y は以下のように計算できます。

2016 Microchip Technology Inc. DS00001980A_JP - p.25

Page 26: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

補遺 C: 補間計算を省くためのヒントとコツ

これらの演算は 8 ビット MCU のエミュレータを使って実装されているため、式 B-1 の補間演算は 1 回の除算演算と 1 回の乗算演算を含んでおり長時間を要します。CDI プログラムの実行速度を上げるため、補間演算を点火時期ルックアップ テーブルで置き換える事ができます。このために、表 1 を点火時期の 1˚ の変化に対するルックアップ テーブルとして表し、左側には点火時期に対する回転数のレンジを示します。以下は、表 1 をルックアップ テーブルとして展開した表です。

この方法は、より多くのフラッシュメモリを必要とするものの、回転数レンジに対応する点火時期を見つけるだけで済むため、CDI プログラムの性能を向上させる事ができます。全ての MAP をルックアップ テーブルとして実装するのに十分なメモリがあり、かつ性能を重視する場合、このルックアップ テーブル手法が便利です。例えば、回転数値 1915 に対する点火時期は、表 C-1によると 18˚ です。

表 C-1: 点火時期 1˚ ごとに表 1 を展開した表

回転数点火時期

(θ˚)

250 ~ 1813 10

1814 ~ 1826 11

1827 ~ 1839 12

1840 ~ 1853 13

1854 ~ 1866 14

1867 ~ 1879 15

1880 ~ 1893 16

1894 ~ 1906 17

1907 ~ 1919 18

1920 ~ 1933 19

1934 ~ 1946 20

1947 ~ 1959 21

1960 ~ 1973 22

1974 ~ 1986 23

1987 ~ 1999 24

2000 ~ 2083 25

2084 ~ 2166 26

2167 ~ 2249 27

2250 ~ 2333 28

2334 ~ 2416 29

2417 ~ 2499 30

2500 ~ 8500 31

8501 ~ 8523 30

8524 ~ 8547 29

8548 ~ 8571 28

8572 ~ 8595 27

8596 ~ 8619 26

8620 ~ 8642 25

8643 ~ 8666 24

8667 ~ 8690 23

8691 ~ 8714 22

8715 ~ 8738 21

8739 ~ 8761 20

8762 ~ 8785 19

8786 ~ 8809 18

8810 ~ 8833 17

8834 ~ 8857 16

8858 ~ 8880 15

8881 ~ 8904 14

8905 ~ 8928 13

8929 ~ 8952 12

8953 ~ 8976 11

8977 ~ 10000 10

表 C-1: 点火時期 1˚ ごとに表 1 を展開した表 ( 続き )

回転数点火時期

(θ˚)

DS00001980A_JP - p.26 2016 Microchip Technology Inc.

Page 27: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

補遺 D: エンジン回転数と車速の計算

エンジン回転数は、Hz または RPS( 毎秒回転数 ) で表された式 8 から求めます。この値に 60 を乗算すれば RPM( エンジン回転数 ) になります。この RPS または Hz で表された速度を使って、以下のように角速度またはピストンスピードを求める事ができます。

式 D-1: エンジンの角速度

式 D-1 を使うと、ピストンスピードを以下のように求める事ができます。

式 D-2: ピストンスピード

エンジンの回転は、駆動系を介して車輪と機械的に結合されています。エンジン回転数と車輪の回転数の比をギア比と呼びます。ギア比を使うと、以下のようにピストンスピードを車速に変換できます。

式 D-3: 車速

Engine 2 fsignal=

ωEngine は、ラジアン / 秒で表したエンジンの角速度です。

fsignal は、Hz で表したエンジン回転数です。

2π は、ラジアン角で表した 1 つの円の円周長、またはラジアンで表した円のちょうど 1 回転の角度です。

VEngine r Engine=

VEngine は、メートル / 秒で表したピストンスピードです。

r は、メートルで表した、TDC と BDC のピストン位置間の距離の半分に等しい半径です。

VAutomobile VEngine G=

VAutomobile は、メートル / 秒で表した車速です。

G は、エンジン回転数と車輪のギア比です。

2016 Microchip Technology Inc. DS00001980A_JP - p.27

Page 28: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

補遺 E: MPLAB® CODE

CONFIGURATOR (MCC)MPLAB X 向けプラグインツール MPLAB® CodeConfigurator (MCC) を使うと、PIC MCU の周辺モジュールを簡単に設定できます。MCC を使うとグラフィカルに設定を見る事ができ、必要な設定を簡単

に実施できます。これにより開発期間を短縮できます。また、MCC は特定の周辺モジュールを使うための機能も備えています。

図E-1に、MCCでCDI実装向けに設定したPIC16F161Xを示します。図 E-2、E-3、E-4、E-5 に、CDI アプリケーションで使うPIC16F1619の周辺モジュール (AT、CLC、算術演算アクセラレータ、SMT1) の設定を示します。

図 E-1: PIC16F1619 の AT の設定

図 E-2: PIC16F1619 の CLC の設定

DS00001980A_JP - p.28 2016 Microchip Technology Inc.

Page 29: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

図 E-3: PIC16F1619 の算術演算アクセラレータの設定

図 E-4: PIC16F1619 の SMT1 の設定

MCC をインストールするには、メニューから [Tools] [Plugins Available Plugins] [MPLAB X Code Configurator][Install] と選択します。インストール後、MCC を使うには [Tools] [Embedded] [MPLAB Code Configurator] と選択します。

2016 Microchip Technology Inc. DS00001980A_JP - p.29

Page 30: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

図 E-5: MCC が生成するファイルとフォルダ構造

MCC で全ての設定を行ったら、[Generate Code] ボタンをクリックします。周辺モジュールコードが生成され、各周辺モジュール用のヘッダと C ファイルが個別に生成されます。図 E-2 に、AT による CDI 実装向けに生成され「MCCGenerated Files」フォルダに保存されたファイルを示します。必要に応じて、これらのファイルにコードを追加してください。

DS00001980A_JP - p.30 2016 Microchip Technology Inc.

Page 31: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

補遺 F: 参考文献

1. TB3129 – 『PIC® マイクロコントローラの信号計測タイマ (SMT) モジュール』(DS90003129)

2. TB3133 – 『PIC® マイクロコントローラの構成可能なロジックセル』(DS90003133)

3. TB3134 – 『16-Bit Multiplication and Addition byusing the Math Accelerator Peripheral onPIC16(L)F161X』(DS90003134)

4. TB3118 – 『相補波形ジェネレータの技術概要』(DS90003118)

2016 Microchip Technology Inc. DS00001980A_JP - p.31

Page 32: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

AN1980

NOTE:

DS00001980A_JP - p.32 2016 Microchip Technology Inc.

Page 33: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

Microchip 社製デバイスのコード保護機能に関して以下の点にご注意ください。

• Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。

• Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に

流通している同種製品の中でも最も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解では、こうした手法

は Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知

的所有権の侵害に該当する可能性が非常に高いと言えます。

• Microchip 社は、コードの保全性に懸念を抱いているお客様と連携し、対応策に取り組んでいきます。

• Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保

護機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社の

コード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著作

物に不正なアクセスを受けた場合、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります。

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。Microchip 社は、明示的、暗黙的、書面、口頭、法

定のいずれであるかを問わず、本書に記載されている情報に

関して、状態、品質、性能、商品性、特定目的への適合性を

はじめとする、いかなる類の表明も保証も行いません。

Microchip 社は、本書の情報およびその使用に起因する一切の

責任を否認します。生命維持装置あるいは生命安全用途に

Microchip 社の製品を使用する事は全て購入者のリスクとし、

また購入者はこれによって発生したあらゆる損害、クレーム、

訴訟、費用に関して、Microchip 社は擁護され、免責され、損

害を受けない事に同意するものとします。暗黙的あるいは明

示的を問わず、Microchip 社が知的財産権を保有しているライ

センスは一切譲渡されません。

2016 Microchip Technology Inc.

商標

Microchip 社の名称とロゴ、Microchip ロゴ、dsPIC、FlashFlex、flexPWR、JukeBlox、KEELOQ、KEELOQlogo、Kleer、LANCheck、MediaLB、MOST、MOST logo、MPLAB、OptoLyzer、PIC、PICSTART、PIC32 logo、RightTouch、SpyNIC、SST、SSTLogo、SuperFlash および UNI/O は米国およびその他の国に

おける Microchip Technology Incorporated の登録商標です。

Embedded Control Solutions Company、mTouch は米国に

おける Microchip Technology Incorporated の登録商標です。

Analog-for-the-Digital Age、BodyCom、chipKIT、chipKIT logo、CodeGuard、dsPICDEM、dsPICDEM.net、ECAN、In-Circuit SerialProgramming、ICSP、Inter-Chip Connectivity、KleerNet、KleerNetlogo、MiWi、motorBench、MPASM、MPF、MPLAB Certified logo、MPLIB、MPLINK、MultiTRAK、NetDetach、Omniscient CodeGeneration、PICDEM、PICDEM.net、PICkit、PICtail、RightTouchlogo、REAL ICE、SQI、Serial Quad I/O、Total Endurance、TSHARC、USBCheck、VariSense、ViewSpan、WiperLock、Wireless DNA、および ZENA は米国およびその他の MicrochipTechnology Incorporated の商標です。

SQTP は米国における Microchip Technology Incorporated の

サービスマークです。

Silicon Storage Technology は他の国における MicrochipTechnology Inc. の登録商標です。

GestIC は Microchip Technology Inc. の子会社である MicrochipTechnology Germany II GmbH & Co. & KG 社の他の国における

登録商標です。

その他本書に記載されている商標は各社に帰属します。

© 2016, Microchip Technology Incorporated, All Rights Reserved.

ISBN: 978-1-5224-0031-8

DS00001980A_JP - p. 33

Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham ( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。Microchip 社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています。

Page 34: Capacitor Discharge Ignition Using the Angular Timerww1.microchip.com/downloads/jp/AppNotes/00001980A_JP.pdfPulser Coil HV Supply (AC CDI) PWM HV Supply (DC CDI) Magneto 2016 Microchip

DS00001980A_JP - p.34 2016 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792-7200 Fax: 480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.comアトランタDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455オースティン、TXTel: 512-257-3370 ボストンWestborough, MATel: 774-760-0087 Fax: 774-760-0088シカゴItasca, ILTel: 630-285-0071 Fax: 630-285-0075クリーブランドIndependence, OHTel: 216-447-0464Fax: 216-447-0643ダラスAddison, TXTel: 972-818-7423 Fax: 972-818-2924デトロイトNovi, MI Tel: 248-848-4000ヒューストン、TXTel: 281-894-5983インディアナポリスNoblesville, INTel: 317-773-8323Fax: 317-773-5453ロサンゼルスMission Viejo, CATel: 949-462-9523 Fax: 949-462-9608ニューヨーク、NY Tel: 631-435-6000サンノゼ、CATel: 408-735-9110カナダ - トロント

Tel: 905-673-0699 Fax: 905-673-6509

アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel: 852-2943-5100Fax: 852-2401-3431オーストラリア - シドニー

Tel: 61-2-9868-6733Fax: 61-2-9868-6755中国 - 北京

Tel: 86-10-8569-7000Fax: 86-10-8528-2104中国 - 成都

Tel: 86-28-8665-5511Fax: 86-28-8665-7889中国 - 重慶

Tel: 86-23-8980-9588Fax: 86-23-8980-9500中国 - 東莞

Tel: 86-769-8702-9880中国 - 杭州

Tel: 86-571-8792-8115Fax: 86-571-8792-8116中国 - 香港 SARTel: 852-2943-5100 Fax: 852-2401-3431中国 - 南京

Tel: 86-25-8473-2460Fax: 86-25-8473-2470中国 - 青島

Tel: 86-532-8502-7355Fax: 86-532-8502-7205中国 - 上海

Tel: 86-21-5407-5533Fax: 86-21-5407-5066中国 - 瀋陽

Tel: 86-24-2334-2829Fax: 86-24-2334-2393中国 - 深圳

Tel: 86-755-8864-2200 Fax: 86-755-8203-1760中国 - 武漢

Tel: 86-27-5980-5300Fax: 86-27-5980-5118中国 - 西安

Tel: 86-29-8833-7252Fax: 86-29-8833-7256

アジア / 太平洋中国 - 厦門

Tel: 86-592-2388138 Fax: 86-592-2388130中国 - 珠海

Tel: 86-756-3210040 Fax: 86-756-3210049インド - バンガロール

Tel: 91-80-3090-4444 Fax: 91-80-3090-4123インド - ニューデリー

Tel: 91-11-4160-8631Fax: 91-11-4160-8632インド - プネ

Tel: 91-20-3019-1500日本 - 大阪

Tel: 81-6-6152-7160Fax: 81-6-6152-9310日本 - 東京

Tel: 81-3-6880-3770 Fax: 81-3-6880-3771韓国 - 大邱

Tel: 82-53-744-4301Fax: 82-53-744-4302韓国 - ソウル

Tel: 82-2-554-7200Fax: 82-2-558-5932 または

82-2-558-5934マレーシア - クアラルンプール

Tel: 60-3-6201-9857Fax: 60-3-6201-9859マレーシア - ペナン

Tel: 60-4-227-8870Fax: 60-4-227-4068フィリピン - マニラ

Tel: 63-2-634-9065Fax: 63-2-634-9069シンガポールTel: 65-6334-8870Fax: 65-6334-8850台湾 - 新竹

Tel: 886-3-5778-366Fax: 886-3-5770-955台湾 - 高雄

Tel: 886-7-213-7830台湾 - 台北

Tel: 886-2-2508-8600 Fax: 886-2-2508-0102タイ - バンコク

Tel: 66-2-694-1351Fax: 66-2-694-1350

ヨーロッパオーストリア - ヴェルス

Tel: 43-7242-2244-39Fax: 43-7242-2244-393デンマーク - コペンハーゲン

Tel: 45-4450-2828 Fax: 45-4485-2829フランス - パリ

Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79ドイツ - デュッセルドルフ

Tel: 49-2129-3766400 ドイツ - ミュンヘン

Tel: 49-89-627-144-0 Fax: 49-89-627-144-44ドイツ - プフォルツハイム

Tel: 49-7231-424750 イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781イタリア - ヴェニス

Tel: 39-049-7625286 オランダ - ドリューネン

Tel: 31-416-690399 Fax: 31-416-690340ポーランド - ワルシャワ

Tel: 48-22-3325737 スペイン - マドリッド

Tel: 34-91-708-08-90Fax: 34-91-708-08-91スウェーデン - ストックホルム

Tel: 46-8-5090-4654イギリス - ウォーキンガム

Tel: 44-118-921-5800Fax: 44-118-921-5820

各国の営業所とサービス

07/14/15