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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

親愛なるAURIXサポートチーム、

私は現在、TC234 AURIX TriCoreチップ上のCCU6モジュールを使用しています。

サンプルリポジトリのCCU6_PWM_Captureを使用しました。

この例に続いて、外部PWM信号の立ち上がりエッジと立ち下がりエッジの両方を検出するISRハンドルがあります。

例としてすべての構成を保持し、CC6モジュールのみを変更します。 特に、この例ではMODULE_CCU60とCCU60チャネルを使用し、私はMODULE_CCU61とCCU61チャネルを使用します。 チャネルモードや割り込み1.sourceなどの他の構成は、例と同じにしておきます。 しかし、私のコードは、ISRハンドルを呼び出すときに立ち上がりエッジと立ち下がりエッジの両方を同時に検出します。

問題がどこにあるか知っていますか?ありがとうございました

よろしくお願いいたします

ティエンブイ

0 件の賞賛
5 返答(返信)
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @ThienBui

チャネル・モードがダブル・レジスタ・キャプチャー・ライジング・アンド・フォールリングとして構成されている場合、立ち上がりエッジが検出されるとレジスタCC6xRがフィルされ、立ち下がりエッジが検出されるとシャドー・レジスタCC6xSRがフィルされます。

デモには 2 つの ISR があります。 立ち上がりエッジが検出されると1つのISRがトリガされ、PWM周波数と立ち上がりと立ち下がりの間の時間(デューティサイクル)を計算します。 これが、この ISR で両方が検出のチェックを行う理由です。 2 番目の ISR は、期間値に一致するタイマー オーバーフローをカウントするために使用され、これは最初の ISR で計算に使用されます。

これは、TC275 Liteキットのデモの リファレンスドキュメント です。

このシナリオ以外に、このデモからどのような要件が必要か教えてください。

よろしくお願いいたします

エリック

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

返信ありがとうございます。

このCapCom機能を使用する目的は、外部信号の立ち上がりエッジと立ち下がりエッジを検出したいということです。 ISRハンドラが呼び出されると、(GPT12モジュールから)タイマーを開始し、立ち上がりエッジと次の立ち下がりエッジの間の合計時間を CAN 測定します。 この例を使用する際の私の問題は、ISRハンドラが呼び出されたときに、立ち上がりフラグと下降フラグの両方の割り込みがオンになり、測定値が2倍になることです(たとえば、2つの立ち上がりエッジまたは2つの立ち下がりエッジの間)、これは機能の期待を満たしていませんでした。 また、タイマーに問題がないことを確認しました。 立ち上がりエッジのみまたは立ち下がりエッジのみをキャプチャしてテストしましたが、結果は以前と同じでした。

CCU6モジュールに関する私の現在の状況を理解していただければ幸いです。

私はあなたからの連絡を楽しみにしています!

よろしくお願いいたします

ティエンブイ

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @ThienBui

GPT12モジュールを使用する理由はありますか?

CCU6モジュールには、キャプチャモードと一緒に実行され、デモで使用される独自のタイマー(T12) CAN 、デモと同様のパスをたどることをお勧めします。 タイマは、周期マッチングによる割り込みをトリガし、タイマT12のオーバーフローをカウントしてタイミングを計算することによって使用される。 また、モジュールなしでこれを試して、ハードウェア割り込みのみを上昇と下降によってトリガーし、提案したようにGPT12タイマーをカウントするように設定して、2つのアプローチの違いを確認することもできます。

よろしくお願いいたします

エリック

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

さて、あなたが提案したことから、CCU6モジュールを使用せずに、私の機能に外部ピン割り込みを使用するだけで済みます。CCU6モジュールを使用して上記のように機能を機能させることはできませんが、それは正しいですか?

よろしくお願いいたします

ティエンブイ

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @ThienBui

明確にするために、CCU6モジュールはあなたが達成したいものと同様に機能します。 チャネルモードdoubleRegisterCaptureRisingAndFallingを使用すると、立ち上がりまたは立ち下がりエッジが見られるたびに、タイマー(T12タイマー)から値をキャプチャしてタイミングを計算します。 以前にその部分があまり明確でなかった場合は申し訳ありません。 割り込み付きの外部ピンとGPT12タイマーで適用することで同様のことを実現できますが、CCU6よりも精度が低下する可能性があります。CANCCU6を使用してそのように試すと冗長になるため、一般的な外部ピンで試してみることを提案しました。

よろしくお願いいたします

エリック

0 件の賞賛