英創公司新近推出的高性價比工控主板產品EM9170,其主板內部帶有2路AD通道,可用于溫度、電壓的測試。AD通道的基本指標如下:
|
通道數 |
AD分辨率 |
輸入模式 |
滿量程 |
|
2 |
12-bit |
單端輸入 |
2.5V(內部參考源) |
2路AD通道中CH0與GPIO28復用管腳,CH1與GPIO29復用管腳。因此若客戶應用中需要使用AD通道,則不能再使用對應的GPIO功能。
在EM9170的SDK中已為客戶應用程序導出了AD采集的接口函數如下:
//------------------------------------------------------------------------------
// 功能:初始化AD單元
//------------------------------------------------------------------------------
BOOL AdcInit(void);
//------------------------------------------------------------------------------
// 功能:關閉AD單元
//------------------------------------------------------------------------------
void AdcDeinit(void);
//------------------------------------------------------------------------------
// 功能:設置AD通道的相關參數
//
// 輸入參數
// id = INAUX0:AD通道;= INAUX1:AD通道。
// settlingTime:通道穩定事件,一般設置為。
// pRef:一般選擇內部參考源INTREF。
// numSamples:每次采集的樣本數,通常為1
//------------------------------------------------------------------------------
BOOL AdcConfigureChannel(CHAN_ID id, DWORD settlingTime,
POS_REF pRef, DWORD numSamples);
//------------------------------------------------------------------------------
// 功能:設置AD通道的相關參數
//
// 輸入參數
// id = INAUX0:AD通道;= INAUX1:AD通道。
// pBuf:數據緩沖區。注意12-bit數據在16-bit緩沖區中是左對齊的,低4-比特無效。
// nbSamples:采樣個數,數據緩沖區應不小于采樣個數。
//------------------------------------------------------------------------------
BOOL AdcGetSamples(CHAN_ID id, UINT16* pBuf, DWORD nbSamples);
以上函數定義包含在adc_sdk.h中,該頭文件及應用程序使用AD采集功能所需要的一個庫文件adcsdk.lib可在光盤的應用范例test_adc中找到:
#include 'stdafx.h'
#include
#include
#include 'adc_sdk.h'
int _tmain(int argc, _TCHAR* argv[])
{
BOOL bRet;
DWORD dwNumSamples;
UINT16 DatBuf[32];
printf('EM9170 ADC Test\n');
bRet = AdcInit( );
if(!bRet)
{
printf('Init ADC failed\n');
return -1;
}
dwNumSamples = 1;
bRet = AdcConfigureChannel(INAUX0, 2, INTREF, dwNumSamples);
bRet = AdcConfigureChannel(INAUX1, 2, INTREF, dwNumSamples);
memset(DatBuf, 0, sizeof(DatBuf));
for( ; ; )
{
bRet = AdcGetSamples(INAUX0, &DatBuf[0], 1);
bRet = AdcGetSamples(INAUX1, &DatBuf[1], 1);
printf('INAUX0 = 0x%x, INAUX1 = 0x%x\r', DatBuf[0]>>4, DatBuf[1]>>4);
// delay 50ms
Sleep(50);
}
AdcDeinit();
return 0;
}
在VC應用程序中,鏈接adcsdk.lib的方法是通過project菜單進入property pages。

在Input ->“Additional Dependencies”欄目中天然所需鏈接的庫文件:adcsdk.lib。
-
WINDOWS
+關注
關注
4文章
3702瀏覽量
94050 -
嵌入式主板
+關注
關注
7文章
6107瀏覽量
37076
發布評論請先 登錄
信創國產化引領丨英康仕攜手龍芯打造信創國產化工控全場景解決方案
國產金融主板:賦能智慧金融,驅動信創產業升級
國產力量鑄就數字基石:飛騰工控主板賦能多領域智能化升級
3A6000四核龍芯工控主板,推動信創與工控深度融合
新時代的硬核基石:龍芯工控主板助力信創產業新基建
工控主板的三大核心技術
智慧新核心,龍芯主板助力信創體系再升級
佛瑞亞如何通過信息技術推動業務增長
飛騰主板為信創產業發展提高硬實力
科普|信創是什么?一文讀懂“信息技術應用創新”戰略
英創信息技術EM9170工控主板板載AD通道及應用簡介
評論