嗨,支持成员,
DA14580-01不能从其他P0_4/5启动。简单的;P0_0/1, P0_2/3
AN-B-001(DA14580从串行接口启动)的描述是正确的?应该更新吗?
最好的问候,山崎
嗨,山崎,
DA14580_01必须能够从所有8个P0_n端口引导。在引导期间,它“扫描”外部设备的所有P)端口,例如在UART, SPI, I2C。
确保您正在使用的baord是为您喜欢使用的UART对连接的。Rev C2主板默认连接为P0_4/P0_5。
最好的问候,对话BLE支持团队。
嗨,支持成员,DA14580_01必须能够从所有8个P0_n端口引导。在引导期间,它“扫描”外部设备的所有P)端口,例如在UART, SPI, I2C。如果我只想使用端口P0_4和P0_5从UART引导,DA14580必须扫描另一个端口外部设备吗?我们要不要停止其他的扫描比如SPI, I2C。
在启动过程中,它会“扫描”所有外部设备的端口。这是BootROM做的,不允许客户修改。如果您想通过外部设备使用端口P0_4和P0_5从UART引导,您可以在OTP中编写第二个引导加载程序。请参阅文件http://support.dialog semiconductor.com/um - b - 012 -创造-二级boot..。
嗨FH_Dialog,
我正在设计新的板,其中包括一个外部SPI Flash MX25L2006E。我尝试从P0_4和P0_5的UART引导,并将固件写入MX25L2006E。该方法在DA14580DEVKT-B中得到了验证。但当我尝试我的新设计板时,它失败了。故障发生在单板检测到Reset信号后,开始下载固件,但是下载失败。日志文件如下:
[INFO @14-12-26 10:24:54]固件文件C:\Users\Tri\SmartSnippets\resources\flash_programmer.bin已被选中[INFO @14-12-26 10:24:54] Connection to COM14 port has successfully opened。[INFO @14-12-26 10:24:54]已启动下载程序…[ACTION @14-12-26 10:24:55]请按单板上的硬件复位按钮来启动下载过程。[INFO @14-12-26 10:24:57]检测到复位[INFO @14-12-26 10:25:09]下载固件到单板失败。
对于这次失败,你能给点建议吗?另外,请告诉我在哪里可以获得更多的日志文件调试细节。
问候,——三何
同样如AN-B-001第6.2节所示,当从UART模式启动时,DA14580-1通过P0_4, P0_5自动发送“0x02”到笔记本电脑/ PC。但是在我的设计中,我只看到“0x40”返回。我看不出你的AN-B-001的十六进制数据有什么意义。你能给我一些关于这条数据信息的建议吗?
问候
工作人员你好对话框。我有你的DA14580模块设计在一个系统作为一个UART从到一个cortex M3 Master。DA按照(AN-B-001)配置为串行启动,P0_4和P0_5被选为UART Rx/Tx线,希望达到57.6波特率。我能够成功转换(使用hex2bin.exe和binforuart.py) Keil生成的sps_device。十六进制文件转换为C-Byte数组,并将其传输到DA14580,然后DA14580准确计算并返回下载的sps_device配置文件的预期crc。在接收到预期的crc时,我用一个ACK(0x06)回复(按照an - b -001),这应该触发SYS_CTRL_REG的编程:1.)Remap to SysRAM (SYS_CTRL_REG[REMAP_ADR0] = 10)。2.)应用一个SW复位,所以系统开始在重映射的地址(SYS_CTRL_REG[SW_RESET] = 10)处执行代码。
我已经遵循(AN-B-001)的字母,但似乎你的BootRom代码并没有使它通过最终引导阶段。我仍然从模块的UTX行上得到stx (0x02s),尽管已经用ACK(0x06)确认了返回的CRC。
谁能帮我把这个弄清楚?是否有一个特殊的命令后需要从主机的最终ACK,以得到这个东西启动?
谢谢Mamadee诉Fofana
嗨mvfofana,
如果在启动过程结束后在同一端口上看到STX,那么您的设备可能会重置并重新启动整个启动过程。没有其他命令指示da开始执行代码,只要.bin文件被下载到da,并且您确认crc应该工作。您能够通过使用智能代码片段下载代码,您可以比较智能代码片段和您的自定义启动序列之间的事务。您还可以通过jtag下载二级引导加载程序,并尝试通过UART引导,代码类似于bootrom代码,也许通过这种方式您将发现什么错误。
由于MT_dialog
我们遇到了类似的问题。从DA中读取0x02后,发送3个字节0x01和2个长度字节。然而,此后我们收到一个不等于Ack或Nack的字节。但是有一些其他的价值。奇怪的是,它偶尔会起作用。此外,当我们从设备上取下电池,过一段时间再放回去时,它似乎更像是一个循环。它注意到,如果失败,它总是在发送前三个字节之后。我们使用了带有DA芯片的Murata模块。是否该模块通过IO引脚供电比VCC稳定更早?应该是0x06或0x15的字节似乎与0X60相差很多。
由于路德
嗨,路德,
至于你收到的不相关的字节(一个0x60代替或一个0x06或一个ox15),我认为这是一个0x06,在uart标准中最低有效位首先发送。必须发送这三个字节(0x01,LEN_LSB, LEN_MSB),因为它们定义了程序的长度。
启动过程取决于你对da施加的电压,因为bootrom会执行adc测量以获取电压水平,有时电压水平测量不正确,bootrom只执行一次,此外,如果那些IO引脚是UART引脚(涉及UART过程),结果在Vbat电压约1V ~ 1.5V,这阻止DA执行引导过程。
我正在从串口(p0.4, p0.5)引导da14580。我们将逻辑分析器附加到串行端口,以确定在引导过程中发生了什么。最后,我们知道主机没有ack的CRC字节,然后启动da失败。主机应该发送ack给da,因为它被编程了。但是逻辑分析仪上没有ack。这可能是由于主机硬件故障或其他原因造成的。我的问题是什么是确切的行为da14580如果没有ack到CRC字节收到。在几个ms等待和超时后,da是否重复启动顺序(发送0x02) ?或者有什么办法让主机知道这个失败,并试图再次启动da ?
有什么可以帮助解决这个问题吗?
嗨Shuaiwei阴,
ROM引导加载程序依次扫描UART端口,如果一个端口不能完成这个过程,设备就会跳到下一个可用的端口,问题是,由于引导加载程序错误读取了580,在某些情况下不会重复引导代码,但它将以引导过程结束,并保持可用的JTAG,以便从那里引导。没有迹象表明在特定端口上启动失败,设备只是继续扫描下一个接口。为了重新启动引导加载程序从扫描再次您可以发出一个重置从您的主机。如果从580计算的crc匹配,那么最终的ACK将从主机发送,如果它匹配,那么580将获得OK并继续引导,如果不是,你可以重置设备以重新运行引导加载程序。
嗨,山崎,
DA14580_01必须能够从所有8个P0_n端口引导。
在引导期间,它“扫描”外部设备的所有P)端口,例如在UART, SPI, I2C。
确保您正在使用的baord是为您喜欢使用的UART对连接的。
Rev C2主板默认连接为P0_4/P0_5。
最好的问候,
对话BLE支持团队。
嗨,支持成员,
DA14580_01必须能够从所有8个P0_n端口引导。
在引导期间,它“扫描”外部设备的所有P)端口,例如在UART, SPI, I2C。
如果我只想使用端口P0_4和P0_5从UART引导,DA14580必须扫描另一个端口
外部设备吗?我们要不要停止其他的扫描比如SPI, I2C。
在启动过程中,它会“扫描”所有外部设备的端口。这是BootROM做的,不允许客户修改。如果您想通过外部设备使用端口P0_4和P0_5从UART引导,您可以在OTP中编写第二个引导加载程序。请参阅文件http://support.dialog semiconductor.com/um - b - 012 -创造-二级boot..。
嗨FH_Dialog,
我正在设计新的板,其中包括一个外部SPI Flash MX25L2006E。
我尝试从P0_4和P0_5的UART引导,并将固件写入MX25L2006E。
该方法在DA14580DEVKT-B中得到了验证。但当我尝试我的新设计板时,它失败了。故障发生在单板检测到Reset信号后,开始下载固件,但是下载失败。日志文件如下:
[INFO @14-12-26 10:24:54]固件文件C:\Users\Tri\SmartSnippets\resources\flash_programmer.bin已被选中
[INFO @14-12-26 10:24:54] Connection to COM14 port has successfully opened。
[INFO @14-12-26 10:24:54]已启动下载程序…
[ACTION @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从到一个cortex M3 Master。
DA按照(AN-B-001)配置为串行启动,P0_4和P0_5被选为UART Rx/Tx线,希望达到57.6波特率。
我能够成功转换(使用hex2bin.exe和binforuart.py) Keil生成的sps_device。十六进制文件转换为C-Byte数组,并将其传输到DA14580,然后DA14580准确计算并返回下载的sps_device配置文件的预期crc。
在接收到预期的crc时,我用一个ACK(0x06)回复(按照an - b -001),这应该触发SYS_CTRL_REG的编程:
1.)Remap to SysRAM (SYS_CTRL_REG[REMAP_ADR0] = 10)。
2.)应用一个SW复位,所以系统开始在重映射的地址(SYS_CTRL_REG[SW_RESET] = 10)处执行代码。
我已经遵循(AN-B-001)的字母,但似乎你的BootRom代码并没有使它通过最终引导阶段。
我仍然从模块的UTX行上得到stx (0x02s),尽管已经用ACK(0x06)确认了返回的CRC。
谁能帮我把这个弄清楚?
是否有一个特殊的命令后需要从主机的最终ACK,以得到这个东西启动?
谢谢
Mamadee诉Fofana
嗨mvfofana,
如果在启动过程结束后在同一端口上看到STX,那么您的设备可能会重置并重新启动整个启动过程。没有其他命令指示da开始执行代码,只要.bin文件被下载到da,并且您确认crc应该工作。您能够通过使用智能代码片段下载代码,您可以比较智能代码片段和您的自定义启动序列之间的事务。您还可以通过jtag下载二级引导加载程序,并尝试通过UART引导,代码类似于bootrom代码,也许通过这种方式您将发现什么错误。
由于MT_dialog
我们遇到了类似的问题。从DA中读取0x02后,发送3个字节0x01和2个长度字节。然而,此后我们收到一个不等于Ack或Nack的字节。但是有一些其他的价值。奇怪的是,它偶尔会起作用。此外,当我们从设备上取下电池,过一段时间再放回去时,它似乎更像是一个循环。它注意到,如果失败,它总是在发送前三个字节之后。
我们使用了带有DA芯片的Murata模块。是否该模块通过IO引脚供电比VCC稳定更早?
应该是0x06或0x15的字节似乎与0X60相差很多。
由于路德
嗨,路德,
至于你收到的不相关的字节(一个0x60代替或一个0x06或一个ox15),我认为这是一个0x06,在uart标准中最低有效位首先发送。必须发送这三个字节(0x01,LEN_LSB, LEN_MSB),因为它们定义了程序的长度。
启动过程取决于你对da施加的电压,因为bootrom会执行adc测量以获取电压水平,有时电压水平测量不正确,bootrom只执行一次,此外,如果那些IO引脚是UART引脚(涉及UART过程),结果在Vbat电压约1V ~ 1.5V,这阻止DA执行引导过程。
由于MT_dialog
我正在从串口(p0.4, p0.5)引导da14580。我们将逻辑分析器附加到串行端口,以确定在引导过程中发生了什么。最后,我们知道主机没有ack的CRC字节,然后启动da失败。主机应该发送ack给da,因为它被编程了。但是逻辑分析仪上没有ack。这可能是由于主机硬件故障或其他原因造成的。
我的问题是什么是确切的行为da14580如果没有ack到CRC字节收到。在几个ms等待和超时后,da是否重复启动顺序(发送0x02) ?或者有什么办法让主机知道这个失败,并试图再次启动da ?
有什么可以帮助解决这个问题吗?
嗨Shuaiwei阴,
ROM引导加载程序依次扫描UART端口,如果一个端口不能完成这个过程,设备就会跳到下一个可用的端口,问题是,由于引导加载程序错误读取了580,在某些情况下不会重复引导代码,但它将以引导过程结束,并保持可用的JTAG,以便从那里引导。没有迹象表明在特定端口上启动失败,设备只是继续扫描下一个接口。为了重新启动引导加载程序从扫描再次您可以发出一个重置从您的主机。如果从580计算的crc匹配,那么最终的ACK将从主机发送,如果它匹配,那么580将获得OK并继续引导,如果不是,你可以重置设备以重新运行引导加载程序。
由于MT_dialog