|
вот это сообщение от BLACKEAGLE:
" Есть у Cygnal'ов одна недокументированная особенность...
...заключающаяся в том, что из состояния HALT, в которое МК может войти по
JTAG-команде SetTargetHalt, выход возможен только по JTAG-команде SetTargetGo,
и ни аппаратный Reset, ни WDT не помогут - только передергивание питания.
В состояние HALT МК может войти, приняв помеху по JTAG-выводам за
соответствующую штатную JTAG-команду.
Я обсуждал эту проблему с разработчиками Cygnal и они ее признали, сказав,
что специально заложили это поведение для JTAG-анализа причин непреднамеренного
сброса. Для того, чтобы гарантированно не наступить на эти грабли в рабочем
режиме, нужно ногу TCK притянуть к +V резюком в 3..5 килоом, а ногу TMS
соединить с +V перемычкой, которую нужно будет временно снимать при
отладке/прошивке (если не жалко еще одной перемычки, то TCK тоже можно туда же
- на +V). Для совсем уж атомно-космических систем на TCK (при TMS = +V) можно
подать какую-нибудь частоту, тогда логика JTAG будет все время загоняться в
состояние JTAGResetState (не путать с TargetReset) и не будет способна
воспринять никакую другую (сиречь вредоносную) JTAG-команду.
Для общего сведения - все 4 ноги JTAG в МК Cygnal подтянуты к +V встроенными
пуллапами порядка 100 килоом, что не есть достаточно хорошо с точки зрения
помехозащищенности. Лучше продублировать эти тощие пуллапы резюками в 3..5
килоом - JTAG будет преспокойно функционировать, а помехозащищенность изрядно
улучшится.
Ну и, разумеется, всегда нужно стремиться вывести ноги JTAG на разъем,
как уже подсказал коллега A_K_B, даже если МК будут паяться заранее
запрограмированными. Дорожки к этому разъему от МК делать кратчайшими. "
E-mail: info@telesys.ru