JTAG & PORTB
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
JTAG & PORTB
Если заносить данные на порт B не на выводы JTAG, будет ли работать JTAG?
Re: JTAG & PORTB
В общем проблема такая: написал программу для жк-индикатора МЭЛТ для платы от LDM-Sytems, зашил в чип, теперь его не видно ни по JTAG, ни по SWD, походу грохнулся JTAG, связанный с портом B (индикатор висит тоже на порте B). Перевёл джампер X11 на плате LDM-HELPER-K1921BK01T в режим полного стирания флеш-памяти, U-Link и J-Link начинают стирать флеш, но вылетает ошибка таймаута. Вопрос, как стереть флеш???!!!
Re: JTAG & PORTB
Ну надо же, удалось всё-таки стереть память:
разъём X11 - в нормальном режиме,
перевёл разъём X2 в режим внутреннего кварца,
замкнул внешний кварц: 207 и 208 пины чипа.
НО ВОПРОС С ТАЙМАУТОМ ОСТАЁТСЯ - .FLM-файл КРИВОЙ и пины JTAG зависят от других пинов??
разъём X11 - в нормальном режиме,
перевёл разъём X2 в режим внутреннего кварца,
замкнул внешний кварц: 207 и 208 пины чипа.
НО ВОПРОС С ТАЙМАУТОМ ОСТАЁТСЯ - .FLM-файл КРИВОЙ и пины JTAG зависят от других пинов??
Re: JTAG & PORTB
Н-да, всё так, как я и думал, что Миландр, что НИИЭТ, неужели нельзя разварить два вывода SWD: SWDIO, SWCLK на отдельные пины и ничего на них не навешивать (тем более корпус 208 ног)?????????????!!!!!!!!!!!!!!!!!!!!
Прошёл отладкой по коду и, как только попытался настроить вывод PB3 - получил отвал JTAG!!!
Прошёл отладкой по коду и, как только попытался настроить вывод PB3 - получил отвал JTAG!!!
- | Показать
Re: JTAG & PORTB
JTAG, SWD - это альтернативные функции порта B, которые включены по умолчанию при старте мк. Очевидно, что если функции попытаться переключить на другие, либо отключить альтернативные функции, то работоспособность этих интерфейсов утратится. Восстановить работоспособность интерфейсов отладки возможно через режим полного стирания флэш, как вы сами уже убедились.
Re: JTAG & PORTB
bkolbov
Переформулирую вопрос - допустим, необходимо использовать только пин PB3 (не совмещённый с JTAG) как GPIO c работой на вход/выход. При этом должна быть возможность отлаживаться по коду в Keil хотя бы с прыжками по breakpoint.
Приведите пожалуйста пример кода его настройки... или это не реализуемо?
Переформулирую вопрос - допустим, необходимо использовать только пин PB3 (не совмещённый с JTAG) как GPIO c работой на вход/выход. При этом должна быть возможность отлаживаться по коду в Keil хотя бы с прыжками по breakpoint.
Приведите пожалуйста пример кода его настройки... или это не реализуемо?
Re: JTAG & PORTB
Пин B3 не связан же с JTAG, поэтому никаких проблем с его использованием быть не должно. Если у вас падает отладка при попытке воспользоваться этим пином, то пришлите пожалуйста пример вашего кода инциализации - разберемся.Переформулирую вопрос - допустим, необходимо использовать только пин PB3 (не совмещённый с JTAG) как GPIO c работой на вход/выход. При этом должна быть возможность отлаживаться по коду в Keil хотя бы с прыжками по breakpoint.
Приведите пожалуйста пример кода его настройки... или это не реализуемо?
Re: JTAG & PORTB
Проект во вложении, вылетает в месте, показанном на скриншоте...единственно использую самопальную сборку - .pack для Keil 5 https://yadi.sk/d/s2ddfeSHr4mhN
- Вложения
-
- LCD.zip
- (2.4 МБ) 227 скачиваний
Re: JTAG & PORTB
Ошибка в строке:
Правильный вариант:
Дело в том, что к регистрам GPIO xxxCLR/xxxSET не совсем правильно применять стандартную процедуру "чтение-модификация-запись", нужно применять одиночную "запись". Использование этой процедуры с регистрами xxxSET не приводит к ошибке, однако с xxxCLR по-другому. Так например, прочитав ALTFUNCCLR регистр (впрочем как и ALTFUNCSET), вы получите текущее состояние альтернативных функций по порту. Это значение будет содержать установленные разряды, соответствующие включенной функции JTAG. И когда, после модификации, вы запишите это значение обратно в ALTFUNCCLR - вы сбросите альтернативную функцию JTAG, что приведет к ошибке отладки.
Код: Выделить всё
Port->ALTFUNCCLR |= PinMsk;
Код: Выделить всё
Port->ALTFUNCCLR = PinMsk;
Re: JTAG & PORTB
Большое Спасибо за комментарий! Хорошо бы добавить эту информацию в техописание...