I2C Master

Сконфигурируйте и свяжитесь с ведомым устройством I2C

  • Библиотека:
  • SoC Blockset / Аппаратный ввод-вывод Логики

  • I2C Master block

Описание

Блок I2C Master конфигурирует и передает с межинтегральной схемой коммуникации (I2C) ведомое устройство, соединенное к программируемой пользователем вентильной матрице (FPGA). Этот блок содержит ведущий контроллер I2C с интерфейсом AXI-Lite, чтобы выполнить настройку.

Блок I2C Master поддерживает эти функции:

  • AXI4-облегченная интерфейсная поддержка настройки и доступа

  • Одно-основная и мультиведомая поддержка

  • Поддержите 7-битные и 10-битные ведомые устройства I2C адреса

  • Поддержка пакетного режима пакетный размер имеющий 256 байтов

  • Поддержите несколько режимов скорости передачи

  • HDL-IP совместимая модель с возможностью генерации кода

Блок использует интерфейс AXI-Lite, чтобы сконфигурировать и создать интерфейс path управления, чтобы связаться с ведомым устройством I2C. Оборудование, сгенерированное от процесса генерации, содержит AXI-облегченный интерфейс регистра и два аппаратных интерфейса, последовательные часы (SCL) и последовательные данные (SDA). SCL и SDA соединяют блок I2C Master и ведомое устройство.

Каждый порт, представленный в блоке, является AXI-облегченным регистром, кроме sdaIn, sclIn, scl и портов sda. Чтобы связаться с ведомым устройством, AXI-облегченный интерфейс регистра конфигурирует информацию о регистре в блоке I2C Master. Эта таблица содержит Ведущее устройство I2C AXI-облегченная информация о регистре.

Укажите адресПорт и имя регистраУкажите размер в битахРежим работы
0x100ctrlInf — Управляющая информация

32

Запись
0x104slvAddr — Ведомый адрес

32

Запись
0x108regAddr — Укажите адрес

32

Запись
0x10CdataReg — Регистр данных

32

Запись
0x110readDone — Считайте сделанный регистр32Запись
0x114сделанный Сделанный регистр

32

Запись
0x118rdy — Готовый регистр32Чтение
0x11CrespData — Первый регистр данных ответа32Чтение
0x120validData — Данные об ответе допустимый регистр32Чтение
0x124statusReg — Регистр состояния32Чтение

Чтобы выполнить операции чтения и операции записи с помощью блока I2C Master, необходимо следовать за соответствующей последовательностью. Этот раздел предоставляет информацию о потоке последовательности для операций чтения и операций записи.

Считайте последовательность

Считывать данные из внешнего ведомого устройства:

  1. Отправьте информацию о регистре ctrlInf.

  2. Отправьте информацию о регистре slvAddr.

  3. Отправьте информацию о регистре regAddr.

  4. Установите сделанный регистр на 1 после отправки одного набора информации о регистре с блоком и затем набора это к 0.

  5. Считайте данные об ответе из внешнего ведомого устройства. После чтения данных из регистра respData, набор регистр readDone к 1 и затем набор это к 0 сразу.

  6. Установите регистр readDone на 1 снова, чтобы считать больше чем 4 байта данных. После операции чтения, набор это к 0 сразу.

В последовательности чтения один набор информации о регистре является комбинацией ctrlInf, slvAddr и регистров regAddr.

Запишите последовательность

Записывать данные к внешнему ведомому устройству:

  1. Отправьте информацию о регистре ctrlInf.

  2. Отправьте информацию о регистре slvAddr.

  3. Отправьте информацию о регистре regAddr.

  4. Отправьте регистр dataReg, который содержит данные, чтобы записать в регистр ведомого устройства.

  5. Установите сделанный регистр на 1 после записи одного набора информации о регистре с блоком, и затем набора это к 0.

  6. Установите сделанный регистр на 1 снова, чтобы записать больше чем 4 байта данных. После операции записи, набор это к 0 сразу.

В последовательности записи один набор информации о регистре является комбинацией ctrlInf, slvAddr, regAddr и регистров dataReg.

Порты

Входной параметр

развернуть все

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

БитЦельОписание значения
0Установите режим записи или режим чтения.

Чтобы записать в регистр ведомого устройства, установите это значение к 0. Чтобы читать из регистра ведомого устройства, установите это значение к 1.

[2:1]Установите размер адреса регистра ведомого устройства.

Если размер адреса регистра ведомого устройства:

  • Один байт (8 битов), установленных это значение к 00

  • Два байта (16 битов), установленных это значение к 01

  • Три байта (24 бита), установленные это значение к 10

  • Четыре байта (32 бита), установленные это значение к 11

[10:3]Установите размер данных регистра ведомого устройства.

Если регистр ведомого устройства поддерживает:

  • Один байт данных, установленных это значение к 00000000

  • Два байта данных, установленных это значение к 00000001

  • Три байта данных, установленных это значение к 00000010

  • Четыре байта данных, установленных это значение к 00000011

  • Пять байтов данных, установленных это значение к 00000100

  • Шесть байтов данных, установленных это значение к 00000101

  • Семь байтов данных, установленных это значение к 00000110

  • Восемь байтов данных, установленных это значение к 00000111

  • Девять байтов данных, установленных это значение к 00 001 000

  • Десять байтов данных, установленных это значение к 00 001 001

  • Одиннадцать байтов данных, установленных это значение к 00 001 010

  • Двенадцать байтов данных, установленных это значение к 00 001 011

  • Тринадцать байтов данных, установленных это значение к 00 001 100

  • Четырнадцать байтов данных, установленных это значение к 00 001 101

  • Пятнадцать байтов данных, установленных это значение к 00 001 110

  • Шестнадцать байтов данных, установленных это значение к 00 001 111

….…....

  • 256 байтов данных, установленных это значение к 11111111

11Установите тип ведомого устройства

Чтобы сконфигурировать 7-битное ведомое устройство адреса, установите это значение к 0. Чтобы сконфигурировать 10-битное ведомое устройство адреса, установите это значение к 1.

Типы данных: uint16

Ведомо-адресный регистр, который содержит адрес ведомого устройства в виде скаляра.

Типы данных: uint16

Укажите адрес ведомого устройства в виде скаляра.

Типы данных: uint32

Регистр данных в виде скаляра. Блок использует этот порт, чтобы записать данные к регистру ведомого устройства.

Типы данных: uint32

Считайте сделанный сигнал в виде Boolean скаляр. Когда этим значением является 1 (TRUE), пользователь готов считать данные об ответе из блока, который получен от ведомого устройства. Когда этим значением является 0 (FALSE), пользователь не готов считать данные об ответе из блока.

Типы данных: Boolean

Сделанный сигнал в виде Boolean скаляр. Это значение указывает на блок, когда считать AXI-облегченные информации регистра.

Типы данных: Boolean

Введите последовательные данные, возвращенные как Boolean скаляр. Этот порт предоставляет сигнал последовательных данных блоку из ведомого устройства.

Типы данных: Boolean

Введите последовательные часы, возвращенные как Boolean скаляр. Этот порт предоставляет последовательный сигнал часов блоку из ведомого устройства.

Типы данных: Boolean

Вывод

развернуть все

Выведите последовательные часы в виде Boolean скаляр. Этот порт обеспечивает последовательный сигнал часов с блока на ведомое устройство.

Типы данных: Boolean

Выведите последовательные данные в виде Boolean скаляр. Этот порт обеспечивает сигнал последовательных данных с блока на ведомое устройство.

Типы данных: Boolean

Готовый сигнал, возвращенный как Boolean скаляр. Когда этим значением является 1 (TRUE), блок готов принять данные конфигурации. Когда этим значением является 0 (FALSE), блок не готов принять данные конфигурации.

Типы данных: Boolean

Регистр данных ответа, содержащий данные из регистра ведомого устройства, возвращенного как скаляр.

Типы данных: uint32

Управляющий сигнал, который указывает, допустимы ли данные об ответе, возвратился как Boolean скаляр. Когда этим значением является 1 (TRUE), данные об ответе из регистров данных ответа допустимы. Когда этим значением является 0 (FALSE), данные об ответе из регистров данных ответа не допустимы.

Типы данных: Boolean

Указывает на состояние шины I2C, возвращенной как скаляр.

БитЦельОписание значения
[7:4]Зарезервированный

Зарезервированный

3Указывает на состояние шины I2C.

Когда этим значением является 1, это указывает, что шина I2C занята. Когда этим значением является 0, это указывает, что шина I2C неактивна и готова к настройке.

2Указывает на состояние подтверждения от ведомого устройства до Ведущего устройства I2C.

Когда этим значением является 1, это указывает, что ведомое устройство не подтвердило Ведущее устройство I2C. Когда этим значением является 0, это указывает, что ведомое устройство подтвердило Ведущее устройство I2C.

[1:0]ЗарезервированныйЗарезервированный

Типы данных: uint32

Параметры

развернуть все

Задайте режим скорости как одно из этих значений:

  • Standard Mode — Частоты поддержек до 100 кГц

  • Fast Mode — Частоты поддержек до 400 кГц

  • Fast Plus Mode — Частоты поддержек до 1 МГц

Вопросы совместимости

развернуть все

Поведение изменяется в R2020a

Расширенные возможности

Преобразование фиксированной точки
Спроектируйте и симулируйте системы фиксированной точки с помощью Fixed-Point Designer™.

Введенный в R2019a