Бага: встроенный бутлоадер в STM8 не возвращает исходный предделитель

В даташитах на STM8 английским по белому сказано, что при старте частота ядра составляет 2МГц. То есть 16Mhz HSI (внутренний генератор) с делителем на 8.

Почти во всех STM8 есть бутлоадер, прошитый на заводе (точнее слово «прошитый» не очень подходит, так-как записан он в отдельной области памяти, которую ни стереть, ни записать нельзя). Этот бутлоадер можно включить через Option Bytes. Изначально он выключен, если в памяти уже есть программа.

Так вот, бут использует частоту 16МГц, отключая предделитель. А по завершению своей работы включить его обратно забывает. То есть, если до запуска программы отработал бут, то МК продолжит и дальше работать на 16МГц.

Так что в самом начале программы явно указывайте значение предделителя
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_8);

А не полагайтесь на камень :)

P.S. Вот тут сия бага описана на 67 стр. Исправлена в ревизии Z. Читайте еррату :)
  • +2
  • 30 июля 2012, 04:25
  • dcoder

Комментарии (8)

RSS свернуть / развернуть
Может стоит это в блог по STM8 перенести? Там оно уместнее…
0
Да зачем? Тут информации то — 2.5 строчки, да и все это есть в мануале, как выяснилось.
0
Вот кто бы накатал, как этим бутлоадером пользоваться… Может, туплю, но вроде нигде не встречал
0
AppNote 2792 и 2737, мог8ут быть полезны. 2659 на сколько помню описывает самописный бут.
0
… и еще то что я по ссылке дал — UM0560 описывает как раз этот бут
0
Оппа. Он зараза у меня отбился от остальной стаи документов… Надо бы обновить доки, а то так и на баги не долго наткнуться.
0
Вообще, полагаться на то что бутлоадер вам что-то сделает, в основной программе — моветон. Стандартной практикой по этому поводу кстати является бабахание RESET после прошивки через бутлоадер, чтобы код получал камень в дефолтном виде.
0
А смысл? После ресета тут опять первым запустится бут и снимет делитель
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.