複数のADCユニットを同時に使用した場合のFM4ソフトウェアの検討- KBA227598- Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by keni_4440091 Version: **
Translation - English: FM4 Software Consideration for Multiple ADC Units used Simultaneously - KBA227598
質問:
FM4製品で同時に複数のADCユニットを使用するためのソフトウェア検討事項は何ですか?
回答:
FM4製品には幾つかのタイプのデバイスがあり、一部のFM4製品はデバイス内部に複数のADCユニットを内蔵しています。これら複数のADCを同時に使用する場合、ADCユニット間で比較クロック位相を同期する必要があります。比較クロック位相が複数ADCユニット間で同期されなかった場合、下記に示すように、電源ラインやアナログリファレンス電圧にノイズが回り込む可能性があります。
比較クロック位相同期
周波数分周比は ADC ユニット毎に設定が可能で、各 ADC ユニットは異なる周波数で動作させることが可能です。従って、複数のADCユニット間でクロックを同期することは一般的には難しいです。
ただし、すべてのADCユニットが同じ比較クロック周波数を使用し、かつ同時にA/D変換を動作させる場合、比較クロック位相は同期させることができます。
これはシステムバスAPB1クロックを、要求されるADC比較クロックに設定する事で実現でき、クロック位相は複数のADCユニット間で同期されます。
まずシステム APB1 クロックを設定してから ADC を初期化する必要があることに注意してください。この初期化後に APB1 クロックを目的の周波数に設定します。より詳細な情報は下記のサンプルコードを参照してください。
サンプルコード
FM4_CRG-->APBC1_PSR = 0x82; // APB1 clock is set with HCLK divided by 4 (example: HCLK=160MHz then 40MHz)
ADC_Initialization(); // Initialize ADC (example: the compare CLK: 40MHz)
// if ADCEN register is set, ADC divider circuit is worked.
FM4_CRG-->APBC1_PSR = 0x80; // Example: APB1 is multiplied by 4 (same as HCLK=160MHz)
APB1プリスケーラレジスタ(APB1_PSR)マッピングおよびAPB1バスクロック周波数分周設定を示します。
32ビットマイクロコントローラFM4ファミリペリフェラルマニュアルを参照してください。
システムバスAPB1を使用した同期実装の制限
同期の実装は APB1 分周比の中から HCLK の 1/1, 1/2, 1/4, または 1/8 に相当するものに制限されます。例えば、HCLKが160MHzの場合、ADC比較クロックは40MHzまたは20MHzになります。
追記として、ADC比較クロックに低速クロックが必要な場合、コード内にNOP命令を挿入することによりタイミング(クロック位相)を調整することが必要となります。HCLK はシステムすべてのクロックソースなので、HCLK を低い周波数に設定する場合には、システム全体への影響を考慮する必要があります。