主题中讨论的其他器件: MSP430F6638
您好!
我们正在尝试使用超级电容器作为 VBAT 引脚上 RTC 的备份。 在 MSP430F5338中、A12通道(在 ADC 中)专门分配用于监控超级电容器电压。 在进行 VBAT 测量时、ADC (A12)的电压源是多少?需要配置哪些寄存器才能使用 A12通道进行电池测量? (我们在 BAKCTL 寄存器中启用了 VBAT 测量寄存器)
如果不从外部将超级电容器连接到 A12、则不会进行超级电容器充电。
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.
您好!
我们正在尝试使用超级电容器作为 VBAT 引脚上 RTC 的备份。 在 MSP430F5338中、A12通道(在 ADC 中)专门分配用于监控超级电容器电压。 在进行 VBAT 测量时、ADC (A12)的电压源是多少?需要配置哪些寄存器才能使用 A12通道进行电池测量? (我们在 BAKCTL 寄存器中启用了 VBAT 测量寄存器)
如果不从外部将超级电容器连接到 A12、则不会进行超级电容器充电。
您好、JH、
感谢您的回答。 我们是否需要设置任何寄存器来单独将 AVCC 连接到 A12或 BAKADC 设置就足够了?
此外、我们还面临仅在 VCC 电源下工作的 RTC_b 模块等问题。 无法在自动切换模式下切换至 VBAT。 我们正在正确配置 BBS 寄存器。 我们需要考虑其他任何寄存器吗? 如果需要、也请为此建议 SVSH 设置。 我们使用的是3.3V VCC、超级电容器可以充电至3.3V
您好!
下面是一些用于配置 ADC 以测量 VBAT 的示例代码。
// MSP430F5338 // -------- // /|\| | // || |超级电容器 // -|RST VBAT |--|-+ // | | | // | | v //// 使用 Code Composer Studio v7.3构建 //********* #include #define VRP 3.3 #define VRN 0 int main (void) { WDTCTL = WDTPW | WDTHOLD; //停止看门狗定时器 BAKCTL = BAKADC; // Vbat ADC 测量被启用 ADC12CTL0 = ADC12SHT12 | ADC12ON; // 16个 ADC12CLK 周期的采样保持时间 //由 ADC12SC 触发 //打开 ADC12 ADC12CTL1 = ADC12SHP; //使用采样定时器 //初始化输入通道 A12到 ADC12MEM0 ADC12MCTL0 = ADC12INCH_12的转换; // VR+=AVcc 和 VR-=AVss //输入通道 A12 ADC12IE = ADC12IE0; //为 ADC12MEM0 ADC12CTL0启用中断|= ADC12ENC; //启用转换 while (1) { ADC12CTL0 |= ADC12SC; //开始转换 _bis_SR_register (LPM0_bits + GIE);// LPM0、ADC12_ISR 将强制退出 __no_operation(); //对于调试 器} #if defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__) #pragma vector = ADC12_vector __interrupt void ADC12_ISR (void) #elif defined (__GNU__) void __attribute__((interrupt (ADC12_vector)#if Compiler (void)(void))#define_ISR (void)错误! #endif { volatile float VBAT; switch (_even_in_range (ADC12IV、36)) { case 0:break; //向量0:无中断 情况2:中断; //向量2:ADC 溢出 情况4:中断; //向量4:ADC 时序溢出 情况6: //向量6:ADC12IFG0 VBAT = 3*ADC12MEM0*(VRP - VRN)/4095 + VRN; _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//退出活动 CPU 中断; 案例8:中断; //向量8:ADC12IFG1 大小写10:break; //向量10:ADC12IFG2 大小写12:break; //向量12:ADC12IFG3 case 14:break; //向量14:ADC12IFG4 情况16:中断; //向量16:ADC12IFG5 情况18:中断; //向量18:ADC12IFG6 案例20:中断; //向量20:ADC12IFG7 case 22:break; //向量22:ADC12IFG8 case 24:break; //向量24:ADC12IFG9 大小写26:break; //向量26:ADC12IFG10 case 28:break; //向量28:ADC12IFG11 case 30:break; //向量30:ADC12IFG12 大小写32:break; //向量32:ADC12IFG13 case 34:break; //向量34:ADC12IFG14 case 36:break; //向量34:ADC12IFG15 默认值:break; } }
您是否有机会查看描述如何将 RTC_B 模块与电池备用电源配合使用的应用报告? 可 在此处找到。建议使用驱动程序库来设置器件 Vcore 电平、该电平也将设置适当的 SVSH 值。 本文档还提供了使用 RTC_B 模块的示例代码。
此致、
Ryan