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.
工具/软件:Code Composer Studio
您好,
我使用的是 msp430fr6972。
我正在使用 LCD 程序。
在执行程序后、我检查电流、
我发现它非常高(>250uA)。
它是定制板。
使用的晶体为32768。
LCD:MUX 4和22引脚(高达 S22)。
我的计划是:
LCD 函数为==== void lcd_init (void) { unsigned int i; P6SELC |= 0x7f; // LCDCCTL0 = LCD4MUX + LCDDIV_26 + LCDPRE1 + LCDLP;//LCD 控制、LCD 除以27、LCD 频率预分频器2… 连接90uA // LCDCCTL0 = LCDDIV_26 | LCDPRE1 |LCD4MUX | LCDLP;// LCD 控制,LCD 除以27,LCD 频率预分频2 LCDCPCTL0 |= 0xFFFF;//段0-15 LCDCPCTL1 |= 0x007F;// LCDCPCTL0 = 0x40,无电荷泵|连接的 LCDC16-0x40段/无电荷电容|无电荷电荷电荷电压为 LCDCCTL。 //LCDCCPCTL |= LCDCPCLKSYNC; LCDCMEMCTL = LCDCLRM;//清除 LCD 存储 器 LCDCCTL0 |= LCDON; for (i=0;i<12;i++) LCD[i]= 0x00; } 具有计时器的主函数========================================================================================================================================================================================================================== char start_condition = 9; char* LCD = LCDMEM; const unsigned char LCD_num[12]={ 0xEB、// 0 0x60、// 1 0xAD、// 2 0xE5、// 3 0x66、 // 4 0xC7、// 5 0xCF、// 6 0x61、// 7 0xEF、// 8 0xE7、 //9 0x6f、// a }; void lcd_init (void); int main (void) { WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器 /PIN define============================================================================================================================================================================================================================================================================================================================================================================================================================================================= PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式 P1DIR= 0xF0;P2DIR = 0x0F;P3DIR= 0xC0;P4DIR = 0xFC;P5DIR=0x80; P7DIR= 0x1F; P1OUT= 0xF0;P2OUT = 0x0F;P3OUT= 0xC0;P4OUT= 0xFC; P5OUT=0x80;P7OUT=0x1F; //timer===================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== TA0CCTL0 |= CCIE; TA0CCR0 = 32767;// 1秒计时器 TA0CTL |= tassel__ACLK |MC_1 | ID_2;//TimerA 控制寄存器,最多 CCR、ID=0、分频器1、 LCD_INIT (); start_condition = 8; //__bis_SR_register (GIE); while (1) { __bis_SR_register (LPM3_bits +GIE); //返回0; } // *计时器中断======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== * / #pragma vector = TIMER0_A0_Vector __interrupt void Timer0_A0_ISR (void) { if (start_condition!= 0){ LCD[0]= LCD_num[start_condition]; // TA0CCR0 = 32767; start_condition--; LPM3_exit; }
请检查我的 LCD 功能、
请帮帮我。
此致、
Srijit。
你好、Srijit、
代码看起来正常。 MSP430FR6972数据表的第5.8节规定 MSP430应使用大约~5-6 uA 的电流。 在启用计时器的情况下、可能会稍微多一些。 因此、我认为最好的情况是 MSP430应围绕您的7.5uA 目标。
问题是电路板上的其他东西也可能会拉电流。 了解 MSP430代码是否已优化的唯一实际方法是仅测量 MSP430的功耗、而不是测量整个电路板的功耗。 这是了解额外的200uA 是否被 LCD、稳压器或其他东西拉取的唯一方法。
您能否仅测量 MSP430功耗?
您认为电路板上还有其他东西在拉电流吗?
谢谢、
JD
您好!
我已收到所需的值。
非常感谢您的帮助。
此致、
Srijit。