makc 192 12 апреля, 2022 Опубликовано 12 апреля, 2022 · Жалоба Приветствую участников форума! Возникла проблема реализации внутрисхемного программирования МК и ПЛИС на миниатюрной плате, где нет лишнего места для размещения контактных площадок под пого-пины или большого по числу контактов разъема внутрисхемного программирования. ПЛИС программируется через JTAG, а для МК нужен SWD. Если бы была возможность программирования МК через JTAG, то я бы объединил их в цепочку и не было бы проблем, однако у МК в принципе нет такой возможности (менять из-за этого МК - не вариант). Соответственно напрашивается такой вариант подключения: Логика такова: при программировании ПЛИС через JTAG, благодаря последовательному резистору, МК не сможет помешать (исказить уровни) на линии TMS, даже если воспримет последовательность изменений на TMS/SWDIO как правильную команду чтения данных через интерфейс SWD. С другой стороны, при программировании МК через SWD, автомат JTAG TAP в ПЛИС безусловно будет менять свои состояния, но это никак не должно помешать программированию МК через SWD, т.к. TMS является входом для ПЛИС, а другие контакты ПЛИС могут измениться только если в регистр IR будет вдвинута команда EXTEST, что невозможно, т.к. TDO=1 не будет меняться в процессе работы через SWD и, таким образом, максимум что может оказаться в регистре IR - это команда BYPASS. На первый взгляд получается логичная и работоспособная схема, но возможно я что-то упускаю из виду? У кого-нибудь был опыт применения такого решения? PS: предложения поставить дополнительные элементы коммутации интерфейсов программирования не рассматриваются, т.к. на плате нет лишнего места, да и на увеличение стоимости ради разовой операции на производстве никто не пойдёт в сегодняшних условиях дефицита всего и вся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zig 31 12 апреля, 2022 Опубликовано 12 апреля, 2022 · Жалоба На разъеме перепутаны TDI и TDO. TDI должен идти на вход FPGA. А в ПЛИС есть PullUp на TDI и TMS? Если нет - поставить внешние PullUp. Еще проверить нет ли конфликта по внутренним PullUp/PullDown на TCK/SWCLK у MCU и FPGA. А так вроде все нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 12 апреля, 2022 Опубликовано 12 апреля, 2022 · Жалоба 20 минут назад, Zig сказал: На разъеме перепутаны TDI и TDO. TDI должен идти на вход FPGA. Это условно, обозначения делают по-разному. В схеме и кабеле всё будет хорошо. 21 минуту назад, Zig сказал: А в ПЛИС есть PullUp на TDI и TMS? Если нет - поставить внешние PullUp. В ПЛИС есть слабые подтяжки, так что думаю их мне вполне хватит. 26 минут назад, Zig сказал: Еще проверить нет ли конфликта по внутренним PullUp/PullDown на TCK/SWCLK у MCU и FPGA. Проверю, но по-моему там с этим проблем быть не должно. 28 минут назад, Zig сказал: А так вроде все нормально. Да, на первый взгляд проблем нет. Но смущает что я не видел примеров такого подключения. Наоборот, много раз видел как специально разносят разъемы SWD/JTAG. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zig 31 12 апреля, 2022 Опубликовано 12 апреля, 2022 · Жалоба MCU программированию FPGA не помешает. Но как MCU воспримет дергания TMS/SWDIO и TCK/SWDCLK при загрузке FPGA? Не залочится ли он? Если бы держать MCU в сбросе во время прошивки FPGA... или добавить один вывод в разъем на сигнал SWDIO... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 12 апреля, 2022 Опубликовано 12 апреля, 2022 · Жалоба 6 часов назад, Zig сказал: Не залочится ли он? Очень интересный вопрос... С другой стороны для формирования опасной последовательности нужно умудриться с помощью TMS изобразить наверное не менее одной записи команды с битом четности и 32-битногл слова тоже с битом четности. Причем таких записей скорее всего нужно несколько. Да, наверное это возможно, но очень маловероятно на мой взгляд. Ресет, кстати, не уверен что даст гарантию в общем случае, т.к. нет уверенности что он заглушит работу SWD. Но это вариант, поизучаю что у МК написано в ДШ на эту тему. 6 часов назад, Zig сказал: или добавить один вывод в разъем на сигнал SWDIO... Ресет в принципе полезнее, чем отдельный сигнал SWDIO, особенно в контексте отладки прошивки. Поэтому если уж что и добавлять, то его. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться