Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

502 Микроконтроллеры AVR от азов программирования... Затем, в зависимости от значения бита R/W, либо Master, либо Slave начинают процесс передачи. Если бит R/W равен единице, то ведущее устройство переходит в режим чтения (то есть ведомое устройство управляет линией SDA). Ведомое устройство может удерживать линию SCL и после окончания фазы распознавания (вплоть до точки Е). Шаг 6. Теперь в выбранном направлении может передаваться любое количество байтов данных до тех пор, пока Master не сформирует стоп- условие (точка F). Или не будет сформировано новое стартовое условие. Если в процессе передачи Slave уже не может получить очередной байт данных, то этот байт теряется. Если Master выполняет чтение данных, то для окончания процесса чтения цепочки данных необходимо при получении очередного байта принудительно установить нулевой бит подтверждения. Схема обнаружения стартового условия Схема обнаружения стартового условия показана на рис. 6.46. Для того, чтобы гарантировать надежную выборку сигнала с линии SCL, про ­ изводится задержка сигнала SDA (величина задержки 50 — 300 нс). Датчик стартового условия работает в асинхронном режиме и поэ ­ тому способен пробудить процессор из спящего режима «Power-down». Однако использование спящих режимов налагает дополнительные усло ­ вия на длительность сигнала SCL. В этом случае при выборе длительности входного сигнала также должно учитываться время запуска генератора, установленное fuse -переключателем CKSEL (смотри раздел «Тактовый генератор и его окружение»). Альтернативное использование USI Если модуль USI не используется для передачи данных, то он, благо ­ даря гибкости схемного решения, может быть использован для решения других задач. Полудуплексная асинхронная передача данных При использовании сдвигового регистра в трехпроводном режиме можно получить более компактную и быстродействующую программу UART, чем при чисто программной его реализации. Четырехразрядный счетчик. Четырехразрядный счетчик может использоваться как автономный счетчик с прерыванием по переполне ­ нию. Обратите внимание, что если счетчик синхронизирован от внеш ­ него сигнала, приращение счетчика вызывают оба фронта синхроим ­ пульса.

RkJQdWJsaXNoZXIy MTExODQxMg==