реклама на сайте
подробности

 
 
> почему так много ест?, G2553, LPM3
khomin
сообщение Jan 25 2015, 08:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 14-06-14
Пользователь №: 81 950



Здравствуйте.
Осваиваю MSP430, развел и спаял простенькую платку под MSP430G2553.
Пробую режимы пониженного потребления.
Все очень странно.
Написал тест, тактирование таймера от ACLK (внешний кварц 32768), после прерывания зажигается светодиод, гаснет и снова уход в LPM).
Но потребление при это остается очень высоким (~40 мкА). Причем на плате уже ничего лишнего нет, все распаял, флюс отмыл.
Если выводы настроить на вход с подтяжкой к плюсу, потребление снижается, это совершенно не понятно, так как выводы висят не подключенные.
Заметил, что от прикосновения пальцем - так же сильно плывет потребление, иногда может опустится до 2мка (только если выводы подтянуты в верх, хз), и тут же начать "плыть" куда угодно, если палец убрать.
С STM32L152 таких проблем не было, тестер показывал стабильные 2 мка.
В общем я сильно расстроен, возможно руки не оттуда, может еще чего ...
упс, на схеме нет резистора 47кОм на RST, его так же припаял
CODE

int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
ClockInit();
PeriphInit();
status = 1;
TACTL = TASSEL_1 + MC_2 + TAIE; // ACLK, contmode, interrupt

while (1)
{
if(status!=0)
{
LEDS_PxOUT &=~ LED1_PxBIT;
Delay(500);
LEDS_PxOUT |= LED1_PxBIT;
//WATER_PxREN &=~ (WATER1_PxBIT | WATER2_PxBIT);
Delay(1);
//WATER_PxREN |= (WATER1_PxBIT | WATER2_PxBIT);
status = 0;
}
else
__bis_SR_register(LPM3_bits + GIE);
}
}

#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A(void)
{
switch( TA0IV )
{
case 2: break; // CCR1 not used
case 4: break; // CCR2 not used
case 10:
break;
}
status = 1;
__bic_SR_register_on_exit(LPM3_bits);
}

void PeriphInit(void)
{
// Leds
LED_PxDIR |= LED1_PxBIT;
LEDS_PxOUT &=~ LED1_PxBIT;
LED_PxDIR |= LED2_PxBIT;
LEDS_PxOUT &=~ LED2_PxBIT;
// SB1
SB1_PxDIR &=~ SB1_PxBIT;
SB1_PxOUT |= SB1_PxBIT;
// Tamper
TAMPER_PxDIR &=~ TAMPER_PxBIT;
TAMPER_PxOUT |= TAMPER_PxBIT;
// watert
WATER_PxREN |= (WATER1_PxBIT | WATER2_PxBIT);
}

void ClockInit(void)
{
DCOCTL = 0;
BCSCTL1 = XT2OFF;
DCOCTL = CALDCO_1MHZ;
BCSCTL1 |= DIVA_1; // ACLK, 32768
BCSCTL3 = XCAP_3;
}

Схема:



Сообщение отредактировал khomin - Jan 25 2015, 08:26
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sasa_c
сообщение Feb 17 2015, 06:55
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 14-11-09
Пользователь №: 53 615



Добавлю, что подтягивающие резисторы к +3,3V, уменьшают потребление. Прямое подключение вывода к +3,3V, находящегося в режиме ввода, также уменьшает потребление. Но в последнем случае, если на соседние порты выводиться ВЧ сигналы, потребление растёт примерно на 0,7 микроампер. Подтяжка к 0 также приводит к некоторому увеличению тока примерно на 0,2 микроамперы. Поэтому для энергосбережения лучший вариант, это установка лог.1 на портах ввода вывода или внешняя подтяжка к 3 вольтам. Измерения проводил на MSP430F417 вольтметром В7-82, в режиме накопления данных.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 00:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01344 секунд с 7
ELECTRONIX ©2004-2016