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