Как не "отстрелить" себе JTAG

ejsanyo

Active member
Предлагаю здесь обмениваться опытом, в каких случаях можно случайно (или даже преднамеренно) вырубить JTAG-интерфейс, или завесить систему так, что он тоже работать не будет. И как избежать таких случаев. Мне кажется, это немаловажно, поскольку в отличие от многих других чипов, по умолчанию в MIK32 никаких boot-загрузчиков не прошито. А значит, просто через UART, например, его потом не перепрошьёшь.
По крайней мере, начну с того, что на поверхности:
Выводы с PORT0_11 по PORT0_15 заняты JTAG-интерфейсом и после включения питания сразу настроены работать с ним. И чтобы они продолжали и дальше работать как JTAG, не стоит на них вешать никакую периферию. Также не стоит перенастраивать их на другие функции (что можно сделать и случайно, например, использовав при настройке ног маску PORT0_ALL), просто не трогаем их вообще.
Подача тактовой частоты на блок TCB также включена по умолчанию. Если мы захотим её выключить, дабы, скажем, сэкономить пару миллиампер тока, мы также лишимся рабочего JTAG.
 

ejsanyo

Active member
А вот кстати тоже думал об этом. И самое разумное мне кажется не особо изобретать велосипеды, а портировать вот эту штуку: stm32-bootloader Мы её на работе уже довольно долго используем, всё работает (под STM32, конечно).
 

mscs

Member
Выводы с PORT0_11 по PORT0_15 заняты JTAG-интерфейсом ...
Иногда все же приходится задействовать эти выводы для альтернативных функций, например, входов и выхода таймера Timer16_2. Чтобы перепрошить МК в таком варианте, достаточно изменить режим загрузки, заблокировав, таким образом, запуск рабочей программы, которая перенастраивает выводы. Минимальные затраты: один лишний резистор в схеме + разрыв/блокировка цепей, подключенных к выводам 45, 46 МК. Для отладочной платы/опытного образца не смертельно.
 

Евгений

New member
Ну вот кстати да - сегодня я отстрелил свой Jtag программатор, хорошо что я шил прогу во флеш. Пришлось грузиться с еепрома и перепрошиваться. Все из-за подтяжки к 3 вольтам на 0_12.
 

ejsanyo

Active member
Ну вот кстати да - сегодня я отстрелил свой Jtag программатор, хорошо что я шил прогу во флеш. Пришлось грузиться с еепрома и перепрошиваться. Все из-за подтяжки к 3 вольтам на 0_12.
Ну и не забывайте, теперь у нас появился альтернативный способ перепрошивки!
 

Евгений

New member
Иногда все же приходится задействовать эти выводы для альтернативных функций, например, входов и выхода таймера Timer16_2. Чтобы перепрошить МК в таком варианте, достаточно изменить режим загрузки, заблокировав, таким образом, запуск рабочей программы, которая перенастраивает выводы. Минимальные затраты: один лишний резистор в схеме + разрыв/блокировка цепей, подключенных к выводам 45, 46 МК. Для отладочной платы/опытного образца не смертельно.
Так и есть. Но все же неплохо было бы чтобы эта информация как то присутствовала в официальной документации. ))
 
Сверху