Конфигурирование и связь с I2C ведомым устройством
SoC Blockset/Аппаратная логика ввода-вывода
Блок I2C Master конфигурирует и связывается с ведомым устройством связи между интегральными схемами (I2C), соединенным с программируемой полем массивом управления ключами (FPGA). Этот блок содержит главный контроллер I2C с интерфейсом AXI-Lite для выполнения строения.
Блок I2C Master поддерживает следующие функции:
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. Эта таблица содержит I2C регистрационную информацию Master AXI-Lite.
Адрес регистрации | Имя порта и регистра | Размер регистра в битах | Операция |
---|---|---|---|
0x100 | ctrlInf - Управляющая информация | 32 | Написать |
0x104 | slvAddr - Адрес ведомого устройства | 32 | Написать |
0x108 | regAddr - Адрес регистра | 32 | Написать |
0x10C | dataReg - Регистр данных | 32 | Написать |
0x110 | readDone - Чтение завершено регистр | 32 | Написать |
0x114 | done - Done register | 32 | Написать |
0x118 | rdy - Регистр готовности | 32 | Читать |
0x11C | respData - Первый регистр данных отклика | 32 | Читать |
0x120 | validData - Действительный регистр данных отклика | 32 | Читать |
0x124 | statusReg - Регистр состояния | 32 | Читать |
Чтобы выполнить операции чтения и записи с помощью блока I2C Master, необходимо следовать правильной последовательности. В этом разделе представлена информация о потоке последовательности для операций чтения и записи.
Чтение последовательности
Чтобы считать данные с внешнего ведомого устройства:
Отправьте ctrlInf регистрационную информацию.
Отправьте slvAddr регистрационную информацию.
Отправьте regAddr регистрационную информацию.
Установите для завершенного регистра значение 1
после отправки одного набора регистрационной информации в блок и последующего установки на 0
.
Считайте данные отклика от внешнего ведомого устройства. После чтения данных из respData регистра установите readDone регистр равным 1
и затем установите его на 0
немедленно.
Установите значение регистра readDone 1
снова, чтобы считать больше чем 4 байта данных. После операции read установите ее на 0
немедленно.
В последовательности чтения один набор регистрационной информации является комбинацией ctrlInf, slvAddr и regAddr регистров.
Последовательность записи
Чтобы записать данные во внешнее ведомое устройство:
Отправьте ctrlInf регистрационную информацию.
Отправьте slvAddr регистрационную информацию.
Отправьте regAddr регистрационную информацию.
Отправьте регистр dataReg, который содержит данные для записи в регистр ведомого устройства.
Установите для завершенного регистра значение 1
после записи одного набора регистрационной информации в блок, а затем установите его на 0
.
Установите для завершенного регистра значение 1
снова, чтобы записать более 4 байтов данных. После операции записи установите ее на 0
немедленно.
В пишут последовательность, один набор информации о регистре - комбинация ctrlInf, slvAddr, regAddr, и dataReg регистры.