Hi3516A开发--I2C/SPI读写命令
生活随笔
收集整理的這篇文章主要介紹了
Hi3516A开发--I2C/SPI读写命令
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
I2C 讀寫命令示例
此操作示例通過 I2C 讀寫命令實(shí)現(xiàn)對(duì) I2C 外圍設(shè)備的讀寫操作。
a. 在控制臺(tái)使用 i2c_read 命令對(duì) I2C 外圍設(shè)備進(jìn)行讀操作:
~ $ i2c_read <i2c_num> <device_addr> <reg_addr> <end_reg_addr> <reg_width> <data_width> <reg_step>
例如讀掛載在 I2C 控制器 2 上的 sil9024 設(shè)備的 0x8 寄存器:
~ $ i2c_read 2 0x72 0x8 0x8 0x1 0x1
device_addr:外圍設(shè)備地址( Hi3516A 只支持 7bit 設(shè)備地址)
reg_addr:讀外圍設(shè)備寄存器操作的開始地址
end_reg_addr:讀外圍設(shè)備寄存器操作的結(jié)束地址
reg_width:外圍設(shè)備的寄存器位寬( Hi3516A 支持 8/16bit)
data_width:外圍設(shè)備的數(shù)據(jù)位寬( Hi3516A 支持 8/16bit)
reg_step:連續(xù)讀外圍設(shè)備寄存器操作時(shí)遞增幅值,默認(rèn)為 1,即連續(xù)讀寄存器,讀取單個(gè)寄存器時(shí)不使用該參數(shù)
b. 在控制臺(tái)使用 i2c_write 命令對(duì) I2C 外圍設(shè)備進(jìn)行寫操作:
~ $ i2c_write <i2c_num> <device_addr> <reg_addr> <value> <reg_width> <data_width>
例如向掛載在 I2C 控制器 2 上的 sil9024 設(shè)備的 0x8 寄存器寫入數(shù)據(jù) 0xa5:
~ $ i2c_write 2 0x72 0x8 0xa5 0x1 0x1
device_addr:外圍設(shè)備地址( Hi3516A 的 I2C 控制器只支持 7bit 設(shè)備地址)
reg_addr:寫外圍設(shè)備寄存器操作的地址
value:寫外圍設(shè)備寄存器操作的數(shù)據(jù)
reg_width:外圍設(shè)備的寄存器位寬( Hi3516A 的 I2C 控制器支持 8/16bit)
data_width:外圍設(shè)備的數(shù)據(jù)位寬( Hi3516A 的 I2C 控制器支持 8/16bit)
SPI 讀寫命令示例
此操作示例通過 SPI 讀寫命令實(shí)現(xiàn)對(duì) SPI 外圍設(shè)備的讀寫操作。
在控制臺(tái)使用 spi_read 命令對(duì) SPI 外圍設(shè)備進(jìn)行讀操作:
~ $ ssp_read <spi_num> <csn> <dev_addr> <reg_addr> [num_reg] [dev_width] [reg_width] [data_width]
其中[num_reg] 可以省略,缺省值是 1(表示讀 1 個(gè)寄存器)。[dev_width] [reg_width] [data_width]可以省略,缺省值都是1(表示1Byte)。
例如讀掛載在 SPI 控制器 0 片選 0 上設(shè)備地址為 0x2 的設(shè)備的 0x0 寄存器:
csn:片選號(hào)( Hi3516A 的 SPI 控制器 0 有 1 個(gè)片選、控制器 1 有 3 個(gè)片選)
dev_addr:外圍設(shè)備地址
reg_addr:外圍設(shè)備寄存器開始地址
num_reg:讀外圍設(shè)備寄存器個(gè)數(shù)
dev_width:外圍設(shè)備地址位寬(支持 8 位)
reg_width:外圍設(shè)備寄存器地址位寬(支持 8 位)
data_width:外圍設(shè)備的數(shù)據(jù)位寬(支持 8 位)
在控制臺(tái)使用 spi_write 命令對(duì) SPI 外圍設(shè)備進(jìn)行寫操作:
~ $ 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 上設(shè)備地址為 0x2 的設(shè)備的 0x0 寄存器寫入數(shù)據(jù) 0x65:
csn:片選號(hào)( Hi3516A 的 SPI 控制器 0 有 1 個(gè)片選、控制器 1 有 3 個(gè)片選)
dev_addr:外圍設(shè)備地址
reg_addr:外圍設(shè)備寄存器地址
data:寫外圍設(shè)備寄存器的數(shù)據(jù)
dev_width:外圍設(shè)備地址位寬(支持 8 位)
reg_width:外圍設(shè)備寄存器地址位寬(支持 8 位)
data_width:外圍設(shè)備的數(shù)據(jù)位寬(支持 8 位)
此操作示例通過 I2C 讀寫命令實(shí)現(xiàn)對(duì) I2C 外圍設(shè)備的讀寫操作。
a. 在控制臺(tái)使用 i2c_read 命令對(duì) I2C 外圍設(shè)備進(jìn)行讀操作:
~ $ i2c_read <i2c_num> <device_addr> <reg_addr> <end_reg_addr> <reg_width> <data_width> <reg_step>
例如讀掛載在 I2C 控制器 2 上的 sil9024 設(shè)備的 0x8 寄存器:
~ $ i2c_read 2 0x72 0x8 0x8 0x1 0x1
說(shuō)明:
i2c_num: I2C 控制器序號(hào)(對(duì)應(yīng)《 Hi3516A 專業(yè)型 HD IP Camera Soc 用戶指南》中的 I2C 控制器 0、 1、 2)device_addr:外圍設(shè)備地址( Hi3516A 只支持 7bit 設(shè)備地址)
reg_addr:讀外圍設(shè)備寄存器操作的開始地址
end_reg_addr:讀外圍設(shè)備寄存器操作的結(jié)束地址
reg_width:外圍設(shè)備的寄存器位寬( Hi3516A 支持 8/16bit)
data_width:外圍設(shè)備的數(shù)據(jù)位寬( Hi3516A 支持 8/16bit)
reg_step:連續(xù)讀外圍設(shè)備寄存器操作時(shí)遞增幅值,默認(rèn)為 1,即連續(xù)讀寄存器,讀取單個(gè)寄存器時(shí)不使用該參數(shù)
b. 在控制臺(tái)使用 i2c_write 命令對(duì) I2C 外圍設(shè)備進(jìn)行寫操作:
~ $ i2c_write <i2c_num> <device_addr> <reg_addr> <value> <reg_width> <data_width>
例如向掛載在 I2C 控制器 2 上的 sil9024 設(shè)備的 0x8 寄存器寫入數(shù)據(jù) 0xa5:
~ $ i2c_write 2 0x72 0x8 0xa5 0x1 0x1
說(shuō)明:
i2c_num: I2C 控制器編號(hào)(對(duì)應(yīng)《 Hi3516A 專業(yè)型 HD IP Camera Soc 用戶指南》中的 I2C 控制器 0、 1、 2)device_addr:外圍設(shè)備地址( Hi3516A 的 I2C 控制器只支持 7bit 設(shè)備地址)
reg_addr:寫外圍設(shè)備寄存器操作的地址
value:寫外圍設(shè)備寄存器操作的數(shù)據(jù)
reg_width:外圍設(shè)備的寄存器位寬( Hi3516A 的 I2C 控制器支持 8/16bit)
data_width:外圍設(shè)備的數(shù)據(jù)位寬( Hi3516A 的 I2C 控制器支持 8/16bit)
SPI 讀寫命令示例
此操作示例通過 SPI 讀寫命令實(shí)現(xiàn)對(duì) SPI 外圍設(shè)備的讀寫操作。
在控制臺(tái)使用 spi_read 命令對(duì) SPI 外圍設(shè)備進(jìn)行讀操作:
~ $ ssp_read <spi_num> <csn> <dev_addr> <reg_addr> [num_reg] [dev_width] [reg_width] [data_width]
其中[num_reg] 可以省略,缺省值是 1(表示讀 1 個(gè)寄存器)。[dev_width] [reg_width] [data_width]可以省略,缺省值都是1(表示1Byte)。
例如讀掛載在 SPI 控制器 0 片選 0 上設(shè)備地址為 0x2 的設(shè)備的 0x0 寄存器:
~ $ ssp_read 0x0 0x0 0x2 0x0 0x10 0x1 0x1 0x1
說(shuō)明:
spi_num: SPI 控制器號(hào)(對(duì)應(yīng)《 Hi3516A 專業(yè)型 HD IP Camera Soc 用戶指南》中的 SPI 控制器0、 1)csn:片選號(hào)( Hi3516A 的 SPI 控制器 0 有 1 個(gè)片選、控制器 1 有 3 個(gè)片選)
dev_addr:外圍設(shè)備地址
reg_addr:外圍設(shè)備寄存器開始地址
num_reg:讀外圍設(shè)備寄存器個(gè)數(shù)
dev_width:外圍設(shè)備地址位寬(支持 8 位)
reg_width:外圍設(shè)備寄存器地址位寬(支持 8 位)
data_width:外圍設(shè)備的數(shù)據(jù)位寬(支持 8 位)
在控制臺(tái)使用 spi_write 命令對(duì) SPI 外圍設(shè)備進(jìn)行寫操作:
~ $ 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 上設(shè)備地址為 0x2 的設(shè)備的 0x0 寄存器寫入數(shù)據(jù) 0x65:
~ $ ssp_write 0x0 0x0 0x2 0x0 0x65 0x1 0x1 0x1
說(shuō)明:
spi_num: SPI 控制器序號(hào)(對(duì)應(yīng)《 Hi3516A 專業(yè)型 HD IP Camera Soc 用戶指南》中的 SPI 控制器 0、 1)csn:片選號(hào)( Hi3516A 的 SPI 控制器 0 有 1 個(gè)片選、控制器 1 有 3 個(gè)片選)
dev_addr:外圍設(shè)備地址
reg_addr:外圍設(shè)備寄存器地址
data:寫外圍設(shè)備寄存器的數(shù)據(jù)
dev_width:外圍設(shè)備地址位寬(支持 8 位)
reg_width:外圍設(shè)備寄存器地址位寬(支持 8 位)
data_width:外圍設(shè)備的數(shù)據(jù)位寬(支持 8 位)
此 SPI 讀寫命令僅支持 sensor 的讀寫操作。
參看:外圍設(shè)備驅(qū)動(dòng) 操作指南
總結(jié)
以上是生活随笔為你收集整理的Hi3516A开发--I2C/SPI读写命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java线程中断机制-如何中断线程
- 下一篇: Hadoop的Mapreduce中Map