Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

Community Translation - Importance of Coherency Registers – 16-Bit Data Transfer from ADC to DFB Using DMA in PSoC® 3 and PSoC 5 - KBA210684

2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello, Tanaka-san

yes, confirm to work this KBA.

thanks,

Jenna Jo

Jenna Jo

OriginalKBA: KBA210684

Importance of Coherency Registers – 16-Bit Data Transfer from ADC to DFB Using DMA in PSoC® 3 and PS...

Translated by: MoTa_728816

==============================

タイトル:PSoC® 3 / PSoC 5LP DMA を使用した ADC から DFB への 16-bit データ転送におけるコヒーレンシレジスタの重要性 - KBA210684

ヴァージョン:**

質問:

ADC リザルト(result)、 DFB ステージング(staging)、DFB ホールディング(holding) レジスタのコヒーレンシバイトとは何ですか?

回答:

ADC リザルトレジスタは一部が CPU や DMA に読まれている時には内部のハードウェアが更新をしないように保護されています。CPU や DMA が 24-bit ADC リザルト(3 バイト) をマルチバイトリードオペレーションで読みだそうとしているとき、CPU や DMA が現在のサンプル値を読んでいる間に ADC が リザルトレジスタの値を更新してしまう可能性があります。この問題を回避するために、ユーザーは ADC モジュールの DEC_COHER[SAMP_KEY<1:0>] ビットを使用してコヒーレンシバイトを指定することが出来ます。CPU や DMA によって ADC リザルトレジスタのいずれかのバイトが読み出されたとき、コヒーレンシバイトが読まれるまでの間、リザルトをロックして上書きされないようにします。ブロックの設定によっては、すべてのリザルトレジスタが必要とは限りません。

デジタルフィルタブロック (DFB) はデータ入力用に 24-bit の ステージングレジスタとデータ出力用に2つの 24-bit ホールディングレジスタを提供しています。ステージングレジスタは CPU や DMA により一部が更新されたときに DFB が誤ってそのデータを使用しないように書込み時保護が行われます。ホールディングレジスタは CPU や DMA がその一部を読んでいるときに、誤って DFB によって更新されないように読み込み時保護が行われます。ブロックの設定によっては、すべてのステージング及びホールディングレジスタが必要とは限りません。コヒーレンシ手法は任意サイズの出力フィールドに対応して適切な処理を行います。

  • DFB_COHER[STGA_KEY<1:0>] ビットは DFB ステージングレジスタ A のコヒーレンシバイトを指定します。
  • DFB_COHER[STGA_KEY<1:0>] ビットは DFB ステージングレジスタ B のコヒーレンシバイトを指定します。
  • DFB_COHER[HOLDA_KEY<1:0>] ビットは DFB ホールディングレジスタ A のコヒーレンシバイトを指定します。
  • DFB_COHER[HOLDB_KEY<1:0>] ビットは DFB ホールディングレジスタ A のコヒーレンシバイトを指定します。

AN61102: PSoC 3 and PSoC 5LP – ADC Data Buffering Using DMAでは 24-bit ADC データの DMA 転送においてADC のコヒーレンシをハイバイトに設定しています。デフォルトではコヒーレンシはローバイトに設定されることにご注意ください。

==============================

22-May-2020

moto

0 Likes