Hi All,
Дано: HC12, работающая от кварца. Частота кварца умножается внутренней PLL, захват PLL проверяется аппаратно, наличие генерации кварца тоже проверяется аппаратно. Все работает.
Дальше: кварц потихоньку портится. Происходит reset по плохой генерации кварца. После ресета HC12 самостартует на ГУHе от PLL, так как кварц плохой. ГУH задавлен на самую низкую частоту (1MHz) в полном соответствии с даташитом. Потом происходит успешная инициализация всего. Запись в регистры PLL херится (!) в режиме самотактирования, поэтому все везде выглядит как будто как надо.
В результате имеем устройство, работающее на 1/8 скорости, и к тому же с CAN контроллером, который тактируется от дохлого кварца. Происходят произвольные эффекты типа застревания доминантного уровня на CAN.
Это к тому, что нужно всегда проверять, а не находится ли HC12 в self clock mode. Эффект был отловлен с помощью теста отверткой по плате.
VLV
"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт