AT_2_XT

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

AT_2_XT

Post by Lavr »

Меня вот этот проект давно интересовал... С тех пор, как murgatroid_79 о нём поведал...
Lavr wrote:Ну в общем-то, чтобы не морочить себе голову, давно придумали люди простой переходник АТ-ХТ. :ewink:
Ну это, конечно, если религия позволяет заюзать "богомерзкий" PIC в "кошерной" схеме "тёплого, лампового"... :ebiggrin:

Image

На zx-pk.ru обсуждали, что схема эта работает без проблем...

На нашем форуме давали на этот материал ссылку:

Image
murgatroid_79 wrote:архив в котором все необходимое для сборки адаптера xt-at
http://narod.ru/disk/32390970001/XTAT.rar.html
Ну а исходные все материалы - вот здесь: AT2XT keyboard converter
Но, то руки не доходили, то PIC12F629 мне не нравился (у меня такого нет)... Смущало также, что у одних он великолепно работает, а у других - категорически не работает...
И схема-то проще некуда, но для проверки нужен ей симулятор сигнала АТ-клавиатуры...

В общем, вчера меня интерес захлестнул, и всё срослось! 8)

Имитатор клавиатуры АТ я сделал вот из этого проекта на 8051: Имитируем работу клавиатуры.
Чтобы не шаманить с программой, я приделал генератор 5...10 Гц, который "нажимает" на кнопку и вызывает передачу
"клавиатурой АТ" кода 55Н - он хорошо виден на осциллограммах.
Чтобы всегда выдавался код 55Н, я чуть подпортил исходник программы для 8051, найти это можно.
В остальном проект на 8051 весьма путно имитирует "клавиатуру АТ". :lol:

В совокупности с PIC12F629 получилось вот что:

Image

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

PIC12F629 нормально опознает код 55Н от "клавиатуры АТ", правильно преобразует его в код ХТ = 0DH,
а вот имитирует протокол ХТ клавиатуры он, на мой взгляд, херовенько. :(
От того и, видимо, он у одних работает, у других - нет.

На осциллограммах: верхняя пара - то, что выдает PIC12F629

Image

Нижняя пара - то, что передает 8051 в качестве "клавиатуры АТ" (масштаб сжат вдвое).

Видимо, для большей четкости передачи, надо код PIC12F629 чутка подработать, хотя авторы в комментах
пишут, что времянки все четко по стандарту реализованы.

Исходник проекта Протезус доступен вот здесь, если кто захочет "поиграть" с ним.

В исходнике - XTATKEY_094.HEX оригинальная прошивка от автора АТ2ХТ.
XTATKEY.ASM - оригинальный код, но я в нем кое что правил на свой взгляд, так что
оригинал исходника лучше брать с сайта http://www.vintage-computer.com/


Ну и мне сегодня удался очень приятный трюк, может кому пригодится... :wink:

При симуляции PIC в Протезусе надо вручную выставит биты конфигурации, хотя для прошивки они уже есть в НЕХ-файле.
__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT ;Internal osc.
В MPLAB есть встроенная утилита, которая этот код вычисляет наглядно, но у меня - только MPASM...
И я с этим кодом всегда вручную мучаюсь... :-?
Может я чего не знаю, и он тоже где-то может нужный код посчитать - я не нашел... :osad:

А порешал я проблему так: в свободном месте программы вставил следующее...

dw _MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT ;Internal osc.

Ну и при компиляции в листинге мне MPASM нужный код конфигурации PIC и сосчитал! :ebiggrin:
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: AT_2_XT

Post by Lavr »

Во всех заслуживающих доверие источниках в сети при сравнении интерфейсов АТ- и ХТ-клавиатур пишут примерно следующее:
По электрическому интерфейсу клавиатуры XT и AT совпадают, за исключением того, что
двунаправленный интерфейс позволяет клавиатуре AT принимать команды от системной платы.
Однако по логическому интерфейсу они несовместимы.
Но диаграмму для ХТ-интерфейса найти уже трудновато, а ту, которую все-таки находишь, так сильно поджали, что почти не видно одного важного момента.
Я сделал копию этой диаграммы из первоисточника и цветным контуром выделил то, что действительно важно:
XTKBD_diagram.gif
Увеличить

И в АТ- и в ХТ-интерфейсе каждый бит считывается по спаду на уровне такта.
Но в ХТ-интерфейсе начало посылки имеет некоторое отличие.

В следующем документе, на мой взгляд, это довольно верно описано на словах:
XTKBD_info.gif
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: AT_2_XT

Post by Lavr »

Приподнял топик... помню, что был он, но искал долго даже Гуглем! :-?

Некоторые ссылки выше стали нерабочими, поэтому исходники сабжа лучше выложу здесь:
XTAT.rar
You do not have the required permissions to view the files attached to this post.
iLavr