Например TDA7294

Форум РадиоКот • Просмотр темы - HALT Mode STM8L
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 17, 2024 02:26:15

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: HALT Mode STM8L
СообщениеДобавлено: Вт июл 04, 2017 12:06:57 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Здравствуйте, столкнулся с проблемой: не получается усыпить (или, по-другому сказать, добиться заявленного потребления ~1 мкА в halt mode) микроконтроллер STM8L051. Делаю следующее в main():

CLK_ICKCR |= 0x04; // Enable LSI (++set LSION)
CLK_SWCR = 0x02; // Enables switching the system clock (bit SWEN)
CLK_SWR = 0x02; // choose LSI

while(!(CLK_ICKCR&(1<<3))); // wait stabilisation LSI

CLK_ICKCR &=~ (1<<0); // Disable HSI

asm("halt");

Когда добавляю команду asm("halt"); - потребление становится ~350 мкА, без этой конструкции ~430 мкА. LSI (судя по частоте мигания светодиода) запускается и проц тактируется от него. Но, такое ощущение, что HSI не отключается и работает на частоте 2 МГц, судя по потреблению. В ДШ как раз указано 150 мкА/МГц. В чём может быть косяк? Как правильно отключить HSI?

P.S. Пишу и отлаживаю в IAR 2.2
P.P.S. Провёл доп. исследование: в майне воткнул просто команду asm("halt"); - при этом ток стал 576 мкА! Проверил на stm8s003f3 - с такой же конструкцией (без инициализации тактирования и отключения периферии) потребление не более 15 мкА!!! Кто-нибудь сталкивался с такой проблемой у STM8L051? Может, кривая ревизия? (у меня это буковка Z)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Ср июл 12, 2017 13:56:13 
Мучитель микросхем

Карма: 11
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 475
Откуда: Воронеж
Рейтинг сообщения: 0
Может оно ?
AN3147
By enabling the EEPM bit in the
FLASH_CR1 register, the Flash program memory automatically enters I DDQ mode when the
code is executed from RAM or when the device is in Wait mode.

И еще можно попробовать установить
If the SAHALT bit is set in the CLK_ICKCR register, the main regulator (MVR) is switched off
without taking into account that some high speed clocks may be used by the system.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Ср июл 12, 2017 20:45:42 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Попробовал установить WAITM и EEPM в FLASH_CR1 (и вместе, и по отдельности) - никакого эффекта не последовало. SAHALT бит в CLK_ICKCR и так по умолчанию установлен... Может, у кого есть подобный камень (stm8l051 или stm8l101)? Я брал их в Промэлектронике и слышал, что у них была бракованная партия атмеловских МК, может, это просто брак и я зря трачу своё и ваше время.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Пн июл 24, 2017 21:54:49 
Родился

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Пн июл 24, 2017 21:50:35
Сообщений: 5
Рейтинг сообщения: 0
Столкнулся с той же проблемой - теже цифры энергопотребления при переходе в halt. Если решение было найдено - просьба объяснить какое.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Вт июл 25, 2017 06:30:28 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
условия все выполнены?
Halt mode
In this mode the system clock is stopped. This means that the CPU and all the peripherals
clocked by SYSCLK or by derived clocks are disabled, except for the following cases:
• The HSI clock is not stopped if used by SWIM
• The system clock source is not stopped if a Flash/Data EEPROM write operation is in
progress
• The LSI clock is not stopped if used by the SWIM, the IWDG or if the “IWDG_HALT”
option bit is disabled.
In Halt mode, none of the peripherals are clocked and the digital part of the MCU consumes
almost no power.

Entering Halt mode
Before executing a HALT instruction, the application must clear all pending peripheral
interrupts by clearing the interrupt pending bit in the corresponding peripheral configuration
register. Otherwise, the HALT instruction is not executed and program execution continues.
However, the Halt procedure can be delayed if one of the following flags is set:
• SWBSY flag in the CLK_SWCR register
• EEBUSY flag in the CLK_CLK_REGCSR register
• RTCSWBSY flag in the CLK_CRTCR register
• BEEPSWBSY flag in the CLK_CBEEPR register when BEEP in Active-halt mode
enabled.
If SAHALT bit is set in the CLK_ICKCR register the main regulator (MVR) will be switched
off without taking into account that some high-speed clock may be used by the system.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Вт июл 25, 2017 13:18:11 
Родился

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Пн июл 24, 2017 21:50:35
Сообщений: 5
Рейтинг сообщения: 4
Так как в текущем проекте не получилось добиться требуемого потребления, то был создан проект с нуля, только чтоб проверить как в halt получить единицы микроампер. В проекте небольшая задержка реализована простым декрементом переменной. Это сделано только для того чтоб увидеть изменение в потреблении при переходе в halt.
железо - голый камень stm8l151f3, подключены только SWIM, +3V и GND;
среда - IAR Embedded Wornbench IDE;
код -
#include <iostm8l151f3.h>

long volatile cnt = 100000; // to make some delay


int main( void )
{
CLK_CKDIVR = 0x02; // Fhsi = Fcpu = 4 МГц
PWR_CSR2_ULP = 1; // Internal reference voltage stopped in Halt/Active-halt mode
CLK_ICKCR_SAHALT = 1; // main voltage regulator OFF in HALT/Active-halt modeв halt

PA_DDR = 0xFF; // all gpio - output
PB_DDR = 0xFF;
PC_DDR = 0xFF;
PD_DDR = 0xFF;

PA_ODR = 0x00;
PB_ODR = 0x00;
PC_ODR = 0x00;
PD_ODR = 0x00;



CLK_PCKENR1 = 0; // no peripfheral
CLK_PCKENR2 = 0;
CLK_PCKENR3 = 0;

while(cnt) // delay
{
cnt--;
}


CPU_CFG_GCR_SWD = 1; // disable SWIM

asm("HALT"); //go halt


while(1)
{

}
}

потребление до HALT - 1мА, после - 100мкА.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Вт июл 25, 2017 16:06:06 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
подключены только SWIM

может это: The HSI clock is not stopped if used by the SWIM
ссылочка по теме на всякий:
http://we.easyelectronics.ru/STM8/metod ... stm8l.html


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Ср июл 26, 2017 07:26:36 
Родился

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Пн июл 24, 2017 21:50:35
Сообщений: 5
Рейтинг сообщения: 0
Перед тем как уйти в HALT есть строка:
CPU_CFG_GCR_SWD = 1; // disable SWIM
здесь я отключаю SWIM чтоб быть уверенным что он не мешает уйти в HALT


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Ср июл 26, 2017 07:28:53 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Я пробовал физически отключать от программатора - в halt не уходит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Ср июл 26, 2017 08:07:07 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
остается попробовать вариант от сообщества, правда присутствует SPL
утверждается что 0.5uA:
Цитата:
Here's what I'm doing for the STM8L151 and it drops current to 0.5uA. This is full halt, but if you want to keep RTC active, just comment out those lines. One thing, you have to clear the wakeup INT before halt. Here, I'm using EXTI pin7 for wakeup.


Спойлер
Код:
Halt_Init();
EXTI_ClearITPendingBit(EXTI_IT_Pin7);
halt();

void Halt_Init(void)
{
   TIM1_Cmd(DISABLE);
   TIM2_CtrlPWMOutputs(DISABLE);
   TIM2_Cmd(DISABLE);
   TIM3_Cmd(DISABLE);
   TIM4_Cmd(DISABLE);
   ADC_Cmd(ADC1, DISABLE);
   PWR_PVDCmd(DISABLE);

   /* Switch to LSI as system clock source */
   /* system clock prescaler: 1*/
   CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
   CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI);
   CLK_SYSCLKSourceSwitchCmd(ENABLE);

   while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == 0);
   CLK_HSICmd(DISABLE);
   CLK_HSEConfig(CLK_HSE_OFF);

   /* Set STM8 in low power */
   PWR_UltraLowPowerCmd(ENABLE);
 
   /* Set GPIO in low power*/   
   GPIO_LowPower_Config();
 
   /* Stop RTC Source clock */
   CLK_RTCClockConfig(CLK_RTCCLKSource_Off, CLK_RTCCLKDiv_1);
 
   /* Stop clock RTC and LCD */     
   CLK_PeripheralClockConfig(CLK_Peripheral_RTC, DISABLE);
   CLK_PeripheralClockConfig(CLK_Peripheral_LCD, DISABLE);
}

void GPIO_LowPower_Config(void)
{
   /* Configure unused pins as output push-pull 0 to enter low power */
   /* Port A */

   GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);

   /* Port B not AIN */
   GPIO_Init(GPIOB, GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_7, GPIO_Mode_Out_PP_Low_Slow);

   /* Port B LEDs, so they don't flash at power on */
   GPIO_Init(GPIOB, GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5, GPIO_Mode_Out_PP_High_Slow);

   /* Port C not wakeup pin!! */
   GPIO_Init(GPIOC, GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6, GPIO_Mode_Out_PP_Low_Slow);

   /* Port D */
   GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);

   /* Port E */
   GPIO_Init(GPIOE, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);

   /* Port F */
   GPIO_Init(GPIOF, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
}

отседова https://community.st.com/thread/4894


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Ср июл 26, 2017 08:21:07 
Родился

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Пн июл 24, 2017 21:50:35
Сообщений: 5
Рейтинг сообщения: 0
Стыдно признаться, но после подпайки к плате разъема для дебага код начал работать (позор на мою седую голову :facepalm: )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Ср июл 26, 2017 08:32:35 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Можете пояснить, что особенного в этом разъёме? Я тупо использую линии контроллера SWIM и SWIM_RST для программирования и отладки. После прошивки отсоединяю от программатора и замеряю ток.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HALT Mode STM8L
СообщениеДобавлено: Чт авг 10, 2017 07:40:45 
Родился

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Пн июл 24, 2017 21:50:35
Сообщений: 5
Рейтинг сообщения: 0
Ничего особенного в этом разъеме нет. Это для то о чем вы писали выше. Просто при его пайке , похоже, пропаялся лучше камень. И все заработало. Дело было в плохой пайке. Код работает.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y