Перейти к содержанию
    

Большая погрешность RTC.

RTC на STM32L475. Настроил, занес время, через пару часов время убежало на 2 минуты. кристал на плате внешний NX3215SA-32.768K.

Это у кристала такая погрешность? Или RTC у них для понтов а не для реальной работы с ним?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 minutes ago, vadon said:

Есть уверенность в том что он работает от него, а не от внутреннего на 40 кГц?

хм... че то я не уверен. я взял конфигурация из их примера

int RTC_ConfigureClock(void)
{
  uint32_t Timeout;
 
  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR);
  LL_PWR_EnableBkUpAccess();
  
  #ifdef RTC_CLOCK_SOURCE_LSE
  /* Enable LSE only if disabled.*/
  if (LL_RCC_LSE_IsReady() == 0)
  {
    LL_RCC_ForceBackupDomainReset();
    LL_RCC_ReleaseBackupDomainReset();
    LL_RCC_LSE_Enable();
    
    Timeout = LSE_TIMEOUT_VALUE_;
    while (LL_RCC_LSE_IsReady() != 1)
    {
        Timeout --;
        Delay_ms(1);
       if (Timeout == 0)
       {
        /* LSE activation error */
          return RTC_ERROR;
       } 
    }
    LL_RCC_SetRTCClockSource(LL_RCC_RTC_CLKSOURCE_LSE);
  }
#endif
  
    return RTC_OK;
}

но условие  if (LL_RCC_LSE_IsReady() == 0) не истинно, LSE уже включен и конфигурация не происходит. я не понимаю логику этого условия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как нарисовано на плате подключение кварца к МК?

Документы AN4759 и AN2867 изучались?

По идее, внутри LL_RCC_LSE_IsReady спрятана маска для соответствующего флага в RCC, можно в отладчике регистры посмотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

38 minutes ago, Behram said:

Как нарисовано на плате подключение кварца к МК?

Документы AN4759 и AN2867 изучались?

По идее, внутри LL_RCC_LSE_IsReady спрятана маска для соответствующего флага в RCC, можно в отладчике регистры посмотреть.

я убрал это условие  if (LL_RCC_LSE_IsReady() == 0). получается что сейчас RTC подключается правильно, к LSE. но погрешность все равно такая же.

ноги кварца подключены через 5.1 пико на землю.

а пины PC14-PC15 по дефолту идут как альтернативные или их нужно конфигурировать под кристал?

 

AN2867  - кристал дизайн гид, я работаю на плате от ST, я их буду учить PCB разводить? :)

AN4759  - en.x-cube-rtc - 400 мега - даже страшно открывать. :)

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

25 minutes ago, vadon said:

Нет не получается, посмотрите прямо в регистрах нужные значения clksource

ну не знаю - в RCC->BDCR - LSERDY = 1 LSEON = 1 RTCEN = 1 RTCSEL = 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, jenya7 сказал:

. получается что сейчас RTC подключается правильно, к LSE. но погрешность все равно такая же. 

А в регистрах что? Все мультиплексоры в правильном режиме? Удобно в CubeMX строить clock tree и в удобном виде видеть нужные позиции мультиплексоров и множителей/делителей.

 

1 час назад, jenya7 сказал:

AN2867  - кристал дизайн гид, я работаю на плате от ST, я их буду учить PCB разводить? :)

Тогда должно быть все ок.

 

1 час назад, jenya7 сказал:

AN4759  - en.x-cube-rtc - 400 мега - даже страшно открывать. :)

Удивительно.

2052910658_.thumb.PNG.342e81251c3588154e33cb7aab9d7696.PNG

Изменено пользователем Behram

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, Behram said:

Удивительно.

 

у них там код на 400 мега прилагается к документу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, Behram said:

А если МСО переключить на LSE, будет видно отклонение частоты от номинальной?

у меня нет доступа к этому пину на этой плате, но скоп мне показывает какой то мусор на кристале. может надо пины отконфигурировать под кристал?

 

похоже нет осциляции на кристале :(

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Behram said:

Если нет колебаний, почему тогда LSERDY выставляется в единицу?

не знаю. загадка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как вы проверили наличие колебаний, осциллографом? Если кварц мелкий, то емкость щупа вполне может внести искажения в его работу, можно попробовать тыкнуть через конденсатор в несколько пикофарад.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, Behram said:

А как вы проверили наличие колебаний, осциллографом? Если кварц мелкий, то емкость щупа вполне может внести искажения в его работу, можно попробовать тыкнуть через конденсатор в несколько пикофарад.

обычно осциляция видна, пусть искаженная но видна.

попробую перейти на внутрений. посмотрим какая там погрешность.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...