Ну, самая обычная в корпусе ТО-220 Уже собрал, разбирать пока не буду.
Это я понял ;-) я в общем.
Позже, есть вариант что появится вторая, тогда посмотрю в сравнении.
Да я в принципе, вдруг уже была возможность наплатного программирования.
Ну, самая обычная в корпусе ТО-220 Уже собрал, разбирать пока не буду.
Это я понял ;-) я в общем.
Позже, есть вариант что появится вторая, тогда посмотрю в сравнении.
Да я в принципе, вдруг уже была возможность наплатного программирования.
"Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.
А есть код инициализации?
Я тут подключил клавиатуру МС7004 к терминалу VT240 и тот отказался работать. Пишет: VT240 Keyboard Error- 6.
Как вариант попробую сменить на советские прошивки в терминале.
- - - Добавлено - - -
Upd. Нашел коды.
Вроде такие:
- - - Добавлено - - -Код:If the keyboard passes all power up tests with no error, the resulting sequence sent to the computer is: 0x01 0x00 0x00 0x00
Upd2. А такой код в МС7004 есть. Остаётся только дампить порт VT240 на другие команды.
Возможно что терминал спрашивает языковый вариант клавиатуры.
- - - Добавлено - - -
Запрос на клавиатуру LK201 от терминала VT240 такой:
Код:023 217 217 211 021 217 023 203 023 217 217 211 375 021 200 023 217 217 211 247 247 375 023
- - - Добавлено - - -
Коды на LK201 окт/нех.
023/013- зажечь светодиод
217/8F- все светодиоды
211/89-?
021/11- погасить светодиод
203/83-?
375/FD- запускает последовательность включения клавиатуры
200/80- вниз (?)
247/A7- подать сигнал на бипер.
наш клон vt240 тоже шлет такие коды, и обычная прошивка от 7004 на это обижается. может быть, есть другая какая-то
все же, если обнаружится владелец работающей комбинации мс7105 и мс7004, которая при старте показывает логотип "Электроника", а не ошибку клавиатуры -- можно попросить его снять дампы для сравнения :-)
В общем такая каша получается.
МС7004 при включении ( клавиатура подключена к VT240) даёт код такой:
Дамп с программы Terminal v1.9b (нех)
Дамп с программы эмулятора VT52 (ост)Код:C0 00 B7 B6 B7
Код:300 1000 000 267 266 267
Так (если правильно помню) эмулятор отображает приход сигнала 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мсек.
В принципе этот период за стоп бит годится, за очень жирный стоп бит .
кстати, хорошо бы замерить реальную скорость передачи -- у меня в эмуляторе вышло, что мс7004 шлет на скорости 4960, а не 4800 bps.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)