Белов, А.В. Микроконтроллеры 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.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==