Войти|Зарегистрироваться|Напомнить
Дополнительные материалы

Тестируемые компоненты

Функционально тестируемые компоненты IC1, IC4, IC5, IC6, D1-D9, SW1, SW2 и SW3 являются, соответственно, инвертором, памятью IIC EEPROM, статической памятью (static RAM), АЦП (ADC), светодиодами (LED) и переключателями (switch). Эти компоненты могут управляться теми компонентами, которые имеют интерфейс JTAG, но при этом каждый из тестируемых компонентов должен иметь свой XJEase скрипт описывающий как тестировать данный компонент.

Создать соответствующие XJEase файлы можно прямо в XJDeveloper

- В разделе Unassigned Devices выделите пункт Suggested Diodes (предположительно диоды)
- Перетащите этот пункт на Test Devices в области Categorised Devices
- В появившемся диалоговом окне Add Test Devices нажмите кнопку Create File
- В появившемся ещё одном диалоговом окне New Device File в поле File Name введите LED
- В поле Device Name введите LED
- В поле Description введите Two colour LED
- Включите режим Based on Device. В поле ввода правее появится D1
- Нажмите OK
- В диалоговом окне Add Test Devices выделите только что созданный файл LED.xje и нажмите OK
- Сохраните проект при помощи кнопки Save на панели инструментов окна XJDeveloper

Созданный скрипт уже содержит определения шин, показывающие какие контакты формируют какую шину. Названия, присвоенные шинам могут быть использованы в любом месте скрипта. XJDeveloper при формировании названий шин использует названия цепей взятые из нетлиста.

Повторите пройденную выше процедуру создания скрипта для оставшихся компонентов, за исключением IC5, включая режим Based on Device и используя в качестве имён файлов следующие названия:

IC1 - inverter
IC4 - 24LC32A
IC6 - ADS7830
SW1 - switch
SW2, SW3 - pushbutton

Причина по которой для IC5 не был заведён новый файл заключается в том, что имена цепей, подключенных к контактам IC5 являются бессмысленными и автоматически сгенерированные имена шин будут носить бессмысленные имена. Поэтому, в данном случае нужно завести полностью пустой файл:

- Перетащите IC5 на Test Devices в области Categorised Devices
- В появившемся диалоговом окне Add Test Devices нажмите Create File
- В появившемся ещё одном диалоговом окне New Device File в поле File Name введите BS62LV256
- В поле Device Name введите BS62LV256
- В поле Description введите SRAM
- Оставьте режим Create new empty file
- Нажмите OK
- В диалоговом окне Add Test Devices выделите файл BS62LV256.xje и нажмите OK
- Сохраните проект при помощи кнопки Save на панели инструментов окна XJDeveloper

Далее нужно будет пройти по всем созданным .xje файлам компонентов и убедиться, что запуск автоматического теста на обрывы/закоротки (connection test) не повредит компоненты на плате. Это делается путём ввода значений сигналов для режимов disable или guard. Disable используется для остановки работы не-JTAG компонента, а guard используется для прерывания теста в случае если не-JTAG компонент не остановил работу и начал выдавать в цепь сигналы.

Инвертор - Inverter


Контакты 2, 6 и 10 всегда управляются инвертором, так что XJTAG не должен подавать на соответствующие цепи ни каких сигналов, даже в процессе автоматического теста на разрывы/закоротки. Для этой цели нужно указать, что значение Disable Value для этих контактов равно INPUT:

- На левой панели окна XJDeveloper выберите раздел Test Device Files
- В области Test Device Files выберите файл inverter.xje
- Один из нужных контактов, под номером 2, входит в состав шины NALT1. В области Busses выделите NALT1
- Дважды щёлкните левой клавишей мыши по слову NONE в столбце Disable Value в строке NALT1
- В появившемся выпадающем списке выберите INPUT
- Повторите установку Disable Value в значение INPUT для контакта 6 шины CLOCKS
- Повторите установку Disable Value в значение INPUT для контакта 10 шины CLOCKF
- В области Test Device Files нажмите кнопку Save

Память - EEPROM


Для предотвращения случайной записи данных в память, нужно убедиться, что на контакт SDA не будут подаваться сигналы:

- В области Test Device Files выберите файл 24LC32A.xje
- В области Busses выделите SDA
- В строке SDA дважды щёлкните левой клавишей мыши по слову NONE в столбце Disable Value
- В выпадающем списке выберите INPUT
- В области Test Device Files нажмите кнопку Save

Статическая память - Static RAM


XJEase файл созданный для SRAM был создан пустым, поэтому шины ещё не заведены. Файл должен описывать следующий интерфейс компонента:

ADDRESS - 6, 5, 4, 3, 2, 1, 26, 25, 24, 23, 21
DATA - 11, 12, 13, 15, 16, 17, 18, 19
nWE - 27
nOE - 22
nCS - 20

Для этого:

- В области Test Device Files выделите BS62LV256.xje
- В области Busses нажмите кнопку Create Bus....
- В открывшемся окне New Bus в области Device Pins нажмите кнопку New..
- В ещё одном открывшемся диалоговом окне Add pin(s) to bus перечислите контакты шины ADDRESS через запятую
- Нажмите OK
- В области Bus Properties в поле Bus Name введите ADDRESS
- Нажмите OK
- Таким же образом заведите шину DATA и управляющие сигналы
- В области Test Device Files нажмите Save

В отличии от остальных активных компонентов установленных на демонстрационной плате, RAM имеет встроенную функцию отключения. Поэтому, вместо того, чтобы выставлять Disable Value для сигнала DATA в значение INPUT, нужно будет выставить Disable Value для nOE и nCS в значение HIGH.

- В области Busses выделите nOE
- В строке nOE в столбце Disable Value дважды щёлкните левой клавишей мыши по NONE
- В выпадающем списке выберите HIGH
- Таким же образом сконфигурируйте nCS
- В области Test Device Files нажмите кнопку Save

После завершения предыдущих манипуляций, XJDeveloper отобразит следующее предупреждение (Warning):

С целью изучить причину данного сообщения, можно воспользоваться вложенным окном Netlist Explorer

- В области Busses выделите nCS. Обратите внимание на правую часть области Busses - там перечислены компоненты подсоединённые к компоненту с .xje файлом которого происходит работа в данный момент, а также перечислены все те контакты, к которым есть доступ через JTAG
- В области Busses выделите IC5
- В области Busses нажмите кнопку Explore...
- Появилось диалоговое окно Explorer, которое отображает все контакты компонента IC5, это полный список контактов взятый из нетлиста. Разверните содержимое раздела Bus в правой части окна Explorer
- Все шины, за исключением nCS, работают в режиме доступа Read/Write. Разверните содержимое этой шины, шина состоит из только одного контакта номер 20
- Для получение более подробной информации об этом контакте, щёлкните по нему дважды левой клавишей мыши
- Цепь, подключенная к контакту 20, называется GND. Предупреждение сообщало о том, что цепь nCS подключена к земле (GND), а XJTAG "знает" о том, что цепи с именами GND являются "землёй", т.к. в предыдущих пунктах данного тренинга данный факт был задан ручную
- Закройте окно Explorer при помощи кнопки Close

Тестирование SRAM пройдёт корректно даже не смотря на то, что цепь nCS подключена к земле, поэтому в данном случае нужно просто отключить отображение данного предупреждения:

- На левой панели XJDeveloper выберите раздел Categorise Devices
- Разверните список Test Devices и выделите IC5
- Нажмите кнопку Configure
- В появившемся диалоговом окне Configure Test Device отключите Show Warnings
- Нажмите OK. Предупреждение должно быть убрано.
- Сохраните проект при помощи кнопки Save на панели инструментов окна XJDeveloper

Более подробно о различных предупреждениях и возможных ошибках описано в соответствующих разделах Help-а.

АЦП - ADC


Данный компонент имеет два контакта для работы с интерфейсом IIC - сигналы SDA и SCL и 8 аналоговых входов:

SCL - 14
SDA - 15
VIN - 1, 2, 3, 4, 5, 6, 7, 8

SCL и SDA были автоматически заведены системой XJTAG на основе имён подключенных сигналов в нетлисте, так что остаётся только завести шину VIN:

- На левой панели окна XJDeveloper выберите раздел Test Device Files
- В области Test Device Files выберите ADS7830.xje
- В области Busses нажмите кнопку Create Bus...
- В появившемся диалоговом окне New Bus в разделе Bus Properties в поле Bus Name введите VIN
- В списке Device Pins выделите контакты с 1 по 8
- Нажмите кнопку >, при этом выделенные контакты должны появиться в списке Pins in Bus
- Нажмите OK
- В разделе Test Device Files нажмите кнопку Save

Теперь удалите ненужные шины:

- В области Busses выделите _3_3V
- В области Busses нажмите кнопку Delete
- Таким же образом удалите все остальные шины кроме SDA, SCL и VIN
- В области Test Device Files нажмите кнопку Save

Для предотвращения конфликта сигналов на интерфейсе IIC нужно отключить работу с сигналом SDA так же как это было сделано для памяти EEPROM.

- В столбце Disable Value сигнала SDA выставьте INPUT и нажмите Save ещё раз

Светодиоды - LED


Не смотря на то, что, в принципе, светодиоды не требуют ограничения доступа к каким-то контактам, т.к. сами светодиоды не генерируют ни каких сигналов в цепи, но имена шин сгенерированные автоматически не соответствуют их функциональным предназначениям, так что для облегчения дальнейшей работы, желательно переименовать шины в более удобный вид.

- В области Test Device Files выделите LED.xje
- В области Busses дважды щёлкните левой клавишей мыши по имени ADC_CH3
- Замените существующее имя на RED_LED
- Таким же образом переименуйте шину N10506307 в GREEN_LED
- В области Test Device Files нажмите кнопку Save

Переключатели - Switch


На демонстрационной плате размещено два типа переключателей. SW1 - Фиксируемый переключатель, он фиксируется в одном из двух положений; SW2 и SW3 - кнопки. Их цоколёвка различается: у SW1 условно "выходной" сигнал выведен на контакт номер 2, а у SW2 и SW3 на контакт номер 3.

Когда кнопки не нажаты, в цепи, подключенные к "выходным" контактам, не поступает ни каких сигналов (в то время как при нажатии, в цепи идут сигналы через R12 и R13), так что выставлять Disable Value для кнопок не надо, однако переименовать шины "выходных" сигналов с BUT0 на VALUE имеет смысл.

Для SW1 ситуация иная - "выходной" контакт передаёт в цепь сигнал с одного из двух "входных" контактов, так что обязательно нужно отключить подачу системой XJTAG своего сигнала в цепь подключенную в "выходному" контакту в процессе автоматического теста на разрывы/закоротки (connection test). В процессе установки Disable Value в значение INPUT, заодно и переименуйте GP1 в VALUE.

Теперь введена вся необходимая информация для запуска некоторых тестов.

Составные части комплекса