WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
I2C

结构体

struct  hal_i2c_prepare_config
 I2C准备收发的参数数据结构定义。 更多...
 
struct  hal_i2c_buffer_wrap
 I2C缓存数据封装数据结构定义。 更多...
 

宏定义

#define I2C_SS_MODE_BAUDRATE_HIGH_LIMIT   (100 * 1000)
 
#define I2C_FS_MODE_BAUDRATE_HIGH_LIMIT   (400 * 1000)
 
#define I2C_HS_MODE_BAUDRATE_HIGH_LIMIT   (3400 * 1000)
 
#define I2C_HS_MODE_MASTER_CODE_MAX   7
 

类型定义

typedef enum hal_i2c_speed_mode hal_i2c_speed_mode_t
 I2C速率模式定义
 
typedef enum hal_i2c_data_operation_type hal_i2c_data_operation_type_t
 I2C数据操作类型定义。
 
typedef enum hal_i2c_evt_id hal_i2c_evt_id_t
 I2C事件ID的定义。
 
typedef enum hal_i2c_ctrl_id hal_i2c_ctrl_id_t
 I2C控制ID定义。
 
typedef struct hal_i2c_prepare_config hal_i2c_prepare_config_t
 I2C准备收发的参数数据结构定义。
 
typedef struct hal_i2c_buffer_wrap hal_i2c_buffer_wrap_t
 I2C缓存数据封装数据结构定义。
 
typedef errcode_t(* hal_i2c_callback_t) (i2c_bus_t bus, hal_i2c_evt_id_t evt, uintptr_t param)
 I2C的回调函数
 

枚举

enum  hal_i2c_speed_mode {
  I2C_SPEED_MODE_HARDCODE = 0 , I2C_SPEED_MODE_SS = 0 , I2C_SPEED_MODE_FS , I2C_SPEED_MODE_HS ,
  I2C_SPEED_MODE_MAX_NUM
}
 I2C速率模式定义 更多...
 
enum  hal_i2c_data_operation_type { I2C_DATA_OPERATION_TYPE_POLL , I2C_DATA_OPERATION_TYPE_INT , I2C_DATA_OPERATION_TYPE_DMA , I2C_DATA_OPERATION_TYPE_INVLAID }
 I2C数据操作类型定义。 更多...
 
enum  hal_i2c_evt_id {
  I2C_EVT_TX_READY = 0 , I2C_EVT_RX_READY , I2C_EVT_TX_AVAILABLE , I2C_EVT_TRANSMITION_START ,
  I2C_EVT_TRANSMITION_DONE , I2C_EVT_TRANSMITION_ABRT , I2C_EVT_TRANSMITION_BUSY , I2C_EVT_INVALID = 0xF
}
 I2C事件ID的定义。 更多...
 
enum  hal_i2c_ctrl_id {
  I2C_CTRL_WRITE_PREPARE = 0 , I2C_CTRL_WRITE_RESTORE , I2C_CTRL_READ_PREPARE , I2C_CTRL_READ_RESTORE ,
  I2C_CTRL_GET_WRITE_NUM , I2C_CTRL_GET_READ_NUM , I2C_CTRL_CHECK_TX_AVAILABLE , I2C_CTRL_CHECK_RX_AVAILABLE ,
  I2C_CTRL_FLUSH_RX_FIFO , I2C_CTRL_CHECK_TX_PROCESS_DONE , I2C_CTRL_CHECK_RX_PROCESS_DONE , I2C_CTRL_CHECK_RESTART_READY ,
  I2C_CTRL_NORMAL_MAX = I2C_CTRL_CHECK_RESTART_READY , I2C_CTRL_CHECK_TRANSMIT_ABRT , I2C_CTRL_GET_DMA_DATA_ADDR , I2C_CTRL_CHECK_TX_FIFO_EMPTY ,
  I2C_CTRL_MAX , I2C_CTRL_ID_INVALID = 0x1F
}
 I2C控制ID定义。 更多...
 

函数

errcode_t hal_i2c_master_init (i2c_bus_t bus, uint32_t baudrate, uint8_t hscode, hal_i2c_callback_t callback)
 HAL层I2C初始化为主机。
 
errcode_t hal_i2c_slave_init (i2c_bus_t bus, uint32_t baudrate, uint16_t addr, hal_i2c_callback_t callback)
 HAL层I2C初始化为主机。
 
errcode_t hal_i2c_deinit (i2c_bus_t bus)
 HAL层I2C去初始化接口
 
errcode_t hal_i2c_ctrl (i2c_bus_t bus, hal_i2c_ctrl_id_t id, uintptr_t param)
 HAL层I2C控制接口。
 
errcode_t hal_i2c_write (i2c_bus_t bus, hal_i2c_buffer_wrap_t *data)
 HAL层I2C发送数据接口。
 
errcode_t hal_i2c_read (i2c_bus_t bus, hal_i2c_buffer_wrap_t *data)
 HAL层I2C读取数据接口。
 

详细描述

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.

Description: Provides HAL i2c
History:
2022-06-07, Create file.

宏定义说明

◆ I2C_FS_MODE_BAUDRATE_HIGH_LIMIT

#define I2C_FS_MODE_BAUDRATE_HIGH_LIMIT   (400 * 1000)

快速模式下I2C波特率最大限值

◆ I2C_HS_MODE_BAUDRATE_HIGH_LIMIT

#define I2C_HS_MODE_BAUDRATE_HIGH_LIMIT   (3400 * 1000)

高速模式下I2C波特率最大限值

◆ I2C_HS_MODE_MASTER_CODE_MAX

#define I2C_HS_MODE_MASTER_CODE_MAX   7

高速模式下I2C主机码最大值

◆ I2C_SS_MODE_BAUDRATE_HIGH_LIMIT

#define I2C_SS_MODE_BAUDRATE_HIGH_LIMIT   (100 * 1000)

标准模式下I2C波特率最大限值

类型定义说明

◆ hal_i2c_buffer_wrap_t

I2C缓存数据封装数据结构定义。

◆ hal_i2c_callback_t

typedef errcode_t(* hal_i2c_callback_t) (i2c_bus_t bus, hal_i2c_evt_id_t evt, uintptr_t param)

I2C的回调函数

◆ hal_i2c_ctrl_id_t

I2C控制ID定义。

◆ hal_i2c_data_operation_type_t

I2C数据操作类型定义。

◆ hal_i2c_evt_id_t

I2C事件ID的定义。

◆ hal_i2c_prepare_config_t

I2C准备收发的参数数据结构定义。

◆ hal_i2c_speed_mode_t

I2C速率模式定义

枚举类型说明

◆ hal_i2c_ctrl_id

I2C控制ID定义。

枚举值
I2C_CTRL_WRITE_PREPARE 

发送前的准备配置。

I2C_CTRL_WRITE_RESTORE 

发送完成后恢复配置。

I2C_CTRL_READ_PREPARE 

接收数据前准备配置。

I2C_CTRL_READ_RESTORE 

发送完成后恢复配置。

I2C_CTRL_GET_WRITE_NUM 

获取可以发送的数据长度。

I2C_CTRL_GET_READ_NUM 

获取可以发送的数据长度。

I2C_CTRL_CHECK_TX_AVAILABLE 

检查是否可以对tx fifo 进行填充。

I2C_CTRL_CHECK_RX_AVAILABLE 

检查是否可以对rx fifo 进行访问。

I2C_CTRL_FLUSH_RX_FIFO 

刷新RX FIFO。

I2C_CTRL_CHECK_TX_PROCESS_DONE 

确认发送传输过程是否完成。

I2C_CTRL_CHECK_RX_PROCESS_DONE 

确认接收传输过程是否完成。

I2C_CTRL_CHECK_RESTART_READY 

确认可以开始配置restart。

I2C_CTRL_NORMAL_MAX 
I2C_CTRL_CHECK_TRANSMIT_ABRT 

检查传输异常取消状态。

I2C_CTRL_GET_DMA_DATA_ADDR 

获取数据命令寄存器。

I2C_CTRL_CHECK_TX_FIFO_EMPTY 

检查tx fifo 是否为空。

I2C_CTRL_MAX 
I2C_CTRL_ID_INVALID 

◆ hal_i2c_data_operation_type

I2C数据操作类型定义。

枚举值
I2C_DATA_OPERATION_TYPE_POLL 

I2C 对数据进行轮询处理

I2C_DATA_OPERATION_TYPE_INT 

I2C 对数据进行中断处理

I2C_DATA_OPERATION_TYPE_DMA 

I2C 对数据进行DMA处理

I2C_DATA_OPERATION_TYPE_INVLAID 

◆ hal_i2c_evt_id

I2C事件ID的定义。

枚举值
I2C_EVT_TX_READY 

发送FIFO等于小于发送阈值,TX_EMPTY中断。

I2C_EVT_RX_READY 

接收FIFO到达或者超过接收阈值,RX_FULL中断。

I2C_EVT_TX_AVAILABLE 

I2C作为从机收到主机读取数据指令,RD_REQ中断。

I2C_EVT_TRANSMITION_START 

新的传输或者接收任务开始,START_DET中断。

I2C_EVT_TRANSMITION_DONE 

传输或者接收任务结束,STOP_DET中断。

I2C_EVT_TRANSMITION_ABRT 

传输或者接收出现异常,TX_ABRT中断。

I2C_EVT_TRANSMITION_BUSY 

总线忙,BUS_BUSY中断。

I2C_EVT_INVALID 

◆ hal_i2c_speed_mode

I2C速率模式定义

枚举值
I2C_SPEED_MODE_HARDCODE 
I2C_SPEED_MODE_SS 

I2C标速模式。

I2C_SPEED_MODE_FS 

I2C快速模式。

I2C_SPEED_MODE_HS 

I2C高速模式。

I2C_SPEED_MODE_MAX_NUM 

函数说明

◆ hal_i2c_ctrl()

errcode_t hal_i2c_ctrl ( i2c_bus_t  bus,
hal_i2c_ctrl_id_t  id,
uintptr_t  param 
)

HAL层I2C控制接口。

◆ hal_i2c_deinit()

errcode_t hal_i2c_deinit ( i2c_bus_t  bus)

HAL层I2C去初始化接口

◆ hal_i2c_master_init()

errcode_t hal_i2c_master_init ( i2c_bus_t  bus,
uint32_t  baudrate,
uint8_t  hscode,
hal_i2c_callback_t  callback 
)

HAL层I2C初始化为主机。

◆ hal_i2c_read()

errcode_t hal_i2c_read ( i2c_bus_t  bus,
hal_i2c_buffer_wrap_t data 
)

HAL层I2C读取数据接口。

◆ hal_i2c_slave_init()

errcode_t hal_i2c_slave_init ( i2c_bus_t  bus,
uint32_t  baudrate,
uint16_t  addr,
hal_i2c_callback_t  callback 
)

HAL层I2C初始化为主机。

◆ hal_i2c_write()

errcode_t hal_i2c_write ( i2c_bus_t  bus,
hal_i2c_buffer_wrap_t data 
)

HAL层I2C发送数据接口。