基於官方EVAL-AD7779FMCZ板的AD7779芯片開發教程

文章說明

聲明

如若轉載,請附轉載地址並聲明原作者。此項目在GitHub託管,所有的資料包括datasheet都在GitHub託管,託管地址。若鏈接失效請向作者索要。郵箱:[email protected]
作者還擁有個人公衆號,會寫一些感悟文章,知圈,二維碼如下,歡迎掃描關注:
知圈二維碼

說明

本項目分AD採集模塊和軟件模塊。本文爲硬件模塊,AD採集的軟件模塊請參考作者的該文章

項目需求

一秒一千次採樣以上,30通道以上,24bit以上分辨率。

器件選型

在這裏插入圖片描述
最終選擇:AD7779
並選購了官方demo板:EVAL-AD7770FMCZ Evaluation Board

開發板快識

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

SPI通信

該例用到的SPI知識集

單主從基本SPI原理示意:
Single master to single slave: basic SPI bus example

SPI 四種模式/Mode numbers

縮寫解釋:
CPOL:clock polarity 時鐘極性
CPHA:clock phase 時鐘相位
一般"Microchip PIC"和"ARM-based" 微處理器遵循以下規則(NCPHA爲CPHA取反):

SPI mode Clock polarity (CPOL/CKP) Clock phase (CPHA) Clock edge (CKE/NCPHA)
0 0 0 1
1 0 1 0
2 1 0 1
3 1 1 0

其它處理器遵循以下規則:

Mode CPOL CPHA
0 0 0
1 0 1
2 1 0
3 1 1

時序如下:
在這裏插入圖片描述

  • CPOL決定時鐘的極性。
    • CPOL=0,低電平爲空閒態,每一個週期包含一個高電平脈衝。用上升沿表示開始,下降沿表示結束。
    • CPOL=1,高電平爲空閒態,每一個週期包含一個低電平脈衝。用下降沿表示開始,用上升沿表示結束。
  • CPHA決定時鐘脈衝和數據位的對應關係。
    • CPHA=0,在脈衝結束時改變數據,在脈衝開始時(或脈衝開始後很短的時間內)讀取數據。數據從上一個脈衝結束開始一直保持到當前始終週期結束。對於第一個時鐘週期,master(主機)第一位數據必須在時鐘沿到來之前保持在MOSI線上。該模式也被理解爲:前半週期空閒態,後半週期賦值。
    • CPHA=1,在脈衝開始時改變數據,在脈衝結束時(或脈衝結束後很短的時間內)讀取數據。數據一直保持到下一個脈衝開始。對於最後一個週期,slaver(從機)必須將數據保持在MISO線上一直到slave select(SS)使能關閉。該模式也被理解爲:前半週期賦值,後半週期空閒態。

SPI的兩種多負載方式

Independent slave configuration/獨立控制模式

獨立控制模式比較好理解,利用片選信號進行從機控制。
 Independent slave configuration
Basic

Daisy chain configuration/菊鏈法

Daisy chain
daisy-chain
如上圖所示,菊鏈法利用的類似鎖存器的原理,將主機發送的信號進行傳遞。實例解釋如下
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
以最清晰的如上最後一張圖來解釋,每一個使能(C̅S̅)週期包含三段數據(與掛載從機數量相同)。第一個數據週期將數據存在了從機一的上;第二個數據週期時,從機一在接收第二段數據的同時,將上一個週期收到的數據傳給從機二,這樣,當第二個數據段週期結束時,從機一的數據被覆蓋成了第二個數據週期的數據,而從機二則收到了由從機一發來的第一段數據;第三個數據段週期時,從機一的數據被第三段數據覆蓋,從機二的數據被第二段數據覆蓋,而從機三終於收到了由從機二發來的第一段數據。三個週期完成後,從機一、從機二、從機三分別存儲的是第三段、第二段、第一段數據。此時,該階段的所有數據傳輸完成,等待芯片處理動作(比如此時進行指令執行),動作完成後可以再以同樣的原理進行下一個菊鏈數據的填充。

AD7779的SPI

手冊中的示意圖

在這裏插入圖片描述

評估板的Demo連接

在手冊中,提到了評估版的基本接口:
在這裏插入圖片描述
如上圖,手冊中提到,獨立使用時:

    1. 連接電源。
    1. MCU連接J1。

考慮方便插接,選的J5通過wall wart接口通9V電壓供電。插上後發現沒反應,查看手冊,默認不是此供電接口,通過下圖的0Ω開關來控制的,把0Ω電阻從A位置(position)拆下來,重新焊道B position,插上電源,燈亮。(請勿將A、B位置同時短路,這兩個是直連的,如果同時接入兩個不同電壓的電源會燒回電路/電源設備)。
在這裏插入圖片描述
因爲手冊中說MCU通過J1控制,所以找出J1的描述及其J1所連接到的AD7779(Manuel中爲AD7770):
在這裏插入圖片描述
在這裏插入圖片描述
通電用示波器測試了一下,J1接口所有信號線都沒有信號輸出,包括時鐘線。說明要demo版的默認設置不是J1輸出,需要更改。

搜索Manuel並找出J1輸出相關的如下板載開關(Solder Link Options)位置:

Link No. Default Option Description 更改爲
Main_SUPPLY A Unregulated input voltage source selection.
  • Position A: the unregulated supply to the on-board LDOs is taken from the SDP-H1 12 V supply.
  • Position B: the unregulated external supply to the on-board LDOs is taken from the J5 9 V wall wart input or from the J6 connector.
前面改了由J5輸入9V供電,所以此處應改爲B位置。
SL1 A IOVDD supply selection.
  • Position A: IOVDD is supplied from the SDP-H1 board. Set to 3.3 V by default.
  • Position B: IOVDD is supplied from ADP7118 3.3 V, precision LDO.
  • Position C: EXT_IOVDD. IOVDD can be supplied from Pin 3 of the J17 terminal block (1.8 V to 3.3 V). The SDP-H1 only supports 3.3 V logic. If IOVDD is operated below 3.3 V, populate the U6 buffer to avoid electrical problems.
由於我們並沒有接SDP-H1板,而我們的MCU板選擇3.3V輸出,所以我們在此將此開關改爲B位置。
SL5, SL6 A Data interface format selection. The evaluation software only supports SPI control mode. The default condition is SPI configuration. See the AD7770, AD7771, and AD7779 data sheets for more information. SL5應爲A,SL6應爲B,以使輸出爲DOUT0輸出ch0–Ch7
SL10, SL11, SL13 A

GPIO/mode pins.
In SPI control mode, Pin 13 to Pin 16 act as GPIOs. See the AD7770, AD7771, and AD7779 data sheets for more information about additional functionality of these pins for hardware sample rate update source.

  • Position A: Pin 13 to Pin 16 are connected to the GPIOx net that controls the on-board multiplexer, or can be used to update the SRC (R153 needs to be populated with a 0 Ω resistor).
    In pin control mode, Pin 13 to Pin 16 (along with SL12) are used to set up the configuration of the device. For more information on GPIO configuration or pin control mode, see the AD7770, AD7771, and AD7779 data sheets.
  • Position B: Pin 13 to Pin 16 are connected to IOVDD.
  • Position C: Pin 13 to Pin 16 are connected to DGND.
經查看,改爲C位置,以使MODE0–MODE3爲0,Decimation Rate 1024,SPS爲1000,PGA Gain都設爲1
SL14 A

CONVST_SAR selection.
In SPI control mode, this link selects the conversion signal source.

  • Position A: the SAR ADC is controlled through the J1 connector.
    In pin control mode, CONVST_SAR (Pin 17), along with SL5 and SL6, set up the serial interface used to read back the conversions from the Σ-Δ ADC.
  • Position B: CONVST_SAR (Pin 17) is connected to IOVDD.
  • Position C: CONVST_SAR (Pin 17) is connected to DGND.
改爲C
SL15, SL16, SL17 A

SPI data interface lines.
In SPI mode configuration, SCLK, SDI, and SDO are used as digital interface pins.

  • Position A: the SPI data interface lines are connected to the FMC-LPC connector.
    In pin control mode, these pins define the DCLK frequency used to read back the Σ-Δ data through the DOUT interface. See the AD7770, AD7771, and AD7779 data sheets for more details.
  • Position B: IOVDD.
  • Position C: DGND.

SL15改爲B位置,SL16改爲C,SL17改爲C
SL18 A

SPI data interface line.
In SPI mode configuration, CS (Pin 18) is used as a digital interface pin.

  • Position A: CS (Pin 18) is connected to the FMC-LPC connector.
    In pin control mode, CS (Pin 18) acts as an alert pin.
  • Position B: error flag, CS (Pin 18) is connected to the J1 and J4 connectors. See SL21 for more details.

    可能需要更改
    SL21 A

    Alert connection.

    • Position A: SPI control mode.
    • Position B: pin control mode.

    可能需要更改

    將SL1改爲B位置後,通過示波器測試J1引腳,有輸出,其中,

    Dclock 和 DOUT2 輸出如下:
    在這裏插入圖片描述

    在這裏插入圖片描述
    \ready和DOUT2輸出如下:
    在這裏插入圖片描述

    在這裏插入圖片描述
    DOUT2(黃色)和DOUT3(藍色)如下:
    在這裏插入圖片描述
    從信號可以看出,此時的配置:
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    經查看電路連接,現在的FORMAT0和FORMAT1都接到了IOVDD,即高電平。

    手冊中關於該配置的描述:
    在這裏插入圖片描述

    在這裏插入圖片描述
    根據描述,我們應當按照如下圖設置,即SL14接到C位置以使CONV_SAR State設置爲0,將SL5放在A位置以使FORMAT1設置爲1,將SL6接到B位置以使FORMAT2設置爲0,這樣一來我們需要三根線(DREADY/DCLOCK/DOUT0)就可以將七路信號讀回。
    在這裏插入圖片描述

    在這裏插入圖片描述
    上圖的MODE3/MODE2/MODE1/MODE0設置爲0/0/0/0以將Decimation配置爲1024。然而示波器發現並沒有輸出八通道數據,只有一通道數據。如下:
    在這裏插入圖片描述
    查看手冊,發現下面的DCLK沒有設置,如果未設置,由於傳輸太慢,後面的數會被新的數據覆蓋,其餘通道一直沒有機會輸出。燃着如下更改。
    在這裏插入圖片描述
    在這裏插入圖片描述
    根據如上公式計算,由於之前選擇的Decimation爲1024,輸入爲DOUT輸出8通道:
    DCLKMIN<10248×8=16 DCLK _{MIN} < \dfrac {1024}{ 8 × 8} = 16
    DCLK2/DCLK1/DCLK0至少應配置爲1/0/0以使其爲配置爲16分頻以防止數據被覆蓋。
    更改後八通道數據全部出來了,示波器顯示如下:
    在這裏插入圖片描述

    至此,硬件配置完成。如需查看後續的與MCU主機通訊,請查閱作者的此篇文章

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章