我正在使用ATMEGA128与另一个设备进行通信。为此,我使用带ATMEGA128的SPI作为从属程序。我使用SS,SCK和MOSI引脚。我面临的问题是,当我不得不下载程序时,我必须断开SPI引脚。我使用的ATMEGA128模块使用TXD0、RXD0、SCK(PB1)引脚下载程序。我为什么要面对这个问题?是因为SPI和下载电路使用相同的SCK引脚吗?有没有办法避免断开SPI引脚?
发布于 2014-09-17 06:53:42
是因为SPI和下载电路使用相同的SCK引脚吗?
是的,在编程期间,您必须防止任何其他设备驱动SPI线路。
有没有办法避免断开SPI引脚?
是。为了避免驱动器争用,如果可能有外部电路驱动这些线路,则应在三条专用线路中的每条线路上设置一个串联电阻器。
发布于 2014-09-26 21:53:59
另一个设备是否有一个芯片选择输入,或者您可以在其VCC引脚上添加一个?如果是这样的话,您可以将这个设备的CS (活动低)输入与附加外部拉起电阻的额外AVR端口引脚连接(可能10 k欧姆左右),然后在代码开始时设置此AVR引脚低一点。该设备将被外部拉起禁用,直到AVR的编程完成,并在运行时重新启用您的代码。
https://stackoverflow.com/questions/25882832
复制相似问题