最近在看DSP2812 现在对DSP2812的AD部分有如下问题,请各位大侠指导。
我对ADC模块进行如下设置(示意) ADCTRL3.SMOD_SEL=1 //同时采样模式 ADCTRL1.SEQ_CASE=1 //双排序器模式 ADCMAXCONV.ALL=0x0033 ADCCHELSEQ1.CONV00=0X04 ADCCHELSEQ1.CONV01=0X03 ADCCHELSEQ1.CONV02=0X02 ADCCHELSEQ1.CONV03=0X05 ADCCHELSEQ3.CONV08=0X01 ADCCHELSEQ3.CONV09=0X07 ADCCHELSEQ3.CONV10=0X06 ADCCHELSEQ3.CONV11=0X00 现在的问题1是: 如果 ADCTRL1.CONT_RUN=1 //连续运行模式 这时候如果ADCTRL2.EVA_SOC=1 ADCTRL2.INT_MOD_SEQ1=0//每次EOC OF SEQ1产生一次中断 ADCTRL2.EVB_SOC=1 ADCTRL2.INT_MOD_SEQ2=0//每次EOC OF SEQ2产生一次中断 那么,当EVA事件到来后,ADC启动转换,转换完毕,在中断程序中我读得的结果: ADCRESULT0<-ADCINA4 ADCRESULT1<-ADCINB4 ADCRESULT2<-ADCINA3 ADCRESULT3<-ADCINB3 ADCRESULT4<-ADCINA2 ADCRESULT5<-ADCINB2 ADCRESULT6<-ADCINA5 ADCRESULT7<-ADCINB5 EVB到来时,ADC也启动转换,转换完毕后,在中断程序中我读得的结果: ADCRESULT8<-ADCINA1 ADCRESULT9<-ADCINB1 ADCRESULT10<-ADCINA7 ADCRESULT11<-ADCINB7 ADCRESULT12<-ADCINA6 ADCRESULT13<-ADCINB6 ADCRESULT14<-ADCINA0 ADCRESULT15<-ADCINB0 我以上的理解是否正确?这是问题1,各位指点。 问题2: 在中断完毕后,SEQ1和SEQ2的状态是怎么样的?是分别指向CONV04和CONV01吗?接下来ADC是直接启动下一次转换,还是等待下一个EVA和EVB事件到来后启动转换?(因为这里ADCTRL1.CONT_RUN=1,我不太理解,ADC接下来的动作我不太理解) 问题3: 如果我这样设置 ADCTRL2.INT_MOD_SEQ1=1 ADCTRL2.INT_MOD_SEQ2=1,是不是有一次转换结构被覆盖了?(因为每隔一次产生一次中断且ADCMAXCONV.ALL=0X0033) 问题4: 如果我这样设置ADCTRL1.CONT_RUN=0 //启动停止模式 那么当EVA,EVB事件到来,ADC启动转换,我读完了结构后,SEQ1,SEQ2的状态是什么?是分别指向CONV03和CONV11吗?这时候如果要进行下一次转换,需要手动复位SEQ1和SEQ2,是不是这样? 以上问题我看SPRU060看了好长时间,还是不太理解。各位 大侠给与指导。 |