20D添加標準SPI驅動詳解 ——(一)

點此進入原文鏈接

用過海思3520DV200的人應該都知道吧,由於芯片的年代比較久了,20Dv200的SDK裏面是沒有標準SPI通訊接口的驅動的,要用SPI通訊的話只能用官方提供的工具SSP_read和write來讀寫數據,這樣非常的不方便,也不好集成在上層的代碼中使用,最近有個項目,需要用到spi,所以就想着能不能自己加一個標準的spi驅動,就像串口一樣,通過打開設備節點的方式來操作spi,但是驅動的調試本身難度偏大,一開始也沒什麼好思路,請教了Goodman大神之後給我提供了一些思路,就嘗試着搞了搞,中間遇到了不少問題,大概四五天的樣子,終於搞出來了,這次想寫出來跟大家分享一下,一個專欄可能寫不完啊,這個東西比較多,想分幾次給大家寫的詳細一些,希望大家看到的對你有幫助。   首先給大家提供一個思路啊,自己添加並不代表自己純手寫,重新寫一個,這個難度太大,也需要花太多的時間,(當然如果有大神自己可以搞定,那當我沒說,估計這樣的大神也不會看我寫的帖子了吧,哈哈哈哈)我們其實不需要自己純手寫,20Dv200的板子是沒有標準spi驅動的,但是別的板子有啊,16A有的,20DV400有的,31D也是有的,我們可以參考別的SDK裏的驅動代碼,自己添加一下,這就是最關鍵的思路拉。   照着這個思路的第一步就是比較一下寄存器的差別,找到20Dv200,20Dv400和16A的文檔,打開看了一下,如下: 20Dv200:
在這裏插入圖片描述
16A:
在這裏插入圖片描述
比較了一下,只有0x024的DMA寄存器20Dv200是沒有的,其他都一樣,頓時覺得這個事情有搞頭,即使不支持DMA通訊至少是可以搞定的吧,於是打開了SDK代碼,開始比較了。在20D添加標準SPI驅動詳解 ——(二)和(三)中給大家詳細講一下代碼怎麼去比較以及修改。

易百納技術社區內容涵蓋機器視覺、音頻處理、機器連接、機器感知以及智能終端,是一個多方向的專業性社區,致力於爲更多工程師答疑解惑,創造機遇!