NEC ELECTRONICS NEC ELECTRONICS
NEC electronics NEC electronics NEC
ホーム
アプリケーション
製品情報
先端技術
サポート
WEBショップ
ニュース&イベント
会社案内
header
GO
詳細検索機能/特性検索
サイトマップ お問い合わせ

タイマ、カウンタ

目次

    
FAQ-ID = 78timer-nnnn
0001: インバータ制御用タイマをインターバル・タイマ割り込みに使用することは可能か? [78098x]
0002: タイマ出力 TO70〜TO75を常時全て出力停止にしたい [78098x]
0003: 割り込みを使用しないタイマ待ち [共通]
0004: カウント・クロックの誤差はどのくらいか? (割り込み周期がバラつく?) [共通]
0005: 外部イベント・カウンタが反応しない。 [78403x]
0006: タイマの出力を別のタイマに入力して割り込みを発生させる場合の割り込み制御 [共通]
0007: キャプチャ機能の制限事項の記述 [789407A、789417Aサブシリーズ]
0008: カウンタ初期値が1になってしまう [78K共通]
0009: PPG出力の ONと OFFの時間が反転することがあります。 [78K0共通、78421x]
0010: PPG出力が出ません。[78K0共通]
0011: 16ビット・タイマでのインターバル [78K0S]
0012: 16ビット・タイマのオーバフローでの割り込み [殆どの78K0、78K0S]
0014: 8ビット・タイマでのPWM出力 [78K0共通]
0015: タイマの出力周波数が期待通りにならない [共通]
78timer
-0001
インバータ制御用タイマをインターバル・タイマ割り込みに使用することは可能か? [78098x]
Q1
uPD780984で、10ビット・インバータ制御用タイマをインターバル・タイマ割り込みに使用することは可能ですか?
可能な場合、TO70-75 の出力を停止する方法を教えてください。
A1
可能です。TM7 のアンダフローごとに INTTM7 を発生させることができます。
また、TO70-75 の出力を禁止するには、TMM7レジスタの TOEDGビットで有効エッジを指定して、 TOSPP ビットをセットした上で、TOFF7端子に有効エッジを入力することで TO70-75 を出力停止 (ハイ・インピーダンス) にできます。
TOSPW ビットをセットして INTWDT を発生させても出力停止できます。
この情報はお役にたちましたか?
back to top  

78timer
-0002
タイマ出力 TO70〜TO75を常時全て出力停止にしたい [78098x]
Q1
uPD78F0988 の 10ビット・インターバル・タイマを使用していますが、 TO70〜TO75 の出力は必要ないため、常時全て出力停止する方法はありますか?
A1
TMM7 レジスタの TOSPPビットを 1 にしておき、 タイマが動作した後で、TOFF7端子にアクティブなエッジ (INTP0の有効エッジを指定する EGP 及び EGN のビット 0 で示されたエッジ) を入力してください (P00 から有効なエッジを出力しても可)。
詳細は UM の TMM7 の説明の備考1 を参照ください。
この情報はお役にたちましたか?
back to top  

78timer
-0003
割り込みを使用しないタイマ待ち [共通]
Q1
タイマで一定時間だけ待つ、という処理を割り込みをしないで行う場合、 以下の処理で問題ないでしょうか?
  TMMK50=0(割り込み許可)
   ↓
  タイマ関連レジスタ・セット
   ↓
  タイマ・スタート
   ↓
  割り込み要求TMIF50==1になるまで無限ループ
 
A1
 その方法では問題があります。タイマを割り込みで処理したくない場合には、 その割り込みはマスクしてください。 その上で、TMIF50 がセットされるのを無限ループで待つのですが、 ループに入る前に、TMIF50 を前もってクリアしておいてからループに入ってください。 また、TMIF50 がセットされてループから抜け出したら、そこでも TMIF50 をクリアしてください。
この情報はお役にたちましたか?
Q2
このとき割り込み処理は必要ないので、対応する割り込み関数の定義は行わなくて よいでしょうか?
A2
割り込み関数の定義は必要ありません。
この情報はお役にたちましたか?
back to top  
(2001/08)

78timer
-0004
カウント・クロックの誤差はどのくらいか? (割り込み周期がバラつく?) [共通]
Q1
タイマなどに使用されるクロックは、どの程度の誤差が生じるでしょうか?
A1
fxx を元に内部で生成されるクロックが計算値に対して誤差が生じることは考えられません。
もし誤差があるとすれば、元クロックの立ち上がり時間や立ち下がり時間が長い場合に、 いつスレッシュホールド・レベルを越えるかのばらつき位であり、それが周波数の誤差になるとは考えられません。
このようなばらつきよりも発振クロック (メイン・システム・クロック) そのものの変動が大きいのではないでしょうか。

なお、お問い合わせの内容から推測すると、クロックの誤差ではなく、 タイマ割り込みのばらつきのことではないか、と思われます。
これは、実行中の命令によって、割り込み発生から処理開始までが最低 7クロックから最大 32クロックと変動します (もちろん他の割り込みとの関係で、割り込み禁止状態があれば、これ以上に長くなります)。
この情報はお役にたちましたか?
back to top  

78timer
-0005
外部イベント・カウンタが反応しない。 [78403x]
Q1
uPD784031で、TIMER1(16bit) を外部イベント・カウンタとしましたが、外部入力信号 (INTP0) に反応しません。
A1
タイマ0、タイマ1 の外部クロックに付いては CPU の動作クロックとの間で周期に制限があります。
各タイマでは CPU クロックの 4倍のハイ、ロウ期間が必要です。
STBC が初期状態では CPU は供給クロックを 16分周したものが供給されることになります。
この場合は 5uS のハイ、ロウの幅が必要です。

また、INTP0 のサンプリングは SCS0 も関係します。
さらに、INTMO、INTM1 でエッジの指定を行う必要もあります。これらの点をご確認ください。
この情報はお役にたちましたか?
back to top  

78timer
-0006
タイマの出力を別のタイマに入力して割り込みを発生させる場合の割り込み制御 [共通]
Q1
uPD784215で、インターバル・タイマ (INTTM3) を動作させ、さらにそれを 250msec の時間カウントし INTTM00 を発生させたいのですが、 INTTM00待ちの HALT モードに移行する前に許可する割り込みは、TMMK0 だけで良いでしょうか?
TMMK3 も許可しないとカウント動作しないのでしょうか?
また、TMIF3 は毎回クリアしなければならないのでしょうか?
A1
TMMK3 を許可状態にする必要はありません。
この場合には INTTM3 は単にタイマ0 のカウント・クロックに使用しているだけで、 これで割り込みを発生させる必要はないと思います。
この場合は TMMK3 はマスクをセットしてください。

また、TMIF3 はマスクされていれば他に影響はありませんので、無視しておいて構いません。
TMMK3 のマスクを解除しておくと、必要もない割り込みが発生してしまいます。
この場合には INTTM3 の割り込みが受け付けられる毎に TMIF3 はクリアされますので操作する必要はありません。
この情報はお役にたちましたか?
back to top  

78timer
-0007
キャプチャ機能の制限事項の記述 [789407A、789417Aサブシリーズ]
Q1
uPD789407の UM中の TMC50の説明で、
 カウント・クロックを fx に設定した場合、キャプチャ機能は使用できません。
 読み出す場合は CPUクロックをメイン・システム・クロックの高速に設定してください。
とありますが「読み出す場合」とはインプット・キャプチャと違うのですか?
A1
違います。
この「読み出す」とは 16ビット・カウンタ・リード・バッファを介してタイマ・レジスタ50 (TM50) を読み出すことを意味しています。
ここの文章は全く異なる 2つの事を言っています。

前半の部分は、キャプチャ機能に対する制限です。
この場合には、当然キャプチャ機能は使えないので、 読み出しはタイマ・レジスタ50 に対して行うことになります。

後半ではこちらの制限を述べています。
この情報はお役にたちましたか?
back to top  

78timer
-0008
カウンタ初期値が1になってしまう [78K共通]
Q1
uPD78F9026Aの 8ビット・タイマを外部イベント・カウンタとして、 立ち上がりエッジでカウント動作する設定にした場合、 外部からの入力レベルを High に固定してあると、 動作許可 (TCE00=1) に設定した直後に TM00 の値が 1 になってしまいます。
A1
外部イベントでのカウントの場合、 外部信号がアクティブなエッジと同じ極性の状態でタイマを起動すると、 起動時に有効なエッジがあったと見なして 1カウントするような仕様となっています。
これを避けるためには、TI0端子をアクティブなエッジと異なる状態にしてください。
この情報はお役にたちましたか?
back to top  
(2001/08)

78timer
-0009
PPG出力の ONと OFFの時間が反転することがあります。 [78K0共通、78421x]
Q1
uPD78F0034Aで周波数一定でデューティを可変したいのですが、PPG出力を使い波形確認したところ、 ONと OFFの時間が反転するときが時々あります。
A1
CR01への書き込みタイミングの問題かと思われます。
タイマ0 の出力は CR00または CR01との一致により反転します。
したがって、CR01と一致した後で、CR01の値を大きな値に書き換えると、 1周期の中で再度 CR01との一致が発生し、出力が反転して元に戻ることが考えられます。

また、タイマの値が CR01より小さいときに、 そのタイマ値より小さい値を書き込むとその周期では CR01との一致が発生しないために CR00との一致が連続し、 結果として出力の状態が反転することが考えられます。

FAQ 「PPG出力が出ません。」 も参照してください。(↓直下)
この情報はお役にたちましたか?
back to top  
(2003/04)

78timer
-0010
PPG出力が出ません。[78K0共通]
Q1
安定した PPG出力が出ません。PPG出力設定以外の点で注意点はありますか?
A1
CR01の書き換えタイミングについて、注意する必要があります。
このため、

(1) CR01の書き換えを CR00との一致割り込み(周期の切り替わりタイミングで行う。
(2) CR01の新しい設定値と従来の値と比較し、値を小さくする場合には CR01との一致割り込みで書き換え、 大きくする場合には CR00との一致割り込みで書き換える。

などの処理が必要です。
(1)の方が簡単ですが、CR01への書き込み値が小さい場合に、タイマの動作クロックが高いと、 CR01書き込みまでにタイマがカウント・アップしてしまい、間に合わない可能性があります。
(2)ではそのようなことはありませんが、処理が複雑になります。
タイマのカウント・クロック周波数と割り込み時間及び CR01の最小値の関係でご判断ください。

関連FAQ:16ビット・タイマのPPG出力を使ってPWM出力する[78K0,小ピン共通]

この情報はお役にたちましたか?
back to top  
(2003/04)

78timer
-0011
16ビット・タイマでのインターバル [78K0S]
Q1
16ビット・タイマでコンペア・レジスタに値を設定したが、予定したインターバルが得られません。
A1
コンペア・レジスタに値をセットしたら、 その値にインターバル分のカウント値を加算した値をメモリに保存しておきます。
一致割り込みが発生したら、メモリに保存しておいた値をコンペア・レジスタに書き込み、 インターバル分のカウント値を加算して、またメモリに保存します。
これを繰り返すことにより一定のインターバルの信号を得られます。
なお、コンペア・レジスタに値を書き込む際には、マニュアル等に記載された条件に従って行ってください。

<参考>
この 16ビット・タイマはフリーランのカウンタです。
従って、コンペア・レジスタに一度値を設定した場合、 その値とタイマ値が比較され一致すると一致信号が出力されますが、タイマは動作を続けます。
以降は、次に一致するのは、 タイマが一回りした後になりますのでインターバルは 16ビット分カウント毎となってしまいます。
これを避けるには、上記のようにコンペア・レジスタにセットする値をダイナミックに更新する必要がございます。
この情報はお役にたちましたか?
back to top  
(2003/07)

78timer
-0012
16ビット・タイマのオーバフローでの割り込み [殆どの78K0、78K0S]
Q1
78K0/KB1の TM00をフリーランで使用したときにカウント値がオーバフローした割り込みは発生しないのか?
A1
オーバフローではフラグがセットされるだけで、割り込みは発生しません。
この情報はお役にたちましたか?
Q2
オーバフロー割り込みを発生させるにはどうすればよいか?
A2
コンペア・レジスタ CR010に 0FFFFHをセットすることで、 INTTM010をオーバフロー割り込みの代わりに使用いただけます。
なお、フリーランで使用されていて、既にコンペア・レジスタとの一致割り込みを使用されている場合には、 その割り込み処理の中でオーバフロー・フラグをご利用ください。
この情報はお役にたちましたか?
back to top  
(2003/12)

78timer
-0014
8ビット・タイマでのPWM出力 [78K0共通]
Q1
78K0/KC1のタイマ H0,H1 で PWM出力を行いたいが、 CMP00と CMP01を同じ値に設定すれば 100%出力は可能か?
A1
いいえ、それではできません。
CMP00と CMP01に設定する値は CMP01<CMP00 である必要があり、 同じ値を設定することはできません。
この情報はお役にたちましたか?
back to top  
(2003/12)

78timer
-0015
タイマの出力周波数が期待通りにならない [共通]
Q1
uPD780148を 8.192MHzで動作させ、8bitタイマ(TM51)で 2KHzの方形波を出力したい。
8.192MHzを 2kHzで割ると 4096になるので、TCL51に07を設定して、 タイマの入力クロックに fx/4096を選択し、 CR51に1を設定したところ 500Hzの出力になってしまった。
A1
2つの点で誤解があります。

・タイマ(TM51)は 0〜CR51 の設定値までカウントしますので、 CR51にはカウントさせたい期間のカウント数から -1 した値を設定する必要があります。

・タイマでカウントする期間はハイ・レベル、またはロウ・レベルの期間です。
 従って、出力の周期はタイマのカウント時間の2倍の時間になります。

お問い合わせの設定では 2kHzの入力クロックの2周期分 (CR51の設定値+1)カウントして出力が反転しますので、 出力の1周期は入力クロックの4周期分となり、500Hzになっています。

2kHzの出力が欲しい場合には、最低でもその4倍以上の周波数の入力クロックを選択してください。
TM51では fx/256 の 32kHzを選択してください。
2kHzはこの 16クロック分の周期ですので、ハイ・レベル (及びロウ・レベル) の期間は 8クロック分になります。
TM51で 8クロック分に時間をカウントするようにするには CR51 には 7 (= 8 - 1) を設定してください。
この情報はお役にたちましたか?
back to top  
(2003/12)









































 ご利用にあたって  個人情報保護について  RSS       © 1995-2008  NEC Electronics Corporation