Еще есть сигнал TRST -
Из an039.pdf
Active-low input to asynchronously reset the
boundary-scan circuit. (TRSTis optional according to
IEEE Std. 1149.1). This pin should be driven low when
not in boundary scan operation and for non-JTAG
users the pin should be permanently tied to GND. It is
not supported by all families.
Скрытый текст
Profi v3.2 (SIMM 1024kB, Color CP/M, Turbo VG)
Profi v3.2 256kB + PAL coder
Плата ZXM Phoenix 1024kB + VGA converter
ZX Evolution 4096kB + SSD-1Gb
Плата Speccy 2010
Плата Sprinter Sp2000s
Плата Reverse U9 EP3C
Плата Reverse U10 EP3C
Плата Reverse U16 EP4CE22
Плата Mist v1.31
Terasic DE1
Terasic DE1-SoC
Terasic DE10-nano
iCore 3
[свернуть]
Да есть такой сигнал. Но в даташитах он везде пишется, что должен подключен к Земле. Только непонятка в чем. Где описаны пины, там написано что если не нужен JTAG, то он должен подсоединен к земле. А в другой (смотри таблицу на предыдущей странице) написано что и если нужен, то тоже должен быть на земле.
Вчера откопал в инете некий отрывок документа, кто то делал на таких ПЛИС девборды. И там написано, что ели нужен JTAG, то надо подсоединить к питанию, а если не нужен, то к земле.
Вот хочу проверить это утверждение. Пока ничего не режьте, я у себя сначала сделаю.
---------- Post added at 13:20 ---------- Previous post was at 11:42 ----------
Так, вроде с подключением JTAG разобрались.
Короче отрезал я вход TRST от земли и подал на него питание.
Появилась реакция на детект устройства пропадание меню на компе.
Перепаял резистор еще раз TCK с питания на землю. И MAX начал писать
JTAG chain information confirmed by hardware chek
Но в программаторе пока еще не появилась кнопка разрешающая конфигурить устройство - она пока заблокирована. Надо дальше разбираться.
А вроде он через JTAG не шьется.
В an033.pdf
The configuration data for a FLEX 8000 device can be loaded with one of
six configuration schemes, which you choose on the basis of the target
application.
Configuration Scheme-------Acronym--------Data Source
Active serial------------------AS------------Altera Configuration EPROM
Active parallel up-------------APU-----------Parallel EPROM
Active parallel down----------APD------------Parallel EPROM
Passive serial-----------------PS-------------Serial data path
Passive parallel synchronous---PPS------------Intelligent host
Passive parallel asynchronous--PPA------------Intelligent host
ByteBlasterom наверно можно в режиме PS шить,
но там надо его к другим ножкам подключать и
плюс сигнал nStatus задействовать
an095 стр. 4
Последний раз редактировалось Anykey; 26.10.2014 в 15:41.
Скрытый текст
Profi v3.2 (SIMM 1024kB, Color CP/M, Turbo VG)
Profi v3.2 256kB + PAL coder
Плата ZXM Phoenix 1024kB + VGA converter
ZX Evolution 4096kB + SSD-1Gb
Плата Speccy 2010
Плата Sprinter Sp2000s
Плата Reverse U9 EP3C
Плата Reverse U10 EP3C
Плата Reverse U16 EP4CE22
Плата Mist v1.31
Terasic DE1
Terasic DE1-SoC
Terasic DE10-nano
iCore 3
[свернуть]
JTAG там не для прошивки нужен, он же для отладки. Поэтому там и не написано что он шьется. А так в даташите на него написано что он поддерживает JTAG BST. Тут вопрос другой, могет ли MAX PLUS с ним работать. Так он его детектит, но не хочет работать что то с ним.
Как то непонятно, зачем его туда вставлять если в свое программе он его не может сконфигурить. Что за фигня.
Вобщем я искал, искал - так и не нашел в MAX+PLUS как через JTAG с ней работать. ОН зараза пишет что типа не поддерживает, хотя если нажмешь на детект, он вроде пишет что устройство есть. Вобщем либо эта поддержка есть в полной версии MAX+PLUS, либо Альтера схалтурила.
Для меня лично непонятно, зачем вставлять в микросхему JTAG, если собственная программа это не поддерживает.
Короче, вывод такой - Кто еще не паял, не имеет смысла запаяивать детали на его место, один фиг неизвестно как он работает.
Остается только одна возможность заливки в ПЛИС из MAX+PLUS, это через Passive Serial. Но это как подметили, нужно другие ноги брать, причем пару сигналов нужно брать прямо с ног ПЛИС.
Я лично попробую сделать, только на время отладки. Но вам, думаю не стоит огород городить.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Буквально на днях, Дмитрий меня пнул и я вспомнил, что как бы надо доделать сей комп. Вобщем попробовал я сварганить пассивный программатор, короче не вышло из этой затеи ничего. Только получил незагружаему прошивку как у piroxilin
Вчера сколько раз не пытался стартануть, ни разу не загрузилась.
Думаю надо нести на работу и заниматься ей серьезно.
А так как нет на работе телевизоров, то пришлось чуток изменить прошивку под VGA, естественно временно, так как скандаблера нет и не предвидится.
Но до этого я попытался включить - и что я вижу. Она загружалась, не было ни разу чтобы не зарузилась. Такое ощущение, что действительно блок питания не нравится ПЛИСе. Короче надо разбираться с этим.
Потом изменил прошивку, спаял хвостик-переходник с DB9->DHR15 (VGA)
Правда пока сделал в турбо режиме, чтобы хоть картинку видеть.
Сейчас во время обеда музон на Зефирке слушаюПравда оцифровки смешно звучат в турбе
Так сказать все на лице
P.S. Разъем JTAG и рядом стоящие резисторы R12...R15 можете не запаивать, ибо JTAGа тут нема нормального.
Последний раз редактировалось Mick; 26.01.2015 в 13:29.
Сделал нормальный режим (не турбо) чтобы так сказать отлаживать. Напомню что пока с VGA монитором.
Но как обычно наступил на те же грабли. Сигнал ИНТ - ну блин не хочет он стабилизироваться. Скачет как хочет, а ведь когда работал с обычной телевизорной частотой комп, не было проблем. А теперь опять за свое.![]()
Нет, в ПЛИСе формируется так. То нормально , а то два пройдет, а то пропустит.
То что закоменчено, то для телевизора. Там вроде проблем с интом не замечал.Код:------------------------------------------------------------------------------------ -- Синхрогенератор ------------------------------------------------------------------------------------ -- Системные сигналы ------------------------------------------------------------------------------------ Sync_count[].clk = CLK_14MHZ; -- Системные сигналы TI, H0, H1, H2 Sync_count[].d = Sync_count[].q+1; VCLK = !(Sync_count[0].q & Sync_count[1].q & Sync_count[2].q); -- VCLK = !(Sync_count[0].q & Sync_count[1].q & Sync_count[2].q & Sync_count[3].q); -- Сигнал H2 ------------------------------------------------------------------------------------ -- Строчная развертка ------------------------------------------------------------------------------------ HSync_count[].clk = VCLK; -- Сигналы строчной развертки H3, H4, H5, H6, H7, BC HSync_count[].d = HSync_count[].q+1; HSync_count[].clrn = !HReset; HReset = HSync_count[3].q & HSync_count[4].q & HSync_count[5].q; -- сигнал RH = H6 & H7 & BC HBorder = HSync_count[5].q; -- сигнал BC HBlank = !(HSync_count[5].q & !HSync_count[4].q & HSync_count[3].q); --сигналы SG/ = !(BC & !H7 & H6) HSync = HBlank # HSync_count[2].q; -- сигналы SS/ = SG/ # H5 ------------------------------------------------------------------------------------ -- Кадровая развертка ------------------------------------------------------------------------------------ VSync_count[].clk = !HBorder; -- Сигналы кадровой развертки V0...V7 VSync_count[].d = VSync_count[].q+1; VSync_count[].clrn = !VReset; VReset = VSync_count[9].q & !VSync_count[8].q & !VSync_count[7].q & VSync_count[6].q & VSync_count[5].q & VSync_count[4].q; VBorder = VSync_count[9].q # (VSync_count[8].q & VSync_count[7].q); -- сигнал BK = V8 # (V7 & V6) VSync = VSync_count[9].q # !VSync_count[8].q # !VSync_count[7].q # !VSync_count[6].q # !VSync_count[5].q; -- сигнал KS/ = !V8 # !(V7 & V6 & V5 & V4) -- VReset = VSync_count[8].q & VSync_count[5].q & VSync_count[4].q & VSync_count[3].q; -- сигнал RV = V8 & V5 & V4 & V3 -- VBorder = VSync_count[8].q # (VSync_count[7].q & VSync_count[6].q); -- сигнал BK = V8 # (V7 & V6) -- VSync = VSync_count[8].q # !VSync_count[7].q # !VSync_count[6].q # !VSync_count[5].q # !VSync_count[4].q; -- сигнал KS/ = !V8 # !(V7 & V6 & V5 & V4) ------------------------------------------------------------------------------------ -- Счетчики мерцания ------------------------------------------------------------------------------------ Flash_count[].clk = !VSync; --Сигналы счетчиков мерцания BK/, FLASH Flash_count[].d = Flash_count[].q+1; ------------------------------------------------------------------------------------ -- Строб бордера ------------------------------------------------------------------------------------ Border_sync.d = !(VBorder # HBorder); Border_sync.clk = HSync_count[0].q; -- сигнал H3 ------------------------------------------------------------------------------------ -- Сигнал прерывания -- Примечание: прерывание генерится с частотой 50Гц ------------------------------------------------------------------------------------ Int_sync.d = GND; -- Int_sync.clk = VSync_count[8].q; -- прерывание на 256 импульсе --VSync; -- сигнал KS/ Int_sync.clk = VSync_count[9].q; -- прерывание на 256 импульсе --VSync; -- сигнал KS/ Int_sync.prn = 2mux1(!HSync_count[3].q, !HSync_count[2].q, Turbo_en); --сигналы H6 и H5 ------------------------------------------------------------------------------------ -- Сигнал прерывания ------------------------------------------------------------------------------------ C_INT = Int_sync.q; ------------------------------------------------------------------------------------ -- Сигнал кадровой разверки ------------------------------------------------------------------------------------ VS = VSync; ------------------------------------------------------------------------------------ -- Сигнал строчной развертки ------------------------------------------------------------------------------------ HS = HSync;
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)