Инициализация COM порта в BIOS и DOS

Мониторы, принтеры, клавиатуры, колонки и другие устройства
XPOHOMETP

Инициализация COM порта в BIOS и DOS

Сообщение XPOHOMETP » 26.06.2019,13:11

Rio444, я не уверен, что все читатели доберутся до темы про адаптер.
Здесь же прозвучало:
uav1606 писал(а): 19.05.2019,21:55 Ещё интереснее вот это:
00130124390d[SER ] com1 register write to address: 0x03fe = 0x00
Зачем CheckIt это делает, то есть пишет в read-only регистр?
и
Rio444 писал(а): 19.05.2019,22:00 Мне кажется это проверка на невозможность записи в read-only регистр.
Полагаю, что "недокументированная фича" была обнаружена Вами несколько позже.
Плюс, насколько я в курсе, у Вас нет реальной 8250.
Вот на ней я и сделал тест, о чем и сообщил.

Если нужно проверить что-то еще - пишите, пока стенд не разобрал.
А обсуждение оставшихся вопросов удобнее продолжить в теме про адаптер, имхо.

XPOHOMETP

Инициализация COM порта в BIOS и DOS

Сообщение XPOHOMETP » 28.06.2019,20:45

Rio444 писал(а): 18.05.2019,19:31 С настоящим COM-портом ошибки естественно нет.
Предыдущий тест был на Celeron 333 МГц:
XPOHOMETP писал(а): 25.06.2019,23:57 Глюк документирован - он есть на 8250 и устранен в 16450.
Плата портов вернулась на место - в XT 4,77 МГц.
Все подпункты теста Checkit (с софтовой заглушкой) прошли без ошибок
и на CM611P :biggrin: :biggrin: :biggrin: , и на FM88450-A.

Это к вопросу о зависимости от процессора / частоты...

Полагаю, что у разработчиков 8250 на актуальном железе того времени
глюк просто не возникал, вот и прокрался кристалл.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Инициализация COM порта в BIOS и DOS

Сообщение Rio444 » 28.06.2019,20:58

Оригинальный 8250 очень медленный. Видимо просто не успевает за быстрыми процессорами.
И, кстати, шина ISA на XT, как и на более поздних 8 МГц? Или 4,77?
Сомнительно, что шину делали быстрее, чем частота процессора.
Электронка: Изображение копия Изображение

SilverRay
Member
Сообщения: 171
Зарегистрирован: 16.02.2016,08:34
Откуда: Москва

Инициализация COM порта в BIOS и DOS

Сообщение SilverRay » 01.01.2020,16:23

Когда-то давным-давно возился с разработкой ISA-контроллеров типа мультипортовок и прочего. И задача корректно генерить прерывания на линии тоже потребовала некоторых решений.

По памяти, Чекит генерил прерывание от уартов установленной заглушке при изменении модемных сигналов -- поскольку там, если не путаю, замыкались пары DTR-DSR-DCD и RTS-CTS-RI. Если заглушки нет -- он ставит внутренний лупбэк в самом чипе (не помню уже, бит 5, что ли, то ли в MCR, то ли в LCR).
А вот с самим сигналом прерывания, из-за того, что он шел на все доступные слоты ISA, и на них могли сидеть другие устройства, пришлось повозиться -- точно не вспомню, надо поднимать исходники, но вроде бы я его притягивал к 0, выдерживал определенное время, и только потом давал перепад в 1. В этом случае он гарантированно обрабатывался PICом.
Зверь, именуемый Кот.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Инициализация COM порта в BIOS и DOS

Сообщение Rio444 » 01.01.2020,19:56

SilverRay писал(а): 01.01.2020,16:23 но вроде бы я его притягивал к 0, выдерживал определенное время, и только потом давал перепад в 1. В этом случае он гарантированно обрабатывался PICом.
Если не сложно, попытайтесь вспомнить. Я уже сам стал забывать. Но кажется PIC работает по уровню, а не по фронту.
Поэтому перед включением прерывания в PIC, нужно опустить соответствующую линию в 0. И держать её в током состоянии,
пока не возникнет прерывание. После обработки прерывания нужно снова в 0, иначе прерывание будет считаться активным (не обработанным).
Вообще это долго перетиралось здесь https://phantom.sannata.org/viewtopic.p ... 9&start=27
Электронка: Изображение копия Изображение

pahan
Advanced Member
Сообщения: 4455
Зарегистрирован: 13.03.2015,14:23
Откуда: Химки, М.О.

Вклад в сообщество

Инициализация COM порта в BIOS и DOS

Сообщение pahan » 09.01.2020,16:19

Но кажется PIC работает по уровню, а не по фронту.
НЯП, сама микросхема умеет работать и по уровню и по фронту (пишу усталый и без даташита, так что может и нет). А вот то, что Биос и архитектура IBM PC не учитывают все возможные режимы работы PIC (и DMA) контроллеров и при чём-то (с их точки зрения) нестандартном всё просто намертво зависнет - есть факт.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Инициализация COM порта в BIOS и DOS

Сообщение Rio444 » 09.01.2020,19:31

pahan, насчет возможностей PIC Вы скорее всего правы. Но конкретно в IBM PC-совместимых он работает по уровню.
Электронка: Изображение копия Изображение

Ответить