|
Непонятки с конфигурацией Циклона |
|
|
|
Jun 24 2014, 15:48
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896

|
Добрый день. Воюю с заливкой конфигурации в CycloneV E. Есть две схемы конфигурирования: JTAG и FPPx8. Пока могу пользоваться только JTAG-ом. Циклон включен в цепочку еще с МАХII. Все входы MSEL[4..0] притянуты к общему проводу через 1,5КОм резюки с возможностью подключить напрямую VCC_3.3V, но пока все в нуле. Пробую заливать конфигурацию через JTAG - вроде все идет гладко, INIT_DONE включен и сразу падает в ноль пока идет процесс конфигурации. По окончании конфигурирования программатор говорит что все ОК, INIT_DONE подскакивает в "1", а вот nSTATUS и CONF_DONE как были в состоянии "0" при подаче питания так и не шелохнулись даже... Но самое интересное, что в реальности похоже не происходит переход в user mode, т.к. в проекте включаю светодиод без всяких клоков и условий, а он никак не реагирует на это после заливки конфигурации. Не пойму что происходит, третий день бьюсь уже... Сигналы nSTATUS, CONF_DONE, nCONFIG подтянуты к VCC_3.3V. Питание VCCPGM и VCCPD также 3,3В. Поискал немного в разделе, нашел что пишут о том, что обязательно нужно входы MSEL[4..0] непосредственно притягивать к земле (без резюков). Насколько это критично для JTAG-конфигурации ?
|
|
|
|
|
 |
Ответов
|
Jul 4 2014, 09:15
|
Местный
  
Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084

|
Надо в отладчике JTAG попробовать выдать команду PULSE_NCONFIG = 10'b00_0000_0001 и посмотреть на реакцию nSTATUS. Если nSTATUS не поднимается в "1", то тут вариантов несколько: - резистор подтяжки не подключен к ноге - нет нужного напряжения - кто-то извне удерживает в 0 - пробит нижний транзистор I/O буффера (это можно проверить тестером). Какой кстати чип у Вас?. Если поможет я из Quartusa вычитывал состояние пинов таким образом. Надо будет заменить индексы нужных Вам выводов и длину BSR регистра из BSD файла для Вашего чипа. Сначала выполнить scan_jtag_chain для инициализации и поиска устройств. потом sample_io для вывода состояния пинов. CODE set usbblaster_name "" set test_device ""
proc scan_jtag_chain {} { global usbblaster_name global test_device # List all available programming hardware, and select the USB-Blaster. # (Note: this example assumes only one USB-Blaster is connected.) puts "Programming Hardware:" foreach hardware_name [get_hardware_names] { puts $hardware_name if { [string match "USB-Blaster*" $hardware_name] } { set usbblaster_name $hardware_name } } puts "\nSelect JTAG chain connected to $usbblaster_name.\n";
# List all devices on the chain, and select the first device on the chain. puts "\nDevices on the JTAG chain:" foreach device_name [get_device_names -hardware_name $usbblaster_name] { puts $device_name if { [string match "@1*" $device_name] } { set test_device $device_name } } puts "\nSelect device: $test_device.\n";
# Open device open_device -hardware_name $usbblaster_name -device_name $test_device
# Retrieve device id code. # IDCODE instruction value is 6; The ID code is 32 bits long.
# IR and DR shift should be locked together to ensure that other applications # will not change the instruction register before the id code value is shifted # out while the instruction register is still holding the IDCODE instruction. device_lock -timeout 10000 device_ir_shift -ir_value 6 -no_captured_ir_value puts "IDCODE: 0x[device_dr_shift -length 32 -value_in_hex]" device_unlock
# Close device close_device }
proc pulse_nconfig { } { global usbblaster_name global test_device set ir_nconfig 1 # JTAG PULSE_NCONFIG command # Open device open_device -hardware_name $usbblaster_name -device_name $test_device device_lock -timeout 10000 # scan instruction device_ir_shift -ir_value $ir_nconfig -no_captured_ir_value device_unlock # Close device close_device }
# # read IO proc sample_io { } { global usbblaster_name global test_device set ir_sample 5 # JTAG sample command set bsr_length 997 # BSR length array set bsr_io { NCE 0 NCONFIG 3 DCLK 6 NCSO 9 ASDO 12 DATA0 15 NSTATUS 939 CONF_DONE 942 MSEL0 945 MSEL1 948 MSEL2 951 MSEL3 954 } # Open device open_device -hardware_name $usbblaster_name -device_name $test_device device_lock -timeout 10000 # scan instruction device_ir_shift -ir_value $ir_sample -no_captured_ir_value # scan data #puts "Capture data: [device_dr_shift -length $bsr_length -value_in_hex]" set bsr_data [ string reverse "[device_dr_shift -length $bsr_length]" ] puts "Captured data = $bsr_data\n" # dump MSEL data set MSEL0 "[string index $bsr_data $bsr_io(MSEL0) ]" set MSEL1 "[string index $bsr_data $bsr_io(MSEL1) ]" set MSEL2 "[string index $bsr_data $bsr_io(MSEL2) ]" set MSEL3 "[string index $bsr_data $bsr_io(MSEL3) ]" puts "MSEL0, MSEL1, MSEL2, MSEL3 = $MSEL0:$MSEL1:$MSEL2:$MSEL3"
# dump CONFIG data puts "nCE (D2) : [string index $bsr_data $bsr_io(NCE)]" # 0 puts "nCONFIG (H4) : [string index $bsr_data $bsr_io(NCONFIG)]" # 3 puts "DCLK (D3) : [string index $bsr_data $bsr_io(DCLK)]" # 6 puts "NCSO (J4) : [string index $bsr_data $bsr_io(NCSO)]" # 9 puts "ASDO (D1) : [string index $bsr_data $bsr_io(ASDO)]" # 12 puts "DATA0 (K4) : [string index $bsr_data $bsr_io(DATA0)]" # 15 #dump STATUS data set nSTATUS "[string index $bsr_data $bsr_io(NSTATUS)]" # 939 puts "nSTATUS = $nSTATUS" set CONF_DONE "[string index $bsr_data $bsr_io(CONF_DONE)]" # 942 puts "CONF_DONE = $CONF_DONE" device_unlock # Close device close_device }
|
|
|
|
Сообщений в этой теме
okela Непонятки с конфигурацией Циклона Jun 24 2014, 15:48 doom13 Цитата(okela @ Jun 24 2014, 18:48)
Увере... Jun 24 2014, 17:21 okela Цитата(doom13 @ Jun 24 2014, 20:21) Увере... Jun 24 2014, 17:52  doom13 Цитата(okela @ Jun 24 2014, 20:52) Дык, п... Jun 25 2014, 07:06 iosifk Цитата(okela @ Jun 24 2014, 19:48) Пока м... Jun 24 2014, 18:06 jks Проверьте значения MSEL[4..0].
Конфигурация MSEL[... Jun 25 2014, 09:19 okela Цитата(jks @ Jun 25 2014, 12:19) Проверьт... Jun 25 2014, 10:32  jks Цитата(okela @ Jun 25 2014, 14:32) Судя п... Jun 25 2014, 15:31   okela Цитата(jks @ Jun 25 2014, 18:31) А Вы сос... Jun 26 2014, 09:21    doom13 Цитата(okela @ Jun 26 2014, 12:21) Могу п... Jun 26 2014, 09:29     okela Цитата(doom13 @ Jun 26 2014, 12:29) Если ... Jun 27 2014, 11:48      doom13 Цитата(okela @ Jun 27 2014, 14:48) Смотре... Jun 28 2014, 20:33 okela Цитата(iosifk @ Jun 24 2014, 21:06) Сигна... Jun 25 2014, 10:19 doom13 Цитата(okela @ Jun 25 2014, 13:19) но сби... Jun 25 2014, 11:14 jks А NCONFIG в каком состоянии после INIT_DONE?
Если... Jun 25 2014, 10:29 jks Возможно PR_REQUEST и DCLK надо подтянуть к земле ... Jun 27 2014, 14:57 okela Покурив доки нашел такую зацепку: сигнал nSTATUS м... Jun 30 2014, 11:24 doom13 Цитата(okela @ Jun 30 2014, 14:24) Покури... Jun 30 2014, 12:30 Raven Если мне не изменяет память, nSTATUS также может с... Jul 2 2014, 16:23 doom13 Цитата(Raven @ Jul 2 2014, 19:23) Если мн... Jul 2 2014, 18:46 okela Цитата(doom13 @ Jun 30 2014, 15:30) Вполн... Jul 2 2014, 19:00 doom13 Ещё раз глянул на схему конфигурации FPP (у Вас вс... Jul 2 2014, 19:17 okela MAXII у меня в одной цепочке с Циулоном только по ... Jul 2 2014, 20:06 doom13 Цитата(okela @ Jul 2 2014, 23:06) MAXII у... Jul 2 2014, 20:17  okela Цитата(doom13 @ Jul 2 2014, 23:17) По схе... Jul 3 2014, 20:39   doom13 Цитата(okela @ Jul 3 2014, 23:39) Сигнал ... Jul 3 2014, 22:18    okela Цитата(doom13 @ Jul 4 2014, 01:18) Соглас... Jul 4 2014, 07:53     doom13 Цитата(okela @ Jul 4 2014, 10:53) Нет - M... Jul 4 2014, 07:59 okela jks, спасибо за наводку. Попробую этим воспользов... Jul 5 2014, 17:22 jks Цитата(okela @ Jul 5 2014, 21:22) jks, сп... Jul 7 2014, 12:37 okela Вот результат выполнения команды PULSE_NCONFIG:
Си... Jul 7 2014, 19:52 jks Цитата(okela @ Jul 7 2014, 22:52) Вот рез... Jul 7 2014, 21:15 okela Попробовал оставить в цепочки только МАХ и один Ци... Jul 8 2014, 14:23 jks Попробуйте следующий SVF файл выполнить.
Это для ц... Jul 9 2014, 10:26
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|