Raven 11 21 июня, 2016 Опубликовано 21 июня, 2016 · Жалоба Залез в IEEE 1149.1 и немного освежил знания по BSCAN и BSDL. Нужно было только установить value (output3), а не и control тоже. Теперь только вопрос: а зачем этот control? Из BSDL для 5502: - ячейка (стадия) BSCAN регистра #215: "215 (bc_1, XF, output3, X, 214, 1, Z)," - в этой позиции стоит BSCAN cell типа bc_1 (самый универсальный вариант, все может), наружу выходит под видом пина XF, являющегося выходом с 3 состояниями ("output3"), "безопасное" состояние для тестов - любое ("X"), управление выходом осуществляется из BSCAN-стадии #214, отключение этого выхода осуществляется уровнем control=1 (в #214), при этом выход переключится в Z-состояние (состояние отключения - именно Z, а не, скажем, "WEAK 1"); - BSCAN stage #214: "214 (bc_1, *, control, 1)," - ячейка управления, тип bc_1, отключающее состояние - "1"; кстати, тип bc_1 наводит на мысль, что ячейка управляет выходным буфером пина XF не только для целей BSCAN, но и пропускает через себя штатный сигнал управления этим буфером (идущий из core logic), а значит, его тоже можно осмысленно capture'ить при надобности (и само собой - управлять им). Подытожим. Пин XF являтся выходом буфера с Z-состоянием, на вход которого поступает собственно сигнал XF из core logic, прошедший через ячейку #215. Вход управления этого буфера подключен к выходу ячейки #214, на вход которой, предположительно, подключен штатный сигнал управления буфером на XF. И ещё не ожидал, что при SAMPLE value=0 светодиодик горит, а при EXTEST для этого нужно писать 1. Я думал, что значение всего BSR можно один к одному использовать и для SAMPLE, и для EXTEST, т.е. содержимое интерпретируется одинаково, а не как пока получается: по-разному. Инструкция SAMPLE предназначена в первую очередь для считывания состояния пина (т.е., интересно в первую очередь значение shifted-out). Для 5502, правда, она скорее всего работает как SAMPLE/PRELOAD, но и PRELOAD компонента функциональности лишь загоняет shifted-in значение в shadow-регистр, где она пока никак не влияет на выходной пин и ждет своего часа (точнее, инструкции EXTEST). А вот value, которая shifted-in в контексте EXTEST, после Update-DR сразу идет на выход (ну, конечно, если выходной буфер настроен ее пропустить). Так что когда вы делали SAMPLE с value = 0, светодиодом все равно пока управляла штатная логика (по-видимому, выдававшая в этот момент 1), и он при этом горел. PRELOAD value нужна, чтобы выдавать на выход нужное нам значение на отрезке времени от Update-IR для EXTEST (будет выдано значение, записанное в shadow-регистр последней PRELOAD) до первого его Update-DR (будет выдано shifted-in значение самого EXTEST). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться