![]() |
ОСРВ MULTEX-ARM
Полное описание
|
Интерфейс I2C. Подробнее...
Функции | |
| bool | i2cInit (unsigned int n, unsigned int set, unsigned int clk) |
| Инициализация канала I2C. Подробнее... | |
| STATUS | i2cRead (unsigned int n, unsigned int addr, void *data, unsigned int len) |
| Чтение данных по шине I2C в режиме ведущего устройства. Подробнее... | |
| STATUS | i2cRegisterRead (unsigned int n, unsigned int devAddr, unsigned int regAddr, unsigned int regLen, void *data, unsigned int dataLen) |
| Чтение регистра адресуемого устройства на шине I2C в режиме ведущего устройства. Подробнее... | |
| STATUS | i2cRegisterWrite (unsigned int n, unsigned int devAddr, unsigned int regAddr, unsigned int regLen, const void *data, unsigned int dataLen) |
| Запись в регистр адресуемого устройства на шине I2C в режиме ведущего устройства. Подробнее... | |
| STATUS | i2cWrite (unsigned int n, unsigned int addr, const void *data, unsigned int len) |
| Отправка данных по шине I2C в режиме ведущего устройства. Подробнее... | |
Макросы выбора каналов I2C | |
| #define | I2C_0 0 |
| #define | I2C_1 1 |
| #define | I2C_2 2 |
| #define | I2C_3 3 |
| #define | I2C_4 4 |
Макросы выбора набора выходных линий I2C | |
| #define | I2C_GPIO_ADDITIONAL 1 |
| #define | I2C_GPIO_DEFAULT 0 |
Макросы выбора частоты сигнала CLK модуля I2C | |
| #define | I2C_CLK_100_kHz 100000 |
| #define | I2C_CLK_400_kHz 400000 |
| #define | I2C_CLK_FAST I2C_CLK_400_kHz |
| #define | I2C_CLK_NORMAL I2C_CLK_100_kHz |
Настройка аппаратного модуля I2C.
Подключение:
#include <i2c.h>
| #define I2C_0 0 |
Индекс для I2C0.
| #define I2C_1 1 |
Индекс для I2C1.
| #define I2C_2 2 |
Индекс для I2C2.
| #define I2C_3 3 |
Индекс для I2C3.
| #define I2C_4 4 |
Индекс для I2C4.
| #define I2C_CLK_100_kHz 100000 |
Частота сигнала CLK модуля I2C 100 кГц.
| #define I2C_CLK_400_kHz 400000 |
Частота сигнала CLK модуля I2C 400 кГц.
| #define I2C_CLK_FAST I2C_CLK_400_kHz |
Высокая частота сигнала CLK.
| #define I2C_CLK_NORMAL I2C_CLK_100_kHz |
Нормальная частота сигнала CLK (значение по умолчанию).
| #define I2C_GPIO_ADDITIONAL 1 |
Выбор дополнительного набора линий модуля I2C.
| #define I2C_GPIO_DEFAULT 0 |
Выбор основного набора линий модуля I2C. В большинстве случаев это единственный набор линий.
| bool i2cInit | ( | unsigned int | n, |
| unsigned int | set, | ||
| unsigned int | clk | ||
| ) |
Настройка и запуск выбранного канала I2C.
| n | Номер канала I2C. Для определения номера канала рекомендуется использовать один из макросов. |
| set | Набор линий ввода/вывода, подключаемых к аппаратному модулю I2C. Рекомендуется выбирать один из наборов, описанных в группе макросов. Название выбранного порта и номера линий, подключенных к модулю можно увидеть в отладочном выводе функции в консоли. Какие именно выводы используются на плате, следует выяснить, изучив схему этой платы. |
| clk | Частота работы шины I2C в герцах. Рекомендуется выбирать одну из частот, определённых в группе макросов, либо задать значение частоты самостоятельно. Реальная частота работы будет равна либо меньше заданной, если точное значение частоты выставить не возможно. |
| STATUS i2cRead | ( | unsigned int | n, |
| unsigned int | addr, | ||
| void * | data, | ||
| unsigned int | len | ||
| ) |
Чтение данных в буфер data в режиме ведущего устройства MASTER. Функция дожидается окончания приёма данных. Перед началом чтения нового массива данных функция ожидает окончания предыдущей транзакции.
| n | Номер канала I2C. Для определения номера канала рекомендуется использовать один из макросов. |
| addr | Адрес устройства на шине данных I2C. |
| data | Получаемые данные. |
| len | Длина получаемых данных (количество байт). |
| STATUS i2cRegisterRead | ( | unsigned int | n, |
| unsigned int | devAddr, | ||
| unsigned int | regAddr, | ||
| unsigned int | regLen, | ||
| void * | data, | ||
| unsigned int | dataLen | ||
| ) |
Копирование адреса во внутренний буфер драйвера и запуск обмена с ведомым в режиме ведущего устройства MASTER. Функция является надстройкой над i2cWrite() с изменением направления передачи данных после отправки адреса регистра ведомому устройству. Номер регистра передаётся как первый байт(ы) данных.
| n | Номер канала I2C. Для определения номера канала рекомендуется использовать один из макросов. |
| devAddr | Адрес устройства на шине данных I2C. |
| regAddr | Номер регистра, в который записываются данные. |
| regLen | Длина адреса регистра. |
| data | Получаемые данные. |
| dataLen | Длина принимаемых данных (количество байт) без учёта адреса регистра. |
| STATUS i2cRegisterWrite | ( | unsigned int | n, |
| unsigned int | devAddr, | ||
| unsigned int | regAddr, | ||
| unsigned int | regLen, | ||
| const void * | data, | ||
| unsigned int | dataLen | ||
| ) |
Копирование данных во внутренний буфер драйвера и запуск отправки буфера в режиме ведущего устройства MASTER. Функция является надстройкой над i2cWrite(). Номер регистра передаётся как первый байт(ы) данных.
| n | Номер канала I2C. Для определения номера канала рекомендуется использовать один из макросов. |
| devAddr | Адрес устройства на шине данных I2C. |
| regAddr | Номер регистра, в который записываются данные. |
| regLen | Длина адреса регистра. |
| data | Передаваемые данные. |
| dataLen | Длина передаваемых данных (количество байт) без учёта адреса регистра. |
| STATUS i2cWrite | ( | unsigned int | n, |
| unsigned int | addr, | ||
| const void * | data, | ||
| unsigned int | len | ||
| ) |
Копирование данных во внутренний буфер драйвера и запуск отправки буфера в режиме ведущего устройства MASTER. Функция не дожидается окончания отправки. Перед началом отправки нового массива данных функция ожидает окончания предыдущей транзакции.
| n | Номер канала I2C. Для определения номера канала рекомендуется использовать один из макросов. |
| addr | Адрес устройства на шине данных I2C. |
| data | Передаваемые данные. |
| len | Длина передаваемых данных (количество байт). |