ROM Bootloader搜索扫描UART端口,如果一个端口未能完成设备跳转到下一个可用端口的程序,则由于引导加载程序False ADC读取580在某些情况下不要重复启动代码,但它将结束引导过程,它将留在可用的JTAG中以便从那里引导。没有指示特定端口的引导失败,设备只是继续扫描下一个接口。要重新启动引导加载程序,请再次从扫描中扫描,您可以从主机发出重置。如果从580匹配计算的CRC,则最终ACK从主机发送,如果它匹配,则580应该得到OK并继续启动,如果不是您可以重置设备以重新运行引导加载程序。
嗨yamazaki,
DA14580_01必须能够从所有八(8)个P0_N端口启动。
在启动期间,它为外部设备的“扫描”所有P)端口,例如,在UART,SPI,I2C。
确保您使用的百罗线有线,用于您喜欢使用的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-semicondiondiond.com/um-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已被选中
[INFO @ 14-12-26 10:24:54]与COM14端口的连接已成功打开。
[info @ 14-12-26 10:24:54]开始下载程序...
[动作@ 14-12-26 10:24:55]请按电路板上的硬件重置按钮开始下载过程。
[INFO @ 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重置,因此系统在Remped映射地址处开始执行代码(sys_ctrl_reg [sw_reset] = 10)。
我遵循了(AN-B-001)给这封信,但似乎你的Bootrom代码没有让它过去最终的引导阶段。
尽管已通过ACK(0x06)已确认返回CRC,我仍然从模块中获取STX(0x02s)。
有人/任何人都可以帮助发光吗?
在主机的最终ACK之后是否有特殊命令,让这件事启动?
谢谢
Mamadee V. Fofana.
嗨mvfofana,
如果在引导过程结束后看到同一端口上的STX存在,则设备重置并重新启动整个引导过程的可能性。只有其他命令,指示DA开始执行代码,一旦将.bin文件下载到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中以便从那里引导。没有指示特定端口的引导失败,设备只是继续扫描下一个接口。要重新启动引导加载程序,请再次从扫描中扫描,您可以从主机发出重置。如果从580匹配计算的CRC,则最终ACK从主机发送,如果它匹配,则580应该得到OK并继续启动,如果不是您可以重置设备以重新运行引导加载程序。
谢谢mt_dialog.