|
STM32 + RTC & BACKUP |
|
|
|
Apr 19 2016, 07:42
|
Частый гость
 
Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612

|
Возникла проблема при реализации первого проекта на кристалле STM32F105VCT6. После включения питания RTC инициализируется и начинает работать от внешнего генератора. Генерация на кварце устойчивая, частота в пределах нормы. Часы работают нормально, данные в BKP регистры также пишутся и читаются. Батарейка (3,0В) подключена, напряжение присутствует непосредственно на ножке, рядом конденсатор 0u1. Но стоит отключить основное питание (3,3В), как примерно через 2 секунды генерация на кварце срывается. Соответственно при следующем включении в BKP регистрах пусто, а часы находятся в неинициализированном состоянии. Всё так, как будто батарейки нет. Может ли такое состояние быть результатом того, что что-то неправильно настроено? Или нужно копать в сторону аппаратного дефекта, т.е. попросту менять процессор?
Ещё один момент: Было несколько случаев, когда LSE не стартовал при включении питания. Удалось полечить так: Функция инициализации часов проверяет, запущены ли часы. Если нет, то перед тем, как что-то делать (настраивать регистры часов), делается задержка 10ms. После этого генератор запускается надежно. Может кому поможет. Моя версия такая: При нарастании напряжения питания процессор стартует при достижении 2,0В. Если при этом напряжении пытаться запускать LSE, то он может не стартовать. Причём когда напряжение нарастает до нормы, это уже не помогает запуску. А если подождать пока напряжение питание нарастёт до уровня 3,3В, то LSE легко запускается.
|
|
|
|
|
 |
Ответов
(1 - 12)
|
Apr 19 2016, 14:14
|
Частый гость
 
Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612

|
Цитата(AVI-crak @ Apr 19 2016, 12:52)  Vss и Vssa - должны иметь общую точку. Vdd и Vdda - даже при использовании двух отдельных стабилизаторов - должны иметь мостик связи через диоды (+-0,5v). При включении и выключении чипа на этих ногах напряжение должно расти синхронно. После может колбаситься на +- пол вольта - в зависимости от ваших стабов. Спасибо за ответ. Т.е. теоретически возможно, что при несимметричном появлении аналогового и цифрового напряжений или при включении питания на емкость VBAT у логики управления питанием "едет крыша", и это может быть причиной того, что питание от батарейки вовремя не включается и происходит сброс часов? Завтра проверю и отпишусь. Хорошо, если дело в логике. Может и ключик сгорел. Кстати я где то читал, что при переходе на основное питание в STM32 возможен короткий импульс тока в батарейку. И если батарейка этого не терпит, рекомендуется поставить диод. Но нигде не было указано, что это может закончится фатально для самого контроллера.
|
|
|
|
|
Apr 19 2016, 16:23
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Цитата(AVI-crak @ Apr 19 2016, 12:52)  Ёмкость на батарейке лишняя, точнее: чем выше сопротивление батарейки - тем система устойчивее. Какое-то спорное утверждение. Какие-то исследования есть? Цитата(AVI-crak @ Apr 19 2016, 12:52)  Нормальный человек подключает резервное питание через диод. Но в компании st работают инопланетяне, там резервное питание включается полевым транзистором. А когда уровни коммутируемого напряжения не совпадают - на стаб прилетает мощная ступенька, которая без проблем передаётся дальше по всем линиям. Почему-то на этих инопланетных контроллерах созданы миллионы устройств. К десяткам тысяч я приложил руку. Там есть батарейка (литиевая coin cell, 3 вольта), конденсатор рядом с ней и стабилизатор на 3.3 вольта для ядра. Подозреваю, с этой уникальнейшей конструкцией я не одинок. Пролёт "мощных ступенек" не зафиксирован. Также очень хочется подтверждений.
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Apr 19 2016, 22:58
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894

|
Цитата(esaulenka @ Apr 19 2016, 23:23)  Пролёт "мощных ступенек" не зафиксирован. Также очень хочется подтверждений. Цирк начинается при использовании двух разных стабилизаторов для Vdd и Vdda. Потребление по линии батарейки - мизерное, даже внутренний ключ имеет сопротивление в сотни ом. Но вот стабилизатор для питания часов очень нежный - ступеньку передаёт на ура. Это видно при подключении к часовому кварцу, иных внешних линий от этого домена не существует. amiller - функции для работы с часами необходимо переписывать самостоятельно, по докам на выбранный чип. Кубик заточен под макетки st - там просто нет батарейки.
|
|
|
|
|
Apr 20 2016, 04:55
|
Частый гость
 
Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612

|
Цитата(AVI-crak @ Apr 20 2016, 02:58)  Цирк начинается при использовании двух разных стабилизаторов для Vdd и Vdda.
amiller - функции для работы с часами необходимо переписывать самостоятельно, по докам на выбранный чип. Кубик заточен под макетки st - там просто нет батарейки. Как и обещал, пишу о результатах эксперимента: 1. Наличие и отсутствие конденсатора на линии VBAT ожидаемо не повлияло на работу модуля батарейного питания. 2. При временном соединении выходов стабилизаторов Vdd и Vdda проводником, контроллер заработал как надо. Часы работают, регистры BACKUP сохраняются. Я честно говоря думал, что контроллер дохлый. После успешного эксперимента несколько минут сидел в ауте. Наверное стоит записать диоды между аналоговым и цифровым питанием в стандартный состав устройств на контроллерах STM32. И из рейтинга ST стоит вычесть несколько баллов. А по использованию библиотек: не пользуюсь вообще. Когда начинал первый проект на STM32, посмотрел в сторону CMSIS, не впечатлило. Собственно использование любых библиотек аппаратного уровня для контроллеров не освобождает от знания периферии, но кроме этого нужно ещё изучать дополнительный язык абстракций библиотеки. Я могу это сравнить с тем, что чтобы поговорить с немцем, вместо того, чтобы изучать немецкий язык, я начну изучать английский, а потом разговаривать с немцем через переводчика с английского на немецкий.
|
|
|
|
|
Apr 20 2016, 05:36
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(amiller @ Apr 20 2016, 07:55)  Я могу это сравнить с тем, что чтобы поговорить с немцем, вместо того, чтобы изучать немецкий язык, я начну изучать английский, а потом разговаривать с немцем через переводчика с английского на немецкий.  В плане библиотек, я с вами согласен, но пример с немцем неудачен... )) Я бы так и сделал. Со знакомыми немцами прекрасно можно пообщаться по английски. )))
|
|
|
|
|
Apr 20 2016, 05:51
|
Частый гость
 
Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612

|
Цитата(SasaVitebsk @ Apr 20 2016, 09:36)   В плане библиотек, я с вами согласен, но пример с немцем неудачен... )) Я бы так и сделал. Со знакомыми немцами прекрасно можно пообщаться по английски. ))) Это зависит от начальных условий. Судя по всему, английский Вы знаете, а немецкий нет. Но если незнакомы оба языка, а надо поговорить с немцем, то лучше уж сразу учить немецкий. Хотя согласен, что пример притянут за уши. Типа, английский - язык международного общения, бла-бла...
|
|
|
|
|
Apr 20 2016, 14:50
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 15-04-10
Из: Kiev
Пользователь №: 56 654

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

Группа: Участник
Сообщений: 66
Регистрация: 15-04-10
Из: Kiev
Пользователь №: 56 654

|
Цитата(Baser @ Apr 20 2016, 18:52)  Еще раз посмотрел даташит на 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 описан намного подробнее
|
|
|
|
|
Apr 21 2016, 06:03
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364

|
Цитата(golf2109 @ Apr 21 2016, 08:48)  ...и footprint описан намного подробнее Да уж футпринт конечно и описан и нарисован.... И еще жирными буквами под ним слова начинающиеся сразу на Warning!!! Не каждый рискнет между выводами с шагом в 0.5 (TQFP100 например) пустить трассу. Таким образом часть людей отсеивается сразу т.к. в случае чего "Вы не последовали рекомендациям по разводке и теперь это Ваши проблемы тут" - очень хитро придумали они.
|
|
|
|
|
Apr 25 2016, 07:07
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 18-03-13
Из: Питер
Пользователь №: 76 081

|
Цитата(esaulenka @ Apr 19 2016, 20:23)  К десяткам тысяч я приложил руку Если "прикладывать руку" ежедневно (с учётом выходных и праздников), то на десять тысяч "прикладываний" уйдёт сорок лет.  Или я неправильно понял выражение "приложил руку"?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|