Jump to content

    

Open-source эмулятор для TMS320: DLE500USB

Залез в 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).

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this