Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
TeMa_2997106
Level 6
Level 6
Distributor - TED (Japan)
10 likes received 10 solutions authored 250 replies posted

CY9BF116RPMCのタイマについてお聞きしたいです。

ベースタイマを16/32ビットリロードタイマのワンショットモードで使用した場合に,起動からアンダーフロー発生までの時間に対して,カウント値の設定はタイマ起動のオーバーヘッド分を考慮して設定する必要がありますでしょうか。

ベースタイマを使用し,信号出力のON時間を制御していますが,タイマ周期設定値よりもON時間が1.5us程度長くなっています。タイマ周期設定値を大きくしても,増加分はほぼ一定であり,タイマ起動のレジスタ操作からタイマが動き出すまでに1.5us程度の遅延(オーバーヘッド)があるように見受けられます。

STRGONしてからタイマが起動するまでに遅延時間は存在するのでしょうか。また、遅延時間が存在する場合,その数値はいくつでしょうか(遅延時間が存在する場合,必ず一定でしょうか)。

よろしくお願いします。

 

0 件の賞賛
1 解決策

今回のオーバーヘッド”1.5us”は①~②のソフトウェア処理(レジスターセット)に対する時間と考えられます。

(タイマーの時間を長くしても、ソフトウェア処理が変わらない,且つ割込み等が発生していないのであれば”1.5us”も一定)

今回の目的がはっきりしませんが、もしタイマーの誤差を確認したい場合、HWトリガーを使用し、タイマーの出力を見ることにより確認可能と考えます。

 

元の投稿で解決策を見る

0 件の賞賛
3 返答(返信)
Takashi_M
Moderator
Moderator
Moderator
1000 replies posted 500 solutions authored 750 replies posted

今回の時間の測定はどの様に行われているのでしょうか?

もしGPIOをトグルさせてオシロスコープ等で確認されているのでしょうか?

0 件の賞賛
TeMa_2997106
Level 6
Level 6
Distributor - TED (Japan)
10 likes received 10 solutions authored 250 replies posted

ご回答ありがとうございます。

具体的には、

初期設定
TMCR = 0x0036
TMCR2 = 0x00
STC = 0x00
PCSR = 0x0081 ← 72MHzの1分周で129カウント
= 約1.8usとなるように設定
---------------①--------------- ←信号出力ON
●タイマ起動時
TMCR_f.CTEN = ON
STC_f.TGIR = OFF
STC_f.UDIR = OFF
TMCR_f.STRG = ON
●アンダーフロー検出
STCレジスタのUDIRビット = 1で検出
---------------②--------------- ←信号出力OFF

としてオシロで確認しています。

確認方法が誤っている(もしくはこうしたほうがいいなどのアドバイス)があればおっしゃってください。

よろしくお願いします。

0 件の賞賛

今回のオーバーヘッド”1.5us”は①~②のソフトウェア処理(レジスターセット)に対する時間と考えられます。

(タイマーの時間を長くしても、ソフトウェア処理が変わらない,且つ割込み等が発生していないのであれば”1.5us”も一定)

今回の目的がはっきりしませんが、もしタイマーの誤差を確認したい場合、HWトリガーを使用し、タイマーの出力を見ることにより確認可能と考えます。

 

0 件の賞賛