rezident (02.11.2011 12:35, просмотров: 194) ответил Механик08 на Я хочу использовать внешний кварц 7,3728МГц, но если с ним что-то случится, то переключиться на DCO, так сказать в аварийном режиме. Как организовать калибровку в этом случае пока не знаю. С инициализацией BCSCTL3 после проверки ошибки LFXT1OF, Вы
А какой смысл использовать кварц, если он работает только до первого сбоя? О_о Или делайте обработку каждого сбоя, реинициализируя систему тактирования в прерывании, или вообще откажитесь от использования ВЧ-кварца, при необходимости калибруя DCO по часовому кварцу.
Калибровка DCO реализуется посредством TimerA. Он настраивается на тактирование от SMCLK, который в свою очередь настраивается на DCO. LFXT подключается к ACLK. Таймер работает в режиме Continuous Mode. CCR2 (в совсем маленьких кристаллах используется CCR0) настраивается на режим захвата (capture) по одному или обоим фронтам от входа CCI2B (CCI0B в MSP430F20xx и MSP430G20xx), который внутренне подключается к ACLK. При возникновении события захвата считывается текущее значение CCR2 (CCR0). Беззнаковая разница между двумя последовательно считанными значениями дает отношение частот SMCLK и ACLK (или соответственно DCO и LFXT с учетом настроек делителей). По результатам корректируются значения регистров DCOCTL и битов RSEL регистра BSCCTL1, подстраивая частоту DCO к заданному отношению частот. Была какая-то апликуха на эту тему. Поищите на сайте TI, если нужно.