Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
Структуры данных | Макросы | Функции
Файл i2c.h

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с интерфесом I2C. Подробнее...

#include "types.h"
#include "chip_5023BC016.h"
#include "system.h"
#include "gpio.h"

См. исходные тексты.

Структуры данных

struct  I2C_T
 Структура для доступа к регистрам I2C. Подробнее...
 

Макросы

#define Prescale(x)   ((uint32_t)((x&0xFFFF) << 0))
 Макросы и типы для регистра Clock_prescale. Подробнее...
 
#define IEN(x)   ((uint32_t)(x << 6))
 Макросы и типы для регистра Control. Подробнее...
 
#define EN(x)   ((uint32_t)(x << 7))
 
#define RW(x)   ((uint32_t)(x << 0))
 Макросы и типы для регистра Tx_Rx. Подробнее...
 
#define TDATA(x)   ((uint32_t)((x&0x7F) << 1))
 
#define RDATA(x)   ((uint32_t)((x&0xFF) << 0))
 
#define IACK_IF(x)   ((uint32_t)(x << 0))
 Макросы и типы для регистра Com_Stat. Подробнее...
 
#define TIP(x)   ((uint32_t)(x << 1))
 
#define ACK(x)   ((uint32_t)(x << 3))
 
#define WR(x)   ((uint32_t)(x << 4))
 
#define RD_AL(x)   ((uint32_t)(x << 5))
 
#define STO_BUSY(x)   ((uint32_t)(x << 6))
 
#define STA_RxACK(x)   ((uint32_t)(x << 7))
 
#define IF(x)   ((uint32_t)(x << 0))
 
#define I2C_ENABLE   0x80
 Макросы и типы для работы с I2C. Подробнее...
 

Функции

CTRL_T I2C_GetCtrlNum (I2C_T *pI2C)
 Возвращает номер модуля для использования в функциях включения/выключения I2C. Подробнее...
 
void I2C_Init (I2C_T *pI2C, uint32_t clt_prsc)
 Инициализация I2C. Подробнее...
 
void I2C_GPIO_Init ()
 Инициализация портов в режиме альтернативной функции для работы I2C. Подробнее...
 
unsigned int I2C_Write_Byte (unsigned char addr, unsigned char data)
 Отправка байта по интерфейсу I2C. Подробнее...
 
unsigned int I2C_Read_Byte (unsigned char addr, unsigned char *data)
 Чтение байта по интерфейсу I2C. Подробнее...
 

Подробное описание

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с интерфесом I2C.

Copyright(C) НПП Цифровые решения, 2017 Copyright(C) Команда разработчиков НПП Цифровые решения Все права защищены.

Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.

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

См. определение в файле i2c.h

Макросы

§ ACK

#define ACK (   x)    ((uint32_t)(x << 3))

Используется, когда мастер является приемником. 0 – послать ACK, 1 – послать NACK

См. определение в файле i2c.h строка 89

§ EN

#define EN (   x)    ((uint32_t)(x << 7))

1 – Перевод блока I2C в рабочий режим

См. определение в файле i2c.h строка 69

§ I2C_ENABLE

#define I2C_ENABLE   0x80

Макросы и типы для работы с I2C.

См. определение в файле i2c.h строка 122

§ IACK_IF

#define IACK_IF (   x)    ((uint32_t)(x << 0))

Макросы и типы для регистра Com_Stat.

Очищает флаг прерывания (IF) в регистре Com_Stat Бит выставляется, когда транзакция завершена, либо когда теряется арбитрация.

См. определение в файле i2c.h строка 82

§ IEN

#define IEN (   x)    ((uint32_t)(x << 6))

Макросы и типы для регистра Control.

1 – Включение прерывания, происходящего по завершению транзакции

См. определение в файле i2c.h строка 68

§ IF

#define IF (   x)    ((uint32_t)(x << 0))

Бит выставляется, когда транзакция завершена, либо когда теряется арбитрация. Если установлен бит IEN в регистре Control, в этот момент будет сгенерировано прерывание.

См. определение в файле i2c.h строка 114

§ Prescale

#define Prescale (   x)    ((uint32_t)((x&0xFFFF) << 0))

Макросы и типы для регистра Clock_prescale.

Значение используется для задания периода тактового сигнала на линии SCL. Значение может быть изменено только если бит EN в регистре Control установлен в 0. Минимальное рекомендуемое значение этого поля равно 3

См. определение в файле i2c.h строка 57

§ RD_AL

#define RD_AL (   x)    ((uint32_t)(x << 5))

Чтение из подчиненного устройства. Устанавливается в 1, когда блок потерял арбитрацию

См. определение в файле i2c.h строка 93

§ RDATA

#define RDATA (   x)    ((uint32_t)((x&0xFF) << 0))

Последний байт, принятый по шине I2C

См. определение в файле i2c.h строка 77

§ RW

#define RW (   x)    ((uint32_t)(x << 0))

Макросы и типы для регистра Tx_Rx.

Значение данного бита определяет направление транзакции. 1 – чтение из подчиненного устройства, 0 – запись в подчиненное устройство

См. определение в файле i2c.h строка 75

§ STA_RxACK

#define STA_RxACK (   x)    ((uint32_t)(x << 7))

Генерация условия START на шине, либо повторного условия START. Принятое значение бита подтверждения (acknowledge). 0 – подчиненное устройство подтвердило транзакцию, 1 – подтверждение не было получено

См. определение в файле i2c.h строка 106

§ STO_BUSY

#define STO_BUSY (   x)    ((uint32_t)(x << 6))

Генерация условия STOP на шине. Бит выставляется в 1 если на шине было обнаружено условие START и сбрасывается в 0 если на шине было обнаружено условие STOP

См. определение в файле i2c.h строка 98

§ TDATA

#define TDATA (   x)    ((uint32_t)((x&0x7F) << 1))

Данные для передачи. Старшие 7 бит слова данных, которые будут переданы по шине I2C

См. определение в файле i2c.h строка 76

§ TIP

#define TIP (   x)    ((uint32_t)(x << 1))

Имеет значение 1, когда происходит передача данных и 0 – когда транзакция завершается.

См. определение в файле i2c.h строка 87

§ WR

#define WR (   x)    ((uint32_t)(x << 4))

Запись в подчиненное устройство

См. определение в файле i2c.h строка 91

Функции

§ I2C_GetCtrlNum()

CTRL_T I2C_GetCtrlNum ( I2C_T pI2C)

Возвращает номер модуля для использования в функциях включения/выключения I2C.

Аргументы
pI2Cуказатель на структуру с регистрами I2C.
Возвращаемые значения
CtrlI2Cномер модуля.

См. определение в файле i2c.c строка 36

§ I2C_GPIO_Init()

void I2C_GPIO_Init ( )

Инициализация портов в режиме альтернативной функции для работы I2C.

Аргументы
pI2CNone.
Возвращаемые значения
None.

См. определение в файле i2c.c строка 62

§ I2C_Init()

void I2C_Init ( I2C_T pI2C,
uint32_t  clt_prsc 
)

Инициализация I2C.

Аргументы
pI2Cуказатель на структуру с регистрами I2C.
clt_prscделитель частоты I2C.
Возвращаемые значения
None.

См. определение в файле i2c.c строка 48

§ I2C_Read_Byte()

unsigned int I2C_Read_Byte ( unsigned char  addr,
unsigned char *  data 
)

Чтение байта по интерфейсу I2C.

Аргументы
addrадрес устройства I2C.
dataпринятый байт.
Возвращаемые значения
Zeroor error.

См. определение в файле i2c.c строка 111

§ I2C_Write_Byte()

unsigned int I2C_Write_Byte ( unsigned char  addr,
unsigned char  data 
)

Отправка байта по интерфейсу I2C.

Аргументы
addrадрес устройства I2C.
dataбайт для передачи.
Возвращаемые значения
Zeroor error.

См. определение в файле i2c.c строка 76