《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 電力系統中多通道同步采樣ADC(AD7606)與浮點DSP(ADSP-21479)通信的設計與實現
電力系統中多通道同步采樣ADC(AD7606)與浮點DSP(ADSP-21479)通信的設計與實現
Frank ,Dell
摘要: AD7606是16位,8通道同步采樣模數數據采集系統。AD7606完全滿足電力系統的要求,具有靈活的數字濾波器、2.5V基準電壓源、基準電壓緩沖以及高速串行和并行接口。它采用5V單電源供電,可以處理±10V和±5V真雙極性輸入信號、同時所有通道均能以高達200kSPS的吞吐率采樣。
Abstract:
Key words :

1. 簡介

1.1  AD7606簡介
 AD7606是16位,8通道同步采樣模數數據采集系統。AD7606完全滿足電力系統的要求,具有靈活的數字濾波器、2.5V基準電壓源、基準電壓緩沖以及高速串行和并行接口。它采用5V單電源供電,可以處理±10V和±5V真雙極性輸入信號、同時所有通道均能以高達200kSPS的吞吐率采樣。
 image002.jpg
圖1  AD7606的內部原理框圖。
 image004.jpg
圖2  AD7606的管腳圖。
• AVcc 模擬電源,4.75V~5.25V
• Vdrive 邏輯部分電源
• Vdd 模擬輸入部分正電壓
• Vss 模擬輸入部分負電壓
• DGND 數字地
• AGND 模擬地

1.2  DSP-21479" title="ADSP-21479">ADSP-21479簡介
ADSP-21479是SIMD (單指令多數據)SHARC家族中的一員,它基于65nm的最新工藝,具有低成本,低功耗的的特點,是一顆集成有大容量片上SRAM和ROM的32/40位浮點DSP。ADSP-21479是性能出色,266MHZ/1596MFLOP:

• 266 MHz/1596FLOPS SIMD SHARC內核,支持32-bit浮點、40-bit浮點以及16/32-bit定點數據類型
• 支持多達5 Mb 片內SRAM
• 支持16位寬SDR、SDRAM存儲器接口
• 數字應用接口 DAI,支持多達8個的高速同步串口(SPORT)及SPI串口
• 2個精確時鐘發生器
• 20線數字I/O端口
• 3個定時器、UART、I2C兼容接口
• ROM/JTAG安全模式
• 供應196引腳CSP_BGA封裝與100引腳LQFP封裝產品,適合于工業客戶的要求
• 供應商業級、工業級溫度與汽車級溫度等級產品

 image006.jpg
圖3  ADSP-21479的內部原理框圖。

2. AD7606和ADSP-21479配置與連接
AD7606芯片的供電采用單5V供電,見圖4所示:
 image008.jpg
圖4。AD7606供電示意圖。
AD7606采用硬件配置方式,具體配置如下:
 1) 設置RANGE=0時,模擬輸入范圍是±5Vref。
2) 設置/PAR /SER/BYTE SEL為高電平,選擇使用串行模式。
    3) CONVSTA, CONVSTB ,使用同源激勵。
4) 設置REF SELECT=0 ,使用外部參考電壓

SHARC ADSP-21479 SRU設置:
 SPORT0_SCLK ? DAIP 1
 SPORT0_FS  ?  DAIP 4
SPORT0_DA  ?  DAIP 5
FLAG4   ?  DPI_PIN1 
FLAG5   ?  DPI_PIN2
根據以上配置,ADSP-21479通過SPORT口與AD7606聯系的系統示意圖如圖5所示:
 5.jpg
圖5  采用串行方式時,AD7606與ADSP-21479硬件連接示意圖

3. 時序分析
AD7606工作時序如圖6,通過DSP的FLAG信號驅動CONVST A/B信號啟動轉換過程,BUSY標志著工作狀態,連接到DSP的中斷輸入。BUSY為高時表示處于轉換狀態,轉換完畢后高到低的下降沿引起DSP中斷,DSP在響應中斷通過SPORT0讀取8通道ADC轉換好的數據。
 image011.jpg
圖6  AD7606串行讀取數據時序

ADSP-21479 SPORT口的時序如圖7所示,在FS信號啟動后,數據隨著時鐘節拍被讀取。 我們選擇SPORT數據寬度是32位,那么四次FS信號即可讀取八個通道的數據。
 7.jpg
圖7  ADSP-21479 SPORT串行數據接收時序

4. 測試結果和結論
DSP軟件設置50K的采樣信號,對8個通道的數據進行同時采樣。各模擬通道輸入信號分別為:通道5連接1KHz正弦波,其余通道接地。
4.1 測試結果
1) 利用VDSP5.0++ 的plot窗口(VDSP->View->Debug Windows->Plot)觀察5通道數據,
1. 通道5提取到1KHz正弦波;

 image015.jpg

 4.2 結論
這種連接方式只使用DSP的一個串行SPORT口即可同時讀取8路ADC的數據。但由于8路數據都通過一路數據輸出給DSP,而AD7606支持的最高串行時鐘頻率有限,模數轉換還要占用一部分采樣周期,因此串行輸出的連接下,AD7606不能工作在最高200KSPS采樣率下。
根據AD7606數據手冊,AD7606的SCLK上限為23.5MHz。FLAG信號驅動CONVST A/B信號,單路串行輸出八通道數據。不考慮轉換時間最高采樣率可達23500000/(16×8)=183.5kHz,由于每個周期數據轉換將消耗一定時間,所以實際無法達到此速度。假設采樣周期用Tconvst表示,根據AD7606數據手冊,模數轉換時間為3.45us,所以 Tconvst-3.45us代表采樣周期中傳輸數據的時間。八通道總數據量為128個時鐘周期,所以(Tconvst-3)/128近似為每bit數據的時鐘周期。由于SCLK最大為23.5MHz,據此可以推算出此模式下最高采樣頻率:
(Tconvst(max)-3.45)/128 = 1/23.5
Tconvst(max)≈8.89us
即最高采樣率為1/ Tconvst(max) = 112KSPS
同理可知,若采用兩口同時輸出轉換數據,即啟動2個SPORT分別讀取8個通道的數據,實際最高采樣率能達到161K SPS。

當AD7606采用并行方式輸出到DSP時,即可得到最高200KSPS采樣率。
5. DSP參考代碼
1. 配置SRU
// This function will setup the SRU Registers
void InitSRU(void)
{
 //Generating Code for connecting : SPORT0_CLK to DAI_PIN1
 SRU (HIGH, PBEN01_I);
 SRU (SPORT0_CLK_O, DAI_PB01_I);

 //Generating Code for connecting : SPORT0_FS to DAI_PIN4
 SRU (HIGH, PBEN04_I);
 SRU (SPORT0_FS_O, DAI_PB04_I);

 //Generating Code for connecting : DAI_PIN5 to SPORT0_DA
 SRU (LOW, PBEN05_I);
 SRU (DAI_PB05_O, SPORT0_DA_I);
 

 //Generating Code for connecting : FLAG4 to DPI_PIN1
 SRU (HIGH, DPI_PBEN01_I);
 SRU (FLAG4_O, DPI_PB01_I);

 //Generating Code for connecting : FLAG5 to DPI_PIN2
 SRU (HIGH, DPI_PBEN02_I);
 SRU (FLAG5_O, DPI_PB02_I);


}
2. IRQ1  BUSY中斷服務程序
void AD7606_BUSY_IRQs(int sig_int)
{
 busy++;
 interrupt(SIG_SP0,Count_SPORT0_RX_IRQs);
#ifdef DMA 
 * (volatile int *)SPCTL0 =( SPEN_A | SLEN32 | ICLK | IFS | LAFS |  SDEN_A | FSR  | DITFS| LFS ); 
#endif 
#ifdef CORE
  * (volatile int *) SPCTL0 =( SLEN16 | ICLK | IFS | FSR | LAFS | LFS | DITFS);
  *(volatile int *) SPCTL0 |=SPEN_A ;
#endif
}
3. SPORT初始化程序
void init_sport(){
  * (volatile int *) SPCTL0 = 0;
  * (volatile int *) SPCTL1 = 0;
  * (volatile int *) SPMCTL0 = 0; 
  * (volatile int *) SPMCTL1 = 0; 
SPORT_DMA_setup:
 
  * (volatile int *) IISP0A =(int)rx_buf0a ;
  * (volatile int *) IMSP0A = 1;         
     * (volatile int *) CSP0A = CHNUM;

  //configure the sport   
  /* */
  /* CLKDIV0=[fCCLK(266 MHz)/4xFSCLK(17 MHz)]-1 = 0x0005 */
  /* FSDIV0=[FSCLK(10 MHz)/TFS(2 MHz)]-1 = 31 = 0x001F */
  //13m hz 1m   0x00080003;       
   /* Configure SPORT0 as a reciever (Rx) */
  * (volatile int *) DIV0 = 0x001F0005; 
          

}
4. SPORT 中斷程序
void Count_SPORT0_RX_IRQs(int sig_int)
{
 SP0I_counter++; 
#ifdef CORE 
 rx_buf0a[(SP0I_counter-1)*CHNUM]=(short)(*pRXSP0A);
#endif 
 * (volatile int *) SPCTL0 =0;
 finished=1;
#ifdef DMA 
  
   if(SP0I_counter==1024){
  * (volatile int *) IISP0A =(int)rx_buf0a ;
  SP0I_counter=0;
  }
 else 
  * (volatile int *) IISP0A =(int)(rx_buf0a+ (SP0I_counter)*CHNUM);
 * (volatile int *) IMSP0A = 1;         
    * (volatile int *) CSP0A = CHNUM;
     
#endif
 interrupt(SIG_SP0,SIG_IGN);
}


 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 丁香在线 | 午夜在线网址 | 免费国产成人高清视频网站 | 禁视频网站在线观看漫画 | 91精品观看91久久久久久 | 欧美色网络 | 手机成人在线视频 | 亚欧色视频在线观看免费 | 亚洲欧美在线观看播放 | 国产欧美日韩综合精品一区二区 | 久久夜靖品 | 一区二区三区免费在线视频 | 久久大香香蕉国产免费网站 | 一级网 | 三级专区 | 黄色视频一级毛片 | 一级女人18片毛片免费视频 | 日韩精品欧美精品中文精品 | 国产成人亚洲综合小说区 | 好男人在线社区www免费看 | 亚洲手机在线 | 中文字幕一区二区三区在线不卡 | 国产做受视频激情播放 | 黄色福利视频网站 | 曰皮全部过程免费视频 | 成人性生活免费视频 | 久久99国产精品视频 | 欧美日韩成人在线视频 | 国产一级淫 | 一本大道香一蕉久在线影院 | 午夜久久免费视频 | 最近中文字幕大全免费版在线 | 日韩精品视频美在线精品视频 | 欧美成人一区亚洲一区 | 欧美特级黄色片 | 成年女人毛片免费观看不卡 | 日韩欧美在 | 精品色综合 | 欧美日韩精品高清一区二区 | 日韩亚洲欧美视频 | 国产免费拔擦拔擦8x |