Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
ГЛ А В А 3 Периферийные устройства и прерывания Периферийными в струкrуре АVR называются все устройства, внешние по отноше нию к ядру и памяти. В «компьютерных» процессорах такие устройства, как прави ло, реализуют в виде отдельных микросхем (входящих в состав чипсетов) или целых модулей на отдельных платах. Общее для «computer-on-chip» и «обычных» вычислительных систем свойство периферийных устройств - их переменный со став, т. е. в разных системах (для МК- в разных моделях контроллеров) те или иные компоненты могут отсутствовать . Наиболее популярные периферийные устройства (таймеры, порты UART и SPI, аналоговый компаратор или сторожевой таймер) имеются практически во всех моделях, но это не значит, что вы их обязательно должны задействовать. Тем не менее их номенклатуру следует учитывать при выборе той или иной модели. Во первых, наличие большого числа периферийных устройств, даже если они не задействованы, увеличивает общее потребление микросхемы, во-вторых, нет ника кого резона ставить АTmega2560 в 1 00-выводном корпусе там, где достаточно АTtiny23 1 3 в корпусе с 20-ю выводами. Кроме того, некоторые периферийные уст ройства приходится принимать во внимание даже в том случае, если они не исполь зуются - типичным примером может служить аналоговый компаратор, который по умолчанию всегда включен и потому может оказывать влияние на потребление в «спящем» режиме (хотя и мизерное) . Все периферийные устройства адресуются через регистры ввода/вывода (РВВ, 1/0 registers), аналогичные портам ввода/вывода в архитектуре IВМ РС . Отметим, что в РIС-архитектуре взаимодействие с периферийными устройствами организо вано проще - там можно заносить данные непосредственно в порты, без промежу точного переноса значения РВВ в РОН и обратно с помощью команд in и out . В АVR прямая модификация значений РВВ ограничена и обставлена рядом усло вий, но в целом это не приводит к значительным трудностям - программы для АVR в общем все равно получаются более эффективными. Сложности добавляет факт, что РВВ в новых моделях контроллеров перестали умещаться в первоначально отведенном для них пространстве адресов емкостью 64 байта (от $ 2 0 до $ 5 F) . Как мы отмечали ранее, уже у ATmega88 ;щя дополнитель ных РВВ пришлось выделить отдельное адресное пространство (от $ 60 до макси-
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==