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.

[参考译文] CCS/TMS320F2812:ADC 在 TMS320F2812的通道 B 上不工作

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/726339/ccs-tms320f2812-adc-not-working-on-channel-b-of-tms320f2812

器件型号:TMS320F2812

工具/软件:Code Composer Studio

Helllo 专家、

我正在尝试 使用 SYS/BIOS RTOS 在 TMS320F2812上运行 ADC 代码。 我的通道 A (8) ADC 上的所有引脚都在工作(传统代码)。 作为修改的一部分、我想对通道 B (8个通道)进行采样。

我刚刚对代码进行了一些基本更改、并观察到我在 ADCINB0上获得预期电压、但在通道 B 的其余部分获得了不正确的值

ADCINB1-B7上的所有引脚未连接到原理图中的任何引脚、我已经在电路板上确认电压测量值大约为0V。 不过、我始终读取的值介于1.9V 至2.5V 之间(取决于通道)。  

我已经浏览过 UC 的整个 ADC 模块文档(ADC_spru060d)、但似乎无法理解可能会出现什么问题、是否有人能帮助我... ADC 的配置如下所示。

-双序列发生器

-启动停止类型

- SW 控制

附加的代码。  

AdcRegs.ADCTRL1.bit.SUSMOD = 2U;//序列发生器在当前转换后停止
AdcRegs.ADCTRL1.bit.ACQ_PS = 0xfu;//16周期采集窗口
AdcRegs.ADCTRL1.bit.CPS = 1U;//将 HSPCLK 除以2
AdcRegs.ADCTRL1.bit.CONT_RUN = 0U;//开始停止模式
AdcRegs.ADCTRL1.bit.SEQ_OVRD =



1U;//序列发生器覆盖启用 AdcRegs.ADCTRREF.bit.SEQ_CLC = 0U;// ADCTL3外部初始化/ ADCTRL1.ADCTRL = 1U;//启用 ADCTRL
AdcRegs.ADCTRL3.bit.ADCCLKPS= 0xfu;//将 HSPCLK 除以30

// ADCMAXCONV 注册器初始化
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x7u;//通道 A 中的转换8 ADCMAXCONVRE1.bit.ADC01.ADCCONV.ADC01.ADC01.ADC1=ADCCONV.ADC01.ADC01.ADC1C.Q1
= ADCCONV.ADC01.ADCCONV.ADC01.ADR1.ADC01.ADC1u.ADCCONV.ADC1u.ADC1u.ADCCONV.ADC01.ADC01.ADC1u.ADCENCONV.ADC01.ADC1u.ADC1u.ADC1u.ADC01.ADCCONV.ADC1u.ADC01.ADC01.ADCCONV.ADC1u.ADCCONV.ADC






//ADCINA3

//ADC SEQ2选择寄存
器 AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 4U;//ADCINA4
AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 5U;//ADCINA5
AdcRegs.ADCSELSEQ2.bit.ADCSEQ2.ADC08=ADCSEQ3.ADC8R





= ADC8R
= ADC08.ADCQ3.ADC8R = ADC08.ADC08.ADCQ3.ADC8R = ADC08.ADC203.ADC8ADCADC8ADCADC8R = ADC8ADC8ADC203.ADCADC203.ADRC.ADRC.ADC203.ADC/ ADCADC8ADC203.ADRC.ADCADCADRC.ADC203.ADRC.ADCADCADCADCADRC.ADC8ADC203.ADC/ ADCADC203.ADC8ADCADCADCADCADCADRC.ADCADC


//ADCINB4 N/C
AdcRegs.ADCCHSELSEQ4.bit.CONV13 = 13U;//ADCINB5 N/C
AdcRegs.ADCCHSELSEQ4.bit.CONV14 = 14u;//ADCINB6 N/C AdcRegs.ADCCHSELSEQ4.bit.CONTINV14 = 14u;//ADCINBINB6 N/ADC15



启动电路/参考电路 这里放置的是
在设置寄存器后为 ADC 加电//。
AdcRegs.ADCTRL3.bit.ADCBGRFDN = 3U;

在 ADC 上电之前需要//7ms 的间隙。 对于
(iVol= 0;iVol<(900000/2)/12);iVol++),以下间隔约为10ms。
{

}

AdcRegs.ADCTRL3.bit.ADCPWDN = 1U;

///20微秒,转换开始
之前需要(iVol=0;iVol<(1500/2)/12 );iVol++)
{

} 

//触发 ADC

if (adc_channel =adc_channel_a)

AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1U;
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1U;

否则(ADC_CHANNEL == ADC_CHANNEL)

AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2 = 1U;
AdcRegs.ADCTRL2.bit.SOC_SEQ2 = 1U;

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

    我从您的描述中了解到通道 B1-B7是悬空的。 对于浮动通道、您不应有任何转换值预期。

    当对浮动通道进行采样时、ADC 将转换 S/H 电容器上的残余电荷。 S/H 电容器没有预调节、因此其残余电荷在器件之间无法预测。

    Tommy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,我认为这可能是一件事--难怪我在 ADCINB0上准确地读数--