主题中讨论的其他器件: MSP430WARE
尊敬的 TI 团队:
我 正在寻找使用 msp430fr2311将 ADC 原始数据转换为毫伏代码转换的示例代码实现。
有什么想法吗?
此致、
Walter
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.
尊敬的 TI 团队:
我 正在寻找使用 msp430fr2311将 ADC 原始数据转换为毫伏代码转换的示例代码实现。
有什么想法吗?
此致、
Walter
您好、Walter、
从 ADC 数据转换为等效输入电压时、您需要知道基准电压(VREF)和 ADC 分辨率(n)。 例如、最小 LSB 大小、单位为伏特= VREF /(2^n)= 1.5V /(2^10)= 1.465mV。 请记住、VREF 可能会有所不同(例如1.5V 或 DVCC)、具体取决于器件和/或设置。 此外、对于相同的 ADC 分辨率(n)、较低的 VREF 会导致较低的 LSB 大小、但输入范围较小并限制为 VREF。 查看 使用 MSP430FR58xx/FR59xx/68xx/69xx ADC 进行设计 应用手册中的第2.1.2节。
您需要的应该是"430m fr231x_ADC10_05.c"代码示例。 您可以在 CCS 中找到它、方法是转到 TI Resource Explorer > Software > MSP430Ware > Devices > MSP430FR2XX_4XX > MSP430FR2311 > Peripheral Examples > Register Level。 您可能需要安装 MSP430Ware 才能将项目导入 CCS 工作区。 我已将其复制到下面以供您参考。
msp430fr231x_ADC10_05.c
/*-版权所有-、BSD_EX *版权所有(c) 2014、德州仪器(TI)公司 *保留所有权利。 * * 只要 符合以下条件*、允许以源代码和二进制形式重新分发和使用: * *源代码的重新分发必须保留上述版权 声明*、此条件列表和以下免责声明。 * ***二进制形式的再发行必须在 *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。 * ***未经 事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。 * *本软件由版权所有者和贡献者"按原样"提供 *、 不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或 *贡献者都不对任何直接、间接、偶然、特殊、 *模范、 或相应的损害(包括但不限于 *采购替代产品或服务;丧失使用、数据或利润; *或业务中断)、但出于任何责任理论 、*无论是在合同中、严格责任还是由于 使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他) 、*即使已获悉可能会发生此类损坏。 * *** * * MSP430代码示例免责声明 * * MSP430代码示例是自包含的低级程序 ,通常*以 高度*简明的方式演示单个外设功能或器件功能。 为此、代码可能依赖于器件的加电默认 值*寄存器值和时钟配置等设置、 并且在组合多个示例中的代码时必须*小心以避免潜在的副作用 *。 另请参阅 www.ti.com/grace 了解 GUI、并参阅 www.ti.com/msp430ware *了解外设配置的 API 函数库方法。 * *--/版权--* //********* // MSP430FR231x 演示- ADC、LO_Batt、如果 AVcc < 2.50V、则设置 P1.0 // 说明:在 A13 (Vref)上进行单个采样、且基准设置为 // DVCC。 软件置位 ADC10SC 来启动采样和转换 //- ADC10SC 在 EOC 上被自动清零。 一旦转换完成、 //下面的等式被用来计算 DVCC =(1023 * 1.5)/ adcResult。 //如果 DVCC < 2.5V、P1.0置1表示 LO_Batt 条件、否则复位。 // // MSP430FR2311 // -------- // /|\| XIN|- // || | // -|RST XOUT|- // | | // |A13 (Vref) P1.0|->LED // Darren Lu // Texas Instruments Inc. // 2015年7月 //使用 IAR 嵌入式工作平台 v6.30和 Code Composer Studio v6.1构建 //********* #include unsigned int adcResult; //临时存储 ADC 值 //从 ADCMEM0 int main (void) {读取 volatile unsigned long dvccValue; //计算出的 DVCC 值 WDTCTL = WDTPW | WDTHOLD; //停止 WDT P1DIR |= BIT0; //将 P1.0设置为输出方向 //禁用 GPIO 上电默认高阻抗模式以激活 //先前配置的端口设置 PM5CTL0 &=~LOCKLPM5; //配置 ADC10 ADCCTL0 &=~ADCENC; //禁用 ADC ADCCTL0 = ADCSHT_2 | ADCON; // ADCON、S&H=16 ADC 时钟 ADCCTL1 = ADCSHP; // ADCCLK = MODOSC;采样定时器 ADCCTL2 = ADCRES; // 10位转换结果 ADCIE = ADCIE0; //启用 ADC 转换完成中断 ADCMCTL0 = ADCINCH_13 | ADCSREF_0; // A13 ADC 输入选择= 1.5V 基准 // Vref = DVCC //配置 PMM 中的参考模块 PMMCTL0_H = PMMPW_H; //解锁 PMM 寄存器 PMMCTL2 |= INTREFEN; //启用内部基准 while (!(PMMCTL2 & REFGENRDY)); //轮询直至内部基准稳定 while (1) { ADCCTL0 |= ADCENC | ADCSC; //采样和转换开始 _bis_SR_register (LPM0_bits | GIE);//输入 LPM0、ADC_ISR 将强制退出 __no_operation(); //仅用于调试 //要计算 DVCC、使用以下公式 // DVCC =(1023 * 1.5)/ adcResult //以下公式被修改为仅使用整数 //使用浮点。 所有结果都需要除以100才能得到 //最终值。 // DVCC =(1023 * 150)/ adcResult dvccValue =(unsigned long) 1023 *(unsigned long) 150)/(unsigned long)(adcResult); if (dvccValue < 250) // DVCC < 2.50V? P1OUT |= BIT0; //将 P1.0 LED 设置为打开 其他 P1OUT &=~BIT0; //清除 P1.0 LED 熄灭 } } // ADC 中断服务例程 #if defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__) #pragma vector=adc_vector __interrupt void adc_isr (void) #elif defined (__GNU__) void __attribute__((interrupt (adc_vector))))) adc_isr #else error 编译器#void (void)! #endif { switch (__evo_in_range (ADCIV、ADCIV_ADCIFG)) { 案例 ADCIV_NONE: 中断; ADCIV_ADCOVIFG 案例: 中断; 案例 ADCIV_ADCTOVIFG: 中断; ADCIV_ADCHIIFG 案例: 中断; ADCIV_ADCLOIFG 案例: 中断; ADCIV_ADCINIFG 案例: 中断; ADCIV_ADCIFG 案例: adcResult = ADCMEM0; //读取 ADC 存储器 _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//从 LPM 退出 中断; 默认值: 中断; } }
此致、
James
您好、Marshall、
我认为它可以使用使用使用 AD13的1.5V 基准电压工作。
我想像下面那样了解基准趋稳的延迟。 我 在数据表或用户指南中找不到。
//配置引用
PMMCTL0_H = PMMPW_H;//解锁 PMM 寄存器
PMMCTL2 |= INTREFEN;//启用内部基准
_DELAY_CYCLES (400);//基准趋稳延迟??
它们是如何获得最佳值的。
此致、
Walter
您好、Walter、
数据表中应提供基准稳定时间。 然后、根据您的 CPU 时钟速度、您可以调整周期数以实现该稳定时间延迟。
此致、
James
您好、Walter、
根据 《MSP430FR4xx 和 MSP430FR2xx 系列用户指南》中的第21.2.3.1节"内部基准低功耗特性"、稳定时间小于或等于30us。
此致、
James