大家好,
我们正在使用包括DA14580设备的自定义硬件。我们希望通过SPI协议通过另一个微控制器作为Master(ADUCM4050)启动它,因此我们在应用程序注意文档(从串行接口引导)之后实现了某些功能。发送的第一个数据包由前导码,0x00和LS字节组成。如果一切正常,我们可能会在RX缓冲区(0)的位置3中收到ACK(其值为0x02),但这不是这种情况。事实上,我们获得所示的PDF所示的结果。
这里的问题是SPI应该发送数据,然后,从DA14580接收响应,但似乎RX缓冲区捕获[0xce,0xc0,0x02,0xc0]解程而不是[0xc0,0xdc,0xd4,0x02]。SPI比特率集是最低的。
对此的任何想法?
谢谢。
设备:
嗨Alejandro,
谢谢你的问题。让我检查一下,我会回复你。
问候,PM_Dialog
嗨Alejandro,
外部微控制器和DA14580之间的接线是否已经设置好了,或者两者都放在同一个PCB上?在第一种情况下,我建议使用较短的电线来减少噪音。在第二种情况下,请检查您的PCB是否正确终止了SPI线。通常我们使用33欧姆的终端电阻。关于灵敏度,由于峰值和反射,在大多数情况下,这是DA14580侧没有与主服务器进行任何通信的原因。
谢谢,PM_DIALOG.
大家好,
谢谢你的回复。我们有两个组件在同一个PCB。我们已经按照建议将电阻放在SPI线中,但它还不能正常工作。很奇怪,因为DA14580将响应发送到微,所以我们认为这个问题是与时间有关(似乎微有问题,对话框发送答案比ADuCM4050之前完成它的问题,所以它不能把它检查如果ACK或NACK)。
DA14580是否可以配置不同的比特率,主/从模式或任何其他比特率,并且它忽略微控制器的SPI配置?我们没有看到任何其他可能产生这种情况的事情。
谢谢。
嗨Alejandro,
让我检查你的问题,我会让你知道。
谢谢,PM_DIALOG.
嗨Alejandro,
如前所述,它有点奇怪,这可能是由于SPI信号之间的尖峰,反射和噪声。这是最常见的原因,即没有从DA14580向大师的沟通。关于比特率,由于DA14580充当从子,所以时钟由作为主机的另一个微控制器生成。
谢谢,PM_DIALOG.
大家好,
谢谢你的回复。最后,我们决定购买基本的DA14580 Dev-kit工作,并发现可能存在的问题。似乎它与微控制器配置有关。当它尝试与芯片通信以读取或接收数据时,它首先发送“X”然后接收“Y”;但是,如果它只尝试写入,它会通过方式接收响应,因此您可以通过在SPI接收功能中取消激活读命令来访问Rx缓冲区中的ACK。嗯......如果我们运行代码,它会收到两个第一个ACK,我的意思是,序言和长度+ CRC ACKS(不总是),但不是0xAA和0x02的终结。我们检查了闪存内容,它是空的(满满的0xff)。
我们按照手册的说明和连接的两个设备如下(SCLK,/ CS,MISO和MOSI引脚属于微控制器):
- sclk到dev-kit的p0_0。
- / cs到dev-kit的p0_3。
- Dev-套件的MISO到P0_6。
- Dev-套件的MOSI到P0_5。
我们已经插入了延迟功能(110毫秒)并尝试与DA14580 Dev-kit的SPI引脚(闪存)连接,但它不起作用。我们可以考虑还有其他人吗?
如果我们找到解决方案,我们会发布它。
谢谢。
大家好,
最后,我们真的认为问题是由连接两个设备的电线引起的,因为您之前引用,因为尖峰和反射。通过MISO线收到的数据类似于我们期望接收的数据,并且有时会出现在0x70和/或0x50十六进制数据中的反射值(它们都是用于init引导过程的数据)。
问题是我们需要用这些电线来连接其中的设备。我们如何避免这些影响?还有其他因素会影响到你吗?也许一个跳线,我们可以删除(或不)或任何引脚必须连接除了四个SPI线?
非常感谢你。
嗨Alejandrocastillo,
事实上,您拥有自定义硬件,并且在没有速线的情况下连接线路,这与PCB有关。通常,我们使用33欧姆终端电阻。
谢谢,PM_DIALOG.
大家好,
我们找到了解决方案。数据表具有“非所需效果”部分,其中它解释了与电压调节器和ADC相关的可能响应(一个对另一个引入噪声效果),因此我们尝试使用屏蔽电缆检查我们是否可以减少此和。.. 有效!
谢谢大家。
嗨Alejandrocastillo,
很高兴你发现了自己的问题谢谢你的暗示。如果您有任何其他问题,请创建一个新的论坛帖子!
谢谢,PM_DIALOG.