Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

Установленный флаг Р показывает, что шина свободна. Эта информация может потребоваться следящему за состоянием шины устройству, которое намеревается начать работать в качестве ведущего.

∙ D/A¯, R/W¯, UA

Эти флаги относятся к пакету (пакетам), передаваемым по шине после формирования состояния СТАРТ и содержащим информацию об адресе ведомого устройства и направлении передачи последующих пакетов.

Бит D/А¯ показывает, какой именно байт находится в регистре SSPBUF — данные (D) или адрес (А¯).

Бит R/W¯ информирует программу о том, в каком направлении будут передаваться последующие пакеты данных — к ведущему (R/W¯ = 1) или от ведущего (R/W¯= 0). Вообще говоря, значение данного бита соответствует значению 0-го бита (первого) пакета адреса.

Бит UA используется только в режимах с 10-битной адресацией. В этих режимах сначала сравниваются семь старших битов первого байта адреса b’11110A9A80’. Младший бит является битом направления передачи и информирует о том, что следующий пакет адреса будет передаваться ведущим (R/W¯ = 0). После приема 1-го байта адреса флаг UA автоматически устанавливается в 1, извещая программу о том, что в регистр SPPADD можно загружать младший байт адреса. После выполнения записи флаг UA автоматически сбрасывается.

∙ GCEN

Если бит разрешения общего вызова GCEN равен 1, то флаг прерывания SSPIF будет устанавливаться при приеме адреса общего вызова Ь’0000000’ независимо от значения, находящегося в регистре адреса модуля. Прием этого адреса свидетельствует о том, что ведущий собирается приступить к широковещательной рассылке всем ведомым устройствам. В более ранних вариантах модуля SSP данная функция отсутствует.

∙ CKP, SEN

При сброшенном бите СКР ведомое устройство удерживает линию SCL в состоянии НИЗКОГО уровня, запрещая, таким образом, ведущему генерацию тактовых импульсов. После установки бита СКР в 1, ведомый освобождает линию SCL, позволяя ведущему формировать тактовые импульсы для нового пакета. Хотя бит СКР может быть изменен программно в любой момент времени (т. е. вручную), растягивание тактового сигнала может выполняться автоматически.

SEN = 0

При сброшенном бите SEN (состояние по умолчанию), а также в модулях SSP более ранних версий бит СКР сбрасывается автоматически в конце каждого пакета, отсылаемого модулем ведущему. Ведомый должен устанавливать бит СКР каждый раз после загрузки содержимого нового пакета в регистр SSPBUF для высвобождения линии тактового сигнала и разрешения передачи следующего пакета. Растягивание тактового сигнала в таких ситуациях осуществляется всегда, независимо от состояния бита SEN. Точно так же работают модули, в которых этот бит отсутствует.

SEN = 1

В последних версиях модуля MSSP[158] автоматическое растягивание тактового сигнала при установленном бите SEN разрешается как при передаче от ведомого устройства, так и при приеме. Последнее полезно в том случае, если ведущий посылает пакеты быстрее, чем ведомый успевает их обрабатывать.

∙ СКЕ

Этот бит имеется только в модулях MSSP, и при его установке электрические параметры сигналов на линиях SDA и SCL будут соответствовать спецификации шины SMBus.

Работа модуля MSSP в качестве ведомого представляет собой многоэтапный процесс, требующий от программы реакции на всевозможные события, возникающие на шине I2С. Хотя это можно реализовать с помощью простого опроса флага SSPIF регистра PIR1, в наших примерах мы будем использовать прерывания.

Прежде чем перейти к рассмотрению этих событий и знакомству с учебными программами, необходимо разобраться с инициализацией модуля MSSP. Типичный инициализационный код для микроконтроллера PIC16F877A, который должен работать в качестве ведомого с адресом h’06’, при частоте шины 100 кГц выглядит следующим образом:

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки