Last modification | View Log | Download | RSS feed
26/10/06
скан-кода клавиатуры на шину данных Z80, что
обеспечивает устойчивую работу контроллера
на частотах выше 10 мгц.
Примечание:
В существующей прошивке скан-код клавиатурывыдается на шину Z80 командой movx @DPTR,A
Длительность сигнала /VWR при тактовой частоте11.0592 МГц в режиме выдачи по команде movx = 0.5 мксек.
В это время данные из порта P0 микроконтроллера передаются
через регистр на шину данных Z80. При слишком коротком
импульсе (при высокой тактовой частоте МК) этого времени
недостаточно для удержания данных на шине Z80, что
приводит к неустойчивому считыванию скан-кода клавиатуры.
Обьясняется это тем, что с момента снятия /WAITпроцессора, до завершения цикла чтения порта клавиатуры
при тактовой частоте процессора Z80 = 3.5 MHz проходит
от 0.4 до 0.7 мксек (при независимом тактировании Z80
и МК). Этого явно не достаточно для надежного чтения
скан-кода выдаваемого МК на шину данных Z80.
Если управлять битом /VWR на прямую, длительностьпри той-же тактовой получилась 1.1 мксек. Этого
вполне достаточно для устойчивой работы системы.
Сейчас сделано так: mov P0,A ;это скан код в порт clr VWR ;импульс на выводе setb VWR ; линии записи МКвключении питания, что надеюсь исправит
ситуацию с перезапуском АТМ от контроллера.
Кварц желательно установить на 11.0592 Мгц.
В принципе можно пересчитать константы и для другой
частоты кварца, но я думаю это не рационально.
Kamil Karimov k2k@list.ru
26 октября 2006 года
Камиль Каримов