海思hisi I2C SPI讀寫暫存器

2021-09-26 08:12:49 字數 2071 閱讀 5224

i2c 讀寫命令示例

此操作示例通過 i2c 讀寫命令實現對 i2c 外圍裝置的讀寫操作。

a. 在控制台使用 i2c_read 命令對 i2c 外圍裝置進行讀操作:

~ $ i2c_read

例如讀掛載在 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 控制器 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 [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 [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

說明:

海思3559A EMMC讀寫API介面說明

由於需要開發ota公升級功能,所以uboot階段和linux階段都需要讀寫emmc 1.mmc工具 uboot命令列階段可以使用mmc命令進行讀寫 示例 1 read mmc read 0 0x42000000 0x400 0x400 md 0x42000000 0x100 2 write mmc ...

海思NB IOT模組HI2115晶元I2C通訊

1.首先確定硬體上i2c的引腳,手冊上並沒有,海思技術支援說是14和15腳,我們用的是12和13腳,問題在於,如果是硬體i2c應該不能隨便換個引腳吧,難道是模擬的時序?2.下乙個奇怪的地方,這個暫存器居然只有兩行,沒其他地方使用,真奇怪?看下相關的 3.pio的設定 static i2c ret i...

海思HI3518核心中開啟UART2的方法

海思hi3518 soc提供 了3個uart universalasynchronous receiver transmitter非同步序列通訊介面 單元,主要功能是將來自外圍裝置的資料進行串並轉換之後傳入內部匯流排,以及將資料進行並串轉換之後輸出到外部裝置。uart的主要功能是和外部晶元的uart...