Амплитуда импульсов на входе проца какая?
Доп.: от скольких питается D9 (полагаю, от 5 в).
RESET проца надежно ли срабатывает?
Сигнал /RES смотри, он не подтянут вроде, AVR проц вообще сбрасывает?
Вид для печати
Амплитуда импульсов на входе проца какая?
Доп.: от скольких питается D9 (полагаю, от 5 в).
RESET проца надежно ли срабатывает?
Сигнал /RES смотри, он не подтянут вроде, AVR проц вообще сбрасывает?
Все это давно уже смотрел осцилографом. AVR я уже прошил маленькой программой заглушкой. Она ресетит хорошо проц. Амплитуда клоков на проце 5вольтовая.
Сейчас взял изменил фазу клоков на проце (сдвинул) стал гораздо чаще картинку выводить. Я думаю, тут связано больше с работой с памятью, чем с чем то еще. Но все равно стопроцентно пока не стартует с картинкой.
Я процедуру CLK_sync нафиг убрал, а сделал C_CLK <= not Sync_count(1);
Хотя может еще надо его синхронизовать с сигналом CLK_25MHZ?
Вот текущая прошивка. Сейчас запускается гораздо чаще. А если не сразу, то после нажатия кнопки сброса картинка появляется.
вот здесь подозрительное место:
------------------------------------------------------------------------------------
-- Сигнал записи в память
------------------------------------------------------------------------------------
WE_ram : process(CLK_25MHZ,Sync_count)
begin
if Sync_count(1) ='1' then -- H1 = 1 - доступ видео
WR_RAM <= '1';
elsif (CLK_25MHZ'event and CLK_25MHZ = '0') then
if Sync_count(0) = '0' then
if (C_MREQ = '0' and C_WR = '0' and CS_RAM = '0') then
WR_RAM <= '0';
else
WR_RAM <= '1';
end if;
end if;
end if;
end process WE_ram;
т.е. условие elsif (CLK_25MHZ'event and CLK_25MHZ = '0') будет выполняться только если Sync_count(1) ='0' , если же там '1' , то всё что после (CLK_25MHZ'event and CLK_25MHZ = '0') будет проигнорировано.
p.s. лучше видеоадаптер вынести в отдельный модуль.
Нет, цепь RES/ между AVR и процом никуда не подтянута .
---------- Post added at 06:52 ---------- Previous post was at 06:51 ----------
А смысл?
Видео как раз работает нормально.
---------- Post added at 08:16 ---------- Previous post was at 06:52 ----------
Я полагаю, что CLK_25MHZ'event and CLK_25MHZ = '0 равносильно нашему триггеру типа ТМ2. Тоесть он срабатывает только при H1 =0 (Sync_count(1)), т.е. во время доступа процессора к памяти. При H1 = 1, триггер автоматом сбрасывается.
я б затянул, такие сигналы как рез и нми на + , дабы исключить всякие сюрпризы,
честно не знаю как, там авр дергает пинами при подаче питания и конфигурации, но резет я бы затянул точно.
Вобщем я так пока поступил. Так как при нажатии на кнопку Сброс - сбрасывается AVRка и устанавливает все свои ноги на вход, то как бы проц остается не сброшенным. А после AVR-ка уже ножкой дергает и сбрасывает проц.
Вобщем я подцепил временно резистор не на +, а на землю. Теперь когда AVRка сбрасывается, то сбрасывается и проц.
Картинка теперь появляется практически всегда, но иногда когда скажем передержишь кнопку всеже появляется каша.
Вот я думаю, это всетаки некая несинхронность синхрогенератора, т.е. фаза клоков при старте иногда не попадает в общую фазу.