Например TDA7294

Форум РадиоКот • Просмотр темы - STM32L часы реального времени
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 04:17:54

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


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



Начать новую тему Ответить на тему  [ Сообщений: 23 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32L часы реального времени
СообщениеДобавлено: Вт июн 28, 2022 17:58:37 
Встал на лапы

Карма: -9
Рейтинг сообщений: 18
Зарегистрирован: Сб июн 04, 2022 05:21:07
Сообщений: 148
Рейтинг сообщения: 0
Несъемные батарейки рассчитаны примерно на 10-12 лет, а это как раз срок службы современной техники. Например электронные бытовые газовые счетчики - с распаянной несъемной батарейкой на 12 лет. После этого счетчик выкидывается и ставится новый.
Так же встречал микросхемы памяти NVRAM со встроенной батарейкой на 10 лет https://www.compel.ru/lib/53938?ysclid= ... g717752229

Микросхемы RTC есть как с отдельным выводом Vbat, так и без него. Вместо батарейки может стоять несъемный Ni-Cd аккум с "капельной" подзарядкой через микросхему RTC или ионистор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32L часы реального времени
СообщениеДобавлено: Пт фев 17, 2023 23:34:45 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 149
Откуда: Самара
Рейтинг сообщения: 0
На просторах интернета нашел ввроде доступным языком описанную реализацию этих самых волшебных часов.
Спойлер
Код:
typedef struct sRTC_struct{
       unsigned year : 6;
       unsigned month : 4;
       unsigned week : 3;
       unsigned date : 5;
       unsigned hour : 5;
       unsigned minute :6;
       unsigned sec : 6;
}RTC_struct;
volatile RTC_struct rtc;
void RTC_Init(RTC_struct volatile *value)
{
   RCC->CSR |= RCC_CSR_LSION;
   while ( !(RCC->CSR & RCC_CSR_LSIRDY) ){}
   RCC->APB1ENR |= RCC_APB1ENR_PWREN;
   PWR->CR |= PWR_CR_DBP;
   RCC->BDCR |= RCC_BDCR_RTCSEL_1;
   RCC->BDCR |= RCC_BDCR_RTCEN;
   RTC_Update(value);   
}
void RTC_Update(RTC_struct volatile *value)
{
   uint32_t TR, DR;
   RTC->WPR = 0xCA;
   RTC->WPR = 0x53;
   RTC->ISR |= RTC_ISR_INIT;
   while( !(RTC->ISR & RTC_ISR_INITF) ){};   
   RTC->PRER = (uint32_t)(99 << 16);
   RTC->PRER |= (uint32_t)399;
   TR = ( ((uint32_t)(value->hour/10*16 + value->hour%10) << 16) | ((uint32_t)(value->minute/10*16 + value->minute%10) << 8) | ((uint32_t)value->sec/10*16 + value->sec%10) );
   RTC->TR = TR;
   DR = (uint32_t)(value->year/10*16 + value->year%10) << 16  | (uint32_t)(value->week/10*16 + value->week%10) << 13 | (uint32_t)(value->month/10*16 + value->month%10) << 8 | (uint32_t)(value->date/10*16 + value->date%10);
   RTC->DR = DR;
   RTC->ISR &= ~(RTC_ISR_INIT);
   RTC->WPR = 0xFF;
}

И вроде все хорошо, но есть один *** нюанс. Я не могу вызвать эту самую инициализацию.
Вот как я себе вижу это
в майне -
Код:
volatile RTC_struct rtn;
 rtn.year = 23;// RTC_Init(rtc);
    rtn.month = 4;
    rtn.week = 3;
    rtn.date = 17;
    rtn.hour = 15;
    rtn.minute = 45;
    rtn.sec = 30;
    RTC_Init(rtn.date);

От балды забил, для пробы. Ошибка синтаксиса вылазит Error[Pe167]: argument of type "unsigned int" is incompatible with parameter of type "RTC_struct volatile *" C:\Users\Pagan\Desktop\F411\main.c 55
Я пробовал через указатель, пробовал отдельно составляющие структуры закидывать. Может кто то подсказать ???


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32L часы реального времени
СообщениеДобавлено: Пт фев 17, 2023 23:56:18 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
RTC_Init(&rtn);


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 23 ]    , 2

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


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

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


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

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


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