UART引导 - 无法从设备接收数据

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
8个职位/ 0个新职位
最后一篇
Ezza.
离线
最后一次露面:1年9个月前
加入:2017-09-07 11:33
UART引导 - 无法从设备接收数据

你好,
我正在尝试使用UART协议引导我的代码到DA14580设备中。
我从串行接口Doc引导了我的步骤:da1458x引导。

使用引脚:P0_4和P0_5
二手拟波特:57600

跟着步骤:
1.发送重置请求。(RST脉冲TC> 10 US的长度)
2.从设备(0x02)的读取响应。
3.向设备发送SOH = 0x01。
4.发送代码的长度(LSB然后MSB)。
5.接收设备的ACK或NACK。
6.将代码的字节发送到设备。
7.从设备接收CRC。
9.向设备发送ACK。

- 我的代码在步骤2上失败,我没有从设备收到任何东西,我得到超时。
-当探测Rx时,我可以看到1
-当探测Tx时,我可以看到信号(请见附件图片)

这是Tx上的健康信号吗?如果是,为什么我没有从设备中回收0x02,以及如何处理问题。

附件:
设备:
mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
嗨Ezza,

嗨Ezza,

嗯,启动它在启动时启动扫描所有外围设备(UART / I2C / SPI)无法更改或更改引导加载程序,我可以告诉TX它看起来像时钟信号,显然你得到的是scl来自STEP 10的引导加载程序的I2C部分的信号。因此,所以可以显然,设备超出了重置,引导加载程序正在执行,我无法看到引导加载程序是如何执行的,但TX引脚上没有0x02。

谢谢mt_dialog.

Ezza.
离线
最后一次露面:1年9个月前
加入:2017-09-07 11:33
你好,

你好,
谢谢您的回复。
什么可能是跳过第5步的原因?
P0_4配置了UART,具有右波特率。
我发送重置,我看不到p0_4信号中的步骤5。

在信号中没有看到步骤5的可能探索是什么?

mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
嗨Ezza,

嗨Ezza,

像我上面提到的我不认为有一种跳跃的UART部分启动,如果你不看到UART STX信号的唯一合理的解释是,您正在使用的工具或任何连接,销驱动线。请查收附件TX线上引导加载程序的信号。

谢谢mt_dialog.

附件:
jjay.
离线
最后一次露面:3年5个月前
加入:2017-08-28 19:53
我有同样的问题

我使用引脚PIN P0-4 / P0-5有同样的问题。我正在使用使用对话框DA14580的Pan1740模块。在开机后和重置为低电平,在UART-TX上,我在附加的PDF中的第一张照片中获得重复序列。

如果我在五个20ms脉冲之前放大尖峰,我将在PDF中获得第二张照片。这看起来可能是一个0x02,开始/停止位,但时间关闭。这似乎没有非常接近57600波特。此外,电压在1.4V时空转。我的系统在3.3V时运行。我认为这应该在0V或3.3V处空闲,而不是在中间。我在附加处理器中打开弱的上拉电阻,这个空闲电压没有改变。它被驱动到1.4V吗?

第二幅图实际上显示了0x02字节吗?
波特率发生器的容差/可变性是多少?
位之间有额外的起搏时间吗?
为什么它在1.4V时空闲?

任何帮助让这个工作将是伟大的!

谢谢,
JJ.

附件:
mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
嗨jjay,

嗨jjay,

  1. 是的,它似乎是一个0x02字节除了事实上,确实线路空闲在1.4伏特,这是不应该发生的事情,至少我没有看到像这样的事情在我的一边。
  2. 580不能产生57600的波特拉特,但生成的实际波特率是58823.529,这意味着您将出现2.124%的错误
  3. 关于额外的速度,没有没有额外的速度,波特率产生的错误应该给出大约每传输位17us的周期。
  4. 如上所述,我没有看到1.4V的任何既闲垂,当在我的侧面检查时,线路在0V和3.3V之间切换,我想别的东西导致这一点,你是否确定了从外向上的上拉配置没有任何区别?

谢谢mt_dialog.

jjay.
离线
最后一次露面:3年5个月前
加入:2017-08-28 19:53
发现了我的问题。从

发现了我的问题。从以前的工作,MCU使用全局电源控制寄存器以低功耗模式连接到BT模块的UART。不是正常的UART配置寄存器。一旦我找到了这个,我现在就接收0x02字节。但是,有人指出,电压仍然在1.4V时闲置。

随着UART的工作,时间和信号发生了变化。接收到0x02之后,MCU接收线保持高电平大约60ms。然后下降到1.4v,持续3.9毫秒。这似乎是随后5组8组10位(时钟?)以高于57600波特USART正在使用的速率。我没有把这5个分组都放大来确定它们是否都是一样的。

在每个组之间,在1.4V时闲置。然后它循环循环并再次发送到0x02,不断重复此序列。

此时,我需要开始将响应代码添加到BT模块中的响应代码和下载代码。

谢谢你!

mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
嗨jjay,

嗨jjay,

在1.4V时的线路怠速是因为外部设备,原因是因为580的引脚被配置为在引导期间的输入下拉,当外部设备的线条被配置为UART时,显然会拉高,所以由于在580的行配置为UART之前,仍然被拉下来,并且由于您的外部设备将尝试拉出这些线路,因此电压将在0到3.3V的中间空闲(取决于所使用的电阻在拉起起来),但这不应该导致你有任何问题。

谢谢mt_dialog.