I want to use an MSP430 configured as an SPI Master to boot the DA14586. (using pins P2_0/SPI_CLK, P2_3/SPI_EN, P2_4/SPI_DO, P2_9/SPI_DI as specified in the datasheet). When the MSP430 sends the SPI Master boot protocol (according to UM-B-079 Software Platform Reference Table 40) I don't get a response (I'm expecting ACK or NACK for bytes 3 & 6). Instead, the DA14586 switches to SPI Master and searches for external flash modules (according to the booting sequence in UM-B-079).
How do I make sure the DA14586 knows I'm trying to boot it from an external SPI Master? Is there a time frame that I need to start communicating? It looks like the DA14586 tries to communicate with an external flash after about 13ms (I used an oscilloscope to check). I've been trying to send the Master boot protocol from the MSP430 before 13ms, but it seems to ignore my attempt to boot it.
Hi TP2017,
The pins used in your configuration are connected to the integrated flash on the DA14586. The Flash here is in Slave configuration and DA14586 in Master configuration. The boot sequence depends on the Bootloader implemented. I am checking the bootloader internals with our team and will get back to you about the options available for the use case.
Best,
lc_dialog
Hi TP2017,
As I have mentioned previously, the pins you've connected the external MCU in your design are conflicting with the connections to the Integrated Flash memory. The ROM bootloader in the DA14586 will try to boot from this Integrated Flash memory and this will make it very difficult to boot from your external MCU. I would recommend to use other GPIOs available and preferably the Port 0 pins.
Please let us know if you have more concerns.
Best,
lc_dialog
我的问题是DA14586将从SPI Master引导,如UM-B-079 SDK 6软件平台参考的附录G所示(附录G.4 G.4.1“DA14585 / 586连接到SPI Master”)。我假设从您的响应中,DA14586不遵循参考G.4.1中描述的引导协议。它听起来像da14586在步骤g.4.3开始。如果您可以确认此,我将改变我们的设计以适应DA14586使用的实际协议。
是启动代码的源可用吗?如果我理解您的响应,则文档与DA14586的引导协议不匹配。我想在我承诺任何设计更改之前确认引导协议的详细信息。
谢谢
Hi TP2017,
为了澄清,这有2个部分。,
DA14586将根据您在附录G中引用的协议启动。然而,这是串行接口引导过程的一部分。但是,DA14586(具体)在包装中具有集成闪光灯,首先在移动到习惯性接口之前首先检查,如下面详细说明的。
DA14586配置为如DA14586_DATASHEET_3V2中所述引导到DA14586_DATASHEET_3V2 Page 39.如果此闪光灯没有有效标题,则设备无法在此启动,并将进入串行接口,如附录G.中所述当从串行接口引导时,586将首先检查外部SPI主站,并按照表39中所述的顺序跟踪,也是UM-B-079附录G中的图31。在附录G中的表38中已清楚地描述了引导GPIO组合。
The source code of the ROM bootloader is not available. However, a similar implementation is provided to customers in the DA14585/86 SDK -> utilities -> secondary_bootloader if the application requires a secondary bootloader to boot from custom pins.
希望这能回答你的担忧..
Best,
lc_dialog
Am I using the wrong pins?
I understand your point that checking the flash is the first part and the serial interface boot protocol is the second part of the boot process. My problem is that I am unable to get the DA14586 to respond to the booting protocol (G.4.1 of UM-B-079) using an external SPI master. I was wondering what I was doing wrong, and thought there might be some more information (e.g. timing, pinout) that would help me.
I re-read the resources you referenced. If I understand correctly, Figure 31 of UM-B-079 shows that, if there is a boot specific flag=0xAA in the OTP (as in the case of the DA14586), then the DA14586 tries to boot from the pins shown in Table 1 of DA14586_datasheet_3v2 page 19. If that fails, the DA14586 looks for an external source on the pins listed in Table 38 of UM-B-079.
别针我在用for booting areP2_0 / SPI_CLK,P2_3 / SPI_EN,P2_4 / SPI_DO和P2_9 / SPI_DI。我从论坛讨论中得到了这种理解https://support.dialog-semiconductor.com/comment/17898#comment-17898DA14586_DATASHEET_3V2的表1。如果我在“Init Spi Config”中显示,我认为这可能会起作用,如果我制作外部SPI从站并从中启动它UM-B-079的图31。
如果我理解这些来源,引脚我应该用来从SPI大师启动areP0_0 / SCK,P0_3 / CS,P0_6 / MISO,P0_5 / MOSI或P0_0 / SCK,P0_1 / CS,P0_2 / MISO,P0_3 / OSIlisted in表38 UMB-079。These pins are used in the second part of the DA14586's search for an external source.
If my understanding is correct, I still need information about timing my SPI Master boot protocol signal. I've put an oscilloscope on the signal lines, and I might be able to use that data to time the SPI Master, however我想知道是否有更具某种方法来确定DA14586何时响应外部SPI主站。在“Ext SPI Master”之后,它会在进入阶梯之前响应任何时间。
I did not find the part where the DA14586 loads the program from internal flash in Figure 31 of UM-B-079. I think it must be somewhere after "OTP blank?", but I can't find it.
谢谢你的帮助。同时,谢谢你的tip on the secondary_bootloader. I'll take a look at it.
Hi TP2017,
If you want to configure your external MCU as a SPI Master, then you should consider using one of the pin configurations specified in the Table 38 of UM-B-079.
The DA14586 timing requirement is about 8 msec while booting from the external SPI Master and it should send the protocol data sequence (0x70 0x50) to the SPI Slave (586) which will send an ACK/NACK in return.
关于您的问题,DA14586从内部闪存加载程序..它将在Ext SPI奴隶上执行此操作?UM-B-079的图31中的阶段。
Best,
lc_dialog