原則:有硬件I2C、SPI時盡量用硬件操作,省去IO模擬繁瑣的時序調(diào)試。但在內(nèi)部資源不夠時就要用IO模擬總線了。
關(guān)于短延時:
模擬時序時是否需要延時要看MCU與device的相對速度。比如I2C如果400K的速率和MCU動輒幾十M的速率不再一個量級,肯定要通過延時調(diào)整時序;但對于SPI因為其速度很高,甚至有的比單片機的速度還高,這時就沒必要延時了。
關(guān)于IO模擬的收發(fā)函數(shù)是否要合并成一個:
對于SPI因為是全雙工,所以可以分開,當然也可以合并成一個(發(fā)送時不需要返回值,而接收時此時參數(shù)是要發(fā)送的數(shù)據(jù),返回值是要讀的值)
關(guān)于在什么跳變沿操作:
比如芯片手冊中說到在上升沿采樣/鎖定(也就是在搞定平之后值必須穩(wěn)定),那么單個位bit的收發(fā)都應(yīng)該在0->1之間進行操作。
關(guān)于時鐘極性和時鐘相位:
CPOL時鐘極性只是說明了空閑時總線的電平狀態(tài):CPOL=1表明空閑時時鐘是搞定平;否則是低電平。
CPOA時鐘相位說明了在第幾個跳變沿進行采樣,CPOA=0表明在第一個沿進行采樣,否則在第二個沿。
-
IO
+關(guān)注
關(guān)注
0文章
448瀏覽量
39132 -
時鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131446 -
SPI
+關(guān)注
關(guān)注
17文章
1706瀏覽量
91502
原文標題:關(guān)于IO模擬時序(SPI)的注意事項
文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論