Jump to content

    
Sign in to follow this  
Edmundo

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

Recommended Posts

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this