軟件模擬spi的注意事項


前幾天遇到了軟件模擬spi的時候,讀和寫不一致的現象,后來仔細研究了一下,其實是時序性問題不對。

spi的有四種時序,硬件實現的時候,很簡單,初始化后直接調用api即可。但是軟件模擬就比較麻煩。

 

舉例如下:

讀時序如下:

 

 

 寫時序如下:

 

 

 這兩個結合起來就是下面四種spi模式的第四種

也就是模式2,如下所示:

值得注意的是:

按照上面的時序圖,單片機應該是在上升沿輸出數據(即寫數據),

但是,讀數據,看時序圖好像是也上上升沿,其實是錯誤的,應該是下降沿讀數據,即單片機在下降沿的時候采樣叢集的數據。

網絡參考:https://blog.csdn.net/ybhuangfugui/article/details/52068759

 

2.模擬SPI初始化

 

 

3.模擬SPI寫函數(時序)

 

 

這種時序的寫法在學習過51的朋友來看再熟悉不過了。

 

注意:

 

1、高字節在前,說以上面紅色標記的的部分就是將高位先輸出,依次移位輸出。

 

2、在時鍾的上升沿將數據輸出,所以在“時鍾-高”之前將數據輸出。

4.模擬SPI讀函數(時序) 

 

 

 

讀時序和寫時序原理類似,但還是存在差異。

 

注意:

 

1、高位先輸出來(從機輸出),所以,需要將讀取的數據依次移向高位。

 

2、在時鍾的下降沿讀出數據,所以,我紅色標記的部分可以看得出來,是在時鍾為低之后才去讀取數據。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM