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

User Tag List

Страница 5 из 24 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 231

Тема: PS/2 адаптер клавиатуры для Специалиста

  1. #41
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,164
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    70 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всё ж распиши какие выводы МК и ВВ55 соединены, чтоб не менять в последствии твою прошивку - переделаю схему и печатку.

  2. #42
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Распишу чуть попозже.

    Что то умирают у меня компьютеры.

    Вчера вылетела 155ИЕ5 и пропало изображение. Перепаял.

    Сегодня включаю, тестовое ПЗУ не выполняется. На экране стабильный мусор. Динамик молчит. На сброс нулевая реакция. Если вытащить и вставить ПЗУ на лету, то на экране что то происходит. Я даже увидел копирайт. ПЗУ исправно, обрывов нет, замыканий не нашел.

    И второй компьютер так же перестал работать. Но там процессор больше не выдает SYNC и не шевелит шиной адреса. А процессор я запаял. Прошлая панелька работала, только если процессор прижать пальцем в нужном месте, ну я её и выпаял.
    Последний раз редактировалось vinxru; 04.01.2013 в 22:53.

  3. #43
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как в монитор попасть?

    На экране надпись "ЗАГРУЗКА?"

    ---------- Post added at 02:07 ---------- Previous post was at 01:46 ----------

    Нашел в журнале

  4. #44
    Activist
    Регистрация
    19.01.2009
    Адрес
    Белгород
    Сообщений
    347
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати, а почему бы не эмулировать ВВ55 на атмеге? По моим расчётам должно получиться проще в плане преобразования протокола PS/2. Кроме того, можно и поддержку USB клавиатур сделать.

    ---------- Post added at 14:46 ---------- Previous post was at 14:45 ----------

    Вставлять это всё дело в панельку вместо ВВ55...

  5. #45
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,164
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    70 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от aviator Посмотреть сообщение
    Кстати, а почему бы не эмулировать ВВ55 на атмеге? По моим расчётам должно получиться проще в плане преобразования протокола PS/2. Кроме того, можно и поддержку USB клавиатур сделать.

    ---------- Post added at 14:46 ---------- Previous post was at 14:45 ----------

    Вставлять это всё дело в панельку вместо ВВ55...
    Поддерживаю второе. А вот на счёт первого (эмулировать)... сложновато. Я пока приостановил работу над своим эмулятором, жду когда vinxru доведёт дело до конца.

  6. #46
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возможно скорости МК не хватит. Тогда я буду тормозить процессор сигналом RDY. А это еще один провод, которого нет.

    И тормозить то не хочется, так как через эту же микросхему сделан вывод звука, записи на магнитофон и цвета.



    ---------- Post added at 14:14 ---------- Previous post was at 14:10 ----------

    Цитата Сообщение от aviator Посмотреть сообщение
    Кстати, а почему бы не эмулировать ВВ55 на атмеге?
    ИМХО сложнее. И надо будет вторгаться в схему компьютера. А сейчас схема компьютера неизменна

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

    Переписал обработчик прерывания на ассемблере. Пока результат такой:

    - На тестовой ПЗУ всё работает.

    - На стандартной ПЗУ (мониторе, самом первом) хрен знает.

    Если нажать одну из верхних кнопок F, HELP ... NF по появляется курсор. Но курсор не мигает. Мигать курсор начинает, только когда отпускаешь клавишу. Дальше от нажатий клавиш ничего не зависит.

    ---------- Post added at 15:41 ---------- Previous post was at 15:38 ----------

    Суть обработчика прерывания такая

    Код:
      Если порт С на выход, то выполняем
        PORTC = b2c[PINB] & d2c[PIND & 0x33];
    
      иначе выполняем
        PORTB = c2b[PINC]; 
        PORTD = c2d[PINC] & (PORTD | 0x33);
      
      Плюс, меняем режим, если на порте выбранном для чтения одни единицы.
    Код:
    interrupt [EXT_INT0] void ext_int0() {
    #asm
    .EQU DDRC=0x14
    .EQU DDRB=0x17
    .EQU DDRD=0x11
    .EQU PORTB=0x18
    .EQU PORTC=0x15
    .EQU PORTD=0x12
            ; Сохраняем флаги
            IN   R28, 0x3F  ; 1 SREG
            PUSH R28        ; 2
    
            ; Если DDRC в режиме записи, то переходим ниже
            IN   R28, DDRC ; 1
            CPI  R28, 0    ; 1  
            BRNE _v2       ; 2
    
            ; *** ВАРИАНТ 1 ***
            
            ; PORTB = c2b[(unsigned char)PINC]; 
            IN   R28, 0x13 ; 1 PINC
            CPI  R28, 0x3F ; 1
            BREQ  _v12     ; 2
            LDI  R29, 2    ; 1
            LD   R28, Y    ; 2
            OUT  0x18, R28 ; 1 PORTB
    
            ; PORTD = (PORTD | 0x33) & c2d[(unsigned char)PINC];
            IN   R28, 0x13 ; 1 PINC
            SUBI R28, -64  ; 1
            LD   R28, Y    ; 2
    
            IN   R29, 0x12 ; 1 PORTD
            ORI  R29, 0x33 ; 1
            AND  R29, R28  ; 1
            OUT  0x12, R29 ; 1 PORTD
    	
            ; Выход
            POP  R28
            OUT  0x3F, R28 ; SREG
            RETI
    
            ; *** ВАРИАНТ 1.2 ***
    
    _v12:   ; Переводим порты B,D в режим чтения
            ; Переводим порт C в режим записи
            CLR  R28
            OUT  DDRB, R28
            SER  R28
            OUT  PORTB, R28
            OUT DDRC, R28
            IN   R28, DDRD
            ANDI R28, ~0x33
            OUT  DDRD, R28
            IN   R28, PORTD
            ORI  R28, 0x33
            OUT  PORTD, R28
    
            ; PORTC = b2c[PINB] & d2c[PIND & 0x33];
            IN   R28, 0x16  ; 1 PINB
        	LDI  R29, 1     ; 1
        	LD   R28, Y     ; 2
        	OUT  0x15, R28  ; 1 PORTC
    
    	IN   R28, 0x10  ; 1 PIND
    	ANDI R28, 0x33  ; 1 
    	LDI  R29, 2     ; 1
    	SUBI R28, -128  ; 1
            LD   R28, Y     ; 2
    
        	IN   R29, 0x15  ; 1 PORTC        
        	AND  R28, R29   ; 1
        	OUT  0x15, R28  ; 1 PORTC
    
            ; Выход
            POP  R28
            OUT  0x3F, R28 ; SREG
            RETI
    
            ; *** ВАРИАНТ 2 ***
    _v2:
            ; PORTC = b2c[PINB] & d2c[PIND & 0x33];
            IN   R28, 0x16  ; 1 PINB
        	LDI  R29, 1     ; 1
        	LD   R28, Y     ; 2
        	OUT  0x15, R28  ; 1 PORTC
    
        	IN   R28, 0x10  ; 1 PIND
        	ANDI R28, 0x33  ; 1 
            CPI  R28, 0x33  ; 1
            BREQ  _v21_x    ; 2 
        	LDI  R29, 2     ; 1
        	SUBI R28, -128  ; 1
            LD   R28, Y     ; 2
    
    	IN   R29, 0x15  ; 1 PORTC        
    	AND  R28, R29   ; 1
    	OUT  0x15, R28  ; 1 PORTC
    
    _v21_q:
            POP  R28
            OUT  0x3F, R28 ; SREG
            RETI
    
            ; Дополнителная проверка
    _v21_x:
            IN   R28, 0x16  ; 1 PINB
            CPI  R28, 0xFF  ; 1
            BRNE  _v21_q    ; 2 
    
            ; *** ВАРИАНТ 2.1 ***
    
            ; Переводим порт C в режим чтения
            ; Переводим порты B,D в режим записи
            CLR R28
            OUT DDRC, R28
            SER R28
            OUT PORTC, R28
            OUT DDRB, R28
            IN R28, DDRD
            ORI R28, 0x33
            OUT DDRD, R28
    
            ; PORTB = c2b[(unsigned char)PINC]; 
         	IN   R28, 0x13 ; 1 PINC
        	LDI  R29, 2    ; 1
    	LD   R28, Y    ; 2
        	OUT  0x18,R28  ; 1 PORTB
    
            ; PORTD = (PORTD | 0x33) & c2d[(unsigned char)PINC];
        	IN   R28, 0x13 ; 1 PINC
        	SUBI R28, -64  ; 1
        	LD   R28, Y    ; 2
    
        	IN   R29, 0x12 ; 1 PORTD
        	ORI  R29, 0x33 ; 1
        	AND  R29, R28  ; 1
        	OUT  0x12, R29 ; 1 PORTD
    
            ; Выход
            POP  R28
            OUT  0x3F, R28 ; SREG          
    #endasm
    }
    Может быть МК не успевает. А может быть я ошибся где то.
    Последний раз редактировалось vinxru; 05.01.2013 в 16:45.

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

  8. #47
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Внес несущественные поправки в обработчик прерывания. Стало чуть надежнее и быстрее. Константы на PINB заменил. Но все равно в монитор войти не удалось.

    Получилось 25-50 тактов на частоте 8 Мгц. Это примерно 3-6 тактов центрального процессора. Я посмотрел ПЗУ монитора, этого времени должно хватить. Там между записью и чтением выполняется команда RET размеров в 10 тактов.

    Я подумал, а ведь можно замкнуть куском провода ножки ВВ55, и тем самым получить нажатие Enter. Ну а дальше в мониторе остальные кнопки понажимать, вдруг что то работает.

    Но хрен там. Замыкаю 4-ый и 20-ый контакт. И ничего.

    Думаю, а попробую ка я нажать СТОП. Замыкаю 39-ую и 25-ую ноги. И ничего.

    С PS/2 клавиатуры СТОП нажимается, а простым замыканием нет.

    Пробовал даже отключать обработчик прерывания в МК. Тогда МК работает как набор резисторов.

    Сижу в непонятках.

    ---------- Post added at 23:55 ---------- Previous post was at 23:54 ----------

    Еще вопрос. Я впаял КР580ИК55, а надо было КР580ВВ55А

    Я знаю, что у этих микросхем есть небольшие отличия в работе. При чтении из порта настроенного на вывод, в ИК55 будет прочитано FF, вместо записанного значения (вроде бы).

    Может еще в этом проблема?

    ---------- Post added 06.01.2013 at 00:54 ---------- Previous post was 05.01.2013 at 23:55 ----------

    Короче, не нажимается Enter, потому что компьютер не работает.

    Теперь компьютер при нажатии на Enter стал выводить вот такое



    ---------- Post added at 01:32 ---------- Previous post was at 00:54 ----------

    Решил проверить ПЗУ. ПЗУ исправно.
    Последний раз редактировалось vinxru; 07.01.2013 в 12:32.

  9. #48
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,164
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    70 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Стесняюсь спросить: а ты вообще-то резисторы подтягивающие все выводы клавиатуры к питанию поставил?

    Вот нашёл цанговую панель на 40 контактов. Прекрасно она впишется в новую плату. С верху вставляем саму ВВ55, снизу штыри вставляем в основную плату вместо ВВ55. На нашей платке всё разводим как нам нужно. Жаль что войдёт только Atmega8 в узком 28 контактном корпусе (нет больше лишних выводов - нам ещё архиважно сброс вывести), её мы расположим внутри 40 контактной панельки.
    Последний раз редактировалось fifan; 06.01.2013 в 10:02.

  10. #49
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fifan Посмотреть сообщение
    Стесняюсь спросить: а ты вообще-то резисторы подтягивающие все выводы клавиатуры к питанию поставил?
    да

  11. #50
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,846
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    166 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Теперь компьютер при нажатии на Enter стал выводить вот такое
    А монитор точно есть?
    Может у тебя ПЗУ только C000-C7FF? По Enter загрузчик просто переходит на 0C800h, иначе начинает читать с магнитофона заново.

    ---------- Post added at 17:25 ---------- Previous post was at 17:21 ----------

    Цитата Сообщение от vinxru Посмотреть сообщение
    Еще вопрос. Я впаял КР580ИК55, а надо было КР580ВВ55А

    Я знаю, что у этих микросхем есть небольшие отличия в работе. При чтении из порта настроенного на вывод, в ИК55 будет прочитано FF, вместо записанного значения (вроде бы).
    Тоже интересно, сбрасывается ли в ноль порт у ИК55, если его настроить на вывод. Может и нет...

Страница 5 из 24 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 153
    Последнее: 16.12.2021, 19:07
  2. Адаптер Z80->ZX-BUS
    от zx-kit в разделе Несортированное железо
    Ответов: 12
    Последнее: 05.10.2011, 11:35
  3. CD адаптер
    от alexsan в разделе БК-0010/0011
    Ответов: 2
    Последнее: 12.09.2011, 21:54
  4. Изучается спрос на плату для Специалиста
    от Павел Рябцов в разделе Барахолка (архив)
    Ответов: 109
    Последнее: 30.11.2010, 10:16
  5. Продается Лик (клон Специалиста)
    от KALDYH в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 20.02.2010, 14:29

Ваши права

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