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.

[参考译文] TMS320F28335:TMS320F28335 ADC0设置

Guru**** 2535450 points
Other Parts Discussed in Thread: CCSTUDIO

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/606240/tms320f28335-tms320f28335-adc0-setting

器件型号:TMS320F28335
Thread 中讨论的其他器件:CCStudio

尊敬的 C2000团队

我们使用 CCStudio 调试器下载到 RAM 、这不是问题。

但是、当 ADC 结果始终为0值时、我们使用下载闪存(Rom)。

我们在下面进行设置

/*============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

文件名:F2833XILG_VDC.H

目标     :TMS320F2833x 系列

             

============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ *

 

#ifndef __F2833XILG_VDC_H__

#define __F2833XILG_VDC_H__

 

/*------------------

ADC 初始化宏定义

-------------------------------------------------- *

 

extern void DSP28x_usDelay (无符号整型计数);

extern void adc_cal()

#define CPU_CLOCK_SPEED     15.000L  // 10.000L 表示100MHz CPU 时钟速度

#define ADC_USDELAY 50000L

#define DELAY_US (a) DSP28x_usDelay (((( long double) A * 1000.0L)/(long double) CPU_clock_speed)- 9.0L)/ 5.0L

 

#define ADC_MACROL_INIT (ChSel,MaxChNum,ACQPS)                                                                             \

                                                                                                                                           \

     EALLOW;                                                                                                                               \

     SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;                                                                               \

     adc_cal();                                                                                                                      \

     EDIS;                                                                                                                          \

                                                                                                                                           \

     AdcRegs.ADCTRL3.ALL = 0x00E0; //加电带隙/参考/ADC 电路*/                        \

   DELAY_US (ADC_USDELAY);        /*转换 ADC 通道之前的延迟*/                      \

                                                                                                                                     \

    AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS;                                                                           \

    AdcRegs.ADCTRL1.bit.CONT_RUN = 0;                                                                             \

     AdcRegs.ADCTRL1.bit.CPS = 0;                                                                                        \

    AdcRegs.ADCTRL3.bit.ADCCLKPS=0 ;                 

 

 

AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;       // 0x0双序列发生器模式,0x1级联模式*/     \

     AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0;                                                                             \

     AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1;                                                                                 \

     AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1;                                                                                 \

     AdcRegs.ADCTRL2.bit.ePWM_SOCA_SEQ1=0x1;//从 EPWMA 触发器启用 SOC */                 \

                                                                                                                                           \

                                                                                                                                           \

     AdcRegs.ADCCHSELSEQ1.bit.CONV00 = ChSel[0];                                                                         \

     AdcRegs.ADCCHSELSEQ1.bit.CONV01 = ChSel[1];                                                                    \

     AdcRegs.ADCCHSELSEQ1.bit.CONV02 = ChSel[2];                                                                         \

     AdcRegs.ADCCHSELSEQ1.bit.CONV03 = ChSel[3];                                                                         \

     AdcRegs.ADCCHSELSEQ2.bit.CONV04 = ChSel[4];                                                                         \

     AdcRegs.ADCCHSELSEQ2.bit.CONV05 = ChSel[5];                                                                         \

     AdcRegs.ADCCHSELSEQ2.bit.CONV06 = ChSel[6];                                                                         \

     AdcRegs.ADCCHSELSEQ2.bit.CONV07 = ChSel[7];                                                                         \

                                                                                                                                           \

     AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = MaxChNum;                                                                             \

     EDIS;                                                                                                                           \

                                                                                                                                           \

   /*为 EPWM4的时基设置启用 CNT_ZERO 的事件触发器*/                              \

   EPwm4Regs.ETSEL.bit.SOCAEN = 1;    /*启用 SOCA */                                                    \

   EPwm4Regs.ETSEL.bit.SOCASEL = 2;   // SOCA 启用周期事件*/\                               

   EPwm4Regs.ETPS.bit.SOCAPRD = 1;    //在第1个事件上生成 SOCA *\                       

     EPwm4Regs.ETCLR.bit.SOCA = 1;      //清除 SOCA 标志*/

#endif //__F2833XILG_VDC_H__


                                                                                  

可以帮帮我吗?

如果有任何问题。 随时联系我?

此致

Gerald

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Gerald、

    那么、当您从 RAM 运行时、ADC 会为您提供预期的结果、但当您从闪存运行时却不会提供预期结果?

    您是如何以及在哪里读取结果的?

    谢谢、

    惠特尼