亲爱的对话支持团队:
我使用的是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),例如,使用spi显示lcd。如果我用jlink,它能工作,但如果我用flash,它不能。
以上关于da14585的问题你也能帮我一下吗?
谢谢
嗨BenjaminDu,
抱歉,但我不完全理解你的意思,如果你使用JLink,它是工作的,但如果你使用flash,它是不工作。我需要一些关于这方面的澄清,请尽量理解你正在努力完成什么。如果我理解正确,你想烧SPI flash与你的固件,从那里启动,然后在启动后,你想重新映射相同的SPI gpio连接到flash的其他用途?如果我不理解正确,请让我知道并纠正我。
根据数据表,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
亲爱的对话支持团队:
谢谢你的快速回复,是的,在一定程度上你对我的问题的理解是正确的,我会更清楚地表达我的问题。
是的,我想烧SPI闪存与我的固件,从那里启动。
在引导之后,我需要使用SPI(其他gpio,对于CS)来控制其他组件(例如LCD)。
当我使用JLink时(直接从Keil运行,固件没有刻录到flash上),SPI控制的LCD工作得很好。
但是如果我将固件刻录到flash上并从那里启动,由SPI控制的LCD就不能工作了。(我也测试了其他程序,没有使用SPI,刻录到flash,从flash启动程序工作)
希望我能清楚地表达我的问题,希望你能给我原因。
非常感谢。
便雅悯
嗨BenjaminDu,
你能不能探测SPI信号时,从SPI Flash和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,但它有SPI连接到flash,让我们忘记它,因为我有新的成立,请参阅以下。
我用SPI测试了另一个样本(我有SPI连接到flash,也连接到其他组件),固件是37KB的这个样本,它从flash启动时工作。
那么如果固件大于42KB, DA14580就不能工作了?
如果固件超过42KB,我该怎么办?DA14580有什么使用方法吗?还是必须选择DA14585这样的芯片?
非常感谢
便雅悯
嗨BenjaminDu,
由于您使用的是DA14580,如果固件大小超过42KB,您希望能够将其存储到SystemRAM中。请检查DA14580数据表,您会发现System RAM是42KB。由于您有一个外部SPI Flash,您可以将固件存储在那里,并从SPI Flash启动。为了刻录SPI Flash,您应该使用Smart Snippets工具箱,您可以从我们的支持门户下载它。如果你只想下载固件到SystemRAM,你可以移动到DA14585。根据DA14585 datasheet,有96 kB Data/Retention SystemRAM。如果您还没有从Smart Snippets工具箱中下载它,您可以从DA14580支持页面的“软件和工具”选项卡中找到它。也。我强烈建议您去看看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。您的程序不能工作的原因是您不能将固件下载到sysmram中,因为它的大小超过42KB。
谢谢,PM_Dialog
亲爱的对话框,
我已经阅读了AN-B-001,我找不到关于DA14580上如何运行大型固件的直接信息。
我对你之前的回答感到困惑。
1)由于您正在使用DA14580,如果固件大小超过42KB,您希望能够存储到SystemRAM中。请检查DA14580数据表,您会发现System RAM是42KB。由于您有一个外部SPI Flash,您可以将固件存储在那里,并从SPI Flash启动。
2)你的程序不能工作的原因是你不能下载固件到sysmram,因为它超过42KB。
为了避免混淆,你能简单地回答我下面的问题是或不是吗?
如果固件大于42KB,有没有办法在DA14580上运行程序?
嗨BenjaminDu,
不好意思,给你添乱了,我会尽量说得具体些。您不能编写超过42K SYSRAM的软件。另外,你也不允许使用SYSRAM的所有42K,因为部分RAM是由堆栈、交换内存等使用的。您不能存储您的固件超过42K到SPI Flash以及。请检查图1:DA14580从AN-B-001启动的顺序。根据图表,您将看到从SPI Flash启动后,代码被下载到SysRAM,所以如果您的代码超过42K,它将不适合进入RAM。总而言之,由于您使用DA14580,您不允许运行超过42K的固件。如果你想要更大的固件,你应该转向DA14585产品。
谢谢,PM_Dialog
亲爱的对话框,
谢谢,现在我明白了。
便雅悯
嗨BenjaminDu,
很高兴事情都解决了。如果你认为上述答案中有任何有用的,请在其中标记为接受。
谢谢,PM_Dialog