XADCをJTAGで制御する(1)
2024/02/04
外も中も全部AD変換するXADC
  • 今回はXilinx 7 Series FPGAに搭載されたADコンバーターマクロであるXADCを扱います。XADCは17ペアチャンネルの外部アナログ入力、FPGA内部の電圧、内部温度センサ出力を取り込める多チャンネルADコンバーターです。Figure 1にXADCのブロック図(*1)を示します。

  • (*1)12-bit, 1MHz-Sampling
    (*2)Zynq-7000 SoCのみ搭載
    Figure 1: XADCブロック図

  • AD変換対象
    • 外部アナログポート(VP_0/VN_0, VAUXP/VAUXN[15:0])
      • 全て差動入力です。17チャネル(差動ペア)あります。
      • VP_0/VN_0はアナログ専用、VAUXP/VAUXN[15:0]は通常IO/アナログ兼用です。
      • 入力電圧範囲 0〜1[V]、フルスケールは12bit(12'hFFF)です。
    • 温度センサー
      • チップ(ダイ)温度センサの値をAD変換します。
      • 入力温度(ケルビン)範囲 0〜503.975[K]。フルスケールは12bit(12'hFFF)です。
    • 電源電圧センサー
      • VCCINT, VCCAUX, VCCBRAM の電源電圧をAD変換します。
      • Zynq-7000 SoCでは VCCPINT, VCCPAUX, VCCO_DDR も加わります。
      • 入力電圧範囲 0〜3[V]、フルスケールは12bit(12'hFFF)です。

  • リファレンス電圧(1.25[V])
    • 内部リファレンス利用/外部リファレンス入力を選ぶことができます。
    • VREFP_0/VREFN_0ピンのを両方を0[V]とした場合、内部リファレンスを選択します。

  • 制御方法
    • CSR(*2)で制御されます。Read/Write IFはDRP(*3)です。
    • FPGA Core LogicだけではなくJTAGアクセスも可能なため、FPGA Config前もXADCを利用できます。

ユニポーラ入力とバイポーラ入力
  • XADCの外部アナログ差動入力信号は二種の入力モードを持ちます。

  • ユニポーラ入力
    • 0〜+1[V](正電圧のみ⇒ユニポーラ)が差動入力範囲。コモンの揺れ/オフセット含め最大入力値は1.5[V]

    • Figure 2: ユニポーラ入力(XADC資料より抜粋)

  • バイポーラ入力
    • ±0.5[V](正負電圧⇒バイポーラ)が差動入力範囲。
    • 差動入力としての負電圧であり、差動P側入力絶対値は0〜1[V]。差動N側入力に0〜0.5[V]オフセット必要。

    • Figure 3: バイポーラ入力(XADC資料より抜粋)

XADCの動作モード(2024-02-18追記)
  • XADCの動作モードには下記があります。動作の基本はシングルチャネルですが、XADCはチャネル数が多いため、その制御負荷を減らすシーケンサーを持ちます。初期状態はシーケンサー/デフォルトです。

  • Table 1: XADCの動作モード
    動作モード説明
    シーケンサー デフォルト 電源電圧(VCC*)及び温度(Temp.)センサーの変換結果を自動格納する。
    シングルパス 指定した複数指定チャネル変換一巡後、デフォルトに戻る。
    連続シーケンス 指定した複数指定チャネル変換を繰り返す。デフォルトに戻らない。
    同時サンプリング 16ペアチャネル外部入力(VAUXP/VAUXN[15:0])の内、2ペア([0,8]等)を同時変換。
    独立ADC 変換対象はデフォルトと同じ。アラーム機能が追加される。
    シングルチャネル 変換対象チャネルを指定するモード。

  • モード選択及び各モードの制御/設定レジスタをTable 2に示します。

  • Table 2: モード選択及び各モードの制御/設定レジスタ
    動作モード モード選択値
    CSR(41h[15:12])
    動作設定CSRアドレス
    シーケンサー デフォルト 4'b0000 48h,49h: チャネル選択
    4Ah,4Bh: 平均化
    4Ch,4Dh: アナログ入力モード(ユニポーラ/バイポーラ)
    4Eh,4Fh: セットリング時間
    シングルパス 4'b0001
    連続シーケンス 4'b0010
    同時サンプリング 4'b01xx
    独立ADC 4'b10xx
    シングルチャネル 4'b0011 40h: チャネル選択,平均化,アナログ入力モード,セットリング時間

  • 動作モードとしてあともう一つ、XADCは外部マルチプレクサモードを持ちます。FPGA外部のマルチプレクサを制御して、アナログ入力信号を選択します。

  • Figure 4: 外部マルチプレクサモード(XADC資料より抜粋)

  • 外部マルチプレクサモードは恐らくですが、基板アートワークの都合(*4)でFPGAへのアナログ信号入力を減らすためか、旧デザインからの継承目的と認識しています。

次回は
  • 説明のバランスを考えて、動作モードの説明を本レポート「XADCをJTAGで制御する(1)」に追記しました。次回はDRPインタフェースを経由したSimulationを扱います。
Notes
  • 公式ドキュメントのブロック図は微妙に間違っているため自分で書きました。
  • Control and Status Registers
  • Dynamic Reconfiguration Port
  • Digital信号からのノイズ混入対策の結果、引き込める信号数が増やせないなど。
2024-02-18: 動作モード説明追加
2024-02-04: 初版
Copyright(C) 2024 Altmo
本HPについて