2013-05-09 246 views
1

我試圖實現從dsPIC33F將數據寫入SD卡的方法。我目前可以通過UART傳輸數據到藍牙和USB,但是在通過UART寫入SD卡時,我找不到任何東西。這一切似乎都是SPI。UART到SD卡

使用SPI,但我已經在使用I2C,它似乎是很難用SPI和I2C在同一個PIC,由於他們分享針。

那麼,任何人都可以提供有關通過UART將數據寫入SD卡的任何信息,或者可能同時使用SPI和I2C兩種方式?

所有我想要的是某種形式的存儲方法,所以如果有人可以建議另一種方法,可能是EEPROM或USB閃存驅動器,那麼我都是耳朵。我需要至少2GB的存儲空間,越多越好。

+0

您正在使用哪種PIC? – 2013-05-09 15:51:56

+0

感謝您的回覆。這是一款dsPIC33FJ128GP802。我使用引腳18和19(SDA1和SCL1)作爲I2C。我知道引腳是可重新配置的,所以我可以有多個SDA和SCL引腳?即使用我當前的I2C進行配置,併爲SPI配置兩個新的(根據是否使用3或4引腳SPI,還有1/2個其他引腳)。乾杯。 – ritchie888 2013-05-09 17:38:16

回答

2

大多數SD卡原生支持SPI通信,但不支持UART,因此無法直接連接UART。我會建議不要使用USB閃存驅動器,因爲有很多開銷會使事情變得複雜。而且EEPROM可能使用SPI或I2C,因此您仍然有一組外設引腳已被使用的問題。

給出所用芯片的最佳選擇是使用外設引腳選擇功能將一些可用引腳映射爲您需要的4個SPI引腳。 datasheet的第11.6節很好地解釋瞭如何重新映射引腳功能。這可能是最簡單的解決方案。

您可能會使用的另一種方法是使用UART與另一個具有SPI引腳的PIC進行通信,但這也會帶來額外的額外開銷和複雜性。

+0

謝謝,K-Sid。我一直都知道外設引腳選擇功能,但並不認爲它適用於像SPI這樣的特定協議。如果我可以將SPI重新映射到其他引腳並同時使用SPI和I2C,那麼歡樂的日子! – ritchie888 2013-05-10 09:28:42