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.

[参考译文] MSP430FR5994:MSP430FR5994 ADC12

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1335722/msp430fr5994-msp430fr5994-adc12

器件型号:MSP430FR5994

尊敬的:

我无法正确读取 MSP430FR5994的 ADC12。

我在 MSP430FR5994的 ADC12 AN15的输入端使用02电阻器作为分压器。

源极电压:0至16V
R1:13k
R2:2k4

ADC 分辨率:12位(0至4096)

VREF:2.5V 内部

模拟7.90V 的源电压时、ADC 输入电压应为1.231V、ADC 读数仅= 29。 其中该值必须为 ADC = 2015。

符号存储器
本地      数据   变量    值   类型
0x001D6E 0x001D ADC_AN15 29      无符号整型

我是否执行了一些配置错误? 有人能告诉我应该怎么做吗?

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Definição da Porta P3 como Leitura do Canal Analógicos ó n AN15 //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

P3SEL0 |=(ADC15);// P3.2 e P3.3选项选择 P3SEL0 = 1 // Habilita o ADC12 dos Canais AN14 P3.2 e AN15 P3.3
P3SEL1 &=~(ADC15);// P3.2 e P3.3选项选择 P3SEL1 = 0 // Selectiona Módulo Primário 舒适 Tabela I/O 功能选择= 0 | 1

//默认情况下,REFMSTR=1 => REFCTL 用于配置内部基准
while (REFCTL0 & REFGENBUSY);//如果 ref 发生器忙、请等待

REFCTL0 |= REFVSEL_2 | REFON;// Habilita e Selectiona Referência Ω Interna REF = 2.5V

//配置 o 注册人 do Conversor ADC12
ADC12CTL0 = 0;// Zera o Registrador do Conversor ADC12
ADC12CTL1 = 0;
ADC12MEM0 = 0;// Reseta A Memória DO ADC12
ADC_AN15 = 0;// Reseta A Variável ADC_AN15
ADC12CTL0 = ADC12ON + ADC12SHT0_10;//千兆 o ADC e Attiva 512个 ADC12CLK 周期
ADC12CTL1 = ADC12SHP;// utilizar temporizador de amostragem
ADC12CTL2 |= ADC12RES_2;// resultado de conversão de 12位
ADC12MCTL0 = ADC12INCH_15 + ADC12VRSEL_1;// AN15 ADC 输入选择、Vref = 2.5V

while (! (REFCTL0 & REFGENRDY));//等待基准发生器 稳定


for (volatile unsigned int i = 0x3600;i;i-);// Ataso para o Nova Inicialização de Conversão ó n do ADC12


// Efetua UMA Leitura do ADC12 AN15 P3.3
ADC12CTL0 |= ADC12ENC;// Habilitya Conversão Ω DO ADC12
ADC12CTL0 |= ADC12SC;//尼西亚 a Conversão í a do ADC12


// Aguarda t é rmino da Conversão ó n ADC12
while (ADC12CTL1和 ADC12BUSY)// Conversão 范围?
{
___ no_operation ();// Não FAZ NADA


ADC_AN15 = ADC12MEM0 & 0x0FFF;// Carrega Variável com 值执行 ADC12 AN15 P3.3

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

    > P3SEL1 &=~(ADC15);// P3.2 e P3.3选项选择 P3SEL1 = 0 // Selectiona Módulo Primário 舒适 Tabela I/O 功能选择= 0 | 1

    根据数据表(SLASE54D)表9-27、若要选择 A15、您需要 PSEL=11。 (我假设 ADC15 = BIT3。)。 请尝试改用:

    > P3SEL1 |= (ADC15);// P3.2 e P3.3选项选择 P3SEL1 = 1 // Selectiona Módulo Primário convery Tabela I/O function selection = 0 | 1

    ----------------

    >  ADC12CTL0 = ADC12ON + ADC12SHT0_10;//千兆 o ADC e Attiva 512个 ADC12CLK 周期

    对于 A15、您应该设置 SHT1而不是 SHT0 [请参阅用户指南(SLAU367P)表34-4]。 请尝试改用:

    >  ADC12CTL0 = ADC12ON + ADC12SHT1_10;//千兆 o ADC e Attiva 512个 ADC12CLK 周期

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

    亲爱的布鲁斯:

    非常感谢您通知我!

    问题迎刃而解!

    P3SEL0 |=(ADC15);// P3.3选项选择 P3SEL0 = 1 // Habilita o ADC12 do Canal AN15 P3.3
    P3SEL1 |=(ADC15);// P3.3选项选择 P3SEL1 = 1 // Selectiona Módulo Primário converence Tabela I/O function selection = 0 | 1

    ADC12CTL0 = ADC12ON + ADC12SHT1_10;                    //千兆 o ADC e ATIVA 512 ADC12CLK 周期