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

关于F28M35H52C1 AD 20个通道配置问题

您好!

      在F28M35H52C1数据手册中,有20个通道,

ADC1 10个 :  ADC1INA0 ADC1INA2 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7  ADC1INB0  ADC1INB3 ADC1INB4 ADC1INB7

ADC2 10个 :ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7  ADC2INB0  ADC2INB3 ADC2INB4 ADC2INB7
  问题1:若需要全部同时采样20个通道,是不是在ADC1中配置10个通道?ADC2中配置10个通道?

问题2: 若读取数据时,是不是可在     interrupt void  adc1_isr( void )    中断函数中直接读这20个数据吗?   希望回复下,谢谢!

int Voltage1[10]={0};

int Voltage2[10]={0};

interrupt void  adc1_isr( void )

 {

              Adc_Read_Results(Voltage1,Voltage2,10)

       Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1;  //Clear ADCINT1 flag reinitialize                                           

            PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE

 }

 

void Adc_Read_Results( unsigned int * Adc1,unsigned int * Adc2, Uint16 Num)    //Num=10

{  Uint16  i;  

   for(i=0;i<Num;i++) 

       {      *( Adc1 +i)= *(&Adc1Result.ADCRESULT0+i);

             *( Adc2 +i)= *(&Adc2Result.ADCRESULT0+i);

    }

}

 

 

      

Hank Zhao:

1,每个ADC有16个通道,你可以每个配置10通道,也可以一个配置16个一个配置4个。

您好!

      在F28M35H52C1数据手册中,有20个通道,

ADC1 10个 :  ADC1INA0 ADC1INA2 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7  ADC1INB0  ADC1INB3 ADC1INB4 ADC1INB7

ADC2 10个 :ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7  ADC2INB0  ADC2INB3 ADC2INB4 ADC2INB7
  问题1:若需要全部同时采样20个通道,是不是在ADC1中配置10个通道?ADC2中配置10个通道?

问题2: 若读取数据时,是不是可在     interrupt void  adc1_isr( void )    中断函数中直接读这20个数据吗?   希望回复下,谢谢!

int Voltage1[10]={0};

int Voltage2[10]={0};

interrupt void  adc1_isr( void )

 {

              Adc_Read_Results(Voltage1,Voltage2,10)

       Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1;  //Clear ADCINT1 flag reinitialize                                           

            PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE

 }

 

void Adc_Read_Results( unsigned int * Adc1,unsigned int * Adc2, Uint16 Num)    //Num=10

{  Uint16  i;  

   for(i=0;i<Num;i++) 

       {      *( Adc1 +i)= *(&Adc1Result.ADCRESULT0+i);

             *( Adc2 +i)= *(&Adc2Result.ADCRESULT0+i);

    }

}

 

 

      

suny gong:

回复 Hank Zhao:

1,我所选用的是F28M35H52C1系列的CPU,若使用ACD1的10个通道采样,是不是需要配置  AIOMUX1寄存器呢?

如 需要使用 ADC1INA2 ADC1INA4 ADC1INA6  ADC1INB4 这几个AD通道 ,配置AIOMUX1 寄存器如下:

    GpioG2CtrlRegs.AIOMUX1.bit.AIO2 = 2;   // Configure AIO2 for A2 (analog                                            // input) operation     GpioG2CtrlRegs.AIOMUX1.bit.AIO4 = 2;   // Configure AIO4 for A4 (analog                                            // input) operation     GpioG2CtrlRegs.AIOMUX1.bit.AIO6 = 2;   // Configure AIO6 for A6 (analog                                            // input) operation        GpioG2CtrlRegs.AIOMUX1.bit.AIO12 = 2;  // Configure AIO12 for B4 (analog                                            // input) operation

配置好后,就可以直接当作AD通道使用吗?麻烦告知下.

2,ACD1 与ACD2是并行工作的吗?即相当于可以由epwm产生一个触发源,然后同时启动ACD1和ACD2进行采样,进入ADC中断后

,同时读取这20个通道数据。

谢谢了!

您好!

      在F28M35H52C1数据手册中,有20个通道,

ADC1 10个 :  ADC1INA0 ADC1INA2 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7  ADC1INB0  ADC1INB3 ADC1INB4 ADC1INB7

ADC2 10个 :ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7  ADC2INB0  ADC2INB3 ADC2INB4 ADC2INB7
  问题1:若需要全部同时采样20个通道,是不是在ADC1中配置10个通道?ADC2中配置10个通道?

问题2: 若读取数据时,是不是可在     interrupt void  adc1_isr( void )    中断函数中直接读这20个数据吗?   希望回复下,谢谢!

int Voltage1[10]={0};

int Voltage2[10]={0};

interrupt void  adc1_isr( void )

 {

              Adc_Read_Results(Voltage1,Voltage2,10)

       Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1;  //Clear ADCINT1 flag reinitialize                                           

            PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE

 }

 

void Adc_Read_Results( unsigned int * Adc1,unsigned int * Adc2, Uint16 Num)    //Num=10

{  Uint16  i;  

   for(i=0;i<Num;i++) 

       {      *( Adc1 +i)= *(&Adc1Result.ADCRESULT0+i);

             *( Adc2 +i)= *(&Adc2Result.ADCRESULT0+i);

    }

}

 

 

      

Hank Zhao:

回复 suny gong:

1,是的,ADC1通道的配置需要配置 AIOMUX1寄存器。配置完之后就可以当做AD通道使用。

您好!

      在F28M35H52C1数据手册中,有20个通道,

ADC1 10个 :  ADC1INA0 ADC1INA2 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7  ADC1INB0  ADC1INB3 ADC1INB4 ADC1INB7

ADC2 10个 :ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7  ADC2INB0  ADC2INB3 ADC2INB4 ADC2INB7
  问题1:若需要全部同时采样20个通道,是不是在ADC1中配置10个通道?ADC2中配置10个通道?

问题2: 若读取数据时,是不是可在     interrupt void  adc1_isr( void )    中断函数中直接读这20个数据吗?   希望回复下,谢谢!

int Voltage1[10]={0};

int Voltage2[10]={0};

interrupt void  adc1_isr( void )

 {

              Adc_Read_Results(Voltage1,Voltage2,10)

       Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1;  //Clear ADCINT1 flag reinitialize                                           

            PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE

 }

 

void Adc_Read_Results( unsigned int * Adc1,unsigned int * Adc2, Uint16 Num)    //Num=10

{  Uint16  i;  

   for(i=0;i<Num;i++) 

       {      *( Adc1 +i)= *(&Adc1Result.ADCRESULT0+i);

             *( Adc2 +i)= *(&Adc2Result.ADCRESULT0+i);

    }

}

 

 

      

Hank Zhao:

回复 suny gong:

2,ADC1和ADC2是并行工作的,你可以给它们配置相同的触发源,就可以同时采样。ADC1和ADC2的中断是共享的,只有都转换结束后才可以进入ADC中断,也就可以一次将这20个通道的数据读完。

赞(0)
未经允许不得转载:TI中文支持网 » 关于F28M35H52C1 AD 20个通道配置问题
分享到: 更多 (0)