User Tag List

Показано с 1 по 10 из 27

Тема: LEN2PENT: как доработать тайминги ?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от valerium Посмотреть сообщение
    в какой момент тогда мы получаем активный int, если оно задерживается относительно уже задержанного (от начала тв-кадра) импульса /КС ?
    если я не ошибся в порядках - примерно через 7мкс. если /КС взят от инвертированного /БС - то похоже на правду...

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дошли сегодня руки припаять и прошить то, что накодилось в посте #9. Пребываю в состоянии легкого офигения - потому что посчитанные тогда по экрану на глаз ~17 знакомест запаздывания КС, которые равны 68 тактам процессора, а также момент начала следующего INTа и его длительность с первого раза попали в точку.
    Галерея того, что имеем сейчас:
    Нажмите на изображение для увеличения. 

Название:	image001.jpg 
Просмотров:	194 
Размер:	65.8 Кб 
ID:	74918Нажмите на изображение для увеличения. 

Название:	image002.jpg 
Просмотров:	190 
Размер:	59.5 Кб 
ID:	74919Нажмите на изображение для увеличения. 

Название:	image003.jpg 
Просмотров:	181 
Размер:	34.3 Кб 
ID:	74920Нажмите на изображение для увеличения. 

Название:	image004.jpg 
Просмотров:	188 
Размер:	59.1 Кб 
ID:	74921Нажмите на изображение для увеличения. 

Название:	image007.jpg 
Просмотров:	170 
Размер:	61.9 Кб 
ID:	74922Нажмите на изображение для увеличения. 

Название:	image008.jpg 
Просмотров:	174 
Размер:	75.0 Кб 
ID:	74923Нажмите на изображение для увеличения. 

Название:	image011.jpg 
Просмотров:	183 
Размер:	28.9 Кб 
ID:	74924

    На данный момент только изменено включение счетчиков D4 и D5 для 320 пентагоновских строк и 71680 тактов на кадр, а также добавлен тот самый генератор INT. Ничего не делал с КС, и даже не инвертировал пока /IOWR.
    Да, бордюрные линии слегка "квадратиш", но они все на своем месте.


    Схема того, что сейчас в ПЛИСке
    spec128.zip
    сорс модуля int_gen был в посте выше.

    Можно поделить исходную частоту вдвое или вчетверо, сэкономив одну-две макроячейки, можно получить частоту H2 из уже имеющейся H1 и сэкономить ногу... но вроде без надобности.

    На очереди - доработка бордюрных сигналов перед КП13 по схеме П321, только пока не придумал, на чем собирать. На мелкоте это делать уже лениво, придется еще одну 3032 туда вкрячить )


    Upd:
    Для понимания кучки констант решил прокомментировать, как это работает:

    весь экран выводится за 71680 тактов;
    /nKS (кадровый синхроимпульс, его начало, т.е. СПАД) в ленинграде задержан на 68 тактов относительно начала первой скан-строки;
    длина КСИ равна 3584 такта;
    счетчик же формирователя INT у нас запускается по концу КСИ, то есть по ПЕРЕДНЕМУ ФРОНТУ /nKS, это на (68+3584) такте после начала первой скан-строки;
    активируем INT (прямой) в начале первой скан-строки СЛЕДУЮЩЕГО кадра, это через 71680 - (68 + 3584) = 68028 тактов после конца КСИ
    деактивируем INT через 36 тактов, это 71680 - (68 + 3584) + 36 = 68064 после конца КСИ.
    /nKS берем с 6DD40, H0 берем c 1DD13, INT (прямой) подаем на 13DD1 (а на 12DD1 формируется /INT для процессора)


    сорс упомянутыми константами
    Код:
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
    
    entity INT_GEN is
       port
       (
           CLK                    : in  std_logic;
           nKS                    : in  std_logic;
           INT                    : out  std_logic
       );
    end INT_GEN;
    
    architecture RTL of INT_GEN is
       signal COUNTER : integer range 0 to 71680;
    begin
       
    
    -- весь экран выводится за 71680 тактов
    -- /nKS (кадровый синхроимпульс, его начало, т.е. СПАД) в ленинграде задержан на 68 тактов относительно начала первой скан-строки 
    -- длина КСИ равна 3584 такта
    -- счетчик же формирователя INT у нас запускается по концу КСИ, то есть по ПЕРЕДНЕМУ ФРОНТУ /nKS,
    -- это на (68+3584) такте после начала первой скан-строки.
    -- активируем INT (прямой) в начале первой скан-строки СЛЕДУЮЩЕГО кадра, это через 71680 - (68 + 3584) = 68028 тактов после конца КСИ
    -- деактивируем INT через 36 тактов, это 71680 - (68 + 3584) + 36 = 68064 после конца КСИ.
    -- /nKS берем с 6DD40, H0 берем c 1DD13, INT (прямой) подаем на 13DD1 (а на 12DD1 формируется /INT для процессора)
    
      process (CLK, nKS)
      begin
         if (rising_edge(CLK)) then  
      
            if (COUNTER < 71680) then  
                 COUNTER <= COUNTER + 1;
            end if;
    
            if (COUNTER = 71680 - 68 - 3584) then  
                INT <= '1';
            end if;
    
            if (COUNTER = 71680 - 68 - 3584 + 36) then  
                INT <= '0';
            end if;
    
            if (nKS = '0') then
               COUNTER <= 0;
            end if;
    
         end if;
       end process;               
    
    end architecture;
    Последний раз редактировалось valerium; 13.03.2021 в 09:56.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. А что если доработать SMUC?
    от AmoNik в разделе Scorpion
    Ответов: 21
    Последнее: 16.06.2015, 20:24
  2. Тайминги Leningrad-1
    от ZXMAK в разделе Ленинград
    Ответов: 17
    Последнее: 14.06.2013, 03:09
  3. Тайминги DENDY
    от evgs в разделе Nintendo
    Ответов: 7
    Последнее: 01.11.2011, 22:59
  4. Как доработать "Пентагон-128"?
    от AlexBel в разделе Pentagon
    Ответов: 36
    Последнее: 18.09.2011, 15:11

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •