SPI设备阻止ISP编程


8

我有一个连接了诺基亚LCD 5510ATmega8。一切都在面包板上运行良好,而我的下一步是将其移至更永久的板上。我的问题是在连接LCD的情况下无法编程ATmega8。我认为这是因为它们使用相同的SPI引脚,并且LCD某种程度上干扰了编程。我该如何做些不同,以便我可以通过ISP刷新ATmega,而无需断开LCD 的电源?


2
您确实需要添加一个电路才能获得一个很好的答案。您可以使用Ctrl-M启动现场原理图编辑器,也可以直接在原理图中添加链接,然后有人可以对其进行编辑。
2013年

1
设备是否处于低电平有效?如果是,那么您是否添加了上拉电阻?如果您不这样做,那么该设备将占用SPI总线,直到释放它为止。
NothinRandom

Answers:


12

您必须防止在编程期间任何其他设备驱动SPI线。

为避免驱动器争用,如果可能有外部电路驱动这些线路,则应在三个专用线路的每条线路上放置一个串联电阻。

在此处输入图片说明

查看应用笔记AVR910。

为避免出现问题,系统内编程人员应能够在编程周期内保持整个目标系统复位。复位有效时,目标系统切勿尝试驱动三条SPI线。

因此,最好在功能上连接ATMEGA的复位线和显示器,以防止在程序员保持复位状态时显示器执行任何操作。


1
如果LCD具有芯片选择线,请确保也用电阻将其拉高。在编程期间,ATmega处于复位状态,这会将所有输入/输出设置为高阻抗,因此LCD将处于非活动状态。
奥斯汀

1
@ Rev1.0:在MISO线中有一个电阻就足够了(因为这是SPI从设备的唯一输出,其他两条线是输入,因此不会引起任何干扰)。
凝结

@Curd,使用原理图添加您的答案,我将对其进行投票。听起来最好的两种方法是在MISO线上仅增加一个电阻,或在CS上拉或两者兼而有之。
加布里埃尔·斯台普斯2016年

2

另一种解决方案是在编程期间禁用屏幕

当CS(片选)引脚为低电平(0v)时,屏幕处于活动状态。如果在CS引脚和3V3之间放置一个10kR上拉电阻,则默认情况下它将被禁用/为高电平。要启用它,请将CS引脚连接到微控制器的输出并将该输出设置为低电平(0V)。我在我的一个项目中做到了这一点,并且效果很好。

屏幕以3.3V运行,如果微控制器以5V运行,则必须添加分压器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.