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

User Tag List

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

Тема: (USB, AT)PS/2-ASCII адаптер на PIC16F684

  1. #1
    Veteran Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию (USB, AT)PS/2-ASCII адаптер на PIC16F684

    В рамках проекта Аюша-Z80 выкатываю новогодний подарок - адаптер ASCII для клавиатур АТ и PS/2 (и некоторых типов USB-клавиатур). Основа - конструкция Себастиана Кинцля.
    Схема ну очень простая:

    Используется 14-ножечный контроллер PIC16F684/688 с минимумом обвески. Нагрузочные резисторы могут для большинства PS/2-клавиатур не понадобиться, однако всё решается опытом (для АТ однозначно нужны).
    В этой ревизии сделано:
    - конвертация первой половины ASCII-таблицы во всех видах (прописные, строчные, с капсом и шифт-капсом);
    - конвертация второй половины в кодировке кириллицы СР866 (альтернативная ДОС, прописные, строчные, с капсом и шифт-капсом);
    - конвертация всех управляющих символов Ctrl-*** в любой раскладке;
    - индикация раскладки (капс или кириллица). Переключение рус/лат осуществлено клавишей ScrollLock;
    - подключена цифровая клавиатура (без "стрелок");
    - строб негативный.

    Далее чистое ИМХО.
    Достоинства:
    - малые размеры (меньше, чем на ардуине );
    - практически отсутствует внешняя обвеска;
    - не занимает обработкой основной процессор.
    Недостатки:
    - чип не относится к ультрадешёвым, хотя в продаже присутствует (UPD: уже есть возможность выбора наличествующего чипа в продаже из двух вариантов);
    - некоторый народ к выбранному типу контроллера относится холодно.
    Я не считаю себя кульным программером пиков, плохо разбираюсь в сишном коде, посему если кто-то может код поправить/подчистить - не возражаю.
    Если кто-то:
    - желает изменить кириллическую кодировку,
    - использовать иной тип контроллера,
    в архиве есть небольшой текстовый файлик, указывающий куда нужно приложить ручки. Основной код насколько возможно откоментил.
    К чему применить: к самодельным компьютерам уровня 80-х годов, Apple I/II, возможно к "Ирише", "Океану-240",.. (разумеется, что где-то надо кодировку поменять, где-то строб инвертировать, что не составляет сложности)
    Такое же краткое описание выложено на моей страничке, а вы пока тестируйте, проверяйте, выносите жалобы...
    UPD от 14.01.2019: оказывается возможным применение некоторых типов USB-клавиатур, которые не содержат внутри USB-хаб и имеют двухстандартный USB-PS/2 чип. Для подключения достаточно пассивного PS/2-USB переходника.

    Далее ссылки на прошивки. Если внезапно найден баг, то изменённый архив выкладывается вместо предыдущего.

    1. Описанную выше прошивку CP866 и сорцы со справочными данными можно качать тут. (обновлено 19.01.19)
    2. Прошивку КОИ-8 и сорцы для компьютера "Ириша" и частичной замены отечественной клавиатуры 15ВВВ-97-005/006 можно качать тут. Схема немного изменена и вложена в архив. (обновлено 19.01.19)
    3. (готовится)
    Последний раз редактировалось rw6hrm; 15.04.2019 в 15:01.

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

  3. #2
    Veteran Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если использовать этот адаптер с Apple I, то имеем в виду следующее:
    - вывод RA5-D7 не подключаем;
    - ЕМНИП инвертируем строб;
    - вручную переводим адаптер в режим Капс, поскольку первояблоко не понимает маленьких буковок.

    Для первояблока лучше оригинальную конструкцию использовать, потому что там сразу чип можно воткнуть в гнездо клавы на плате.
    Последний раз редактировалось rw6hrm; 28.12.2018 в 08:29.

  4. #3
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    394
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возможно ли использовать пин 4? у "Океана-240" хост подтверждает принятие байта от клавиатуры сигналом ACK, получив который, клавиатура снимает сигнал STROBE. В принципе и без него может сработать, но с подтверждением надежнее.

  5. #4
    Veteran Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возможно. Пин 4 работает только на вход. Тогда в последней секции main.c:
    Код:
            // assert strobe
            P_STROBE = 0;
    //        DelayUs( 15 ); // это закомментить или убрать
    // а тут поставить цикл ожидания сигнала АСК и как только подтверждение получено снимать строб
            P_STROBE = 1;
    Разумеется, что в начале кода нужно определить пин, нужен ли ему TRIS и т.п. Ну и с полярностью строба определиться, чуть выше стоит его определение. Места в памяти хватит, там ещё 35% свободно.
    Есть ещё и железный вариант, использовать внешний триггер (как D18.2 в одноплатном варианте моей конструкции), но это разве что для проверки ибо плюс ещё один корпус.
    Последний раз редактировалось rw6hrm; 29.12.2018 в 07:50.

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

    По умолчанию

    Если АСК в машинках снимается автоматом (не нужно ждать именно фронт), то просто запилите обработку АСК как сказано выше. Тем, кому он не нужен будут просто подтягивать его на активное состояние (вечный АСК).

  7. #6
    Veteran Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Оно несложно доделать прошивку, там от силы пять строчек добавить, всё равно подобные машинки используют КОИ-8 или ещё какой-нить треш, поэтому всё равно перетранслировать весь проект. А там глядишь - и иришеводы подтянутся, у них вроде что-то подобное использовалось.

  8. #7
    Master Аватар для Anubis_OD
    Регистрация
    18.10.2014
    Адрес
    г. Одесса, Украина
    Сообщений
    609
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    32 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Надеюсь скоро попробовать это на Ирише.
    как раз приступил с наладке..
    там правда КОИ-8 надо а не CP866.. но поправить думаю не сложно будет.
    и там еще сигнал IBF - заполнение буфера клавы, вроде логика его похожа с ACK а Океане.
    С Уважением, Андрей!

  9. #8
    Veteran Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если что - пишите в личку, разберёмся вместе. На праздниках попробую сделать черновую версию, хотя бы таблицу перебью, а пока мне сообщите полярность нужного строба и АСК-заменяющих сигналов (а то книжку по Ирише дома найти не могу).

  10. #9
    Master Аватар для Anubis_OD
    Регистрация
    18.10.2014
    Адрес
    г. Одесса, Украина
    Сообщений
    609
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    32 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нажмите на изображение для увеличения. 

Название:	Image 4.jpg 
Просмотров:	199 
Размер:	70.0 Кб 
ID:	67470

    Извиняюсь что картинкой... на бегу всё..
    С Уважением, Андрей!

  11. #10
    Veteran Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, спасибо. За выходные попробую сделать.

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

    tnt23, жду описание сигнала АСК, строба и нужной кодировки.

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

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

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

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

Похожие темы

  1. Адаптер BK-UART-2-USB для порта УП БК0010/11М
    от TheGWBV в разделе БК-0010/0011
    Ответов: 5
    Последнее: 17.11.2016, 20:49
  2. ASCII/ANSI-art
    от Mat1sha в разделе Творчество
    Ответов: 19
    Последнее: 18.01.2012, 18:11
  3. Bmp->ASCII
    от ALKO в разделе Софт
    Ответов: 8
    Последнее: 23.05.2011, 15:54
  4. ASCiI'2008 Invitation
    от breeze в разделе Демо
    Ответов: 46
    Последнее: 12.09.2009, 01:41
  5. ASCII'2008
    от Stingrey в разделе События
    Ответов: 118
    Последнее: 18.11.2008, 16:51

Ваши права

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