Dalrate.ru

Построение рабочей локальной сети

Поддержка ОС

§ В 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: Перейти на страницу: 1 2 3

Популярное:

Исследования свойств гексагональных кодирующих коллиматоров для однофотонной эмиссионной томографии Цель работы: Численно исследовать аппаратные функции кодирующих коллиматоров, построенных на базе псевдослучайных последовательностей, расширенных псевдослучайных последовательностей, троичных последовательностей, расширенных троичных последовательностей. Оптимизировать скорость расчета аппаратных функций гексагональных кодирующих ...