==================================================== Описание комманд обмена Quartus и UsbBlaster ==================================================== 1. Введение ----------- UsbBlaster может работать в разных режима : Active Serial (AS), Passive Serial (PS), JTAG. Выбор между режимами осуществляется програмно, на основе полученных по USB команд. 2. Выходные сигналы UsbBlaster в режимах AS/PS/JTAG --------------------------------------------------- +------------------------+------------------------------------------------------------------+ | выводы | описание | +------------------------+------------------------------------------------------------------+ | ASDO/DATAOUT/nSTATUS | данные/статус программирования от программируемой микросхемы | +------------------------+------------------------------------------------------------------+ | CONF_DONE/TDO | окончание конфигруации/данные от программируемой микросхемы | +------------------------+------------------------------------------------------------------+ | DCLK/TCK | частота передачи данных в программируемую микросхему | +------------------------+------------------------------------------------------------------+ | nCONFIG/TMS | | +------------------------+------------------------------------------------------------------+ | nCE | | +------------------------+------------------------------------------------------------------+ | nCS | | +------------------------+------------------------------------------------------------------+ | ASDI/DATA0/TDI | данные к программируемой микросхеме | +------------------------+------------------------------------------------------------------+ | OE | OE = 1/0 включить/перевести в Z-состояние выходной буфер | +------------------------+------------------------------------------------------------------+ +------------------------+----------------------+---------------------+---------------------+ | выводы | AS | PS | JTAG | +------------------------+----------------------+---------------------+---------------------+ | ASDO/DATAOUT/nSTATUS | ASDO/DATAOUT :input | nSTATUS :input | | +------------------------+----------------------+---------------------+---------------------+ | CONF_DONE/TDO | CONF_DONE :input | CONF_DONE :input | TDO :input | +------------------------+----------------------+---------------------+---------------------+ | DCLK/TCK | DCLK :output | DCLK :output | TCK :output | +------------------------+----------------------+---------------------+---------------------+ | nCONFIG/TMS | nCONFIG :output | nCONFIG :output | TMS :output | +------------------------+----------------------+---------------------+---------------------+ | nCE | nCE :output | | | +------------------------+----------------------+---------------------+---------------------+ | nCS | nCE :output | | | +------------------------+----------------------+---------------------+---------------------+ | ASDI/DATA0/TDI | ASDI :output | DATA0 :output | TDI :output | +------------------------+----------------------+---------------------+---------------------+ | OE | OE :output | OE :output | OE :output | +------------------------+----------------------+---------------------+---------------------+ 3. Команды UsbBlaster 3.1 Непосредственная установка выходов UsbBlaster. В этом режиме обмен с програмируеммым устройством осуществляется побитно как с точки зрения PC так и с точки зрения программируемой микросхемы. 1 бит за транзакцию записи/чтения. Необходимость транзакции чтения определяеться битом echo в транзакции записи. +-----------+-------+-------+-------+-------+-------+-------+-------+-------+ | mode | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 | +-----------+-------+-------+-------+-------+-------+-------+-------+-------+ | write | 0 | echo | OE | TDI | nCS | nCE | TMS | TCK | +-----------+-------+-------+-------+-------+-------+-------+-------+-------+ | echo read | 0 | 0 | 0 | 0 | 0 | 0 | ASDO | TDO | +-----------+-------+-------+-------+-------+-------+-------+-------+-------+ 3.2 Пакетная передача байтов данных через SPI интерфейс UsbBlaster. В этом режиме обмен с программруемым устройством осуществляеться побайтно с точки зрения PC и побитно с точки зрения программируемой микросхемы, младшим битом вперед(!!!) через SPI. При этом, после чтения байта из USB изменяется только состояние выходов TCK, TDI (!!!), т.е. на TCK будет сформировано 8 импульсов тактовой частоты, а на TDI последовательно появятся 8 бит из байта данных. Необходимость транзакции чтения определяеться битом echo в транзакции записи. Мультиплексирование источника данных SPI (ASDO/TDO) от програмируемого устройства осуществляеться сигналом nCS, который ставиться в одиночной транзакции (!!!). 3.2.1 Установить счетчик байтов транзакции. +-------+-------+-------+-------+-------+-------+-------+-------+ | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 | +-------+-------+-------+-------+-------+-------+-------+-------+ | 1 | echo | burst_length_munis_1 = [0..63] | +-------+-------+-----------------------------------------------+ 3.2.2 Передать байт транзакции +--------------------+--------+--------+--------+--------+--------+--------+--------+--------+ | mode | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 | +--------------------+--------+--------+--------+--------+--------+--------+--------+--------+ | write | TDI 7 | TDI 6 | TDI 5 | TDI 4 | TDI 3 | TDI 2 | TDI 1 | TDI 0 | +--------------------+--------+--------+--------+--------+--------+--------+--------+--------+ | echo read nCS == 1 | TDO 7 | TDO 6 | TDO 5 | TDO 4 | TDO 3 | TDO 2 | TDO 1 | TDO 0 | +--------------------+--------+--------+--------+--------+--------+--------+--------+--------+ | echo read nCS == 0 | ASDO 7 | ASDO 6 | ASD0 5 | ASD0 4 | ASD0 3 | ASD0 2 | ASD0 1 | ASD0 0 | +--------------------+--------+--------+--------+--------+--------+--------+--------+--------+ ..note номер после значения битов TDI/TDI/ASDO указывает не порядковый номер бита, а тактовый интервал, относительно начала передачи байта по SPI (!!!) в котором данный бит пишется/читается.