大家好,
我们正在使用包括DA14580设备的自定义硬件。我们希望通过SPI协议通过另一个微控制器作为Master(ADUCM4050)启动它,因此我们在应用程序注意文档(从串行接口引导)之后实现了某些功能。发送的第一个数据包由前导码,0x00和LS字节组成。如果一切正常,我们可能会在RX缓冲区(0)的位置3中收到ACK(其值为0x02),但这不是这种情况。事实上,我们获得所示的PDF所示的结果。
这里的问题是SPI应该发送数据,然后,从DA14580接收响应,但似乎RX缓冲区捕获[0xce,0xc0,0x02,0xc0]解程而不是[0xc0,0xdc,0xd4,0x02]。SPI比特率集是最低的。
对此的任何想法?
Thanks.
设备:
嗨Alejandro,
谢谢你的问题。让我检查一下,我会回复你。
Regards, PM_Dialog
嗨Alejandro,
Did you have setup wiring between the external microcontroller and the DA14580, or both are placed in the same PCB? In the first case, I would suggest to use shorter wires to reduce the noise. In the second case, please check in your PCB that you properly terminated the SPI lines. Typically we use 33 Ohm termination resistor. Regarding the sensitivity, due to spikes and reflections, in most of the cases, this was the reason that there wasn't any communication from the DA14580's side towards the master.
谢谢,PM_DIALOG.
大家好,
谢谢回复。We have both components in the same PCB. We have put resistors in SPI lines following the recomendation, but it doesn't work properly yet. It's strange, because the DA14580 sends responses to the micro, so we think that the problem is related with timing (it seems like the micro makes a question and the dialog sends the answer before than ADuCM4050 finishes its question, so it can't take it to check if ACK or NACK).
DA14580是否可以配置不同的比特率,主/从模式或任何其他比特率,并且它忽略微控制器的SPI配置?我们没有看到任何其他可能产生这种情况的事情。
Thanks.
嗨Alejandro,
Let me check your question and I will let you know.
谢谢,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引脚(闪存)连接,但它不起作用。我们可以考虑还有其他人吗?
如果我们找到解决方案,我们会发布它。
Thanks.
大家好,
最后,我们真的认为问题是由连接两个设备的电线引起的,因为您之前引用,因为尖峰和反射。通过MISO线收到的数据类似于我们期望接收的数据,并且有时会出现在0x70和/或0x50十六进制数据中的反射值(它们都是用于init引导过程的数据)。
问题是我们需要使用这些电线connect devices among them. How can we avoid these effects? Is there any other factor that could be affecting? Maybe a jumper that we may to remove (or not) or any pin that must be connected in addition to four SPI lines?
非常感谢你。
嗨Alejandrocastillo,
事实上,您拥有自定义硬件,并且在没有速线的情况下连接线路,这与PCB有关。通常,我们使用33欧姆终端电阻。
谢谢,PM_DIALOG.
大家好,
我们找到了解决方案。数据表具有“非所需效果”部分,其中它解释了与电压调节器和ADC相关的可能响应(一个对另一个引入噪声效果),因此我们尝试使用屏蔽电缆检查我们是否可以减少此和。.. 有效!
Thanks for your attention.
嗨Alejandrocastillo,
Glad that you figured you issue out and thanks for the indication. If you have any other issue, please create a new forum thread!
谢谢,PM_DIALOG.