回覆列表
-
1 # 科技福報
-
2 # 深飄強哥
遇到這種情況,你恐怕不能使用單片區內部的硬體spi介面,你可以使用微控制器,根據I2C通訊協議進行IO口模擬通訊。
I2C通訊是兩線:SCL,SDA。
SPI通常是4線:CS,SCK,MISO,MOSI
I2C通訊分為幾種型號型別:起始訊號,終止訊號,應答訊號,寫資料,讀資料。
這種通訊方式一般迅速率在100k到400k之間。如果你的應用是比較高速的,並且只有一個從裝置,建議使用spi通訊。
如果你有多個從裝置,就使用i2c通訊方式。因為i2c通訊,事實上是一種匯流排,在i2c總線上,最多可以掛在127個裝置,根據地址和讀寫控制位,來對從裝置進行讀寫操作。
這個問題在我以前的工作中經常遇到,解決方法非常簡單。一種是軟體模擬IIC實現;另一種是換帶有硬體IIC的微控制器;其實在專案開發中,由於成本的考慮,會經常性的換不同價格的微控制器。有的有硬體IIC通訊埠(微控制器自帶SDA SCL埠),有的沒有硬體IIC通訊埠(微控制器不帶SDA SCL埠)。具體說明如下:
1、微控制器不帶硬體IIC通訊口。比如早期的51微控制器,PIC微控制器。可以透過軟體模擬IIC匯流排的方式實現通訊。模擬IIC匯流排基本包括六個函式:①匯流排初始化;②啟動訊號;③應答訊號;④停止訊號;⑤寫資料;⑥讀資料。在使用時,只需正確呼叫各個函式就可方便的實現功能。
2、如果你的系統對IIC通訊速率要求高,或者傳輸的資料量大,這時不建議用模擬IIC通訊。應該選擇具有硬體IIC的微控制器,而且硬體IIC用法比較複雜,流程比較多,但是通訊速度快,穩定性好。目前市面上的微控制器基本都自帶硬體IIC。比如新塘科技的N76E003微控制器、 STM8S003F3微控制器等等很多很多。
最後總結:單單就題目所問的問題:如果微控制器沒有SDA,SCL管腳,,那麼就用軟體模擬的方式解決。不過還是建議模擬IIC,和硬體IIC都應該掌握。這對將來的專案開發中非常有益。俗話說的好技多不壓身,當你掌握知識技能足夠多的時候,什麼問題都不是問題。