大家好,
我们正在使用包括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中?在第一种情况下,我建议使用较短的电线来降低噪声。在第二种情况下,请检查您正确终止SPI行的PCB。通常,我们使用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.