TB3099
はじめに
本書では、PIC16F1708 マイクロコントローラでゼロ
クロス検出機能を実装する方法を紹介します。本書で
は、この機能を使って
220 V AC モータ向けに 220 V
リレーをスイッチングします。ゼロクロス点でリレー
をスイッチングする事により、接点間で生じるスパー
クを軽減してリレーの寿命を延ばすと共に、
EMI も低
減できます。ゼロクロス スイッチングにより、リレー
と高電圧半導体スイッチの両方で
EMI が減少します。
本書では「コアから独立した周辺モジュール」コンセ
プトも紹介します。相互接続した周辺モジュールをあ
らかじめ設定しておく事により、プロセッサに割り込
む事なく高速にスイッチングできます。
ゼロクロス検出イベントは、
CLC モジュールを経由し
てスイッチングをトリガします。スイッチングは、ゼ
ロクロス検出イベントの発生から数
μs 以内に発生し
ます。CLC を用いる事により、以下の利点が得られま
す。
• ゼロクロス イベントに対する高速な応答
- CPU による介入は不要
- スイッチング速度はプロセッサ速度と無関係
- スイッチングは μs オーダーで発生
• イベント発生中に CPU は他の処理を実行できる
• デバイスが省電力のためにスリープ中であっても動
作できる
このゼロクロス検出機能は、メインプログラムがス
イッチングを要求すると次のゼロクロス立ち上がり
エッジイベントでスイッチングが発生するよう構成さ
れています。フリップフロップは、ゼロクロス検出出
力信号からクロックを受け取ります。フリップフロッ
プへ入力するデータは、CLC1POL<1> ビットで制御
し ま す。フ リ ッ プ フ ロ ッ プ を 通 過 し た デ ー タ は、
RC7PPS MUX を介して RC7 出力ピンへ接続します。
図 1: ゼロクロス検出スイッチの構造
本書では、モータスイッチの実装方法を紹介します。
ユーザはモーメンタリ ボタンを押す事でモータをON/
OFF できます。リレーをゼロクロス点で開閉する事に
より、リレー接点の寿命を延ばすと共に
EMI を低減し
ます。ゼロクロス スイッチングは力率改善回路でも使
Author:
Stephen Allen
Microchip Technology Inc.
DS90003099A_JP - p. 2 2015 Microchip Technology Inc.
リソース要件
PIC16F170X はゼロクロス検出回路を備えています。
ゼロクロス検出機能には
1 個の高抵抗を使う必要があ
ります。この抵抗は、過電流
/ 過電圧による PIC
®デ
バイスの損傷を防ぐために重要です。ゼロクロス検出
のための主電源の接続方法を
図
2
に示します。
図 2: ゼロクロスピン (RA2/ZCD) を高電圧の主電源に接続する方法
ゼロクロス検出ピン
(RA2/ZCD) は、565 kΩ の抵抗を
介して赤
( ホット ) の電源ケーブルに接続します。赤
の代わりに黒
( ホット ) のケーブルに接続しても構い
ません。白
( コモン ) のケーブルはグランドに接続し
ます。
RA2/ZCD ピンの最大シンク / ソース電流は 300 µA ( 公
称値
) です。120 V (RMS) の正弦波のピーク電圧は
(120 *2^(1/2)) = 169.7 V です。この抵抗の値は、オー
ムの法則により以下のように求まります。
V/I = R = 169.7/300 µA = 565 kΩ
ゼロクロス検出モジュールは、正および負の傾きのゼ
ロクロスで割り込みを生成するためのオプションを備
えています。また、2 つの電力モード (High/Low) によ
り、消費電力を柔軟に管理できます。
本書の例では、DC12 V のコイルを使って 220 V のリ
レーをスイッチングします。押しボタンスイッチ
(RB7
ピンに接続
) は、内部の弱プルアップ抵抗を使って構
成します。
図
3
に基本的な接続を示します。
表 1: ゼロクロス スイッチングのリソース要件
CLC モジュール
1 個
RAM
1 byte
プログラムメモリ
4096 中 119 アドレス
図 3: ゼロクロス検出モータ スイッチングの回路図
AC 電圧波形 (60 Hz)
赤と黒の電源ケーブルの電圧は、位相が互いに
180° 異
なる正弦波です。
図
4
に、
2 つの AC 波形とゼロクロス
点を示します。どちらの「ホット」ケーブルのゼロク
ロス点でスイッチングしても結果は同じです。黒およ
び赤ケーブルの電圧は、中心電圧を基準として
110 V
(RMS) です。赤と黒のケーブル間の電位差を取り出す
事により、
2 倍の電圧振幅 (220 V RMS) が得られます。
図 4: 60 Hz AC 主電源の波形 ( 赤 : ホット、黒 : ホット、0 - COMMON)
DS90003099A_JP - p. 4 2015 Microchip Technology Inc.
CLC の構成
ゼロクロス
ポイントの近くでスイッチングするため
に、ゼロクロス信号を使って
D フリップフロップにク
ロックを供給します。
図
5
に示すスクリーンショット
では、CLC1 を D フリップフロップとして構成してい
ます。このフリップフロップにはゼロクロス信号から
クロックを供給し、
CLC1POL<1> ビットを介してデー
タを提供します。
図 5: CLC Designer ツール - CLC1 を D フィリップフロップとして構成
以下の信号のロジック波形を
図
6
に示します。
• 押しボタン ( アクティブ LOW、PIC デバイスから内
部プルアップを使用
)
• リレー スイッチング信号
• ゼロクロス検出信号 (CLC モジュールを通してポー
トピンから取り出し
)
ボタンを押す度に、デバウンスのための短い遅延の後
にリレーの状態が切り換わります。これにより、モー
メンタリ押しボタンを押す度に、モータの
ON/OFF を
切り換える事ができます。
CLC1OUT の変化は、ゼロ
クロス信号の立ち上がりエッジで発生します。
図 6: ボタンを複数回押した時のリレー出力の変化を示す波形
ゼロクロス点でのスイッチングを拡大したオシロス
コープ波形を
図
7
に示します。ゼロクロス信号と
CLC1OUT の間の遅延はゲート伝播遅延のみによって
生じ、プロセッサ クロックには無関係です。ゼロクロ
ス信号は
PIC デバイスの内部で生成されるため、これ
らの信号はほとんど同時に変化します。
CLC 内の伝播
遅延は無視できますが、各信号にはそれぞれの出力ピ
ンで等量の遅延が生じます。
図 7: ゼロクロス信号の立ち上がりエッジと出力
信号の変化の間の相対的タイミング
まとめ
本書は、ゼロクロス検出モジュールを使ったアプリ
ケーションの開発を始めるための足がかりを読者に提
供する事を目的としています。ゼロクロス スイッチン
グにより
EMI が減少します。アプリケーションによっ
ては、プリント基板ノイズとフィルタ用部品点数の削
減によってコストを削減できます。
DS90003099A_JP - p. 6 2015 Microchip Technology Inc.
補遺 A
ゼロクロス点でリレーをスイッチングするためのコー
ドを以下に記載します。
ソフトウェア ライセンス使用許諾
Microchip Technology Incorporated ( 以下「弊社」) が提供するソフトウェアは、弊社製品との組み合わせでのみ使われる事を目的 として弊社のお客様に供給されます。 ソフトウェアの所有権は弊社および/ またはソフトウェアのサプライヤに帰属し、適用著作権法のもとに保護されています。無断 複写、複製、転載は禁じられています。上記の制約に違反してソフトウェアを使った場合、使用者はライセンス使用許諾の侵害に 対して民事責任を問われ、適用法のもとに罰せられます。 本ソフトウェアは「無条件受け取り」を条件として提供されます。本ソフトウェアの商品性および特定目的に対する適合性の黙示 保証を含む( ただし必ずしもこれらに限定されない ) 明示、暗示、法的な保証は一切致しません。弊社は、いかなる場合も、特殊、 偶発的、必然的にかかわらず、いかなる理由があろうとも、一切の賠償責任を負いません。 #include "p16f1708.inc"
#define RELAY_CONTROL CLC1POL,1
#define debounce_count 0x71 ; RAM location for debounce counter
start
org 0x0000
nop
banksel ZCD1CON
bsf ZCD1CON,ZCD1EN ; Let's get started by turning on the Zero-cross detect module.
banksel ANSELB
clrf ANSELB ; make port B digital movlw 0x04
movwf ANSELA ; make port A digital movlw 0x04
movwf ANSELC ; make port C digital, except RC2.
banksel TRISC movlw 0x04
movwf TRISC ; port C all outputs, except RC2. movlw 0xC0
movwf TRISB ; port B all outputs, except RB7 and RB6 movlw 0x04
movwf TRISA ; port A all outputs, except RA2.
#include "zcd-clc1.inc" ; this sets up the CLC1 module as a d-type flip-flop
; with "zero-cross" as clock and data provided through CLC1POL<1> banksel RC7PPS
movlw 0x04
movwf RC7PPS ; map CLC1 output (relay control) to RC7.
banksel RC6PPS movlw 0x13
movwf RC6PPS ; map "Zero-Cross" to RC6 (for visualization)
banksel WPUA
clrf WPUA ; make sure weak pull-up is not turned on for RA2/ZCD
banksel OPTION_REG
bcf OPTION_REG,7 ; enable weak pull-ups.
main_loop
banksel PORTB
btfsc PORTB,7 ; Is button depressed? goto main_loop ; No.
debounce
movlw 0xff ; Yes - button was pressed.
debounce_loop
btfss PORTB,7 ; Is button released? goto debounce ; No.
call delay ; Yes. short delay,
decfsz debounce_count ; and decrement counter.Has counter expired? goto debounce_loop ; No.
banksel CLC1POL
btfss RELAY_CONTROL ; Is relay currently on? goto relayon ; No. request turn on. goto relayoff ; Yes. request turn off.
relayon
bsf RELAY_CONTROL ; raise signal to request relay turn-on. goto main_loop
relayoff
bcf RELAY_CONTROL ; lower signal to request relay turn-off. goto main_loop DELAY nop nop return end
DS90003099A_JP - p. 8 2015 Microchip Technology Inc.
補遺 B
CLC Designer ツールを使って生成した CLC コンフィ
グレーション
ファイルを以下に記載します。
ソフトウェア ライセンス使用許諾
Microchip Technology Incorporated ( 以下「弊社」) が提供するソフトウェアは、弊社製品との組み合わせでのみ使われる事を目的 として弊社のお客様に供給されます。 ソフトウェアの所有権は弊社および/ またはソフトウェアのサプライヤに帰属し、適用著作権法のもとに保護されています。無断 複写、複製、転載は禁じられています。上記の制約に違反してソフトウェアを使った場合、使用者はライセンス使用許諾の侵害に 対して民事責任を問われ、適用法のもとに罰せられます。 本ソフトウェアは「無条件受け取り」を条件として提供されます。本ソフトウェアの商品性および特定目的に対する適合性の黙示 保証を含む( ただし必ずしもこれらに限定されない ) 明示、暗示、法的な保証は一切致しません。弊社は、いかなる場合も、特殊、 偶発的、必然的にかかわらず、いかなる理由があろうとも、一切の賠償責任を負いません。 BANKSEL CLC3GLS0 movlw H'02' movwf CLC3GLS0 movlw H'00' movwf CLC3GLS1 movlw H'00' movwf CLC3GLS2 movlw H'00' movwf CLC3GLS3 movlw H'0E' movwf CLC3SEL0 movlw H'04' movwf CLC3SEL1 movlw H'06' movwf CLC3SEL2 movlw H'00' movwf CLC3SEL3 movlw H'02' movwf CLC3POL movlw H'84' movwf CLC3CON BANKSEL CLC2GLS0 movlw H'02' movwf CLC2GLS0 movlw H'00' movwf CLC2GLS1 movlw H'20' movwf CLC2GLS2 movlw H'00' movwf CLC2GLS3 movlw H'0E' movwf CLC2SEL0 movlw H'00' movwf CLC2SEL1 movlw H'06' movwf CLC2SEL2 movlw H'00' movwf CLC2SEL3 movlw H'00' movwf CLC2POL movlw H'81' movwf CLC2CON BANKSEL CLCIN0PPS movlw H'0E' movwf CLCIN0PPS movlw H'00' movwf CLCIN1PPS movlw H'00' movwf CLCIN2PPS movlw H'00' movwf CLCIN3PPS BANKSEL CLC1GLS0 movlw H'02' movwf CLC1GLS0 movlw H'00' movwf CLC1GLS1 movlw H'00' movwf CLC1GLS2 movlw H'00' movwf CLC1GLS3 movlw H'13' movwf CLC1SEL0 movlw H'0E' movwf CLC1SEL1 movlw H'05' movwf CLC1SEL2 movlw H'00' movwf CLC1SEL3 movlw H'00' movwf CLC1POL movlw H'84' movwf CLC1CON
本書に記載されているデバイス アプリケーション等に関する 情報は、ユーザの便宜のためにのみ提供されているものであ り、更新によって無効とされる事があります。お客様のアプ リケーションが仕様を満たす事を保証する責任は、お客様に あります。Microchip 社は、明示的、暗黙的、書面、口頭、法 定のいずれであるかを問わず、本書に記載されている情報に 関して、状態、品質、性能、商品性、特定目的への適合性を は じ め と す る、い か な る 類 の 表 明 も 保 証 も 行 い ま せ ん。 Microchip 社は、本書の情報およびその使用に起因する一切の 責任を否認します。Microchip 社の明示的な書面による承認な しに、生命維持装置あるいは生命安全用途に Microchip 社の製 品を使用する事は全て購入者のリスクとし、また購入者はこ れによって発生したあらゆる損害、クレーム、訴訟、費用に 関して、Microchip 社は擁護され、免責され、損害をうけない 事に同意するものとします。暗黙的あるいは明示的を問わず、 Microchip社が知的財産権を保有しているライセンスは一切譲 渡されません。 商標
Microchip 社の名称と Microchip ロゴ、dsPIC、FlashFlex、 KEELOQ、KEELOQロゴ、MPLAB、PIC、PICmicro、PICSTART、 PIC32ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、 米 国お よ びそ の 他の 国 にお け る Microchip Technology Incorporated の登録商標です。
FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、 MTP、SEEVAL、Embedded Control Solutions Company は、 米国における Microchip Technology Incorporated の登録商標 です。
Silicon Storage Technology は、その他の国における Microchip Technology Incorporated の登録商標です。
Analog-for-the-Digital Age、Application Maestro、BodyCom、 chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、 dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、 HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、 MPASM、MPF、MPLAB 認証ロゴ、MPLIB、MPLINK、mTouch、 Omniscient Code Generation、PICC、PICC-18、PICDEM、 PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、 SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、 WiperLock、ZENA、Z-Scale は、米国およびその他の国におけ る Microchip Technology Incorporated の登録商標です。 SQTP は、米国における Microchip Technology Incorporated のサービスマークです。
GestICとULPPは、その他の国におけるMicrochip Technology Germany II GmbH & Co. & KG (Microchip Technology Incorporated の子会社 ) の登録商標です。
その他、本書に記載されている商標は各社に帰属します。 ©2013, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.
ISBN: 978-1-63277-282-4 通している同種製品の中でも最も高度であると考えています。 • しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、 Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知的所 有権の侵害に該当する可能性が非常に高いと言えます。 • Microchip 社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。 • Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護 機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。 コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社 のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著
Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham
DS90003099A_JP - p. 10 2015 Microchip Technology Inc.