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.
大家好、
我刚刚开始处理一个由离开的同事编写的项目、我仍然是 MSP430的初学者。 我正在尝试将他的代码与具有不同板载 MSP430连接布局的较新版本 PCB 配合使用。
之前在引脚4上有一个分压器模拟输入读数、但它切换到了新 PCB 上的引脚10 (我认为它们没有这样做)。 这是数据表上的 VeREF-引脚... 我是否可以通过任何方式读取其中的模拟输入、或者我需要修补 PCB? 谢谢!!
您可以通过 ADC 通道9阅读 Veref-[参考用户指南(SLAU208Q)表28-8]。
如何在固件中设置? 由于在数据表中、A0:7引脚设置非常简单、请参阅表9-62
但是、从引脚10读取似乎只允许您在表9-60中为 ADC 设置外部 Vref。 这里没有模拟输入引脚、对吧?
UG 表28-8似乎表示您应该将引脚配置为 Veref-(PSEL=1、REFOUT=0)、然后设置 ADC12INCH=9。 数据表(SLAS700E)表9-60注(5)确保将其配置为适合模拟引脚。
数据表第8.43节似乎将 Veref-限制为<1.2V、但注意(3)指出、该限制仅适用于实际使用 Veref-的情况。
说明显而易见:将引脚10用作实际的 Veref-可能不有用、即您仅限于 ADC12SREF<4。
我不太熟悉 ADC 操作。 我尝试将引脚10设置为模拟输入和 I
P5DIR |= ANALOG_TEMP_BIT;P5SEL |= ANALOG_TEMP_BIT;P5REN &=~ANALOG_TEMP_BIT;
ADC12MCTL9 = 0b00001001;
我不确定这是正确的做法、尤其是将 ADC12MCTL9的3:0位置为 9、我正在尝试激活 ADC 通道9、但 在将0x9位置为寄存器#9时出现了错误和冗余... 您能帮我解决这个问题吗? 谢谢!
示例 msp430f665x_adc_08.c 执行的操作与所需的操作类似。
https://dev.ti.com/tirex/explore/node?node=AKvzYkIK23d9zfxaMA-NXQ__IOGqZri__LATEST
奇怪的是、该示例甚至没有设置 P5SEL (看起来应该是这样的)。 您不应设置 P5DIR、尽管这可能无关紧要。
我还没有使它发挥作用。 MSP 永远不会储备 ADC ISR 矢量、我不明白为什么。
该示例的目的是将 Vref 引脚作为模拟输入、并将 VCC 和 VSS 设置为新的 ADC 基准? 再次感谢您的帮助
该示例使用 CONSEQ=3和 MSC=1、因此 ADC (自主)以尽可能快的速度对通道进行转换。 您可能不会这样做、但我想它会提供一个方便的演示。 您可以查看结果[]("Expressions"窗口)或 ADC12MEM1 ("Registers"窗口)以查看转换后的值。
正如您所说、它使用 SREF=0 (Vcc/VSS)。 查看用户指南(SLAU208Q)图28-1、我看不到通过设置 ADC12SREF_1无法使用内部基准(1.5/2.0/2.5V)的任何原因。
这可能是在当前代码库中查找 ADC 代码的好时机、这可能与示例类似。 我怀疑您只需更改之前电路板使用的通道的 ADC12INCH 设置。
除了我之前提到的 PSEL 之外,我在这个例子中注意到的另一件事是采样/保持时间 SHT0被设定为15或1024个周期,这真的是一个很长的时间--当 ADC 时钟 ADC12SSEL=0 (5MHz)时,这个时间超过200usec。 我将假定这仅用于演示、因为图28-1未显示任何会干扰信号传输的内容。 我希望您可以使用之前使用的代码中的任何 SHT0值。