ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

海思hisi I2C SPI读写寄存器

2019-08-20 16:06:45  阅读:673  来源: 互联网

标签:控制器 width 外围设备 hisi SPI 寄存器 海思 reg


原文链接:https://blog.csdn.net/qq_29350001/article/details/52680643

I2C 读写命令示例
此操作示例通过 I2C 读写命令实现对 I2C 外围设备的读写操作。

a. 在控制台使用 i2c_read 命令对 I2C 外围设备进行读操作:
~ $ i2c_read <i2c_num> <device_addr> <reg_addr> <end_reg_addr> <reg_width> <data_width> <reg_step>
例如读挂载在 I2C 控制器 2 上的 sil9024 设备的 0x8 寄存器:
~ $ i2c_read 2 0x72 0x8 0x8 0x1 0x1
说明:

i2c_num: I2C 控制器序号(对应《 Hi3516A 专业型 HD IP Camera Soc 用户指南》中的 I2C 控制器 0、 1、 2)
device_addr:外围设备地址( Hi3516A 只支持 7bit 设备地址)
reg_addr:读外围设备寄存器操作的开始地址
end_reg_addr:读外围设备寄存器操作的结束地址
reg_width:外围设备的寄存器位宽( Hi3516A 支持 8/16bit)
data_width:外围设备的数据位宽( Hi3516A 支持 8/16bit)
reg_step:连续读外围设备寄存器操作时递增幅值,默认为 1,即连续读寄存器,读取单个寄存器时不使用该参数

b. 在控制台使用 i2c_write 命令对 I2C 外围设备进行写操作:
~ $ i2c_write <i2c_num> <device_addr> <reg_addr> <value> <reg_width> <data_width>
例如向挂载在 I2C 控制器 2 上的 sil9024 设备的 0x8 寄存器写入数据 0xa5:
~ $ i2c_write 2 0x72 0x8 0xa5 0x1 0x1
说明:

i2c_num: I2C 控制器编号(对应《 Hi3516A 专业型 HD IP Camera Soc 用户指南》中的 I2C 控制器 0、 1、 2)
device_addr:外围设备地址( Hi3516A 的 I2C 控制器只支持 7bit 设备地址)
reg_addr:写外围设备寄存器操作的地址
value:写外围设备寄存器操作的数据
reg_width:外围设备的寄存器位宽( Hi3516A 的 I2C 控制器支持 8/16bit)
data_width:外围设备的数据位宽( Hi3516A 的 I2C 控制器支持 8/16bit)

SPI 读写命令示例
此操作示例通过 SPI 读写命令实现对 SPI 外围设备的读写操作。
在控制台使用 spi_read 命令对 SPI 外围设备进行读操作:
~ $ ssp_read <spi_num> <csn> <dev_addr> <reg_addr> [num_reg] [dev_width] [reg_width] [data_width]
其中[num_reg] 可以省略,缺省值是 1(表示读 1 个寄存器)。[dev_width] [reg_width] [data_width]可以省略,缺省值都是1(表示1Byte)。
例如读挂载在 SPI 控制器 0 片选 0 上设备地址为 0x2 的设备的 0x0 寄存器:
~ $ ssp_read 0x0 0x0 0x2 0x0 0x10 0x1 0x1 0x1

说明:

spi_num: SPI 控制器号(对应《 Hi3516A 专业型 HD IP Camera Soc 用户指南》中的 SPI 控制器0、 1)
csn:片选号( Hi3516A 的 SPI 控制器 0 有 1 个片选、控制器 1 有 3 个片选)
dev_addr:外围设备地址
reg_addr:外围设备寄存器开始地址
num_reg:读外围设备寄存器个数
dev_width:外围设备地址位宽(支持 8 位)
reg_width:外围设备寄存器地址位宽(支持 8 位)
data_width:外围设备的数据位宽(支持 8 位)

在控制台使用 spi_write 命令对 SPI 外围设备进行写操作:
~ $ ssp_write <spi_num> <csn> <dev_addr> <reg_addr> <data> [dev_width] [reg_width] [data_width]
其中[dev_width] [reg_width] [data_width]可以省略,缺省值都是 1(表示 1Byte)。
例如向挂载在 SPI 控制器 0 片选 0 上设备地址为 0x2 的设备的 0x0 寄存器写入数据 0x65:
~ $ ssp_write 0x0 0x0 0x2 0x0 0x65 0x1 0x1 0x1

说明:

spi_num: SPI 控制器序号(对应《 Hi3516A 专业型 HD IP Camera Soc 用户指南》中的 SPI 控制器 0、 1)
csn:片选号( Hi3516A 的 SPI 控制器 0 有 1 个片选、控制器 1 有 3 个片选)
dev_addr:外围设备地址
reg_addr:外围设备寄存器地址
data:写外围设备寄存器的数据
dev_width:外围设备地址位宽(支持 8 位)
reg_width:外围设备寄存器地址位宽(支持 8 位)
data_width:外围设备的数据位宽(支持 8 位)
此 SPI 读写命令仅支持 sensor 的读写操作。
 ———————————————— 
版权声明:本文为CSDN博主「聚优致成」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_29350001/article/details/52680643

标签:控制器,width,外围设备,hisi,SPI,寄存器,海思,reg
来源: https://blog.csdn.net/yuanbinquan/article/details/99851089

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有