各位专家你好,目前使用M487JIDAE
想使用ADC差分输入去讀取音源線訊號
参考TRM的代码设定 但是读取出来的值有点奇怪
ADC clock 、GPIO mode的设定看起来没问题
使用PB0 PB1
//---------------------------------------------------------------
下面是我ADC初始化的配置
void EADC_Init()
{
SYS_ResetModule(EADC_RST);
EADC_Open(EADC, EADC_CTL_DIFFEN_DIFFERENTIAL);
EADC_ConfigSampleModule(EADC, 0, EADC_SOFTWARE_TRIGGER, 0);
EADC_CLR_INT_FLAG(EADC, EADC_STATUS2_ADIF0_Msk);
EADC_ENABLE_INT(EADC, BIT0);
EADC_ENABLE_SAMPLE_MODULE_INT(EADC, 0, BIT0);
}
//---------------------------------------------------------------
跟ADC读取函式
uint16_t Get_ADC_VAL()
{
uint16_t vol=0;
EADC_START_CONV(EADC, BIT0);
while (EADC_GET_INT_FLAG(EADC, BIT0) == 0);
vol = EADC_GET_CONV_DATA(EADC, 0);
EADC_CLR_INT_FLAG(EADC, BIT0);
return vol;
}
//---------------------------------------------------------------
输入测试电压
V+:3.32V V-: 0V vol:3.32V (0xFFF)
V+:3.32V V-:1.66V vol:2.49V (0xC05)
V+:1.66V V-:1.66V vol:1.66V (0x805)
V+:1.66V V-: 0V vol:2.49V (0xC05)
看起來像single-end mode 读取出来的值有点奇怪
不知有没有参考的代码和电路能够解决我的问题 |