User Tag List

Страница 20 из 47 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя
Показано с 191 по 200 из 464

Тема: Клон ZX-Spectrum на плате от игрового автомата

  1. #191

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от PavelZX Посмотреть сообщение
    пока я ждал деталюшек с Китая...
    Кстати память позже тебя заказывал и она уже пришла (фото в предыдущих постах). А вот микроконтроллеры пока еще шлепают, наверное пешком.

    Да и ты мог сначала и на имеющихся килобайтах поиграться. Я когда искал причину, даже набортные 32кб пробовал и все удивлялся, почему она работает, а основная память нет
    Последний раз редактировалось Mick; 13.10.2015 в 16:43.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  2. #192

    Регистрация
    26.07.2015
    Адрес
    г. Хабаровск
    Сообщений
    225
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ...
    Последний раз редактировалось PavelZX; 17.12.2015 в 15:13.

  3. #193

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне было проще эту плату покоцать именно под свои наработки. У тебя же как бы глаза еще не замылены. Можешь попробовать сунуть туда прошивку от спекки2007.
    Я насколько помню там асинхронный доступ к памяти.

    По поводу метра памяти, я уже писал ранее. Если тебя вполне устраивает спекки2007, то конечно нафиг надо заморачиваться. У меня же был интерес именно применить свои наработки.

    ---------- Post added at 12:19 ---------- Previous post was at 12:04 ----------

    Так, попробовал прикинуть если прицепить клаву на PIC и соединить его с CPLD по SPI-подобному интерфейсу.
    Увы не влез. Может конечно я и что то намудрил.
    Так на всякий пожарный кину набросок, может я вообще не так мыслю
    Имеем 3 входных сигнала:
    KBD_CLK - клоки от "клавы"
    KBD_DI - вход данных
    KBD_CS - выбор клавы (он же разрешает счет импульсов)

    Как мыслю. Есть 8 пятибитных регистров клавы, 1 четырех битный счетчик входных импульсов, 1 восьмибитный сдвиговый регистр

    Принцип:
    Клавиатура выдает 9 импульсов = 8 бит это данные и один бит стоповый
    8 бит данных в свою очередь делятся на
    3 бита указателя номера регистра на запись
    5 бит собственно данные клавы.
    Итак в первые 8 импульсов данные сдвигаются во входном сдвигающем регистре, а на последнем 9 импульсе данные переписываются из сдвигающего регистра в один из 8 регистров данных клавы, выбор которого зависят от указателя номера регистра.

    Ну собственно чтение этих регистров зависит от состояний линий адреса A8...A15

    Код:
        ------------------------------------------------------------------------------------
        --  Интерфейс клавиатуры   
        ------------------------------------------------------------------------------------
        -- Порт xxFEh - Клавиатура
        ------------------------------------------------------------------------------------
        RDFE_Sel = !(CA[7..0] == B"11111110") # IO_RD;
        -----------------------------------------------------------------------------------
        -- Счетчик 
        ------------------------------------------------------------------------------------
        KBD_save_en = !(KBD_count[].q == B"1000");
    
        KBD_count[].clk  = !KBD_CLK;
      KBD_count[0].clrn = !KBD_CS;
        KBD_count[].d = KBD_count[].q + 1;
        ------------------------------------------------------------------------------------
        -- Входной сдвигающий регистр
        ------------------------------------------------------------------------------------
        KBD_shift_in[].clk = KBD_CLK;
        IF KBD_count[3].q ==0 THEN 
           KBD_shift_in[].d = (KBD_shift_in[7-1..0].q,KBD_DI);
      ELSE
         KBD_shift_in[].d = KBD_shift_in[].q; 
        END IF;
        ------------------------------------------------------------------------------------
        -- Регистры клавиатуры
        ------------------------------------------------------------------------------------
      KBD_regA8[4..0].d  = KBD_shift_in[7..3].q;
        KBD_regA9[4..0].d  = KBD_shift_in[7..3].q;
        KBD_regA10[4..0].d = KBD_shift_in[7..3].q;
        KBD_regA11[4..0].d = KBD_shift_in[7..3].q;
        KBD_regA12[4..0].d = KBD_shift_in[7..3].q;
        KBD_regA13[4..0].d = KBD_shift_in[7..3].q;
        KBD_regA14[4..0].d = KBD_shift_in[7..3].q;
        KBD_regA15[4..0].d = KBD_shift_in[7..3].q;
    
        KBD_regA8[].clk = KBD_CLK;
        KBD_regA8[].ena = KBD_save_en # !(KBD_shift_in[2..0].q == B"000");
        KBD_regA8[].prn = C_RESET;
    
        KBD_regA9[].clk = KBD_CLK;
        KBD_regA9[].ena = KBD_save_en # !(KBD_shift_in[2..0].q == B"001");
        KBD_regA9[].prn = C_RESET;
    
        KBD_regA10[].clk = KBD_CLK;
        KBD_regA10[].ena = KBD_save_en # !(KBD_shift_in[2..0].q == B"010");
        KBD_regA10[].prn = C_RESET;
    
        KBD_regA11[].clk = KBD_CLK;
        KBD_regA11[].ena = KBD_save_en # !(KBD_shift_in[2..0].q == B"011");
        KBD_regA11[].prn = C_RESET;
    
        KBD_regA12[].clk = KBD_CLK;
        KBD_regA12[].ena = KBD_save_en # !(KBD_shift_in[2..0].q == B"100");
        KBD_regA12[].prn = C_RESET;
    
        KBD_regA13[].clk = KBD_CLK;
        KBD_regA13[].ena = KBD_save_en # !(KBD_shift_in[2..0].q == B"101");
        KBD_regA13[].prn = C_RESET;
    
        KBD_regA14[].clk = KBD_CLK;
        KBD_regA14[].ena = KBD_save_en # !(KBD_shift_in[2..0].q == B"110");
        KBD_regA14[].prn = C_RESET;
    
        KBD_regA15[].clk = KBD_CLK;
        KBD_regA15[].ena = KBD_save_en # !(KBD_shift_in[2..0].q == B"111");
        KBD_regA15[].prn = C_RESET;
        ------------------------------------------------------------------------------------
        -- Выходной буфер
        ------------------------------------------------------------------------------------
        KBD_rddata[0].in = (CA8 # KBD_regA8[0].q) & (CA9 # KBD_regA9[0].q) & (CA10 # KBD_regA10[0].q) & (CA11 # KBD_regA11[0].q) & (CA10 # KBD_regA12[0].q) & (CA13 # KBD_regA13[0].q) & (CA14 # KBD_regA14[0].q) & (CA15 # KBD_regA15[0].q); 
        KBD_rddata[1].in = (CA8 # KBD_regA8[1].q) & (CA9 # KBD_regA9[1].q) & (CA10 # KBD_regA10[1].q) & (CA11 # KBD_regA11[1].q) & (CA10 # KBD_regA12[1].q) & (CA13 # KBD_regA13[1].q) & (CA14 # KBD_regA14[1].q) & (CA15 # KBD_regA15[1].q); 
        KBD_rddata[2].in = (CA8 # KBD_regA8[2].q) & (CA9 # KBD_regA9[2].q) & (CA10 # KBD_regA10[2].q) & (CA11 # KBD_regA11[2].q) & (CA10 # KBD_regA12[2].q) & (CA13 # KBD_regA13[2].q) & (CA14 # KBD_regA14[2].q) & (CA15 # KBD_regA15[2].q); 
        KBD_rddata[3].in = (CA8 # KBD_regA8[3].q) & (CA9 # KBD_regA9[3].q) & (CA10 # KBD_regA10[3].q) & (CA11 # KBD_regA11[3].q) & (CA10 # KBD_regA12[3].q) & (CA13 # KBD_regA13[3].q) & (CA14 # KBD_regA14[3].q) & (CA15 # KBD_regA15[3].q); 
        KBD_rddata[4].in = (CA8 # KBD_regA8[4].q) & (CA9 # KBD_regA9[4].q) & (CA10 # KBD_regA10[4].q) & (CA11 # KBD_regA11[4].q) & (CA10 # KBD_regA12[4].q) & (CA13 # KBD_regA13[4].q) & (CA14 # KBD_regA14[4].q) & (CA15 # KBD_regA15[4].q); 
      KBD_rddata[5].in = VCC;
      KBD_rddata[6].in = VCC;
      KBD_rddata[7].in = VCC;
    
        KBD_rddata[].oe = !RDFE_Sel;
    Код этот на AHDL, но все думаю тут понятно. В принципе я еще толком не вникал, поэтому могут быть ляпы

    Мне интересно пока мнения и предложения. Может я совсем не так мыслю.
    Печально что не влез в CPLD, возможно видеоЦАП придется кастрировать.

    ---------- Post added at 12:21 ---------- Previous post was at 12:19 ----------

    Да, хотел напомнить, что в качестве клавы хотел запихать на штатное место PIC16F88 и заюзать PS2 клаву. Но фиг знает пикуша это осилит
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  4. #194

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Mick, там на платке стоит CPLD EPM3256?
    А через что она привинчена к пятивольтовой части схемы (процессор и т.д.)?
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  5. #195

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Mick, там на платке стоит CPLD EPM3256?
    А через что она привинчена к пятивольтовой части схемы (процессор и т.д.)?
    Да она самая EPM3256AQC208 и ты не поверишь - напрямую. И надо же еще и работает. Правда проц Z84C0006PEC. Возможно, если поставить проц старый, то может и пополохеет кому нибудь. А так пашет зараза CPLD напрямую и даже не греется.

    ---------- Post added at 14:27 ---------- Previous post was at 14:24 ----------

    Вот сижу и думаю, а накой мне 16 битный видеоЦАП. Может урезать его, отпаяв лишние резисторы. Так и регистры в CPLD сразу освободятся.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  6. #196

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Да она самая EPM3256AQC208 и ты не поверишь - напрямую.
    Еще как поверю.
    Уже проходили это.
    "Да как ты можешь!", "Это *****инжиниринг!" и тому подобное, по сути своей - правильное. А в реале - работает годами.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

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

  8. #197

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Еще как поверю.
    Уже проходили это.
    "Да как ты можешь!", "Это *****инжиниринг!" и тому подобное, по сути своей - правильное. А в реале - работает годами.
    Ну дык, это же так было в игровом автомате. А я слепил из того что было
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  9. #198

    Регистрация
    26.07.2015
    Адрес
    г. Хабаровск
    Сообщений
    225
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ..
    Последний раз редактировалось PavelZX; 17.12.2015 в 15:14.

  10. #199

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от PavelZX Посмотреть сообщение
    Тоже уже говорил об этом, 16 битный видеоЦАП не нужен...
    Ну я для начала хотел попробовать и так. А как заработает, так дальше коцать по самое небалуйся.
    Пока вот думаю оставить 6 битный ЦАП как в Зефирке, т.е. по 2 бита на цвет. В итоге в профите будут 10 лишних регистров в CPLD. И тогда клава может быть и залезет

    ---------- Post added at 14:50 ---------- Previous post was at 14:48 ----------

    Вы там по клаве лучше бы чего посоветовали. А то может там разбежался не подетски, а решается в реальности все проще.

    ---------- Post added at 15:38 ---------- Previous post was at 14:50 ----------

    Все, поздняк метаться - отпаял 10 резисторов. Оставил только 6 битный ЦАП.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  11. #200

    Регистрация
    26.07.2015
    Адрес
    г. Хабаровск
    Сообщений
    225
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ...
    Последний раз редактировалось PavelZX; 17.12.2015 в 15:14.

Страница 20 из 47 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 83
    Последнее: 23.05.2017, 20:25
  2. ZX-Spectrum на плате Марсоход 2
    от caro в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 9
    Последнее: 09.06.2015, 14:47
  3. клон ZX Spectrum
    от PvvS в разделе Несортированное железо
    Ответов: 1
    Последнее: 12.09.2013, 13:53
  4. Размер игрового экрана Spectaculator7.01.1349
    от Constans Barron в разделе Эмуляторы
    Ответов: 7
    Последнее: 28.09.2010, 16:10
  5. Фотография игрового клуба
    от unbeliever в разделе Пресса
    Ответов: 7
    Последнее: 22.09.2007, 23:39

Ваши права

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