Зачем материнки на платформе Intel выставляют периодический «нолик» на CLK клавиатуры PS/2?
Предыстория такая: есть ЧПУ CNC-D, работает под DOS.
На одном станке (материнка Интел) проблема с тем, что редко-редко но пропускает сигнал отжатия клавиш.
Клавиатура PS/2, но со своим контроллером на Atmega. Есть подозрение, что эта клавиатура может передавать данные не контролируя состояние линии Clock, отсюда и пропуски.
Две другие ЧПУ имеют в своем составе материнки на платформе AMD, на них такой проблемы с управлением от клавиатуры нет.
По ходу дела обнаружилось:
на линии синхронизации клавиатуры CLK постоянно присутствует сигнал в виде импульса «логический 0», длительность 300 мкс, период 120 мс, передаваемый от материнcкой платы D1800B-ITX (Intel).
Импульсы начинают идти сразу после первоначального опроса клавиатуры, уже при входе в БИОС.
На линии данных при этом — тишина.
Глянул на двух других материнках от Intel - похожая картина:
на ASUSTeK Computer INC. P7H55-M такие же 300мкс/120мс
на D945GCLF - длительность 150мкс/ период 750 мс
У четырех участников теста на платформе AMD — на линии CLK стоят красивые 5 В, если нет обмена, если есть обмен — все по протоколу PS/2.
Больше всего похоже на то, что описано в англоязычной Вики:
«Когда хост выводит Clock на низкий уровень, устройство должно немедленно прекратить передачу и освободить Clock и Data, чтобы они “плавали» высоко.(До сих пор все это совпадает с протоколом однонаправленной связи порта клавиатуры IBM PC, хотя форматы последовательных кадров отличаются.) Хост может использовать это состояние интерфейса просто для того, чтобы запретить устройству передачу, когда хост не готов к приему. (Для порта клавиатуры IBM PC это было единственное нормальное использование передачи сигналов с компьютера на клавиатуру»
Может кто знает, что это за нолики на линии синхронизации на интеловских материнках?
И почему их нет на амд-шных?
|