linux環境:ubuntu10.04
sdk版本:(hi3518e_sdk_v1.0.3.0.tgz)hi3518ev200r001c01spc030
~ # ls /dev/spi*
/dev/spidev0.0 /dev/spidev1.0 /dev/spidev1.1
其中spidev0.0是spi0片選0;spidev1.0是spi1片選0;spidev1.1是spi1片選1。
本次,我使用的是spi1片選0,也就是spidev1.0,對應pin腳為spi1_csn0、spi1_sclk、spi1_sdi、spi_sdo;使用spidev1.0需要對上述引腳進行管腳復用配置,如下:
himm 0x200f0050 0x1 # muxctrl_reg20 0x1 復用為spi1_sclk
himm 0x200f0054 0x1 # muxctrl_reg21 0x1 復用為spi1_sdo
himm 0x200f0058 0x1 # muxctrl_reg22 0x1 復用為spi1_sdi
himm 0x200f005c 0x1 # muxctrl_reg23 0x1 復用為spi1_csn0
二、spi1片選0初始化如下:
static int fd_a7196;
static int spi_a7196_init(void)
//通過ioctl設定spi傳輸模式
ret = ioctl(fd_a7196, spi_ioc_wr_mode, &mode); /* set spi mode */
if (ret == -1)
//通過ioctl設定spi資料位寬
ret = ioctl(fd_a7196, spi_ioc_wr_bits_per_word, &bits); /* set spi bits per word */
if (ret == -1)
//通過ioctl設定spi傳輸速率
ret = ioctl(fd_a7196, spi_ioc_wr_max_speed_hz, &speed); /* max speed hz */
if (ret == -1)
return ret;
}三、spi讀寫操作函式
void spiwritebyte(int fd_spi, uint8_t regaddr)
}void spiwriteregister(int fd_spi, uint8_t regaddr, uint8_t regval)
}void spiwritebuffer(int fd_spi, uint8_t regaddr, uint8_t *buf, uint16_t size)
}uint8_t spireadbyte(int fd_spi)
return rx_buff[0];
}uint8_t spireadregister(int fd_spi, uint8_t regaddr)
return rx_buff[1];
}void spireadbuffer(int fd_spi, uint8_t regaddr, uint8_t *buf, uint16_t size)
}
編譯Hi3518EV200 SDK遇到的問題
解決辦法 sudo apt get install lib32z1 sudo apt get install lib32stdc 6 4.8 dbg解決辦法 sudo apt get install uboot mkimage 更高的linux版本使用u boot tools替代 sudo apt ...
海思Hi3518EV200(2)開發環境
1.linux開發環境 2.linux開發環境描述 3.搭建linux開發環境 1 安裝linux伺服器 這裡使用ubuntu 10.04 lts 2 安裝交叉編譯工具 海思sdk包中提供專門的編譯工具鏈 arm hisiv300 linux和arm hisiv400 linux。3 安裝sdk 將...
海思Hi3518EV200(2)開發環境
1.linux開發環境 2.linux開發環境描述 3.搭建linux開發環境 1 安裝linux伺服器 這裡使用ubuntu 10.04 lts 2 安裝交叉編譯工具 海思sdk包中提供專門的編譯工具鏈 arm hisiv300 linux和arm hisiv400 linux。3 安裝sdk 將...