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

Version 1

    Community Translated by  MoTa_728816          Version: **

     

    Translation - English: Importance of Coherency Registers – 16-Bit Data Transfer from ADC to DFB Using DMA in PSoC® 3 and PSoC 5 - 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 のコヒーレンシをハイバイトに設定しています。デフォルトではコヒーレンシはローバイトに設定されることにご注意ください。