В общем такая каша получается.
МС7004 при включении ( клавиатура подключена к VT240) даёт код такой:
Дамп с программы Terminal v1.9b (нех)
Дамп с программы эмулятора VT52 (ост)Код:C0 00 B7 B6 B7
Код:300 1000 000 267 266 267
В общем такая каша получается.
МС7004 при включении ( клавиатура подключена к VT240) даёт код такой:
Дамп с программы Terminal v1.9b (нех)
Дамп с программы эмулятора VT52 (ост)Код:C0 00 B7 B6 B7
Код:300 1000 000 267 266 267
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Так (если правильно помню) эмулятор отображает приход сигнала BREAK.
- - - Добавлено - - -
Нашёл в исходнике, что это значит:
Т.е. к передаваемым байтам эмулятор добавляет 01000, если байт был принят с ошибкой границы кадра (т.е. без стоповых битов). Байт 000, принятый без стоповых битов - это сигнал BREAK.Код:void BadFrame_CommandProcessor( PVOID ch, SocketClass *pSender ) { return ByteReceiver( PVOID(((int)ch)|01000), pSender ); }
Я сделал проще, соединил Тх,Rx СОМ порта вместе, подал с эмулятора VT52 BREAK, получил 1000 000.
- - - Добавлено - - -
.
Немного переделал выход клавиатуры. В обход микросхемы двуполярного передатчика, сделал выход через инвертор с микроконтроллера. На выходе получается ТТЛ который тоже берёт СОМ порт.
Дамп с программы эмулятора VT52 (ост)
Код:1000 000 1000 000 267 266 267
Минусовое питание передатчика D7 появляется позже плюсового питания. Из-за этого на выходе происходит сдвиг нуля в плюс, и происходит ложное срабатывание.
Это я по коду 300 который не должен быть в самом начале.
- - - Добавлено - - -
Кстати ТТЛ сигнал VT240 не нравится, он его просто не берёт. Видать ему надо строго от минус 3 в отличии от РС.
- - - Добавлено - - -
......
Внес изменения в схему клавиатуры.
1) уменьшил ёмкость до 1мкФ конденсатора С3 для более быстрого старта микроконтроллера D1. Сигнал PSEN подаётся более раньше на генератор отрицательного напряжения.
2) уменьшил ёмкость до 10мкФ конденсатора С21 для более быстрого заряда от отрицательного напряжения. В недостатке сглаживания ёмкостью С21 не наблюдается.
Теперь получается дамп такой:
- - - Добавлено - - -Код:1000 000 267 266 267
А правильно ли это? Ведь программа
Terminal v1.9b чётко определяет последовательность нулей.
Код при старте клавиатуры МС7004 подключенной к VT240.
BIN.
В нехе так:Код:00000000 10110111 10110110 10110111
Правда, судя по всему BREAK эта программа считает двухбайтовым.Третий байт печатает. Хотя тут уже осциллографом надо вылавливать. Может клавиатура и один байт выдаёт.Код:00 В7 В6 В7
Так нет там стоповых бит. Стартовый есть, после него ведется отсчет на 8бит вроде и всё.
Ну в ASCII та есть ещё и символ "NUL" (пустой символ). Как он будет передаваться без стоповых битов.
- - - Добавлено - - -
.....
Замер на осциллографе дал таки результаты:
При включении дает (непрерывный) BREAK длительностью- 130мсек.
Длительность байта - 1,6мсек. (включая старт бит)
То-есть за 130мсек даёт 81,25 байтов нулей
- - - Добавлено - - -
По поводу стоп бита.
При зажатой клавише повторяется код к периодом 33мсек.
В принципе этот период за стоп бит годится, за очень жирный стоп бит.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)