Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 6. Осваиваем все возможности микроконтроллера ATtiny23 13 507 Режимы работы модуля USI, определяемые битами USIWM 1 — 0 Таблица 6.56 USIWM1 USIWM0 Описание 0 0 Выходные сигналы, система захвата синхросигнала и детектор стартового условия от ключены. Соответствующие выводы микросхемы выполняют свои основные функции 0 1 Трехпроводный режим. Используются линии DO, DI и USCK. Для вывода микросхемы, соответствующего линии DO (выход данных), отменяется дей ствие соответствующего бита регистра PORTB. Соответствующий бит регистра DDRB все еще управляет направлением передачи информации. Если контакт порта сконфи гурирован на ввод, соответствующий бит регистра PORT управляет подключением вну треннего резистора нагрузки. Еще два вывода того же порта приобретают альтернативные функции. Это вывод, со ответствующий линии «Ввод данных» (DI), и вывод, соответствующий линии «Синхрони зации» (USCK). Но активизация альтернативных функций в данном случае не отменяет основных. Если микросхема работает в качестве ведущего устройства, то необходимо предусмотреть программную генерацию тактовых импульсов путем переключения со ответствующего разряда регистра PORTB. При этом данный вывод микросхемы должен быть сконфигурирован как выход. Для программной синхронизации также может ис пользоваться бит USITC регистра USICR 1 0 Двухпроводный режим. Используются линии SDA (то же, что и DI) и SCL (то же, что и USCK). Примечание. Выводы DI и USCK переименованы соответственно в SDA и SCL для того, чтобы избежать путаницы при работе в разных режимах. Линия «Данные» (SDA) и линия «Тактовый сигнал» (SCL) — двунаправленные и исполь зуют выходной каскад с открытым коллектором. Эти каскады включаются при установ ке в единицу соответствующих битов в регистре DDRB. Если включен выходной каскад для линии SDA, то уровень напряжения на этой линии за висит как от сигнала на выходе сдвигового регистра, так и от сигнала на соответствующем разряде регистра PORTB. Если хотя бы один из этих сигналов равен нулю, то на выходе SDA устанавливается низкий логический уровень. В противном случае линия SDA будет осво бождена (напряжение на линии будет зависеть от других подключенных к ней устройств). Если включен выходной каскад для линии SCL, то уровень напряжения на этой линии зависит от соответствующего бита регистра PORTB и от сигнала на выходе детектора стартового условия. Если значение хотя бы одного из этих сигналов равно нулю, на линии устанавливает ся низкий логический уровень. В противном случае линия SCL будет освобождена. На линии SCL удерживается низкий логический уровень в том случае, если обнаружено стартовое условие и вывод информации разрешен. Очистка флага стартового условия (USISIF) освобождает линию. При работе линий SDA и SCL в качестве входов выбор данного режима никакого влияния не оказывает. В двух проводном режиме внутренние нагрузочные резисторы всегда отключены 1 1 Двухпроводный режим. Использует линии SDA и SCL. Этот режим является модификацией предыдущего. Отличие состоит в том, что на линии SCL низкий логический уровень появляется также и в случае переполнения 4-х разряд ного счетчика и удерживается в этом состоянии до тех пор, пока не будет очищен флаг переполнения таймера (USIOIF) При USICS1:O = 00 включается режим программного формирования стробирующего импульса. В этом случае запись единицы в бит USICLK вызывает как срабатывание сдвигового регистра, так и итерацию счет чика. Если выбран внешний источник тактового сигнала (USICS1 = 1), то бит USICLK больше не использует в качестве строба. Теперь он служит для выбора между внешней синхронизацией и программной синхрони зацией с использованием в качестве строба бита USITC. В табл. 6.57 показаны варианты источников тактового сигнала для сдвигового регистра и 4-разрядного счетчика, выбираемые при помощи битов USICS1:O и бита USICLK.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==