Вы находитесь на странице: 1из 38

Последовательный интерфейс

I2C (TWI)
Схема подключения

2
I2C (TWI)

I2C – последовательная ассиметричная шина для связи


между интегральными схемами внутри электронных
приборов. Использует две двунаправленные линии связи
(SDA и SCL), применяется для соединения низкоскоростных
периферийных компонентов с процессорами и
микроконтроллерами.

3
I2C (TWI) Подключение устройств
Данные передаются по двум
линиям: линия данных (SDA) и
линия тактов (SCL).
Есть ведущий (master) и
ведомый (slave). Такты
генерирует master, а ведомый
отвечает на принимаемые
байты.
На одной двухпроводной шине
может быть до 127 устройств.
Линии SDL и SCL должны быть
Рисунок 1 — схема подключения подтянуты через резисторы к
устройств к шине I2C (TWI) напряжению питания.
4
I2C (TWI) Передача данных
Смена данных на линии SDL
возможна только в момент
времени, когда на линии SCL
логический ноль. В момент
времени, когда на линии SCL
логическая единица, данные
на линии SDL должны
оставаться неизменными, т.к.
в это время осуществляется их
Рисунок 2 — временная диаграмма прием.
передачи отдельных битов
5
I2C (TWI) СТАРТ - СТОП
События СТАРТ и СТОП всегда формирует master. Каждый master генерирует свой собственный
сигнал синхронизации при пересылке данных по шине.
Процедура обмена начинается с того, что master отправляет состояние СТАРТ: генерирует
переход сигнала линии SDA из ВЫСОКОГО состояния в НИЗКОЕ при ВЫСОКОМ уровне на
линии SCL. Переход воспринимается всеми устройствами slave, подключенными к шине, как
признак начала процедуры обмена.
Процедура обмена завершается тем, что master формирует состояние СТОП: переход
состояния линии SDA из НИЗКОГО состояния в ВЫСОКОЕ при ВЫСОКОМ состоянии линии SCL.

Рисунок 3 — временная диаграмма начала и конца процедуры обмена 6


I2C (TWI) Подтверждение
Для подтверждения приема байта, от master к slave устройству, в спецификации
протокола обмена по шине I2C вводится специальный бит подтверждения (ACK),
поступающий на шину SDA после приема 8 бита данных. Т.о. передачи 8 бит данных
от передатчика к приемнику завершаются дополнительным циклом (формирование
9-го тактового импульса линии SCL), при котором приемник выставляет низкий
уровень сигнала на линии SDA, как признак успешного приема байта.
Подтверждение при передаче данных обязательно, кроме случаев окончания
передачи slave устройства.

Рисунок 4 — временная диаграмма получения подтверждения 7


I2C (TWI) Адресация
Процедура адресации на шине I2C заключается в том, что первый байт после
сигнала СТАРТ определяет, какой slave адресуется при помощи master, для
проведения цикла обмена. В обычном режиме используется 7-битная адресация.
Старшие 7 бит первого байта образуют адрес slave устройства.
0-ой бит(младший бит), определяет направление пересылки данных: 1 — чтение, 0
— запись.
После того, как адрес послан, каждое slave устройство в системе сравнивает
старшие 7 бит после сигнала СТАРТ со своим адресом. При совпадении устройство
устанавливает себе маркер slave-приемник, либо slave-передатчик, в зависимости
от бита направления.

Рисунок 5 — формат пакета для отправки адреса устройства 8


I2C (TWI) TWBR Регистр

9
I2C (TWI) TWBR Регистр
TWBR — Регистр установки частоты тактирования вывода SCL. Регистр
задействован только в режиме мастер. Частота тактирования вывода SCL
вычисляется по следующие формуле.
CPU Clock frequency
𝑆𝐶𝐿 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 =
16 + 2⋅TWBR⋅PrescalerValue
где:
• 𝑆𝐶𝐿 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 — Частота тактирования вывода SCL;
• CPU Clock frequency — Тактовая часта микроконтроллера;
• TWBR — Значение регистра TWBR;
• PrescalerValue — Значение предделителя установленного в регистре TWSR.

10
I2C (TWI) TWCR Регистр

11
I2C (TWI) TWCR Регистр
TWCR — Регистр управления I2C (TWI) интерфейсом.

Bit 7 – TWINT: Флаг окончания операции. Пока данный бит установлен в


логическую 1-цу при отсутствии передачи данных вывод SCL притянут к земле.

Сброс данного бита осуществляется программной записью 1, данная операция


инициирует мастер устройство начать операцию передачи/приёма при условии
что TWI интерфейс включен.
Установка данного бита осуществляется аппаратным обеспечением при
завершении операции приёма/передачи (получено подтверждение ACK).

12
I2C (TWI) TWCR Регистр
Bit 6 – TWEA: Генерация ACK.

Если данный бит установлен в 1-цу то на TWI шине будет сгенерирован бит ACK
при следующих условиях.
1. По шине TWI пришёл адрес устройства совпадающий с регистром TWAR;
2. Обнаружен общий вызов при этом бит TWGCE в регистре TWAR должен быть
установлен в 1-цу;
3. Байт данных получен в режиме мастер приёмник или ведомый приёмник.

Пока данный бит установлен в 0 устройство в режиме ведомого не отвечает


запросы приходящие по шине TWI.

13
I2C (TWI) TWCR Регистр
Bit 5 – TWSTA: При записи единице в данный бит устройство проверяет занятость
TWI шины, если шина занята то устройство ожидает пока на шине не будет
сгенерировано условие стоп. Если шина свободна то осуществляется генерация
старт условия и устройство становится мастером. По окончанию генерации старт
условия данный бит должен быть сброшен.

Bit 4 – TWSTO: При записи единице в данный бит, в режиме мастер генерируется
условие стоп. Когда условие стоп сгенерировано данный бит очищается
автоматически. В режиме ведомого устройства запись единице в данный бит
сбрасывает устройство в состояние ожидания адреса.

14
I2C (TWI) TWCR Регистр
Bit 3 – TWWC: Бит устанавливается в единицу при попытке изменить состояние
регистра TWDR пока бит TWINT установлен в ноль. Сброс осуществляется
аппоратно при записи данных в регистр TWDR пока бит TWINT установлен в
единицу.

Bit 2 – TWEN: Включает работу TWI интерфейса. Лини SCL/SDA предаются под
управление TWI модуля и находятся в состоянии с открытом коллектором.

Bit 0 – TWIE: Бит разрешения прерываний.

15
I2C (TWI) TWSR Регистр

16
I2C (TWI) TWSR Регистр
TWSR — Регистр статуса.

Bits 1:0 – TWPSn: Биты предделителя оперной тактовой частоты.

TWPS1 TWPS0 Prescaler Value


0 0 1
0 1 4
1 0 16
1 1 64

17
I2C (TWI) TWSR Регистр
Bits 1:0 – TWSn: Статус TWI логики.

Table 24-3. Status Codes for Master Transmitter Mode

18
I2C (TWI) TWDR Регистр

TWDR — Регистр данных

19
I2C (TWI) TWAR Регистр

20
I2C (TWI) TWAR Регистр
TWAR — Регистр адреса в режиме подчинённого устройства.

Bits 7:1 – TWAn: Адрес устройства.

Bit 0 – TWGCE: Разрешение отклика на общий вызов.

21
TCN75A
MSOP, SOIC Symbol Function Device A6 A5 A4 A3 A2 A1 A0
1 SDA Bidirectional Serial Data
TCN75 1 0 0 1 x x x
2 SCL Serial Clock Input A
3 ALERT Temperature Alert Output

4 GND Ground
5 A2 Address Select Pin (bit 2)

6 A1 Address Select Pin (bit 1)

7 A0 Address Select Pin (bit 0)

8 VDD Power Supply Input

22
TCN75A

23
TCN75A

24
TCN75A

AMBIENT TEMPERATURE REGISTER (TA) — ADDRESS <0000 0000>: 16-битный


регистр температуры. Регистр хранит значение температуры с выравниванием по
левому краю. Оцифровка температуры может быть выполнена с 9-12 битным
разрешением что в свою очередь даёт точность изменения соответственно 0.5°C -
0.0625°C. Температура рассчитывается согласно формуле:

25
TCN75A TA регистр

AMBIENT TEMPERATURE REGISTER (TA) — ADDRESS <0000 0000>: 16-битный


регистр температуры. Регистр хранит значение температуры с выравниванием по
левому краю. Оцифровка температуры может быть выполнена с 9-12 битным
разрешением что в свою очередь даёт точность изменения соответственно 0.5°C -
0.0625°C. Подробнее время и точность преобразования см. в таблице ниже.

Bits Resolution Тconvert (typical)


9 0.5 30 ms
10 0.25 60 ms
11 0.125 120 ms
12 0.0625 240 ms

26
TCN75A CONFIG регистр
CONFIGURATION REGISTER (CONFIG) — ADDRESS <0000 0001>: Регистр конфигурации.

Bit 7 – ONE-SHOT: Режим однократно измерения


1 = Enabled;
0 = Disabled (Power-up default)
Bit 6:5 – ADC RESOLUTION: Разрядность преобразования температуры
00 = 9 bit or 0.5°C (Power-up default)
01 = 10 bit or 0.25°C
10 = 11 bit or 0.125°C
11 = 12 bit or 0.0625°C

27
TCN75A CONFIG регистр
Bit 4:3 – FAULT QUEUE: Количество ошибочных оцифровок для компенсации
дребезга температуры на границе гистерезиса.
00 = 1 (Power-up default)
01 = 2
10 = 4
11 = 6
Bit 2 – ALERT POLARITY: Рабочий фронт вывода ALERT
1 = Active-high
0 = Active-low (Power-up default)

28
TCN75A CONFIG регистр
Bit 1 – COMP/INT: Режим работы термореле
1 = Interrupt mode
0 = Comparator mode (Power-up default)
Bit 0 – SHUTDOWN: Запуск преобразований
1 = Enable
0 = Disable (Power-up default)

29
TCN75A THYST регистр

TEMPERATURE HYSTERESIS REGISTER (THYST) — ADDRESS <0000 0010>: 16-битный


регистр температурного гистерезиса. Регистр хранит значение температурного
гистерезиса с 9-битным разрешением.

30
TCN75A TSET регистр

TEMPERATURE LIMIT-SET REGISTER (TSET) — ADDRESS <0000 0011>: 16-битный


регистр порогового значения температуры. Регистр хранит пороговое значение
температуры с 9-битным разрешением.

31
TCN75A

32
TCN75A

33
TCN75A
main.c TCN75.h

34
TCN75A
TCN75.с TCN75.с

35
Лабораторная работа 4
Реализовать терморегулятор используя аппаратные
возможности температурного датчика TCN75A. В режимах
Comparator и Interrupt.
На LCD дисплей выводится текущая температура,
предельные границы температуры.
Первые 3 бита адреса устанавливаются в соответствии с
номером группы.

36
Варианты заданий на лабораторную работа 4
1. Режим Comparator – Оцифровка 9-bit.
2. Режиме Interrupt – Оцифровка 9-bit.
3. Режим Comparator – Оцифровка 10-bit.
4. Режиме Interrupt – Оцифровка 10-bit.
5. Режим Comparator – Оцифровка 11-bit.

37
Пример оформления отчета
1. Титульный лист
2. Задание на лабораторную работу
3. Текст программ
4. Вывод

Подготовиться к защите лабораторной работы.

38

Вам также может понравиться