§ В Linux поддержка I²C обеспечивается специальным модулем для каждого устройства, совместимого с этим стандартом. Файл заголовков для написания клиента I²C - /usr/include/linux/i2c.h. В OpenBSD также добавлена поддержка основных микроконтроллеров и сенсоров I2C;
§ В Sinclair QDOS и Minerva QL поддержка осуществляется через набор расширений фирмы TF Services;
§ В AmigaOS доступ к устройствам I²C осуществляется с помощью библиотеки i2c.library, написанной Вильгельмом Нойкером;
§ eCos поддерживает I²C для нескольких архитектур.
§ Материнские платы EPIA-M поддерживают I²C на уровне форм-фактора .
Производственные технологи
I²C является основой ACCESS.bus , дисплейного интерфейсного канала данных (DDC) VESA , шины управления системными функциями SMBus , шины интеллектуального управления системой IPMB (вариант протокола IPMI <http://ru.wikipedia.org/wiki/IPMI>). В этих технологиях возможно использование различных напряжений, частоты тактирования и наличия линийпрерываний .(Two Wire Interface) или TWSI (Two Wire Serial Interface) по сути та же самая шина I²C, но использует другое название по лицензионным причинам. (Патенты на I²C уже отменены.)
-часы реального времени ds1307 Во многих конструкциях полезно знать текущее время, но не всегда есть возможность, да и если контроллер будет сильно загружен, то часы будут постоянно отставать или спешить, что не очень хорошо. Выходом может стать внешний готовый источник времени - часы реального времени - DS1307.
Рисунок 3 - модуль
Часы состоят из микросхемы DS1307, кварца на 32,768Кгц, батарейки и 2-х подтягивающих резисторов на линии SDA и SLC. Благодаря батарейке они продолжают идти при отключении внешнего питания. Также у DS1307 есть свободные 56 байтов энергозависимой статической ОЗУ, которые можно использовать в своих целях.
Рисунок 4 - Типовая схема включения
Линии SCL и SDA - это I2C. На линии SQW - находиться тактовый импульс с частотой от 1 Гц до 32,768 Кгц, обычно она не используется.
Рисунок 5 - Выводы микросхемы
У часов есть пара особенностей:
. что бы они работали, в них должна быть батарейка или на крайний случай резистор на 4-10кОм, иначе они не будут работать и отвечать всяким мусором.
. вокруг дорожек кварца должен быт замкнутый контур земли и корпус кварц тоже лучше подключить к земле
Хронометр имеет фиксированный адрес 68h, в 7 битовом адресе + 1 бит указывает на действие - чтение/запись.
Для записи используется следующий алгоритм:
Первый байт - адрес часов 68h + 0 бит указывающий на запись, итого D0h. После получения подтверждения передаётся адрес регистра. Это установит регистровый указатель. Затем начинается передача байтов данных, чтобы остановить его - генерируется условие окончания.
Для чтения:
Первый байт - адрес часов 68h + 1 бит указывающий на запись, итого D1h. После декодирования адреса и выдачи подтверждения устройство начинает передавать данные с указанного адреса (храниться в регистре указателя). Если перед началом чтения указатель регистра не записан, то первый читаемый адрес - это адрес, который был сохранён в нём последним. DS1307 должен принять «неподтверждение» для окончания чтения.
Рисунок 6 - Регистры хронометра DS1307
Для включения часов следует установить бит CH в ноль, это следует сделать принудительно, т.к. часы после включения по умолчанию выключены.
Часы хранят информацию в двоично-десятичном виде - для получения данных достаточно прочитать соответствующий им регистр.может работать как в 24, так и в 12 часовом режиме - за это отвечает бит 12/24 (02h 6 бит). При 24 часовом режиме 5 и 4 биты регистра 02h соответствуют текущему десятку часа, при 12 часовом режиме 4 бит хранит десяток, а 5 признак до полудня / после полудня.
регистр отвечает за выходной тактовый генератор часов, SQW вывод. Бит OUT инвертирует выходной сигнал, бит SQWE включает тактовый генеретор, а биты RS0 и RS1 устанавливают частоту тактового импульса.
Практика
Был изготовлен небольшой модуль часов реального времени. На макетке были собраны часы с использованием микроконтроллера PIC16F628A, знакогенерирующего дисплея 2×16, одной кнопки для задания времени, модуля часов реального времени и с небольшим количеством обвязки.
Рисунок 7 - Макетируемые часы
Рисунок 8 - Схема
Рисунок 9 - Печатка модуля
Плата содержит микросхему DS1307 в SMD исполнении. К ней подпаян кварц на 32,768 КГц, в корпусе DT-38, вокруг кварца должно быть кольцо земли и корпус самого кварц тоже стоит подключить к земле, для этого рядом с ним предусмотрено специальное отверстие. Для работы часов в автономном режиме предусмотрена батарейка на 3В CR120. Также для индикации работы модуля можно установить SMD светодиод с резистором на 470 Ом в корпусе типоразмера 0805.F628A не содержит аппаратного I2C, поэтому он был реализован программно. Программный I2C был написан с нуля, он немного отличается от стандартного протокола, тем, что не ждёт подтверждения от слейва. Программный I2C будет рассмотрен в одной из следующих статей. На основе функций работы с I2C были реализованы следующие функции управления DS1307:
Самое читаемое:
Молекулярно-лучевая эпитаксия
Работы по исследованию искусственно созданных полупроводниковых
сверхрешеток были инициированы идеей о создании одномерной периодической
структуры чередующихся сверхтонких слоев, высказанной в 1969 г. Эсаки и Цу.
Изготовление подобной кристаллической структуры из сверхтонких слоев
представляло в то время необычайно сло ...