Важная информация

User Tag List

Страница 1 из 6 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 57

Тема: Контроллер на Z80 и КР580ВВ55А

  1. #1
    Member Аватар для zx_gamer
    Регистрация
    25.09.2019
    Адрес
    г. Челябинск
    Сообщений
    94
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Контроллер на Z80 и КР580ВВ55А

    Не получается заставить ВВ55 мигать светодиодом. Частота Z80 3 МГц. Есть ПЗУ 32 КБайт (ОЗУ пока нет). Схема такая: Шины данных и адреса параллельно. ~CS (ПЗУ) включается когда A15 (Z80). ~WR (ПЗУ) когда ~MERQ (Z80) ИЛИ ~WR (Z80). ~RD (ПЗУ) когда ~MERQ (Z80) ИЛИ ~RD (Z80). A0 (ВВ55) когда A0 (Z80). A1 (ВВ55) когда A1 (Z80). ~RD (ВВ55) когда ~IORQ (Z80) ИЛИ ~RD (Z80). ~WR (ВВ55) когда ~IORQ (Z80) ИЛИ ~WR (Z80). RESET (ВВ55) на землю, RESET (Z80) к питанию через резистор.

    Тактовую частоту на осциллографе видно. "Шумы" на ~MERQ (Z80), ~RD (Z80) тоже. На ~WR (Z80) высокий уровень с редкими падениями. На ~IORQ (Z80) постоянный высокий уровень.

    Программа такая:
    Код:
    begin:
       ; Configure VV55
       ld bc, 80h       ; port
       ld a, 0h           ; byte
       out (FFh), a    ; out
    
       ; micro wait
        ld b, 0
    micro_wait:
       nop
        nop
        nop
        nop
        nop
        djnz micro_wait
        ;end micro wait
    
    main:
       ld bc, 0h       ; port
       ld a, FFh       ; byte
       out (0h), a     ; out
    
    time_wait:
       ld a, 0         ; for big loop compare
       ld c, 0         ; big wait loop
       ld b, 0         ; small wait loop
    small_loop:
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
        nop
       djnz small_loop   ; end small wait loop
       dec c
       cp c
       jr nz, time_wait
    
       ld bc, 0h       ; port
       ld a, 0h         ; byte
       out (0h), a     ; out
    
    time_wait2:
       ld a, 0         ; for big loop compare
       ld c, 0         ; big wait loop
       ld b, 0         ; small wait loop
    small_loop2:
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       djnz small_loop2   ; end small wait loop
       dec c
       cp c
       jr nz, time_wait2
    
       jp begin
    Подскажите пожалуйста куда копать.

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

  3. #2
    Master
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    828
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    108 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    чегото мне кажется здесь "вечный кайф"
    ime_wait2:
    ld a, 0 ; for big loop compare
    ld c, 0 ; big wait loop
    ......
    djnz small_loop2 ; end small wait loop
    dec c
    cp c
    jr nz, time_wait2

    уменьшение С с нуля на один будет 255
    jr nz, time_wait2 будет переход
    а там загрузка С опять нулём...

    пс: глубже не копал

  4. #3
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,004
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zx_gamer Посмотреть сообщение
    Не получается заставить ВВ55 мигать светодиодом. Частота Z80 3 МГц. Есть ПЗУ 32 КБайт (ОЗУ пока нет). Схема такая: Шины данных и адреса параллельно. ~CS (ПЗУ) включается когда A15 (Z80). ~WR (ПЗУ) когда ~MERQ (Z80) ИЛИ ~WR (Z80). ~RD (ПЗУ) когда ~MERQ (Z80) ИЛИ ~RD (Z80). A0 (ВВ55) когда A0 (Z80). A1 (ВВ55) когда A1 (Z80). ~RD (ВВ55) когда ~IORQ (Z80) ИЛИ ~RD (Z80). ~WR (ВВ55) когда ~IORQ (Z80) ИЛИ ~WR (Z80). RESET (ВВ55) на землю, RESET (Z80) к питанию через резистор.
    не увидел здесь ~CS (BB55)


    Программа такая:
    Код:
    begin:
       ; Configure VV55
       ld bc, 80h       ; port
       ld a, 0h           ; byte
       out (FFh), a    ; out
    а что здесь делает ld bc,80h?
    если я не совсем забыл мнемонику z80 - то команда out (FFh), a запишет значение из a в порт FFh - точнее в порт 00FFh (поскольку а в предыдущей команде ставится в 0) - что приведет к сбросу в 0 бита 0 порта С (который после включения питания настроен на ввод).
    если хотелось настроить все порты на вывод - то надо так

    Код:
       ld a, 80h           ; byte
       out (FFh), a    ; out
    но при этом вывод будет в порт 80FFh - так что надо смотреть как сделана дешифрация ВВ55.



    Код:
    time_wait:
       ld a, 0         ; for big loop compare
       ld c, 0         ; big wait loop
       ld b, 0         ; small wait loop
    small_loop:
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
        nop
       djnz small_loop   ; end small wait loop
       dec c
       cp c
       jr nz, time_wait
    ну и здесь как уже сказано - будет бесконечный цикл.

    сделать можно так:

    Код:
    time_wait:
       ld c, FFh         ; big wait loop
       ld b, 0         ; small wait loop
    small_loop:
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
        nop
       djnz small_loop   ; end small wait loop
       dec c
       jr nz, time_wait
    или например так:

    Код:
     ld hl, 03FFh (подобрать по вкусу)
    loop:
      dec hl
      ld a,h
      cp l
      jr nz, loop

    Зверинецъ

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

  5. #4
    Member Аватар для zx_gamer
    Регистрация
    25.09.2019
    Адрес
    г. Челябинск
    Сообщений
    94
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Serg6845, AlexG, спасибо вам. Пока не помогло. Подпишитесь пожалуйста на тему. Обзаведусь логическим анализатором и распишу все подробнее.

    - - - Добавлено - - -

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    не увидел здесь ~CS (BB55)
    Прошу прощения. Писал по памяти. На самом деле ~WR с ~WR, ~RD с ~RD, ~IORQ с ~CS. Все это без логических элементов "ИЛИ".

  6. #5
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,004
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zx_gamer Посмотреть сообщение
    Serg6845, AlexG, спасибо вам. Пока не помогло.
    естественно. ибо нефиг на ночь глядя всякую фигню писать (это я про себя).

    вот так вроде должно работать.

    Скрытый текст

    Код:
    begin:
       ; Configure VV55
       ld bc, 80h       ; port
       ld a, 0h 80h          ; byte
       out (FFh), a    ; out
    
       ; micro wait
        ld b, 0
    micro_wait:
       nop
        nop
        nop
        nop
        nop
        djnz micro_wait
        ;end micro wait
    
    main:
       ld bc, 0h       ; port
       ld a, FFh       ; byte
       out (0h), a     ; out
    
    time_wait:
       ld a, 0         ; for big loop compare
       ld c, 0         ; big wait loop
       ld b, 0         ; small wait loop
    small_loop:
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
        nop
       djnz small_loop   ; end small wait loop
       dec c  inc c   ;хотя без разницы. можно dec c оставить.
       cp c
       jr nz, time_wait small_loop   ;главное вот здесь
    
       ld bc, 0h       ; port
       ld a, 0h         ; byte
       out (0h), a     ; out
    
    time_wait2:
       ld a, 0         ; for big loop compare
       ld c, 0         ; big wait loop
       ld b, 0         ; small wait loop
    small_loop2:
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       djnz small_loop2   ; end small wait loop
       dec c  inc c   ;хотя без разницы. можно dec c оставить.
       cp c
       jr nz, time_wait small_loop2
    
       jp begin main  ;наверно
    [свернуть]
    Последний раз редактировалось Serg6845; 10.11.2023 в 09:16.

    Зверинецъ

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

  7. #6
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Наступал на эти же грабли. Не работает Z80 с микросхемой 580ВВ55 !!! Нужен КМОП-вариант 82C55, с ней Z80 в подобной МПС работает без вопросов. А с ВВ55 (8255) нет.

    - - - Добавлено - - -

    П.С. вот эту схему собирал:



    Только не ставил СОЗУ и УСАПП. Тактовый генератор на панельке, пробовал разные от 1 до 20 МГц.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  8. #7
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,004
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Наступал на эти же грабли. Не работает Z80 с микросхемой 580ВВ55 !!! Нужен КМОП-вариант 82C55, с ней Z80 в подобной МПС работает без вопросов. А с ВВ55 (8255) нет.
    Ерунду говорите. в древних АОН работает. в Пентагоне 48 - работает. без всяких С, обычные ВВ55.

    Зверинецъ

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

  9. #8
    Activist
    Регистрация
    20.12.2006
    Адрес
    Minsk
    Сообщений
    280
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Не работает Z80 с микросхемой 580ВВ55 !!! Нужен КМОП-вариант 82C55, с ней Z80 в подобной МПС работает без вопросов. А с ВВ55 (8255) нет.
    Полная ЕРУНДА!
    Посмотрите на схему БАЛТИКа - через мои руки прошло большое количество этих машинок и не было в те времена (конец 80-х) разнообразия такого в технологиях в наших краях))) Были ГДР-овские 880 и К580ВВ55А....

  10. #9
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,673
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    323
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да и в Профи ВВ55 работает без проблем и костылей. Одновремённо подключал 128 штук советских красненьких светодиодов, матриЦЦа 16х8 на все три портА.
    Profi v3.2 -=- Speccy2010,r2

  11. #10
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Говорю то, с чем столкнулся лично. Схему привел выше. Пробовал разные Z80 (как обычные, так и современные PEC'и), а также несколько заведомо исправных экземпляров ВВ55. В процессе отладки сначала заметил, что если вставать логическим пробником на линию WR (по сути дополнительно нагружать TTL входом 155-ой серии), то схема иногда срабатывает, затем обратил внимание, что на вышеприведённой буржуйской схеме указана именно КМОП-версия порта.. попробовал поставить OKI 82C55A-2 и сразу всё заработало без проблем, причём с любыми экземплярами Z80 и генераторами от 1 до 20 МГц. Т.е. 100% проблема в несовместимости конкретно Z80 с КР580ВВ55А, в конкретно таком простейшем включении. Возможно, в другой схеме (при большем кол-ве нагрузок линий ШУ) связка будет как-то работать. Речь лишь про данный вариант включения.

    - - - Добавлено - - -

    Вот тот самый макет (в системе планировался супервайзор питания для CR2032, сторожевой таймер на НСТ193, часы и СОЗУ, но на этапе отладки они были не подключены, только проц+винбонд+порт):



    Последний раз редактировалось Denn; 11.11.2023 в 11:04.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

Страница 1 из 6 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. подскажите контроллер
    от sergey2b в разделе Внешние накопители
    Ответов: 4
    Последнее: 26.09.2018, 07:34
  2. Ответов: 8
    Последнее: 05.03.2018, 12:48
  3. Контроллер FD-051
    от Giraffe в разделе MSX
    Ответов: 77
    Последнее: 15.05.2016, 02:23
  4. Контроллер TR-DOS
    от Zloy в разделе Внешние накопители
    Ответов: 13
    Последнее: 21.11.2015, 17:21
  5. Контроллер многозадачной ОС
    от Conan в разделе Оси
    Ответов: 50
    Последнее: 20.09.2009, 10:56

Ваши права

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