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.

[参考译文] MSP430F6659:CAN#39;t Get ADC12在 MSP430F6659上工作

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/746376/msp430f6659-can-t-get-adc12-working-on-msp430f6659

器件型号:MSP430F6659
主题中讨论的其他器件:MSPWAREINA126

你(们)好

我获得了所有 FFF、并尝试了所有不同的设置命令、包括 MSPware 中的示例。 下面是我尝试的示例代码。 我使用128ms 计时器 A 来启用模数 如果我中断 A/D ISR 并查看寄存器 、例如 ADC12MEM1、那么即使引脚上的电压为1V、它也始终为0xFFF。  

 有什么线索提示正在发生什么情况?

谢谢、


void main (void)
{WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
P6SEL |=0x3F;//0-5 A/D
P6OUT |=0x20;//保持上电
//为间隔计数设置基本层摄影器 A
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
TA1CCTL0 = CCIE;// CCR0中断被启用
TA1CCR0 = 4096;
TA1CTL = tassel_1 + MC_1 + TACLR;// A`CLK、upmode、clear TAR
init_a_D ();//初始化 A/D
_EINT();
while (1);

void init_a_D (void)//函数 init A/D

REFCTL0=0;//REFON+REFOUT;
ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_2+ADC12SHT1_2+ADC12REFON+ADC12REF2_5V;//打开 ADC12,设置采样时间
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1_ADC12SSEL_1;//单序列
ADC12CTL2 = ADC12REFOUT+ADC12RES_2;

ADC12MCTL0 = ADC12INCH_0+ADC12SREF_1;//
ADC12MCTL1 = ADC12INCH_1_ADC12SREF_1;//
ADC12MCTL2 = ADC12INCH_2+ADC12SREF_1;
ADC12MCTL3 = ADC12INCH_3+ADC12SREF_1;//
ADC12MCTL4 = ADC12INCH_4+ADC12SREF_1;//
ADC12MCTL12 = ADC12INCH_12+ADC12SREF_1;//
ADC12MCTL13 = ADC12INCH_13+ADC12SREF_1+ADC12EOS;//

ADC12IE = 0x08;//启用 ADC12IFG.3
ADC12CTL0 |= ADC12ENC;//启用转换

}//
//
#pragma vector=ADC12_vector
_interrupt void ADC12ISR (void)

结果[1]= ADC12MEM1;// Hi-Temp
结果[2]= ADC12MEM2;// Lo_Temp
结果[3]= ADC12MEM12;//
结果[4]= ADC12MEM13;// Ref_Temp
结果[5]= ADC12MEM0;//
结果[6]= ADC12MEM3;//
结果[7]= ADC12MEM4;//
}//end of a/d int 服务例程
//##############################
//timer int 设置为128msec ints
#pragma vector=Timer1_A0_vector
_interrupt void Timer1_A0_ISR (void)

ADC12CTL0 |= ADC12SC;//启用 a/d 中断
}//end

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

    [已删除。我遗漏了您的下一行代码。]

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 F5529 (Launchpad)上运行时、我看不到您的症状、这是 F6659的第一表象。 我没有1V 电源、但我尝试了3V3和0V。 悬空的 ADC 引脚提供了悬空读数。

    这不是解决方案、但可能是线索。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jerry Bucci、

    如果 Bruce 提供的线索不能为您解决问题、您能否在您的硬件上分享更多背景信息? 您是否正在使用 LaunchPad、如果是、哪一个? 如何为测量引脚提供1V 电压?

    谢谢、此致、
    最大
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将使用一个定制电路板、该电路板将用于制造。 我过去在其他低端 MSP430上使用过类似的软件、因此我知道它基本上可以正常工作。 1V 源自微控制器的 Vref 2.5。 我通过电压跟随器对其进行分压、以作为电路板上某些 INA126运算放大器的基准。

    我认为这可能是一个硬件问题。 问题-所有 AVSS 接地端是否都连接在 IC 内部? 这是一个原型板、当我第一次打开板时、有几个接地未连接(由于我在图稿中的错误)。 我用电线修复了它们、但我想知道当它们浮动时、我是否损坏了芯片内部的东西。

    谢谢

    Jerry
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、大家-我发现了问题、它在我的电路中、而不是软件中。 所有电压均高于2.5V、因此我当然会得到 FFF。 我认为输入上的1V 是在分压器之后的、但引脚的输入实际上大约为2.8V。
    不过、我非常感谢您的回答!