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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは!

「CCU6_ADC_1 for KIT_A2G_TC387_MOTORCTR」の例のように、プロジェクトではCCU6タイマーを使用していますが、ADCグループは1つではなく8つを使用しています。 それぞれをマスターとして割り当て、それぞれに「IfxEvadc_TriggerSource_0」を指定しました(すべて例のとおりです)。 また、割り込みハンドラでは、実際のサンプリングレート(カウンタがサンプリングレート値に達するまでの時間)を確認するために時間を計測しています。 任意のサンプリングレートで1つのグループ(タイマーT12とT13の期間が65535を超えないことを考慮)の場合、時間は1秒かかります(例のコードを実行するだけの場合)が、2つのグループを使用すると、時間は0.5秒に半分になります(つまり、周波数が2倍になりますか?)、 次に、同じ例えで、時間は 4 倍 (0.25 秒) に短縮されます。 現時点では、ドキュメントをよく理解しておらず、この動作をまったく説明できません。 値を同時に変換するには、8つのグループ(それぞれに1つのチャネルを持つ)が必要であり、CCU6を使用してこれを実装しようとしました。 1つのグループをマスターとして割り当て、他のグループをスレーブとして割り当てようとしましたが、結果はマスターグループのチャネルにしかありませんでした。

ADCグループを同期的に正しく動作させる方法は? CCU6だけを使うというタスクはなく、今のところ一番便利に思えます。

TDA5235_868_5_BOARDAURIX™TC397Xチップを搭載したカスタム を使用しています。現時点では、ADCの8つのアナログ入力(作業中の信号を受信する)は、8つのグループに分かれています。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CCU6-trigger-for-several-EVADC-Group/td-p/683775

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

こんにちは

毎回4つのADCカーネルに対してジッタなしで並列変換を行うことができ、そのうちの1つがマスターとして EVAL_2K4W_ACT_BRD_S7 されます。 8 つの ADC カーネルの場合は、それらを 2 つに分離するだけです。 2つのグループは、同じハードウェア信号によってトリガされます。

デフォルトでは同じチャンネル番号を使用するため、エイリアス機能が関係している可能性があることに注意してください

私が以前に持っていたいくつかの以前の答えがあります:

Can-we-do-parallel-conversion-together-for-primary-and-secondary-cluster/td-p/401732 

TC357-with-iLLD-API/td-p/662828で2つのADCとサンプルを同時に構成する方法 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CCU6-trigger-for-several-EVADC-Group/m-p/684048

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

答えてくれてありがとう、しかしそれは私を助けませんでした。ほとんどの場合、ADCを初期化するときに何かが足りません。ADCを同期して動作させるには、特定のレジスタの値を自分で変更する必要があることを正しく理解しましたか?つまり、パラメータをIfxEvadc_Adc_Config(またはIfxEvadc_Adc_GroupConfigなど)ではなく、レジスタですぐに指定しますか?
コード例で説明していただけると理想的です。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CCU6-trigger-for-several-EVADC-Group/m-p/686244

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

こんにちは

すべてのモジュール、グループ、チャネル関連のレジスタの変更は、関数 IfxEvadc_Adc_initModule、IfxEvadc_Adc_initGroup、IfxEvadc_Adc_initChannel で最終的に変更されます。

 

レジスタは自分で変更できますが、以下のコード例のように、カスタマイズされた構成変更+ これらのAPIを呼び出す ことをお勧めします。

Kunqiao_L_0-1706686710885.png

並列変換を行う方法については、githubで提供されているすべての既存のコード例を組み合わせたユーザーマニュアル32.11.1を読むことをお勧めします。

code_examples 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CCU6-trigger-for-several-EVADC-Group/m-p/686785

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

答えてくれてありがとう、しかしそれは私を助けませんでした。 ほとんどの場合、ADCを初期化するときに何かが足りません。 ADCを同期して動作させるには、特定のレジスタの値を自分で変更する必要があることを正しく理解しましたか? つまり、パラメータをIfxEvadc_Adc_Config(またはIfxEvadc_Adc_GroupConfigなど)ではなく、レジスタですぐに指定しますか?
コード例で説明していただけると理想的です。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CCU6-trigger-for-several-EVADC-Group/m-p/686198

0 件の賞賛