海思hisi I2C SPI讀寫寄存器

原文鏈接: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章