H8/3048のPWMについての覚書
Copyright (C) 11Feb2004 coskx
【1】H8/3048のITUを使用したPWMテスト
マニュアルによるとITUを利用したPWM信号発生でのGRA,GRBの設定は次のようになっている。
図1 PWM信号発生 |
ITU3chを使用したPWMについて次のプログラムによるテストを行なった。テストは端子をオシロスコープで観測し,周期とHigh出力区間長を測定する。
H8/3048のITUを使用したPWMテスト |
/********************************************************** /*検査用PWM出力*/ /*ITU channel3 でPWM出力*/ /*PWM出力 main() |
#includeのところは,それぞれの環境で変更してコンパイル実行すること。
【2】周期とHigh出力区間長観測結果
GRA設定値は周期を設定し,GRBはHigh出力区間長を設定しているつもりであった。ところが,実際の周期とHigh出力区間長は次のようになった。
GRA設定値 | 測定された周期 |
5 |
6クロック |
GRB設定値 | 測定されたHigh出力区間長 |
0 |
1クロック |
1 |
2クロック |
2 |
3クロック |
3 |
4クロック |
4 |
5クロック |
5 |
不定(H継続またはL継続) |
6以上の値 |
H継続 |
すなわち,H8のPWM発生機構には2つの問題がある。
(1)(GRAに設定した値+1)がPWM周期になるため,周期をNにしたかったらGRAへの設定値はN-1にすること
(2)デューティ比0/NのPWM信号とデューティ比N/NのPWM信号は普通には発生できないので,工夫が必要である。
【3】推奨する周期設定と,High出力区間長設定
プログラム中で周期設定とHigh出力区間長設定は関数で行なうこととし,関数の引き数はそれぞれ周期とHigh出力区間長を単位クロックで与える ものとする。またHigh出力区間長を0にするには出力を立ち上がらせない処置を行なうか,1クロックのHigh出力区間長を許すしかない。
H8のPWM発生機構の欠点を補った |
/********************************************************** /*ITU channel3 でPWM出力*/ /*PWM出力*/ main() |
これらの初期設定+PWM周期設定関数と,PWM出力値設定関数により,H8CPUのPWM発生機構の欠点を補うことができ,次のような所望の結果が得られた。
PWM周期設定値 | 測定された周期 |
5 |
5クロック |
PWM出力値 | 測定されたHigh出力区間長 |
0 |
0クロック |
1 |
1クロック |
2 |
2クロック |
3 |
3クロック |
4 |
4クロック |
5 |
H継続 |