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

User Tag List

Страница 44 из 53 ПерваяПервая ... 404142434445464748 ... ПоследняяПоследняя
Показано с 431 по 440 из 522

Тема: Контроллер клавиатуры для "Пентагон-128" на ATMega8/48/88/168/328

  1. #431
    Master Аватар для Northwood
    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В схеме контроллера PS/2 клавиатуры у меня только один вопрос:

    Для чего сигнал KA10 взят не из одного порта микроконтроллера PDx вместе с остальными адресными битами KA8...KA10, а взят из порта PC ?
    Чтобы было легче понять суть вопроса, приведу раскладку сигналов на микроконтроллере в данной схеме:

    Порт микроконтроллера PD:

    PD0 - KA8
    PD1 - KA9
    PD2 - ~сигнал обращения к порту клавиатуры
    PD3 - KA11
    PD4 - KA12
    PD5 - KA13
    PD6 - KA14
    PD7 - KA15

    Порт микроконтроллера PC:

    PC0 - ~Reset
    PC1 - ~ Magic
    PC2 - ~WAIT
    PC3 - KA10
    PC4 - Keyboard Data
    PC5 - Keyboard Clock
    PC6 - ~Keyboard Reset

    Почему бы выделенные цветом сигналы не поменять местами, чтобы раскладка стала выглядеть более логично ?

    PD0 - KA8
    PD1 - KA9
    PD2 - KA10
    PD3 - KA11
    PD4 - KA12
    PD5 - KA13
    PD6 - KA14
    PD7 - KA15

    Порт микроконтроллера PC:

    PC0 - ~Reset
    PC1 - ~Magic
    PC2 - ~WAIT
    PC3 - ~сигнал обращения к порту клавиатуры
    PC4 - Keyboard Data
    PC5 - Keyboard Clock
    PC6 - ~Keyboard Reset
    С уважением, Александр

  2. #432
    Guru Аватар для caro
    Регистрация
    14.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,721
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    87 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Микроконтроллер (МК) работает в режиме программного опроса PS/2 клавиатуры и аппаратного прерывания
    по "сигналу обращения к порту клавиатуры", который поступает на его вход INT0, совмещенный с выводом PD2.
    Надеюсь этого достаточно для понимания того, почему выбран первый вариант раскладки портов МК?

  3. Этот пользователь поблагодарил caro за это полезное сообщение:

    Northwood (03.04.2020)

  4. #433
    Member
    Регистрация
    03.11.2006
    Адрес
    Ufa
    Сообщений
    188
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от caro Посмотреть сообщение
    Микроконтроллер (МК) работает в режиме программного опроса PS/2 клавиатуры и аппаратного прерывания
    по "сигналу обращения к порту клавиатуры", который поступает на его вход INT0, совмещенный с выводом PD2.
    Надеюсь этого достаточно для понимания того, почему выбран первый вариант раскладки портов МК?
    Меня тоже смущала такая распиновка, теперь ясно почему был сделан такой выбор. Кстати в каких прошивках , наверное ранних, нет подтяжки этого входа к +5V (если на этом порту вообще это возможно программно), пришлось поставить один резистор.


    Sent from my iPhone using Tapatalk

  5. #434
    Master Аватар для Northwood
    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Такой вопрос:

    Контроллер собран на МК ATMega48PA-PU, кварц стоит на 20 МГц, фьюзы - LockBit - 0xFF, Extended - 0xFF, High - 0xDC, Low - 0xEF.
    С прошивкой "KBD13_48nw.HEX" в принципе всё работает, кроме управления Турбо-режимом (на F11 нажимаются CS+9).

    Хотел попробовать новую прошивку, пробовал "KBD13_M48_nw_MODIFIEDv5_5_20MHz.hex", но с ней вообще никаких признаков жизни: После включения питания на клавиатуре загораются все 3 индикатора, тухнут и больше не загораются. Нет никакой реакции ни на Caps/Scroll/Num Lock, ни на PrintScreen. Пробовал менять фьюзы на LockBit - 0xFF, Extended - 0xFF, High - 0xDD, Low - 0xEE - ничего не изменилось - ничего не работает.
    Вернул прошивку "KBD13_48nw.HEX", всё заработало. Фьюзы назад не возвращал, всё-равно работает точно так же, получается, что BODLEVEL0 и CKSEL0 на работу никак не влияют.
    С уважением, Александр

  6. #435
    Member
    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Northwood Посмотреть сообщение
    получается, что BODLEVEL0 и CKSEL0 на работу никак не влияют.
    Судя по этому, биты влияют на то, будет ли у нас BODlevel 2.7 или 4.3В и сколько мы будем ждать включение кварца прежде чем начать выполнение программы, либо 1К тактов либо 4.1ms + 16К тактов. В большинстве случаев оно конечно не влияет, но при шумном питании 4.3В может приводить к внезапным reset'ам, аналогично 1К тактов может оказаться недостаточным для стабилизации кварца.

  7. Этот пользователь поблагодарил blackmirror за это полезное сообщение:

    Northwood (06.04.2020)

  8. #436
    Master Аватар для Northwood
    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Начинаю попытки освоить микроконтроллеры AVR, хочу выяснить, почему прошивка "KBD13_M48_nw_MODIFIEDv5_5_20MHz.hex" не запускается в МК ATMega48PA-PU с кварцем 20 МГц.
    Но тут же возникла проблема - исходник "KBD13_M48_nw_MODIFIEDv5_5.asm" не компилируется в AVR Studio 4.19, обнаруживает 101 ошибку, все касаются имён переменных.

    Скачал и установил AVR Studio 4.19 build 730. Создал новый проект, тип проекта выбираю "Atmel AVR Assembler", задал путь к проекту и его имя, в поле "Debug Platform" выбираю "AVR Simulator", в поле "Device" выбираю "ATmega48PA".
    В создавшийся автоматически asm-файл копирую исходник из файла "KBD13_M48_nw_MODIFIEDv5_5.asm". Запускаю build и получаю ошибки.

    Нашёл отличное подробное описание ассемблера, смотрю в код и на ошибки:

    Самая первая - в строке in YL,PinD. В документации в описании команды IN (чтение из порта) сказано, что первый операнд должен быть регистр процессора Rd (R номер), а второй - адрес порта. В исходном коде стоят не установленные заранее переменные YL и PinD, которые ассемблер и не понимает. Если посмотреть текст от начала и до места этой ошибки, то нигде не видим определения этим двум переменным.
    Может я что-то упустил и не вижу очевидного ? Или это не полный исходник ? Или нужна другая среда разработки ?
    Последний раз редактировалось Northwood; 20.04.2020 в 15:51.
    С уважением, Александр

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

  10. #437
    Guru Аватар для caro
    Регистрация
    14.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,721
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    87 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    YL и PinD описаны в файле m48def.inc (или m48pdef.inc - без разницы)
    и много ещё переменных описывается в этом файле,
    который должен подключаться оператором
    .include "m48def.inc"
    в самом начале исходника.
    Последний раз редактировалось caro; 20.04.2020 в 16:25.

  11. Этот пользователь поблагодарил caro за это полезное сообщение:

    Northwood (20.04.2020)

  12. #438
    Veteran Аватар для krotan
    Регистрация
    30.08.2010
    Адрес
    Санкт-Петербург
    Сообщений
    1,263
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    159 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Northwood Посмотреть сообщение
    исходник "KBD13_M48_nw_MODIFIEDv5_5.asm" не компилируется в AVR Studio 4.19, обнаруживает 101 ошибку, все касаются имён переменных...
    Я же чуть выше писал, как это исправить... Не поленись, прочитай...

  13. #439
    Master Аватар для Northwood
    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krotan Посмотреть сообщение
    Я же чуть выше писал, как это исправить... Не поленись, прочитай...
    Это уже решено, спасибо. hex-файл теперь компилируется байт в байт такой же, как в архиве.

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

    И так, пытаюсь выяснить, почему эта прошивка у меня не работает, в то время, как нормально работает версия 1.3:

    Изучил, каким образом конфигурируются порты в ATmege. Т.к. отладочной платы у меня нет, то припаял 3 светодиода разных цветов к портам PB3, PB4 и PB5, в исходном коде в разных циклах и этапах инициализации клавиатуры зажигаю те или иные светодиоды, для того чтобы понять, не зациклилась ли в бесконечности программа в том или ином месте. Как оказалось, программа зацикливается на этапе чтения данных из клавиатуры то в "DATA_1_LOOP" в бесконечном ожидании сброса бита 4 порта C (KB_DAT), то в "KBD_DATA_LOOP". Т.е. взаимодействие контроллера с клавиатурой в версии 5.5 выполнено некорректно. Оно не работает с моей клавиатурой "A4 Tech KL-7MU", в то время, как прошивка версии 1.3 работает с этой же клавиатурой нормально.

    Продолжаю дальше разбираться.

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

    P.s. если кто-нибудь кинет в меня ссылкой на описание стандарта, по которому должно происходить взаимодействие контроллера с клавиатурой, то буду премного благодарен.
    Последний раз редактировалось Northwood; 21.04.2020 в 22:50.
    С уважением, Александр

  14. #440
    Member
    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Northwood,
    https://wiki.osdev.org/PS/2_Keyboard
    К сожалению винда долгое время использовала Scan Code Set 2 и китайцы иногда делают клавиатуры, которые только его и поддерживают. Если для такой клавиатуры попробовать сменить набор кодов, то клавиатура уйдёт в состояние ошибки(что для программы может быть неожиданностью), и её потребуется сбрасывать. Еще могут быть варианты с тем, в каком наборе кодов по умолчанию она работает, хотя после сброса по идее индикаторы в любом случае должны управляться.

  15. Этот пользователь поблагодарил blackmirror за это полезное сообщение:

    Northwood (21.04.2020)

Страница 44 из 53 ПерваяПервая ... 404142434445464748 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 112
    Последнее: 03.08.2020, 16:24
  2. Ответов: 3
    Последнее: 16.10.2010, 14:04
  3. Продам плату "Пентагон-128K" + примочки
    от Atari в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 20.03.2010, 13:30
  4. Продам печатные платы: от "Львов-48" и клавиатуры
    от Tim0xA в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 27.12.2008, 16:41
  5. Ответов: 3
    Последнее: 23.07.2007, 19:10

Ваши права

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