ROM Bootloader搜索扫描UART端口,如果一个端口无法完成设备跳转到下一个可用端口的过程,则由于引导加载程序False ADC读取580在某些情况下不要重复引导代码,但它将以引导程序结束,它将留在可用的JTAG中以便从那里启动。没有指示特定端口的引导失败,设备只需扫描下一个接口即可。要重新启动引导加载程序,请再次从扫描中扫描,您可以从主机发出重置。如果CRC从580匹配计算的CRC,则最终ACK将从主机发送,如果它匹配,则580应该得到OK并继续启动,如果不是,则可以重置设备以重新运行Bootloader。
嗨yamazaki,
DA14580_01必须能够从所有八(8)个P0_N端口启动。
在启动期间,它会为外部设备扫描“所有P)端口,例如,在UART,SPI,I2C。
确保您正在使用的BAORD为您喜欢使用的UART配对有线。
REV C2主板是P0_4 / P0_5的默认连接。
此致,
对话框支持团队。
嗨支持会员,
DA14580_01必须能够从所有八(8)个P0_N端口启动。
在启动期间,它会为外部设备扫描“所有P)端口,例如,在UART,SPI,I2C。
如果我只想通过使用端口P0_4和P0_5从UART启动,DA14580必须扫描另一个
外部设备?我们是否会关闭其他扫描,如SPI,I2C。
在启动期间,它为外部设备的“扫描”所有P)端口。它是由BootRom完成的,它不允许客户修改它。如果要使用端口P0_4和P0_5使用外部设备从UART启动,则可以在OTP中编程第二引导加载程序。请参阅文件http://support.dialog-semicondiondiondum-b-012-creation-secondary-boot ...
嗨fh_dialog,
我正在设计新的电路板,包括外部SPI Flash MX25L2006E。
我试图从P0_4和P0_5的UART启动,并将固件写入MX25L2006E。
该方法在DA14580DEVKT-B中验证。但是当我尝试在我的新设计板时,它会失败。失败在电路板检测到的复位信号后,并开始下载固件,但无法下载。以下是日志文件:
[信息@ 14-12-26 10:24:54]固件文件c:\ users \ tri \ smartsnippets \资源\ flash_programmer.bin已被选中
[信息@ 14-12-26 10:24:54]与COM14端口的连接已成功打开。
[info @ 14-12-26 10:24:54]开始下载程序...
[动作@ 14-12-26 10:24:55]请按电路板上的硬件重置按钮开始下载过程。
[信息@ 14-12-26 10:24:57]重置检测到
[INFO @ 14-12-26 10:25:09]将固件文件下载到电路板上失败。
你能帮忙给出任何想法,提出这个失败吗?另外请指出我在哪里可以在日志文件中获取更多详细信息。
问候,
- 何
嗨fh_dialog,
同样如AN-B-001的第6.2节所示,当从UART模式启动时,DA14580-1通过P0_4,P0_5自动发送“0x02”到笔记本电脑/ PC。
但在我的设计中,我只看到“0x40”发送回来。我没有看到来自您的AN-B-001的这一十六进制数据的含义。
你能给我一些关于这个数据消息的建议吗?
问候
你好对话人员。
我的DA14580模块在系统中设计为UART从站到Cortext M3 Master。
DA配置为按照(AN-B-001)的串行引导,P0_4&P0_5选择为UART RX / TX线,希望实现57.6波特。
我能够成功转换(使用hex2bin.exe和binforuart.py)将keil生成的sps_device.hex文件转换为c字节数组并将其传输到DA14580,然后将其准确计算并返回下载的SPS_DEVICE配置文件上的预期CRC。
收到预期的CRC后,我用ACK(0x06)回复(根据AN-B-001),这应该触发SYS_CTRL_REG的编程:
1.)重新映射到sysram(sys_ctrl_reg [remap_adr0] = 10)。
2.)应用SW重置,因此系统在RempedApped地址处启动执行代码(Sys_ctrl_reg [sw_reset] = 10)。
我已经跟随了(AN-B-001)到了这封信,但似乎你的Bootrom代码没有让它过去最终的引导阶段。
尽管已通过ACK(0x06)已确认返回CRC,但我仍然从模块中获取UTX行上的STX(0x02s)。
有人/任何人都可以帮助发光吗?
来自主机的最终ACK之后是否有特殊命令,让这件事启动?
谢谢
Mamadee V. Fofana.
嗨mvfofana,
如果在引导过程结束后看到同一端口上的STX有可能使用设备重置并重新启动整个启动过程的可能性。只要将.bin文件下载到DA,您应该工作,没有其他命令,指示DA开始执行代码。您是否能够使用智能片段下载代码,可以比较智能片段与自定义引导顺序之间的事务。此外,您还可以通过JTAG下载辅助引导加载程序,并尝试通过UART启动代码类似于BootRom代码,也许这样您就会发现出现问题。
谢谢mt_dialog.
我们有一个类似的问题。在从DA中读取0x02之后,我们发送3个字节0x01和2个长字字节。但是,此后我们收到一个不等于ACK或NACK的字节。但有些其他价值。是什么让奇怪的是,现在是它的工作。此外,当我们从设备上取下电池并在很长时间将其放回后,似乎挂在循环中。它注意到,如果它失败,我们总是在我们发送前三个字节之后。
我们使用Murata模块与DA芯片上的DA芯片。可以是该模块通过早于VCC稳定的IO引脚来供电吗?
应该为0x06或0x15的字节似乎是0x60的很多值。
谢谢兄弟
嗨ruud,
就您收到的无关字节(而不是0x60而不是0x06或OX15),我假设是0x06,最低有效位首先在UART标准中发送。它强制发送这三个字节(0x01,len_lsb,len_msb),因为它们定义了程序的长度。
启动过程依赖于在DA上应用的电压,因为BootROM执行ADC测量以便进入电压电平,有时电压电平被错误地测量,并且BootROM仅执行一次,如果是那些供电的IO引脚也会执行一次UART引脚(涉及UART过程)导致VBAT电压约为1V〜1.5V,这可以防止DA执行启动过程。
谢谢mt_dialog.
我正在从串行端口启动DA14580(P0.4,P0.5)。我们将逻辑分析器连接到串行端口,以识别引导过程中发生的情况。最后,我们必须知道主机没有确认CRC字节,然后无法启动DA。主机应将ACK发送到DA,因为它被编程。但逻辑分析仪中没有出现ACK。这可能是由主机的硬件错误或其他一些原因引起的。
如果没有收到CRC字节,我的问题是DA14580的表现恰好。DA在几个MS等待和超时后重复启动序列(发送0x02)?还是有没有办法让主人知道这个失败并尝试再次启动da?
可以任何帮助这个问题吗?
嗨Shuaiwei Yin,
ROM Bootloader搜索扫描UART端口,如果一个端口无法完成设备跳转到下一个可用端口的过程,则由于引导加载程序False ADC读取580在某些情况下不要重复引导代码,但它将以引导程序结束,它将留在可用的JTAG中以便从那里启动。没有指示特定端口的引导失败,设备只需扫描下一个接口即可。要重新启动引导加载程序,请再次从扫描中扫描,您可以从主机发出重置。如果CRC从580匹配计算的CRC,则最终ACK将从主机发送,如果它匹配,则580应该得到OK并继续启动,如果不是,则可以重置设备以重新运行Bootloader。
谢谢mt_dialog.