JTAG & PORTB

32-разрядные микроконтроллеры разработки ОАО "НИИЭТ"

Модераторы: pip, _sva_

R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

JTAG & PORTB

Сообщение R Max » 23 апр 2016, 23:46

Если заносить данные на порт B не на выводы JTAG, будет ли работать JTAG?

R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: JTAG & PORTB

Сообщение R Max » 24 апр 2016, 16:53

В общем проблема такая: написал программу для жк-индикатора МЭЛТ для платы от LDM-Sytems, зашил в чип, теперь его не видно ни по JTAG, ни по SWD, походу грохнулся JTAG, связанный с портом B (индикатор висит тоже на порте B). Перевёл джампер X11 на плате LDM-HELPER-K1921BK01T в режим полного стирания флеш-памяти, U-Link и J-Link начинают стирать флеш, но вылетает ошибка таймаута. Вопрос, как стереть флеш???!!!

R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: JTAG & PORTB

Сообщение R Max » 24 апр 2016, 17:11

Ну надо же, удалось всё-таки стереть память:
разъём X11 - в нормальном режиме,
перевёл разъём X2 в режим внутреннего кварца,
замкнул внешний кварц: 207 и 208 пины чипа.

НО ВОПРОС С ТАЙМАУТОМ ОСТАЁТСЯ - .FLM-файл КРИВОЙ и пины JTAG зависят от других пинов??

R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: JTAG & PORTB

Сообщение R Max » 24 апр 2016, 17:45

Н-да, всё так, как я и думал, что Миландр, что НИИЭТ, неужели нельзя разварить два вывода SWD: SWDIO, SWCLK на отдельные пины и ничего на них не навешивать (тем более корпус 208 ног)?????????????!!!!!!!!!!!!!!!!!!!!

Прошёл отладкой по коду и, как только попытался настроить вывод PB3 - получил отвал JTAG!!!
| Показать
JTAG.jpg
JTAG.jpg (969 КБ) 2303 просмотра

bkolbov
Сообщения: 86
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: JTAG & PORTB

Сообщение bkolbov » 25 апр 2016, 09:37

JTAG, SWD - это альтернативные функции порта B, которые включены по умолчанию при старте мк. Очевидно, что если функции попытаться переключить на другие, либо отключить альтернативные функции, то работоспособность этих интерфейсов утратится. Восстановить работоспособность интерфейсов отладки возможно через режим полного стирания флэш, как вы сами уже убедились.

R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: JTAG & PORTB

Сообщение R Max » 26 апр 2016, 00:16

bkolbov
Переформулирую вопрос - допустим, необходимо использовать только пин PB3 (не совмещённый с JTAG) как GPIO c работой на вход/выход. При этом должна быть возможность отлаживаться по коду в Keil хотя бы с прыжками по breakpoint.

Приведите пожалуйста пример кода его настройки... или это не реализуемо?

bkolbov
Сообщения: 86
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: JTAG & PORTB

Сообщение bkolbov » 26 апр 2016, 09:47

Переформулирую вопрос - допустим, необходимо использовать только пин PB3 (не совмещённый с JTAG) как GPIO c работой на вход/выход. При этом должна быть возможность отлаживаться по коду в Keil хотя бы с прыжками по breakpoint.
Приведите пожалуйста пример кода его настройки... или это не реализуемо?
Пин B3 не связан же с JTAG, поэтому никаких проблем с его использованием быть не должно. Если у вас падает отладка при попытке воспользоваться этим пином, то пришлите пожалуйста пример вашего кода инциализации - разберемся.

R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: JTAG & PORTB

Сообщение R Max » 27 апр 2016, 21:51

Проект во вложении, вылетает в месте, показанном на скриншоте...единственно использую самопальную сборку - .pack для Keil 5 https://yadi.sk/d/s2ddfeSHr4mhN
Вложения
LCD.zip
(2.4 МБ) 59 скачиваний

bkolbov
Сообщения: 86
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: JTAG & PORTB

Сообщение bkolbov » 28 апр 2016, 09:41

Ошибка в строке:

Код: Выделить всё

Port->ALTFUNCCLR |= PinMsk;
Правильный вариант:

Код: Выделить всё

Port->ALTFUNCCLR = PinMsk;
Дело в том, что к регистрам GPIO xxxCLR/xxxSET не совсем правильно применять стандартную процедуру "чтение-модификация-запись", нужно применять одиночную "запись". Использование этой процедуры с регистрами xxxSET не приводит к ошибке, однако с xxxCLR по-другому. Так например, прочитав ALTFUNCCLR регистр (впрочем как и ALTFUNCSET), вы получите текущее состояние альтернативных функций по порту. Это значение будет содержать установленные разряды, соответствующие включенной функции JTAG. И когда, после модификации, вы запишите это значение обратно в ALTFUNCCLR - вы сбросите альтернативную функцию JTAG, что приведет к ошибке отладки.

R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: JTAG & PORTB

Сообщение R Max » 01 май 2016, 13:01

Большое Спасибо за комментарий! Хорошо бы добавить эту информацию в техописание...

Ответить

Вернуться в «32-разрядные микроконтроллеры на ядре ARM Cortex»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 2 гостя