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

STM32 + RTC & BACKUP

Возникла проблема при реализации первого проекта на кристалле STM32F105VCT6.

После включения питания RTC инициализируется и начинает работать от внешнего генератора. Генерация на кварце устойчивая, частота в пределах нормы.

Часы работают нормально, данные в BKP регистры также пишутся и читаются. Батарейка (3,0В) подключена, напряжение присутствует непосредственно на ножке, рядом конденсатор 0u1.

Но стоит отключить основное питание (3,3В), как примерно через 2 секунды генерация на кварце срывается.

Соответственно при следующем включении в BKP регистрах пусто, а часы находятся в неинициализированном состоянии.

Всё так, как будто батарейки нет.

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

 

Ещё один момент:

Было несколько случаев, когда LSE не стартовал при включении питания. Удалось полечить так: Функция инициализации часов проверяет, запущены ли часы.

Если нет, то перед тем, как что-то делать (настраивать регистры часов), делается задержка 10ms. После этого генератор запускается надежно. Может кому поможет.

Моя версия такая: При нарастании напряжения питания процессор стартует при достижении 2,0В. Если при этом напряжении пытаться запускать LSE, то он может не стартовать. Причём когда напряжение нарастает до нормы, это уже не помогает запуску. А если подождать пока напряжение питание нарастёт до уровня 3,3В, то LSE легко запускается.

 

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


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

Vss и Vssa - должны иметь общую точку. Vdd и Vdda - даже при использовании двух отдельных стабилизаторов - должны иметь мостик связи через диоды (+-0,5v). При включении и выключении чипа на этих ногах напряжение должно расти синхронно. После может колбаситься на +- пол вольта - в зависимости от ваших стабов.

 

Похожий дефект во всей серии st с разнесёнными линиями Vdd и Vdda - логика делает ошибочное раннее/позднее переключение режимов внутренних стабов, отчего собственно и сбоит.

 

Ёмкость на батарейке лишняя, точнее: чем выше сопротивление батарейки - тем система устойчивее.

Нормальный человек подключает резервное питание через диод. Но в компании st работают инопланетяне, там резервное питание включается полевым транзистором. А когда уровни коммутируемого напряжения не совпадают - на стаб прилетает мощная ступенька, которая без проблем передаётся дальше по всем линиям.

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


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

Vss и Vssa - должны иметь общую точку. Vdd и Vdda - даже при использовании двух отдельных стабилизаторов - должны иметь мостик связи через диоды (+-0,5v). При включении и выключении чипа на этих ногах напряжение должно расти синхронно. После может колбаситься на +- пол вольта - в зависимости от ваших стабов.

Спасибо за ответ. Т.е. теоретически возможно, что при несимметричном появлении аналогового и цифрового напряжений или при включении питания на емкость VBAT у логики управления питанием "едет крыша", и это может быть причиной того, что питание от батарейки вовремя не включается и происходит сброс часов?

Завтра проверю и отпишусь. Хорошо, если дело в логике. Может и ключик сгорел.

Кстати я где то читал, что при переходе на основное питание в STM32 возможен короткий импульс тока в батарейку. И если батарейка этого не терпит, рекомендуется поставить диод. Но нигде не было указано, что это может закончится фатально для самого контроллера.

 

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


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

Ёмкость на батарейке лишняя, точнее: чем выше сопротивление батарейки - тем система устойчивее.

Какое-то спорное утверждение. Какие-то исследования есть?

 

 

Нормальный человек подключает резервное питание через диод. Но в компании st работают инопланетяне, там резервное питание включается полевым транзистором. А когда уровни коммутируемого напряжения не совпадают - на стаб прилетает мощная ступенька, которая без проблем передаётся дальше по всем линиям.

Почему-то на этих инопланетных контроллерах созданы миллионы устройств.

К десяткам тысяч я приложил руку. Там есть батарейка (литиевая coin cell, 3 вольта), конденсатор рядом с ней и стабилизатор на 3.3 вольта для ядра. Подозреваю, с этой уникальнейшей конструкцией я не одинок.

Пролёт "мощных ступенек" не зафиксирован.

Также очень хочется подтверждений.

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


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

Пролёт "мощных ступенек" не зафиксирован.

Также очень хочется подтверждений.

 

Цирк начинается при использовании двух разных стабилизаторов для Vdd и Vdda.

Потребление по линии батарейки - мизерное, даже внутренний ключ имеет сопротивление в сотни ом. Но вот стабилизатор для питания часов очень нежный - ступеньку передаёт на ура. Это видно при подключении к часовому кварцу, иных внешних линий от этого домена не существует.

 

amiller - функции для работы с часами необходимо переписывать самостоятельно, по докам на выбранный чип. Кубик заточен под макетки st - там просто нет батарейки.

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


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

Цирк начинается при использовании двух разных стабилизаторов для Vdd и Vdda.

 

amiller - функции для работы с часами необходимо переписывать самостоятельно, по докам на выбранный чип. Кубик заточен под макетки st - там просто нет батарейки.

Как и обещал, пишу о результатах эксперимента:

1. Наличие и отсутствие конденсатора на линии VBAT ожидаемо не повлияло на работу модуля батарейного питания.

2. При временном соединении выходов стабилизаторов Vdd и Vdda проводником, контроллер заработал как надо. Часы работают, регистры BACKUP сохраняются.

Я честно говоря думал, что контроллер дохлый. После успешного эксперимента несколько минут сидел в ауте.

Наверное стоит записать диоды между аналоговым и цифровым питанием в стандартный состав устройств на контроллерах STM32.

И из рейтинга ST стоит вычесть несколько баллов.

 

А по использованию библиотек: не пользуюсь вообще. Когда начинал первый проект на STM32, посмотрел в сторону CMSIS, не впечатлило. Собственно использование любых библиотек аппаратного уровня для контроллеров не освобождает от знания периферии, но кроме этого нужно ещё изучать дополнительный язык абстракций библиотеки.

Я могу это сравнить с тем, что чтобы поговорить с немцем, вместо того, чтобы изучать немецкий язык, я начну изучать английский, а потом разговаривать с немцем через переводчика с английского на немецкий.

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


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

Я могу это сравнить с тем, что чтобы поговорить с немцем, вместо того, чтобы изучать немецкий язык, я начну изучать английский, а потом разговаривать с немцем через переводчика с английского на немецкий.

:biggrin: В плане библиотек, я с вами согласен, но пример с немцем неудачен... )) Я бы так и сделал. Со знакомыми немцами прекрасно можно пообщаться по английски. )))

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


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

:biggrin: В плане библиотек, я с вами согласен, но пример с немцем неудачен... )) Я бы так и сделал. Со знакомыми немцами прекрасно можно пообщаться по английски. )))

Это зависит от начальных условий. Судя по всему, английский Вы знаете, а немецкий нет. Но если незнакомы оба языка, а надо поговорить с немцем, то лучше уж сразу учить немецкий.

Хотя согласен, что пример притянут за уши. Типа, английский - язык международного общения, бла-бла...

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


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

самое главное в часах от ST, то что в даташитах от ST пишут, что часовой кварц должен иметь собственную емкость 6 пФ (тогда они гарантируют устойчивую генерацию), а большинство кварцев, в том числе и те которые сам SM ставит на Дискавери с емкостью 12 пФ. Исхитрившись и достав кварцы на 6 пФ убедился, что ST таки не зря настаивает на 6 пФ. Ганерация с 6 пФ беспроблемная. А для 12 пФ даже остатки флюса приводят к срыву генерации или вообще к ее отсутствию.

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


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

самое главное в часах от ST, то что в даташитах от ST пишут, что часовой кварц должен иметь собственную емкость 6 пФ (тогда они гарантируют устойчивую генерацию)

Еще раз посмотрел даташит на STM32F072 и рекомендованный в нем аппликейшн

AN2867 "Oscillator design guide for ST microcontrollers"

Нет там таких рекомендаций. А есть подробные объяснения, когда какой кварц лучше применять и какие нагрузочные емкости и режимы генерации для этого применять.

 

з.ы. Кварцы на 12 пФ требуют больший Drive Level

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


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

Еще раз посмотрел даташит на STM32F072 и рекомендованный в нем аппликейшн

AN2867 "Oscillator design guide for ST microcontrollers"

Нет там таких рекомендаций. А есть подробные объяснения, когда какой кварц лучше применять и какие нагрузочные емкости и режимы генерации для этого применять.

 

з.ы. Кварцы на 12 пФ требуют больший Drive Level

 

 

CL(Load Capacitance) - это и есть собственная емкость кварца

look at

Table 7. Recommended crystal resonators for LSE oscillator embedded in STM32 microcontrollers

 

кстати табличка 7 в данной доке обновилась по сравнению с старыми версиями -

в старых вообще кварцев с CL > 7 пФ не было,

да и footprint описан намного подробнее

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


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

...и footprint описан намного подробнее

Да уж футпринт конечно и описан и нарисован.... И еще жирными буквами под ним слова начинающиеся сразу на Warning!!! Не каждый рискнет между выводами с шагом в 0.5 (TQFP100 например) пустить трассу. Таким образом часть людей отсеивается сразу т.к. в случае чего "Вы не последовали рекомендациям по разводке и теперь это Ваши проблемы тут" - очень хитро придумали они.

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


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

К десяткам тысяч я приложил руку
Если "прикладывать руку" ежедневно (с учётом выходных и праздников), то на десять тысяч "прикладываний" уйдёт сорок лет. :biggrin:

Или я неправильно понял выражение "приложил руку"?

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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