5

在学习如何使用 Arduino 时,我一直在搞乱 Seeed EthernetSDTFT Shields。但是,我发现我不能同时使用这些屏蔽,因为它们三个都使用引脚 10 作为 SS 引脚。

有没有办法以编程方式更改任何 Arduino 屏蔽的 SS 引脚?

我知道 SD 库有 SD.begin(),但即使我将引脚设置为未使用的引脚,屏蔽也不能一起工作。我知道 Arduino 软件附带一个 SPI 库,但SPI.begin(slaveSelectPin)只在 Arduino Due 上,我有一个 Arduino Uno。

我找到了Go-Between Shield,但是查看用户指南,我仍然需要更改我的代码以使用 Arduino 上的其他引脚(除非我读错了),所以为什么不完全跳过它,然后进行更改我已经拥有的盾牌。

这对电气工程会更好吗?

4

5 回答 5

2

根据实际的屏蔽及其修订版,确实有可能在这里和那里破解一个引脚以将 SS 映射到 Arduino 上的不同引脚。

在此重新映射之后,您必须对期望 SS 在 pin-10 上的库进行类似的调整。通常它是构造函数的参数,因此很容易。

烙铁和镊子!

于 2013-05-19T23:01:13.550 回答
2

有没有办法以编程方式更改任何 Arduino 屏蔽的 SS 引脚?

不,引脚是硬连线在屏蔽层上的。您可以在您的 arduino 上使用不同的引脚作为 SS 引脚,但它们将连接到板上的“相同”引脚。为此,您将无法堆叠屏蔽,并且必须在软件中编写 SPI 代码。

于 2013-05-19T23:13:57.617 回答
2

看来TFT屏蔽上的接口不是SPI。这有点令人困惑,因为驱动芯片确实支持 SPI,但这不是屏蔽配置使用的模式。

请参阅ST7781R 驱动芯片数据表中的第 6.2 节。

您也许可以破解 TFT 屏蔽使其使用 SPI,但这本身就是一个项目。

尝试使用以太网和 SD 屏蔽,你能让它们一起工作吗,它们应该没有任何问题(一旦你解决了 SS 问题,这只是剪断顶部屏蔽上的引脚并从arduino 上所需的引脚,然后将另一端插入顶部屏蔽引脚 10)。

我不确定是否有 TFT 屏蔽的 SPI 版本,您也许可以返回商店以换取正确的。

于 2013-05-19T23:26:08.457 回答
1

不,没有办法在软件中更改引脚。引脚由每个屏蔽硬件确定。除非您修改硬件,否则无法解决此问题。

但是,如果您堆叠了这么多盾牌,您应该考虑 Arduino 是否仍然是合适的平台。那里还有许多其他小型系统(例如 Raspi),它们的马力明显更大,并提供用于连接设备的 USB 总线。

恕我直言,Arduino 适用于低级引脚控制,但不适用于驱动外围设备。我建议使用 Raspi 或类似设备完成大部分工作的设计,尤其是驱动显示器和 SD 卡,而 Arduino 负责低级 PIN IO。

于 2013-05-20T07:37:06.220 回答
1

Arduino 可以很好地驱动外围设备,但您必须在引脚重新映射方面发挥创造力。有一个屏蔽数据库列出了每个屏蔽的引脚要求,拉动引脚并添加跳线(并在代码或库中重新映射)将适用于任何干扰问题。我已经完成了一些非常复杂的项目,并且认为不需要 RPi。

http://www.shieldlist.org

于 2013-05-23T11:33:40.140 回答