亲爱的Dialog支持团队,
I'm using DA14580 with SPI,and my .HEX is around 40KB, so I have to use external flash.
但是这个程序在这种情况下不工作,如果我测试一个程序不使用SPI,它就工作了。
所以我有以下问题:
1) Is it possible for me to use SPI external flash and also use SPI after booting?
2) 如果我可以在引导后使用SPI,如何重新映射pin?
3) 如果我使用有足够OTP空间的DA14585,我可以随机重新映射管脚/或任何规则来重新映射管脚吗?
4) Now I'm using DA14580, is DA14585 compatible with DA14580 in terms of soft ware and hard ware?
非常感谢你的帮助。
Benjamin
Device:
Hi BenjaminDu,
The DA14580 boots from standard pins. Please check the “Table 1: Pin assignment and booting sequence from external devices” from the AN-B-001 document. You can download this document from our support portal. For your convenience, you can follow the link below as well.
https://support.dialog-semiconductor.com/resource/b-001-da14580581583-booting-serial-interfaces
After the booting procedure you are allowed to use the external flash for your application code. Could you please clarify what do you mean with the “remap”? Do you want to boot from different pins from the standers pins or do you mean that you want to change SPI flash pins after the booting procedure?
谢谢,下午好
我的意思是,在引导之后,我的应用程序希望将spi用于其他用途(而不是r/w flash),例如,使用spi显示lcd。如果我使用jlink,它会工作,但是如果我使用flash,它不会。
can you also help me with above questions about da14585?
THANKS
Hi BenjaminDu,
抱歉,但我没有完全理解你的意思,如果你使用JLink它是工作的,但如果你使用flash它是不工作的。我需要一些关于这方面的澄清,请尝试理解你正在试图完成什么。如果我理解正确,你想用你的固件烧录SPI flash,从那里引导,然后在引导之后,你想重新映射连接到flash的相同SPI gpio以供其他使用?如果我不明白,请让我知道并纠正我。
根据数据表,DA14580有32KB的OTP,DA14585有64KB的OTP。如需任何补充信息,请参阅相应的数据表。我无法理解你所说的“我是否可以随机重新映射管脚/或重新映射管脚的任何规则”的确切含义。DA14580和DA14585有不同的硬件,它们运行不同的SDK。DA14580/1/2/3的SDK最新版本为5.0.4版本,DA14585/6的SDK最新版本为6.0.10版本。
谢谢,下午好
亲爱的Dialog支持团队,
谢谢你的快速回答,是的,在某种程度上你理解我的问题是正确的,我会更清楚地表达我的问题。
是的,我想用我的固件烧掉SPI闪存,从那里启动。
After booting, I need to use SPI(other GPIOs,for CS) to control other components(for example LCD).
When I use JLink(run directly from Keil, firmware not burned onto flash.), the LCD controlled by SPI works well.
But if I burn the firmware onto flash and boot from there, the LCD controlled by SPI does not work.( I also tested other program without using SPI,burn onto flash, booting from flash the program works)
希望我能把我的问题表达清楚,希望你能告诉我原因。
谢谢。
Benjamin
Hi BenjaminDu,
当从SPI闪存启动时,如果LCD不工作,请您探测SPI信号,然后告诉我结果好吗?您提到,在引导之后,您希望使用不同的gpio来控制其他组件。你配置了吗?
谢谢,下午好
Dear DIalog,
对不起,我不能探测信号。
Attached is the configure of the GPIOs, with the configuration, it works well while debuging, if burned into flash, it stops work.
Can you help to have a look of my configuration?
I have an analysis,
由于我的固件超过42KB,引导后,系统仍然需要与flash通信,这可能会导致与flash SPI和我的SPI冲突。
Thanks a lot
Benjamin
Hi BenjaminDu,
It would be great and very helpful if you would able to probe the SPI signals, because we could extract further information about your issue. By the way, no problem that you are not able to probe your signals. Your configurations seem correct. If I am able to understand correctly from what you mentioned, if your firmware is less than 42KB, your application works correctly?
谢谢,下午好
Dear Dialog,
I will manage to probe the signal and come back later.
我有一个固件小于42KB,它在闪存工作良好,但固件没有SPI。
我想知道,如果系统SRAM只有42KB,而固件不止这些,它是如何工作的?
非常感谢你的快速回答。
Benjamin
Hi BenjaminDu,
Could you please clarify what you mean that your firmware has no SPI? So, if you download firmware into the external SPI flash and boot from there, does this work correctly? Also, could you please make sure that your firmware is more than 42KB? If yes, it is quite strange that it works correctly when you store it into the SysRAM.
谢谢,下午好
Dear Dialog,
Has no SPI meas the application does not use SPI, but it has SPI connected to flash, let's forget it as I have new founding, please see the following.
我用SPI测试了另一个示例(SPI连接到flash,也连接到其他组件),这个示例的固件是37KB,从flash引导时可以工作。
So if the firmware is more than 42KB, DA14580 can not work?
如果固件超过42KB,我该怎么办?有什么方法可以使用DA14580吗?或者我必须选择其他芯片像DA14585?
Thanks a lot
Benjamin
Hi BenjaminDu,
由于您使用的是DA14580,如果固件大小超过42KB,您希望能够存储到SystemRAM中。请查看DA14580数据表,您会发现系统RAM为42KB。因为您有一个外部SPI闪存,所以您可以将固件存储在那里并从SPI闪存引导。为了烧录SPI Flash,您应该使用Smart Snippets工具箱,您可以从我们的支持门户下载它。如果您只想将固件下载到SystemRAM中,可以移动inti DA14585。根据DA14585数据表,有96KB的数据/保留系统RAM。如果您还没有从SmartSnippets工具箱下载它,您可以从DA14580支持页的“软件和工具”选项卡中找到它。也。我强烈建议你去看看UM-B-083 SmartSnippets Toolbox User Manualin order to check how you could burn the SPI Flash using the toolbox.
谢谢,下午好
Dear Dialog,
In the previous I said I can boot from flash,I already know how to burn firmware into flash.
I have another question,if I burn the firmware into flash, can the program run directly without being loaded in SystemRAM? (sorry I know little about chip, I think a booting is loading the firmware into SystemRAM and run there).
The reason I asked the question is that if I burn a firmware more than 42KB,the program with SPI doesn't work, if I burn a firmware less than 42KB, then the program with SPI works.
Thanks
Benjamin
Hi BenjaminDu,
我强烈推荐你去看一看AN-B-001 document in order to understand how the DA14580 boots. I have already provided you the link in order to download it. Please check Figure 2: DA14581 booting sequence, and you will see that after the booting sequence from external devices, the code is downloaded to SysRAM. The reason why your program is not working is why you are not able to download firmware to SysRAM which is more than 42KB.
谢谢,下午好
Dear Dialog,
I've read AN-B-001,I can not find direct info about how big firmware can run on DA14580.
I'm confused as the following 2 from your previous answer.
1)Since you are using the DA14580, if the firmware size is more than 42KB, you want be able to store into the SystemRAM. Please check the DA14580 datasheet and you will find that the System RAM is 42KB. Since you have an external SPI Flash, you could store your firmware there and boot from the SPI Flash.
2)The reason why your program is not working is why you are not able to download firmware to SysRAM which is more than 42KB.
To avoid confusion, can you simply answer me YES or NO for the following question?
如果固件超过42KB,有没有办法在DA14580上运行程序?
Hi BenjaminDu,
很抱歉,我会尽量说得更具体些。你不能写超过42K系统内存的软件。此外,您不允许使用系统内存的所有42K,因为部分RAM由堆栈、交换内存等使用。您不能将超过42K的固件存储到SPI闪存中。请检查图1:AN-B-001的DA14580引导序列。根据该图,您将看到从SPI Flash引导后,代码被下载到SysRAM中,因此如果您的代码超过42K,它将无法放入RAM中。综上所述,由于您使用的是DA14580,因此不允许运行超过42K的固件。如果您希望使用更大的固件,则应使用DA14585产品。
谢谢,下午好
Dear Dialog,
谢谢,现在一切都清楚了。
Benjamin
Hi BenjaminDu,
Glad that the things get cleared. If you found any of the above answers useful, please mark on of them as accepted.
谢谢,下午好