小小的SPI,一樣使人認栽
剛剛經歷了春天的百花齊放,性急的夏天便早早地把日頭一天一天地拉長。帶著余溫的落日久久地不愿換班下崗,溫暖的陽光固執(zhí)地爬過窗臺,將人的身影拉得老長老長。
本文引用地址:http://cafeforensic.com/article/201901/396337.htm辦公室內一片繁忙,有的同事神采紛揚,閑言碎語不停地在講。有的同事躬身勞作,態(tài)度認真,如入忘我。我們的朋友三昧道人卻正站在亂糟糟的工作臺前,不停地撓著頭皮,搖晃著腦袋,小聲地自言自語:小了白了兔,白了又了白,真是奇了怪了個了哉!
洞幺洞幺我是洞拐
灑家自信并非泛泛之輩,也不是庸庸碌碌之徒,這一次卻折騰了好幾天,好像走入了泥淖和迷途,不知所措,進退維谷。
是怎么一回事呢?各位看官不要慌,不要忙,聽我細細講一講。
灑家在工作中使用到一顆據說應用很廣的低頻信號發(fā)射芯片-Atmel的ATA5279,可以通過IO口控制它的工作模式,也可以通過SPI接口發(fā)送命令,使之向天線上發(fā)射低頻信號,以及返回芯片工作狀態(tài)信息。也許是這顆芯片比較常用的緣故,芯片廠商只給它配備了簡單的芯片手冊。給出了幾種工作模式的轉換條件,所支持的SPI形式的命令和狀態(tài)字,以及命令和狀態(tài)字中各個數(shù)據位的含義。
因為收入菲薄,灑家生活簡樸,兼以腦力有限,所以信奉簡約。因此,芯片手冊雖然只有薄薄十幾頁,芯片廠商頗有偷奸?;?,灑家倒也并不怎么在意,夠用即可,簡單就是美嘛。麻雀雖小,但五臟俱全,事后細細地讀起來,這個芯片手冊倒也沒有遺漏任何關鍵的知識點。半部論語,可治天下,講的就是個厚積薄發(fā),所以才需要讀者先把書讀厚,然后再讀薄的過程。任何知識點背后涉及的方方面面,全靠讀者自己的參悟,怎么能怪人家寫得不細致呢!
總之,在信息有限的芯片手冊的支撐下,灑家開始了對它的編程工作。
首先,灑家在電路板上串接了測量工作電流的萬用表,用IO口設置它的工作模式,芯片從休眠狀態(tài)到空閑狀態(tài)、從空閑狀態(tài)到休眠狀態(tài)的切換中,可以明顯地觀察到電流變化。然后,通過SPI接口發(fā)送命令,查詢一下芯片的狀態(tài)。芯片手冊中在好幾個地方以圖形的方式明明白白地給出了SPI接口通信的時序圖:采用8位數(shù)據,先發(fā)最低位。灑家按照芯片手冊要求
滿懷期待地發(fā)出了查詢命令,‘洞幺洞幺我是洞拐,收到請回答!’
結果,洞幺沒有回答,洞拐很傷心。
洞幺洞幺,這回怎么樣
夕陽西斜,黯淡下去的一絲抹紅,依然不情不愿地掛在天邊。被烈日曬熱了的大地,不住地大口喘息,慢慢地在傍晚的微風中恢復了生機。室外,嘩啦啦的樹葉和隨風搖曳的小草,共同演奏著初夏的圓舞曲,渾然沒有一絲熱惱之意。室內,微風送來一絲涼意,游走在空無一人的辦公室里,無聲無息。灑家落寞地站在窗臺前,耷拉著有些發(fā)蒙的腦袋,怔怔地看著落在臺面上星星點點的頭皮屑和一根根碎頭發(fā),無精打采地自憐不已。
每次遇到問題,灑家都會把頭皮撓啊撓,看那頭皮屑飄啊飄,在一片忘我的安靜中聽著自己的心兒跳啊跳,捕捉著思緒的火苗燒啊燒。天地無言,微風漸息,在一片死氣沉沉的靜寂中,灑家突然覺得周圍的世界好像有些不太真實:只不過一個小小的SPI,怎么就調不通了呢?
SPI通信協(xié)議非常簡單,通過CS選通腳使能從控端后,主控端產生一定頻率的SCLK時鐘,然后可以根據設置在上升沿把數(shù)據送出,在下降沿把數(shù)據讀回來,或者在下降沿把數(shù)據送出,在上升沿把數(shù)據讀回來。完成8位數(shù)據收發(fā)后,SCLK時鐘自動停止,CS禁能從控端。明明白白,簡簡單單。
評論