

Ioann_II
Свой-
Posts
324 -
Joined
-
Last visited
-
Посмотрел в мануал, кажется всё так (если исходить из перенастройки с LSI на LSE после настройки тактирования), надо только оформить как следует, с проверками всеми и тайм-аутами... Дописал настройку делителей для кварца, часы вроде идут верно. Потом заглянул во внутрь функций, которые куб сгенерировал: вроде бы всё соответствует... может времени быть тайм-аута не хватает (там 5с на запуск LSE). Ну видно, что стартует долго, но кажется меньше 5с...
-
Белые конденсаторы
Ioann_II replied to Ioann_II's topic in Компоненты
Да бог с Вами! Они-ж по 215 рублей стоят! Если такие ставить, изделие никому за такие деньги не нужно будет. -
Белые конденсаторы
Ioann_II replied to Ioann_II's topic in Компоненты
ЭППС - это что? (Простите за незнание...). При попытках покраски из баллончика выявилась проблема: отмывка в изопропиловом спирте смывает краску напрочь. -
Белые конденсаторы
Ioann_II replied to Ioann_II's topic in Компоненты
Если бы в ленте, от понятно, только так. А у нас в пакетах, поэтому пришли в голову только два варианта. В любом случае, спасибо всем откликнувшимся за советы. -
Кажется, почти разобрался. Во-первых, выяснил, что после включения бита LSEON и последующего сброса в функции HAL_RCCEx_periphCLKConfig ловим HardFault. Обработчик имеет бесконечный цикл. Наверное, проблема возникает, когда SystemClock_Config пытается настроить работу на LSI, а всё в предыдущий раз уже было настроено на LSE. Теперь перед вызовом функции SystemClock_Config поставил сброс Backup-области и всё проходит нормально. Хотя, конечно, это "костыли", хотелось-бы разобраться, как правильно сделать.
-
Белые конденсаторы
Ioann_II replied to Ioann_II's topic in Компоненты
Да, в светильники. Вариант - только красить? Как технологичнее? Макать и подвешивать или набивать в поролон и с баллончика? Или есть ещё какие-то варианты? Какую краску предпочтительнее? (желательно, чтобы отмывка допускалась). -
adnega, спасибо за критические замечания - кое-что выпустил из вида, нужно исправить. По PC13: как я понял описание, ограничен ток, который выдаёт на выход, у меня тут втекающий ток, должен уходить на GND. Запрещает использовать в качестве источника, или я неверно понимаю? ESP-12F пока не стоит, наверное, придётся ставить стабилизатор по мощнее. LSE только для RTC. Уровень PWR_ON задаётся с МК, сделано для режима низкого потребления. Диод с выхода LDO на вход - зачем? X5 - батарейка для резервного питания, ток микроамперы. С TTP224 всё в порядке, корпус SSOP-16. Что по существу?
-
Схема платы.
-
Ioann_II started following Не стартует STM32 по RESET при включении and Белые конденсаторы
-
Белые конденсаторы
Ioann_II posted a topic in Компоненты
Добрый день всем. Понадобились белые конденсаторы, вот такие, только белого цвета. 1мкф 400В. Зачем - даже не спрашивайте, заказчику необходимо, чтобы на плате стояли именно белые. Кто что подскажет? -
Т.е. переделать функцию SystemClock_Config();?
-
Выше написал, где виснет. Виснет после того, как выполнится приведенный выше код. Как делать reset - неважно: или замыкать, или через SWD подавать команду. BOOT0 сидит наглухо на GND. Понятно, только LSE запускается, писал выше. Не пойму почему виснет.
-
Пробовал все: 00, 01, 10, 11. Разницы нет. Прошёлся отладчиком, виснет в функции SystemClock_Config(), вот тут: if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
-
К сожалению, купили только 10 пФ, плата от флюса вымыта, а какое значение лучше всего в поле LSEDRV ставить? Попробовал все значения - разницы не увидел.
-
Решил зайти с другой стороны: инициализация на LSI, потом свой код, который переключает на LSE. Получилось теперь наоборот: при программном или аппаратном reset стартует через раз, при подаче питания - каждый раз. Что-то я делаю, видать не так, но вот что - пока не соображу. Ниже код, которым переключаюсь на LSE PWR->CR |= PWR_CR_DBP; // Разрешить доступ к Backup-области RCC->BDCR |= RCC_BDCR_BDRST; // Сбросить Backup-область RCC->BDCR &= ~RCC_BDCR_BDRST; RCC->BDCR |= RCC_BDCR_RTCSEL_0; // Выбрать LSE источник (кварц 32768) RCC->BDCR |= RCC_BDCR_RTCEN; // Подать тактирование RCC->BDCR |= RCC_BDCR_LSEON; // Включить LSE while(!(RCC->BDCR & RCC_BDCR_LSERDY)); // Ждём запуска После этого я считываю биты RCC_BDCR_RTCSEL_Msk, устанавливаю время, дату, жду 2с, получаю новое время, результат вывожу на экран. Всегда при запуске установлен источник LSE, прошедшее время 2с.
-
Конденсаторы поставил по 10 пФ, размер 0603, ёмкость прибором не проверял. От внешнего блока питания попробовал - запускается через раз. Если программа не запустилась, reset помогает всегда. Пробовал отпаять кварц совсем - не запускается. Попробовал кварц совсем другой, тоже часовой - картина та же. Может быть надо как-то иначе сделать инициализацию? Сейчас инициализация, которую генерирует CubeMX.