Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F4Discovery USB + RTC проблема
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Vladislav_Minsk
Добрый день всем
Столкнулся со следующей ситуацией...
Настроил блок RTC, все необходимые прерывания, запустил часы...
Затем настроил модуль USB...
Всё работает нормально, часики тикают, связь с компом в режиме виртуального сом есть...
Решил добавить Wakeup timer, тоже настроил... Всё вместе работает как требуется, прерывается как надо...
Решил добавить будильник Alarm A and Alarm B... И тут понеслось...
Что удалось определить опытным путём:
Если сначала идёт блок инициализации USB, а потом блок настройки RTC, то RTC не работает, точнее работает, но в настройках ничего не меняется, просто продолжает тактироваться...
Прерывания по Wakeup или Alarm не происходят...
Если блоки инициализируются в обратной последовательности, то RTC успевает переконфигурироваться и даже Wakeup прерывания сбываются...
Однако, Alarm прерывания так и не происходят...
Единственное, что заметил, пока не успел запуститься модуль USB, прерывание по Alarm один раз успевает проскочить (настроено 1 раз в секунду)...
Потом, видимо в модуле USB, что-то случается с прерываниями и больше по Alarm их не происходит...
Закоменчиваю строчку инициализации USB и RTC начинает работать как нужно, со всеми прерываниями...
Как вы думаете, в чём может быть причина, как USB связан с RTC...?
1245
Возможно физически на камне где-то есть перемычка?
Vladislav_Minsk
Сейчас просмотрел регистры NVIC, прерывания установлены и после инициализации USB сбоса регистров не происходит...
В отладчике видно, что время в регистрах RTC тикает, но вот перехода к обработчику прерывания не происходит...
И всё-таки по Wakeup таймеру прерывание происходило как и по Alarmy (когда успевало)... После инициализации USB, прерывания уже не происходят...
Попробовал добавить кусок программы, где через терминал (USB в режиме COM) ввожу команду, и запускается функция обработки прерывания...
В таком случае всё работает, кнопку нажал, значения на индикаторе обновились, значит команда запустилась... Можно организовать на таймере обновление значений..
Но невозможность использовать Wakeup и Alarm весьма коробит... Буду рыть дальше, искать в чём причина...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.