小弟初学,在28035中的关于adc的应用,adcMUX这个部分模块一般都做什么功能呢?GpioCtrlRegs.AIOMUX1.bit.AIO2 = 2;这样设置是何意?请求支援
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
小弟初学,在28035中的关于adc的应用,adcMUX这个部分模块一般都做什么功能呢?GpioCtrlRegs.AIOMUX1.bit.AIO2 = 2;这样设置是何意?请求支援
GpioCtrlRegs.AIOMUX1.bit.AIO2 = 2; // Configure AIO2 for A2 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO4 = 2; // Configure AIO4 for A4 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO6 = 2; // Configure AIO6 for A6 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO10 = 2; // Configure AIO10 for B2 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO12 = 2; // Configure AIO12 for B4 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO14 = 2;
这些设置的意思是2、4、6、10、12、14都为adc输入引脚吗,为何其值都为2呢?我没有找到ti相关的文档说明此设置,能否给推荐一下,谢谢
我下载的28035例程关于adc采样的,DSP2803x_examples\adc_soc,我在程序中跑时,从AdcResult.ADCRESULT0得到的采样数字量与实际电压值经过
4096*(input Analog -0)/3.3运算得到的值不对,要小的多这是为什呢,我程序都没动,基准电压是用的内部参考:
AdcRegs.ADCCTL1.bit.ADCBGPWD = 1; // Power ADC BG
AdcRegs.ADCCTL1.bit.ADCREFPWD = 1; // Power reference
AdcRegs.ADCCTL1.bit.ADCPWDN = 1; // Power ADC
AdcRegs.ADCCTL1.bit.ADCENABLE = 1; // Enable ADC
AdcRegs.ADCCTL1.bit.ADCREFSEL = 0; // Select interal BG
这个例程中转换SOC0,SOC1,SOC2,其中SOC0的结果是要丢弃的,具体查看勘误表说明,也即是ADCRESULT0的结果要丢弃,查看ADCRESULT1,ADCRESULT2.
Eric
关于AIOMUX寄存器,要查看文档
TMS320F2803x Piccolo System Control and
Interrupts Reference Guide
说明。
这个在芯片主页中有这个用户指南。
Eric
在28035例程中,我在这将AIOMUX定义为IO功能,将IO分别加电压时,没有定义其为ADC输入引脚,为何还有正确的采样值呢?岂不是定义IO和ADC都一样了?还是说我哪个地方又没有注意到,谢谢指正!
GpioCtrlRegs.AIOMUX1.bit.AIO2 = 0; // Configure AIO2 for A2 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO4 = 0; // Configure AIO4 for A4 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO6 = 0; // Configure AIO6 for A6 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO10 = 0; // Configure AIO10 for B2 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO12 = 0; // Configure AIO12 for B4 (analog input) operation
GpioCtrlRegs.AIOMUX1.bit.AIO14 = 0; // Configure AIO14 for B6 (analog input) operation
你说的采样到正确的采样值是怎么回事?你往哪个引脚输入多少伏电压,ADC结果是多少?
在配置AIO前,要添加EALLOW;,如下
EALLOW;
GpioCtrlRegs.AIOMUX1.bit.AIO2 = 0; // Configure AIO2 for A2 (analog input) operation
……
EDIS;
Eric
向28035的80个引脚的第16个引脚ADCINA2/COMP1A/AIO2外加1v的模拟量,经过AdcResult.ADCRESULT0数字量为1240,所以说是正确的,
AdcRegs.ADCSOC0CTL.bit.CHSEL = 2; //set SOC0 channel select to ADCINA4
AdcRegs.ADCSOC1CTL.bit.CHSEL = 2;
我疑问是无论GpioCtrlRegs.AIOMUX1.bit.AIO2 = 0;还是GpioCtrlRegs.AIOMUX1.bit.AIO2 = 2;采样结果都正确呢,我配置成GpioCtrlRegs.AIOMUX1.bit.AIO2 = 0;即将AIOMUX1配置成IO口功能了,结果为何还能采样。这是我的疑问,请帮我解惑!谢谢