TI中文支持网
TI专业的中文技术问题搜集分享网站

在使用TMS320F28069的AD模块碰到的问题

在使用TMS320F28069的AD模块碰到这么一个问题,通过对ad模块寄存器的设置,28069能够进入ad中断1,这个说明ad中断1的中断标志位可以被置位的,但是我当我没有给ad中的地址时而是用查询法莱判断ad模块转换是否结束(即判断中断标志位是否被置位)时,发现这个中断标志位始终不能置位,也就是说始终为0这是什么原因;还有就是怎么实现不同的soc对同一个adin口采样呢?我只用一个soc采样一个adin口可以,但多个soc采样同一个adin口好像不对,这又是什么原因?

mangui zhang:

你先查一下手册    确保中断标志位是否需要手动清除

如果是软件自动清除的话     在什么时候清除

你的查询方式能否跟上?

在使用TMS320F28069的AD模块碰到这么一个问题,通过对ad模块寄存器的设置,28069能够进入ad中断1,这个说明ad中断1的中断标志位可以被置位的,但是我当我没有给ad中的地址时而是用查询法莱判断ad模块转换是否结束(即判断中断标志位是否被置位)时,发现这个中断标志位始终不能置位,也就是说始终为0这是什么原因;还有就是怎么实现不同的soc对同一个adin口采样呢?我只用一个soc采样一个adin口可以,但多个soc采样同一个adin口好像不对,这又是什么原因?

xinchao ju:

回复 mangui zhang:

外设中断都是要手动清除的,而且AdcRegs.INTSEL1N2.bit.INT1CONT  = 0;这位这么设置就必须在手动清除ad中断标志位后才能在EOC的到来触发ad中断脉冲(No further ADCINTy pulses are generated until ADCINTy flag (in ADCINTFLG register) is cleared by user),所以查询法应该能跟踪的

在使用TMS320F28069的AD模块碰到这么一个问题,通过对ad模块寄存器的设置,28069能够进入ad中断1,这个说明ad中断1的中断标志位可以被置位的,但是我当我没有给ad中的地址时而是用查询法莱判断ad模块转换是否结束(即判断中断标志位是否被置位)时,发现这个中断标志位始终不能置位,也就是说始终为0这是什么原因;还有就是怎么实现不同的soc对同一个adin口采样呢?我只用一个soc采样一个adin口可以,但多个soc采样同一个adin口好像不对,这又是什么原因?

Eric Ma:

1.关于查询方式,为什么中断标志位不能置位

   1)要确定ADC能够产生中断,类似下面的代码

      EALLOW;

      AdcRegs.INTSEL1N2.bit.INT1SEL = 1; //Connect ADCINT1 to EOC1

      AdcRegs.INTSEL1N2.bit.INT1E  =  1; //Enable ADCINT1

   2) 在查询后要清除标志位

//Wait for end of conversion. while(AdcRegs.ADCINTFLG.bit.ADCINT1 == 0){} //Wait for ADCINT1 AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1

   3)如果上述你程序中都有添加,那就要确认一下是否有ADC的触发源触发ADC转换。

2. 不同的SOC对同一个ADCIN采样时没有问题的,只要配置成相同的触发源。

    建议你在例程的基础上进行测试。

    在ADC的说明文档中,要注意采样窗某些特定值不能设置。

Eric

赞(0)
未经允许不得转载:TI中文支持网 » 在使用TMS320F28069的AD模块碰到的问题
分享到: 更多 (0)