尊敬的Dialog支持团队:
我使用DA14580与SPI,我的。hex是大约40KB,所以我必须使用外部闪存。
但是在这种情况下,程序不能工作,如果我测试一个程序不使用SPI,它可以工作。
我有以下几个问题:
1)我可以使用SPI外部flash,启动后也可以使用SPI吗?
2)如果启动后可以使用SPI,引脚如何重新映射?
3)如果我使用DA14585,它有足够的OTP空间,我可以重新映射引脚随机/或任何规则重新映射引脚吗?
4)我现在使用的是DA14580, DA14585和DA14580在软件和硬件上是否兼容?
非常感谢你的帮助。
便雅悯
设备:
嗨BenjaminDu,
DA14580从标准大头针靴子。请查看AN-B-001文件中的“表1:外部设备引脚分配和启动顺序”。您可以从我们的支持门户下载此文档。为了方便,你也可以点击下面的链接。
https://support.dialog-semiconductor.com/resource/b-001-da14580581583-booting-serial-interfaces
在启动过程之后,您就可以为您的应用程序代码使用外部flash了。你能解释一下“remap”是什么意思吗?你是想从不同的引脚从standers引脚启动,还是说你想在启动过程后改变SPI flash引脚?
谢谢,PM_Dialog
我的意思是,在启动后,我的应用程序想使用spi用于其他目的(而不是r/w flash),例如,显示lcd使用spi。如果我用jlink,它工作,但如果我用flash,它不工作。
关于da14585上面的问题你也能帮我吗?
谢谢
嗨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。
谢谢,PM_Dialog
尊敬的Dialog支持团队:
谢谢您的快速回复,是的,在一定程度上您对我的问题的理解是正确的,我会更清楚地表达我的问题。
是的,我想用我的固件烧录SPI flash,从那里启动。
启动后,我需要使用SPI(其他gpio,用于CS)来控制其他组件(例如LCD)。
当我使用JLink时(直接从Keil运行,固件不刻录到flash上),SPI控制的LCD工作良好。
但是如果我将固件刻录到flash上并从那里启动,SPI控制的LCD不能工作。(我还测试了其他程序,没有使用SPI,刻录到flash,从flash启动程序工作)
希望我能把我的问题说清楚,也希望你能给我理由。
非常感谢。
便雅悯
嗨BenjaminDu,
你能探测SPI Flash启动时的SPI信号和LCD不工作,然后告诉我结果吗?您提到过,在引导之后,您希望使用不同的gpio来控制其他组件。你配置了吗?
谢谢,PM_Dialog
亲爱的对话框,
很抱歉我探测不到信号。
附带的是gpio的配置,有了配置,它在调试时工作良好,如果烧成flash,它就停止工作。
你能帮我看一下我的配置吗?
我有一个分析,
由于我的固件超过42KB,在引导后,系统仍然需要与flash通信,这可能会导致flash SPI和我的SPI冲突。
非常感谢
便雅悯
嗨BenjaminDu,
如果你能探测SPI信号,这将是非常有用的,因为我们可以提取关于你的问题的进一步信息。顺便说一下,你不能探测你的信号,这没有问题。您的配置似乎是正确的。如果我能从你提到的正确理解,如果你的固件小于42KB,你的应用程序工作正确?
谢谢,PM_Dialog
亲爱的对话框,
我会设法探测信号,稍后再回来。
我有一个小于42KB的固件,它在flash中工作得很好,但固件没有SPI。
我想知道它如何工作,如果系统SRAM只有42KB,而固件是更多的?
非常感谢您的快速回复。
便雅悯
嗨BenjaminDu,
请问你的固件没有SPI是什么意思?那么,如果您将固件下载到外部SPI flash并从那里启动,这是否正确工作?另外,你能确保你的固件超过42KB吗?如果是,很奇怪的是,当您将其存储到SysRAM时,它能正确地工作。
谢谢,PM_Dialog
亲爱的对话框,
没有SPI意味着应用程序不使用SPI,但它有连接到flash的SPI,让我们忘记它,因为我有新的创建,请参见以下。
我用SPI测试了另一个示例(我已经将SPI连接到flash,也连接到其他组件),这个示例的固件是37KB,从flash启动时它工作。
那么如果固件超过42KB, DA14580就不能工作了?
如果固件超过42KB,我该怎么办?使用DA14580有什么方法吗?或者我必须选择DA14585这样的芯片?
非常感谢
便雅悯
嗨BenjaminDu,
由于您使用的是DA14580,如果固件大小超过42KB,您希望能够将其存储到SystemRAM中。请检查DA14580 datasheet,你会发现系统RAM是42KB。因为您有一个外部SPI Flash,您可以在那里存储您的固件并从SPI Flash启动。为了烧SPI Flash,你应该使用智能片段工具箱,你可以从我们的支持门户下载它。如果你想只下载固件到SystemRAM,你可以移动inti DA14585。根据DA14585数据表,有96kb的Data/Retention SystemRAM。如果您没有在Smart Snippets工具箱中下载它,您可以在DA14580支持页面的“Software & Tools”选项卡中找到它。也。我强烈推荐你看一看UM-B-083 SmartSnippets工具箱用户手册来检查如何使用工具箱烧掉SPI Flash。
谢谢,PM_Dialog
亲爱的对话框,
在之前我说过我可以从flash启动,我已经知道如何将固件刻录到flash。
我还有一个问题,如果我把固件刻录到flash中,程序可以直接运行而不被载入SystemRAM吗?(抱歉,我对芯片知之甚少,我认为引导是加载固件到SystemRAM并在那里运行)。
我问这个问题的原因是,如果我烧固件超过42KB,带有SPI的程序不能工作,如果我烧固件小于42KB,那么带有SPI的程序可以工作。
谢谢
便雅悯
嗨BenjaminDu,
我强烈建议你看一下AN-B-001文件,以便了解DA14580是如何启动的。我已经提供了链接供你下载请查看图2:DA14581引导序列,您将看到从外部设备引导序列之后,代码被下载到SysRAM。你的程序不工作的原因是为什么你不能下载固件到SysRAM超过42KB。
谢谢,PM_Dialog
亲爱的对话框,
我读过AN-B-001,我找不到DA14580上可以运行多大固件的直接信息。
我对你之前回答的2感到困惑。
1)因为你使用的是DA14580,如果固件大小超过42KB,你想要能够存储到系统ram。请检查DA14580 datasheet,你会发现系统RAM是42KB。因为您有一个外部SPI Flash,您可以在那里存储您的固件并从SPI Flash启动。
2)你的程序不工作的原因是为什么你不能下载固件到SysRAM超过42KB。
为了避免混淆,你能简单地回答我是或否吗?
如果固件更大42KB,有没有办法在DA14580上运行程序?
嗨BenjaminDu,
抱歉给你们造成了误会,我会尽量说得更具体。你不能编写超过42K系统ram的软件。你也不允许使用SYSRAM的所有42K,因为部分RAM被堆栈、交换内存等使用。你不能将超过42K的固件存储到SPI Flash中。请查看图1:AN-B-001 DA14580启动顺序。根据该图,您将看到从SPI Flash引导后,代码被下载到SysRAM中,因此,如果您的代码超过了42K,它将无法装入RAM中。综上所述,由于您正在使用DA14580,您不允许运行超过42K的固件。如果您想要更大的固件,您应该转移到DA14585产品。
谢谢,PM_Dialog
亲爱的对话框,
谢谢,现在一切都清楚了。
便雅悯
嗨BenjaminDu,
很高兴事情都解决了。如果你认为以上答案中有任何一个是有用的,请在上面注明已接受。
谢谢,PM_Dialog