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

Шаг 6. Осваиваем все возможности микроконтроллера ATtiny231 3 501 Шаг 1. Процесс передачи байта данных начинается с того, что Master формирует стартовое условие: переход сигнала на линии SDA с высо ­ кого логического уровня на низкий в то время, когда на линии SCL при ­ сутствует высокий уровень (точка А). Низкий уровень на линии SDA может быть установлен путем записи логи ­ ческого нуля в 7-й разряд сдвигового регистра или обнулением соответствую ­ щего разряда в регистре PORTB. При этом данный вывод порта должен быть сконфигурирован как выход (установкой нужного разряда в DDRB). Схема распознавания стартового условия ведомого устройства (см. рис. 6.46) обнаруживает это условие и устанавливает флаг USISIF. В слу ­ чае необходимости при установке этого флага может генерироваться пре ­ рывание. SDA SCL Запись (USISIF) Рис. б.4б. Схема детектора стартового условия Шаг 2. Сигнал на выходе схемы обнаружения стартового условия будет удерживаться и после того, когда Master сформирует отрицатель ­ ный фронт на линии SCL и уровень сигнала на этой линии окажется рав ­ ным нулю (точка В). Это позволяет Slave -устройству при необходимости пробудиться ото сна или завершить выполняемую в этот момент задачу и подготовить сдвиговый регистр для приема адреса. Для этого должен быть очищен флаг USISIF и сброшен четырехразрядный счетчик. Шаг 3. Ведущее устройство подает на выход первый информационный бит и освобождает линию SCL (точка С). По положительному фронту сигнала на входе SCL ведомое устройство производит выборку бита дан ­ ных и записывает его в свой сдвиговый регистр. Шаг 4. После того, как переданы семь битов адреса и один бит, опреде ­ ляющий направление передачи информации (чтение или запись), про ­ исходит переполнение счетчика ведомого устройства, и на линии SCL устанавливается низкий логический уровень (точка D). Если адрес ведо ­ мого устройства не соответствует переданному адресу, оно освобождает линию SCL и ожидает нового стартового условия. Шаг 5. Если переданный адрес соответствует адресу ведомого устрой ­ ства, оно вырабатывает сигнал подтверждения — удерживает на линии SDA низкий логический уровень. Низкий логический уровень удержи ­ вается на линии SDA в течение всего цикла подтверждения до момента окончания синхроимпульса на линии SCL.

RkJQdWJsaXNoZXIy MTExODQxMg==