Перейти к содержанию
    

Совмещение JTAG/SWD на одном разъеме внутрисхемного программирования

Приветствую участников форума!

Возникла проблема реализации внутрисхемного программирования МК и ПЛИС на миниатюрной плате, где нет лишнего места для размещения контактных площадок под пого-пины или большого по числу контактов разъема внутрисхемного программирования. ПЛИС программируется через JTAG, а для МК нужен SWD. Если бы была возможность программирования МК через JTAG, то я бы объединил их в цепочку и не было бы проблем, однако у МК в принципе нет такой возможности (менять из-за этого МК - не вариант). Соответственно напрашивается такой вариант подключения:

  64200882_.png.ada2068c82af5dd2d3ff60c0a9bae233.png

Логика такова: при программировании ПЛИС через JTAG, благодаря последовательному резистору, МК не сможет помешать (исказить уровни) на линии TMS, даже если воспримет последовательность изменений на TMS/SWDIO как правильную команду чтения данных через интерфейс SWD. С другой стороны, при программировании МК через SWD, автомат JTAG TAP в ПЛИС безусловно будет менять свои состояния, но это никак не должно помешать программированию МК через SWD, т.к. TMS является входом для ПЛИС, а другие контакты ПЛИС могут измениться только если в регистр IR будет вдвинута команда EXTEST, что невозможно, т.к. TDO=1 не будет меняться в процессе работы через SWD и, таким образом, максимум что может оказаться в регистре IR - это команда BYPASS.

На первый взгляд получается логичная и работоспособная схема, но возможно я что-то упускаю из виду? У кого-нибудь был опыт применения такого решения?

PS: предложения поставить дополнительные элементы коммутации интерфейсов программирования не рассматриваются, т.к. на плате нет лишнего места, да и на увеличение стоимости ради разовой операции на производстве никто не пойдёт в сегодняшних условиях дефицита всего и вся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На разъеме перепутаны TDI и TDO. TDI должен идти на вход FPGA.

А в ПЛИС есть PullUp на TDI и TMS? Если нет - поставить внешние PullUp.

Еще проверить нет ли конфликта по внутренним PullUp/PullDown на TCK/SWCLK у MCU и FPGA.

А так вроде все нормально.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, Zig сказал:

На разъеме перепутаны TDI и TDO. TDI должен идти на вход FPGA.

Это условно, обозначения делают по-разному. В схеме и кабеле всё будет хорошо.

21 минуту назад, Zig сказал:

А в ПЛИС есть PullUp на TDI и TMS? Если нет - поставить внешние PullUp.

В ПЛИС есть слабые подтяжки, так что думаю их мне вполне хватит.

26 минут назад, Zig сказал:

Еще проверить нет ли конфликта по внутренним PullUp/PullDown на TCK/SWCLK у MCU и FPGA.

Проверю, но по-моему там с этим проблем быть не должно. 

28 минут назад, Zig сказал:

А так вроде все нормально.

Да, на первый взгляд проблем нет. Но смущает что я не видел примеров такого подключения. Наоборот, много раз видел как специально разносят разъемы SWD/JTAG.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MCU программированию FPGA не помешает. Но как MCU воспримет дергания TMS/SWDIO и TCK/SWDCLK при загрузке FPGA? Не залочится ли он? Если бы держать MCU в сбросе во время прошивки FPGA... или добавить один вывод в разъем на сигнал SWDIO...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, Zig сказал:

Не залочится ли он?

Очень интересный вопрос... С другой стороны для формирования опасной последовательности нужно умудриться с помощью TMS изобразить наверное не менее одной записи команды с битом четности и 32-битногл слова тоже с битом четности. Причем таких записей скорее всего нужно несколько. Да, наверное это возможно, но очень маловероятно на мой взгляд. 

Ресет, кстати, не уверен что даст гарантию в общем случае, т.к. нет уверенности что он заглушит работу SWD. Но это вариант, поизучаю что у МК написано в ДШ на эту тему.

6 часов назад, Zig сказал:

или добавить один вывод в разъем на сигнал SWDIO...

Ресет в принципе полезнее, чем отдельный сигнал SWDIO, особенно в контексте отладки прошивки. Поэтому если уж что и добавлять, то его.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...