Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
01.05.2014
Размер:
267.19 Кб
Скачать

6-11

необходимо быть уверенным, что никакое другое устройство не сможет подключиться к шине в тоже самое время (возможно короткое замыкание).

Когда Порты 3 и 4 используются исключительно как системная шина адреса/данные, имеющая нагрузочные резисторы, то на шине устанавливается значение 0FFFFh, если команда считывается из несуществующей ячейки памяти. Выборка операнда 0FFh приводит к сбросу устройства. Следует предположить, что выборка команды из несуществующей памяти говорит об аппаратной или программной ошибке, поэтому сброс устройства полезен и предотвращает дальнейшую работу устройства.

6.3.АППАРАТНОЕ ПОДКЛЮЧЕНИЕ К КВАЗИДВУНАПРАВЛЕННЫМ ПОРТАМ

При использовании QBD портов как входных с возможностью переключения, могут понадобиться резисторы, подключенные последовательно, если производится запись в порты после того, как они инициализированы. Например, запись “0” в порт, который подключен к Vcc через внешнюю переключательную схему, приведет к короткому замыканию (большой ток потребления). Суммарный ток короткого замыкания для каждого вывода может превысить 20 мA. Этот ток может выйти за допустимые пределы для вывода или порта.

Эту потенциальную проблему можно решить и программно, и аппаратно. При программировании никогда не записывайте “0“ на вывод, используемый как вход. Апаратно подключайте резистор номиналом 1 кОм, соедин¸нный последовательно с каждым выводом, для ограничения тока до допустимого значения. Проблема не так существенна при подключении входов к электронными устройствам (TTL и CMOS) вместо переключательных схем, так как электронные устройства обычно не вызывают чрезмерного суммарного тока.

Запись в QBD порт с присоединенными к его выводам электронными устройствами требует особого внимания. Рассмотрим попытку переключения P1.1 в состояние выхода:

XORB IOPORT1, #00000010B ; переключение P1.1

Проблема может возникнуть при выполнении команды. Даже если P1.1 в высоком уровне от 8XC196KC/KD, он может удерживаться в низком уровне. Это обычно случается,

если вывод порта подключен к базе n-p-n транзистора, который управляет внешними устройствами. Переключение транзистора происходит при Vbe чуть выше нуля, обычно около 0.7 В. 8XC196KC/KD примет это значение за “0”, если в порт была записана “1”. Поэтому команда XORB запишет “1” в SFR вывода порта и вывод не переключится.

Задачу можно решить аппаратно, используя внешний драйвер. Использование резисторов между выводом порта и базой транзистора часто помогает решить эту проблему, увеличивая напряжение на выводе порта. Программным решением является сохранение байта, который отображает данные, выводимые в порт, в ОЗУ. Всякий раз, когда программе необходимо изменить данные, выводимые в порт, можно модифицировать этот байт и скопировать его в порт.

Если переключатель использует длинную линию для подсоединения к выводу QBD порта, рекомендуется подсоединять его через резистор к Vcc, чтобы уменьшить возможность возникновения помех и время задержки в линии. На очень длинных линиях с низкоскоростным обменом для уменьшения помех в дополнение к резистору полезен и конденсатор,

Соседние файлы в папке MPS_shprots