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

После выхода из цикла линия данных высвобождается, а на линии SCL в течение tLOW удерживается НИЗКИЙ уровень. Затем линия SCL высвобождается (на ней появляется ВЫСОКИЙ уровень) и проверяется состояние линии SDA, на которую ведомый должен был выставить НИЗКИЙ уровень. Если это не так, значит, подтверждения не было (NACK) и в регистр ERR заносится число h’01’; в противном случае в этом регистре возвращается 0.

Нашу программу нельзя считать полностью рабочей, поскольку в ней отсутствует обработка ошибок. А ошибки могут возникать, например, если какое-либо устройство будет удерживать на любой из линий НИЗКИЙ уровень, т. е. если шина будет занята.

Мы не стали реализовывать в подпрограмме I2C_OUT блок ведущего-приемника, поскольку в микросхеме МАХ518 не предусмотрена передача данных ведомому. Однако функция приема данных по шине 12С реализована в Программе 12.18 (подпрограмма I2C_IN).

В качестве примера перешлем содержимое регистра h’40’ в 0-й канал, а содержимое регистра h’41’ — в 1-й канал. После этого обновим оба регистра ЦАП и, следовательно, одновременно сформируем напряжения на выводах Vout1 и Vout2, эквивалентные содержимому регистров h’40’ и h’41’ соответственно. При этом предполагается, что оба вывода AD0 и AD1 подключены к общему проводу.

Для выполнения указанных операций нам потребуется переслать по шине пять пакетов:

1. СТАРТ.

2. Пакет адреса: Ь’01011000’.

Адрес ведомого Ь’01011(00), запись.

3. Управляющий байт 1: Ь’00000ХХ0’.

Нет сброса, активный режим, канал 0.

4. Байт данных 1:

Содержимое регистра h’40’.

5. Управляющий байт 2:

Нет сброса, активный режим, канал 1.

6. Байт данных 2:

Содержимое регистра h’41’.

7. СТОП; содержимое обоих регистров ЦАП обновляется.

Ход выполнения Программы 12.10 в точности повторяет указанную последовательность операций. После каждого возврата из подпрограммы I2C_OUT регистр ERR проверяется на нулевое значение. Если он не равен нулю, то последовательность повторяется с самого начала — повторное формирование состояний СТАРТ допускается протоколом I2С. Однако если произошел аппаратный сбой самой шины или ведомого устройства, то этот процесс может продолжаться бесконечно. Поэтому для увеличения надежности и предотвращения зависания системы необходимо предусмотреть механизм тайм-аута.

Программа 12.10. Работа с I2С-совместимой микросхемой двух канального ЦАП МАХ518

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

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

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

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

Сид Катцен

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

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

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

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

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

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