Настройка и взаимодействие с I2C ведомым устройством
Блок SoC/аппаратная логика ввода-вывода
Блок I2C Master конфигурирует и обменивается данными с ведомым устройством связи между интегральными схемами (I2C), подключенным к программируемой полем матрице вентилей (FPGA). Этот блок содержит главный контроллер I2C с интерфейсом AXI-Lite для выполнения конфигурирования.
Главный блок I2C поддерживает следующие функции:
Поддержка интерфейса AXI4-Lite для конфигурирования и доступа
Поддержка одного ведущего устройства и нескольких подчиненных устройств
Поддержка 7-разрядных и 10-разрядных адресов I2C подчиненных устройств
Поддержка пакетного режима с максимальным размером пакета 256 байт
Поддержка нескольких режимов скорости передачи
Модель, совместимая с HDL-IP, с возможностью генерации кода
Блок использует интерфейс AXI-Lite для конфигурирования и создания интерфейса тракта управления для связи с I2C ведомым устройством. Аппаратное обеспечение, генерируемое в процессе генерации, содержит интерфейс регистра AXI-Lite и два аппаратных интерфейса, последовательный синхросигнал (SCL) и последовательные данные (SDA). SCL и SDA соединяют блок I2C Master и ведомое устройство.
Каждый порт, представленный в блоке, представляет собой регистр AXI-Lite, за исключением портов sdaIn, sclIn, scl и sda. Для связи с ведомым устройством интерфейс регистра AXI-Lite конфигурирует информацию регистра в блоке I2C Master. Эта таблица содержит Основную AXI-облегченную информацию о регистре I2C.
| Адрес регистрации | Имя порта и регистра | Размер регистра в битах | Режим работы |
|---|---|---|---|
| 0x100 | startInf - Управляющая информация | 32 | Написать |
| 0x104 | slvAddr - адрес подчиненного устройства | 32 | Написать |
| 0x108 | regAddr - адрес регистрации | 32 | Написать |
| 0x10C | dataReg - регистр данных | 32 | Написать |
| 0x110 | readDone - регистр Read done | 32 | Написать |
| 0x114 | выполнено - Выполнен регистр | 32 | Написать |
| 0x118 | rdy - Готовый регистр | 32 | Читать |
| 0x11C | respData - Регистр данных первого ответа | 32 | Читать |
| 0x120 | validData - регистр допустимых данных ответа | 32 | Читать |
| 0x124 | startReg - Регистр состояния | 32 | Читать |
Для выполнения операций чтения и записи с использованием блока I2C Master необходимо следовать правильной последовательности. В этом разделе представлена информация о последовательности операций чтения и записи.
Последовательность чтения
Для считывания данных с внешнего ведомого устройства:
Пришлите информацию о регистре, относящемся к "" ".
Отправьте информацию о регистре slvAddr.
Отправьте информацию о регистре regAddr.
Установите для регистра done значение 1 после отправки одного набора регистрационной информации в блок, а затем установки его в 0.
Считывайте данные ответа с внешнего ведомого устройства. После считывания данных из регистра respData установите для регистра readDone значение 1 а затем установите для него значение 0 немедленно.
Установите для регистра readDone значение 1 для считывания более 4 байт данных. После выполнения операции чтения установите значение 0 немедленно.
В последовательности считывания, один набор регистровой информации представляет собой комбинацию регистров, связанных с "" "," "slvAddr" "и" "regAddr" ".
Последовательность записи
Для записи данных на внешнее подчиненное устройство:
Пришлите информацию о регистре, относящемся к "" ".
Отправьте информацию о регистре slvAddr.
Отправьте информацию о регистре regAddr.
Отправьте регистр dataReg, содержащий данные для записи, в регистр подчиненного устройства.
Установите для регистра done значение 1 после записи одного набора регистрационной информации в блок, а затем установки его в 0.
Установите для регистра done значение 1 опять же, чтобы записать более 4 байт данных. После операции записи установите для нее значение 0 немедленно.
В последовательности записи, один набор регистровой информации представляет собой комбинацию регистров, связанных с "" "," "slvAddr" "," "regAddr" "и" "dataReg" ".