我正在尝试实现一种从dsPIC33F向SD卡写入数据的方法。我目前可以通过UART将数据传输到蓝牙和USB,但我在网上找不到任何关于通过UART写入SD卡的信息;这一切似乎都是SPI。
我将使用SPI,但我已经在使用I2C,并且由于它们共享引脚,似乎很难在同一个PIC上同时使用SPI和I2C。
那么,有人可以建议任何有关通过UART向SD卡写入数据的信息,或者同时使用SPI和I2C的方法吗?
我想要的只是某种形式的存储方法,所以如果有人可以提出另一种方法,可能是EEPROM或USB闪存驱动器,那么我全都耳朵。我需要至少2GB的存储空间,越多越好。
答案 0 :(得分:2)
大多数SD卡本身支持SPI通信,但不支持UART,因此无法进行直接UART连接。我建议不要使用USB闪存驱动器,因为那里有很多开销使事情复杂化。 EEPROM很可能使用SPI或I2C,因此您仍然需要使用一组外设引脚。
鉴于您使用的芯片,最佳选择是使用外设引脚选择功能将一些可用引脚映射为您需要的4个SPI引脚。 datasheet的第11.6节对如何重新映射引脚功能有很好的解释。这可能是最简单的解决方案。
您可能使用的另一种方法是使用UART与另一个具有SPI引脚的PIC进行通信,但这也会带来许多额外的开销和复杂性。
答案 1 :(得分:0)
SD卡可以与SDIO或SPI一起使用。
为了消除SPI / I2C引脚共享问题,我将:
1)检查传感器是否可以替换为SPI
2)如果没有,我将使用其他引脚来实现软件SPI(MCU是Master,因此容易得多)