單片機沒有SDA怎麼辦?

火星論


遇到這種情況,你恐怕不能使用單片區內部的硬件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都應該掌握。這對將來的項目開發中非常有益。俗話說的好技多不壓身,當你掌握知識技能足夠多的時候,什麼問題都不是問題。


科技屎殼郎


IIC總線 sda 是數據線 scl是時鐘線。用於近距離雙向同步串行數據傳輸。

spi是總線稱呼,不是端口線。

如果端口名寫spi 和scl ,那是書寫不夠嚴謹,spi線就是sda線!

既然有IIC端口線,也就無需軟件模擬。

就這麼簡單直接!

如果是你自己看錯了,有SPI而沒有 IIC,那隻好用兩根普通端口線軟件模擬IIC協議。


散居獵人


首先,需要確認一下問題描述:SDA信號存在於I2C接口裡,而I2C接口裡必然SCL/SDA配套出現的,所以一般單片機集成有I2C總線接口必然兩個信號是配套的,如果真有您的情況,可以把單片機型號發出來確認一下。另外SPI總線不存在SCL信號。

其次,退一步講,如果真有這種情況,有SDA,而沒有SCL,那麼只能用GPIO去模擬I2C時序來對接外設。如果要完成這個特性,則必須保證SDA信號管腳可以進行功能複用,即可以將管腳配置為GPIO功能。這一點很重要,不然的話,單片機自帶時序和你模擬的時序很難滿足I2C時序要求。


子充


是不是IO功能複用?有SPI怎會無IIC?真沒有就只能用模擬,或者換型號咯


小銘哥23


應該沒有這樣的單片機吧,有SCL沒有SDA


skyoyin


普通IO口模擬


分享到:


相關文章: