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

User Tag List

Страница 8 из 24 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя
Показано с 71 по 80 из 231

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

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

    По умолчанию

    Господа, не кто в данный момент не спорит о цельности сигнала /RESET, я просто попросил автора вывести в одной из последних версий PS/2 адаптера на этот вывод сигнал сброса, необходимого для нормального сброса всего Специалиста. vinxru просто задействовал все пины Атмеги8, лишнего нету...

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

    По умолчанию

    Я так прошивкой и не занимался, сегодня для work сделаю печатную плату, месяц назад обещал. А завтра Специалистом займусь. А после него к компилятору и Цветным Линиям вернусь. Я думал, что Специалист быстрее сделаю.

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

    По умолчанию

    vinxru, если можно проверь как я на своей схеме подключил выводы Атмеги к ВВ55:
    Код:
    Atmega8 - ВВ55
    2 (PD0)   - 1 (PA3)
    3 (PD1)   - 2 (PA2)
    6 (PD4)   - 3 (PA1)
    9 (PB6)   - 39 (PA5)
    10 (PB7)  - 40 (PA4)
    11 (PD5)   - 4 (PA0)
    13 (PA7)  - 19 (PB1)
    14 (PB0)   - 17 (PC3)
    15 (PB1)   - 16 (PC2)
    16 (PB2)   - 15 (PC1)
    17 (PB3)   - 14 (PC0)
    18 (PB4)   - 37 (PA7)
    19 (PB5)  - 38 (PA6)
    23 (PC0)   - 25 (PB7)
    24 (PC1)  - 24 (PB6)
    25 (PC2)   - 23 (PB5)
    26 (PC3)   - 22 (PB4)
    27 (PC4)  - 21 (PB3)
    28 (PC5)   - 20 (PB2)

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

    По умолчанию

    Подожди пока, может быть ATMega8 не справится. Тогда будем ATMega16 ставить.

    ---------- Post added at 17:13 ---------- Previous post was at 17:11 ----------

    Mega16 не такая и страшная.


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

    По умолчанию

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

    Пока она работает крайне нехотя. После 40 нажатий на клавишу 1, я увидел единицу.\

    P.S. 2 часа подряд не могу заставить работать AVR-программатор. Под XP не вcтает драйвер USB портов. Под остальными не встает драйвер программатора. Типичная проблема.
    Последний раз редактировалось vinxru; 16.01.2013 в 01:25.

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

    По умолчанию

    С таким обработчиком клавиши нажимаются четко.



    Код:
    interrupt [EXT_INT0] void ext_int0() {
    #asm
    .EQU PIND=0x10
    .EQU PINC=0x13
    .EQU PINB=0x16
    .EQU DDRC=0x14
    .EQU DDRB=0x17
    .EQU DDRD=0x11
    .EQU PORTB=0x18
    .EQU PORTC=0x15
    .EQU PORTD=0x12
            IN   R28, SREG  ; 1 1
            PUSH R28        ; 2 3
    
            ; Переводим PORT в режим ввода
            CLR  R29         ; 1 4
            OUT  DDRC, R29   ; 1 5
            SER  R28         ; 1 6
            OUT  PORTC, R28  ; 1 7
    
            ; PORTB = c2b[PINC]; 
            IN   R28, PINC  ; 1 8 
            ANDI R28, 0x3F  ; 1 9 <- Может быть не нужно
            CPI  R28, 0x3F  ; 1 10
            BREQ  _v12      ; 2 12
            LDI  R29, 2     ; 1 13 Адрес 0x200+R28
            LD   R29, Y     ; 2 15
            OUT  PORTB, R29 ; 1 16 
    
            LDI  R29, 2     ; 1 17
            SUBI R28, -64   ; 1 18 Адрес 0x200+R28+64
            LD   R28, Y     ; 2 19
    
            IN   R29, PORTD ; 1 20 
            ORI  R29, 0x33  ; 1 21
            AND  R29, R28   ; 1 22
            OUT  PORTD, R29 ; 1 23 
    
            SER  R28        ; 1 24
            OUT  DDRB, R28  ; 1 25
            IN   R28, DDRD  ; 1 26
            ORI  R28, 0x33  ; 1 27
            OUT  DDRD, R28  ; 1 28
    
            ; Выход
            POP  R28        ; 2 30
            OUT  SREG, R28  ; 1 31 
            RETI           
    
    _v12:   ; Переводим порты B,D в режим ввода. PORTС в режим вывода
            OUT  DDRB, R29   ; 1 13   R29=0
            SER  R28         ; 1 14
            OUT  DDRC, R28   ; 1 15
            OUT  PORTB, R28  ; 1 16
            IN   R28, DDRD   ; 1 17
            ANDI R28, ~0x33  ; 1 18
            OUT  DDRD, R28   ; 1 19 
            IN   R28, PORTD  ; 1 20
            ORI  R28, 0x33   ; 1 21
            OUT  PORTD, R28  ; 1 22
    
            ; PORTC = b2c[PINB] & d2c[PIND & 0x33];
            IN   R28, PINB   ; 1 23 
        	LDI  R29, 1      ; 1 24 Адрес 0x100+R28
        	LD   R28, Y      ; 2 26
        	OUT  PORTC, R28  ; 1 27 <- Если освободить регистр, то можно без этой команды
    
        	IN   R28, PIND   ; 1 28
        	ANDI R28, 0x33   ; 1 29 <- Можно заменить на одну ORI
        	SUBI R28, -128   ; 1 30 <- Можно заменить на одну ORI
        	LDI  R29, 2      ; 1 31 Адрес 0x200+R28+128
            LD   R28, Y      ; 2 33
    
        	IN   R29, PORTC  ; 1 34 <- Если освободить регистр, то можно без этой команды        
        	AND  R29, R28    ; 1 35
        	OUT  PORTC, R29  ; 1 36
    
            ; Выход
            POP  R28         ; 2 38
            OUT  SREG, R28   ; 1 39 SREG
    #endasm
    }


    ---------- Post added at 15:48 ---------- Previous post was at 15:35 ----------

    Наверное стоит добиться, что бы клавиатура работала даже на самых коротких командах типа

    LXI H, 0FF00h
    OUT 0FFh
    MOV A, M

    ---------- Post added at 16:14 ---------- Previous post was at 15:48 ----------

    Прерывание дает ответ за 40 тактов. (4 такта на вызов прерывания, и ответ на 28-ом или 36-ом такте.). При пересчете ATMega 8 Мгц на i8080 2 Мгц, получается 40/4 = 10 тактов.

    MOV A, M выполняется за 7 тактов.

    Код:
    LXI D, 0FFFFh
    LXI H, 0FFFDh
    LDA режим
    STAX D
    MOV A, M
    На таких коротких инструкциях работать не должно. (Надо проверить)

    Если использовать ATMega16 с кварцем 16 Мгц (или более), то МК будет в любом случае успевать. Получается 5 тактов.

    Но если используется программа типа:

    Код:
    STA 0FFFFh
    LDA 0FFFDh (выполняется за 13 тактов)
    То всё должно и так работать.
    Последний раз редактировалось vinxru; 16.01.2013 в 17:26.

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

  8. #77
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,430
    Спасибо Благодарностей отдано 
    329
    Спасибо Благодарностей получено 
    609
    Поблагодарили
    452 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я рад, что он работает. Единственное, что огорчает, что этот контроллер не является тем, о чем заявлено:
    Цитата Сообщение от vinxru Посмотреть сообщение
    А сейчас схема компьютера неизменна
    Хотя на самом деле, приходится делать платку-переходник, которая подключается к некоторым, изначально недоступным для клавиатуры сигналам. Т.е., этот контроллер следует рассматривать вместе с ВВ55 как одно целое. Тогда он ничем не отличается от эмулятора ВВ55, только корпусов больше.

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

    По умолчанию

    Подключить два дополнительных повода (CS и WR) к ножкам ВВ55-ой, это ведь не страшно.

    два МГТФ проводка. Кстати больше, еще питание надо подключить.

  10. #79
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,430
    Спасибо Благодарностей отдано 
    329
    Спасибо Благодарностей получено 
    609
    Поблагодарили
    452 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Подключить два дополнительных повода (CS и WR) к ножкам ВВ55-ой, это ведь не страшно.

    два МГТФ проводка. Кстати больше, еще питание надо подключить.
    Не спорю, но этих сигналов нет на стандартном разъеме платы, например того же Экспресса. А значит - внесение изменений в схему. Придираюсь? нисколько. Лично мне главное что есть хоть какое-то решение и оно работает.

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

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Не спорю, но этих сигналов нет на стандартном разъеме платы, например того же Экспресса.


    Стандартный разъем - это место для запаивания проводов? Два недостающих провода запаиваются на 2 см левее.

    ---------- Post added at 11:43 ---------- Previous post was at 11:43 ----------

    Кнопка сброса почему не на разъеме.

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

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

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

Эту тему просматривают: 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

Ваши права

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