尊敬的Dialog支持团队:
我正在使用spi使用da14580,我的.hex大约40kb,所以我必须使用外部闪光灯。
但是在这种情况下,程序不能工作,如果我测试一个程序不使用SPI,它可以工作。
我有以下几个问题:
1)我是否可以使用SPI外部闪光,并在启动后使用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
在启动过程之后,您可以使用外部闪存以供应用程序代码。您能否澄清你的意思是什么意思,“remap”?您是否想从独立式引脚从不同的引脚启动,或者您的意思是在启动过程后要更改SPI闪存引脚?
谢谢,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运行,固件未刻录到闪存上),由spi控制的液晶显示器很好。
但是如果我将固件刻录到闪存并从那里启动,则SPI控制的液晶显示器不起作用。(我还在没有使用SPI的情况下测试了其他程序,刻录到Flash,从Flash启动程序工作)
希望我能把我的问题说清楚,也希望你能给我理由。
非常感谢。
本杰明
嗨Benjamindu,
你能探测SPI Flash启动时的SPI信号和LCD不工作,然后告诉我结果吗?您提到过,在引导之后,您希望使用不同的gpio来控制其他组件。你配置了吗?
谢谢,PM_Dialog
亲爱的对话框,
很抱歉我探测不到信号。
附加是GPIO的配置,通过配置,它在调试时运行良好,如果刻录到闪存中,它会停止工作。
你能帮助看看我的配置吗?
我有一个分析,
由于我的固件超过42KB,在引导后,系统仍然需要与flash通信,这可能会导致flash SPI和我的SPI冲突。
非常感谢
本杰明
嗨Benjamindu,
如果您能够探测SPI信号,这将是伟大的,非常有帮助,因为我们可以提取有关您问题的更多信息。顺便说一下,没有问题,你无法探测你的信号。您的配置似乎是正确的。如果我能够从您所提到的正确理解,如果您的固件低于42KB,您的应用程序正常工作?
谢谢,PM_Dialog
亲爱的对话框,
我会设法探测信号并稍后再回来。
我有一个小于42KB的固件,它在flash中工作得很好,但固件没有SPI。
我想知道它如何工作,如果系统SRAM只有42KB,而固件是更多的?
非常感谢您的快速回复。
本杰明
嗨Benjamindu,
你能澄清你的意思,你的固件没有spi吗?所以,如果将固件下载到外部SPI闪存并从那里启动,这项工作是否正确?此外,您是否可以确保您的固件超过42KB?如果是,则将其存放到Sysram时,它是非常奇怪的。
谢谢,PM_Dialog
亲爱的对话框,
没有SPI测量应用程序不使用SPI,但它有SPI连接到Flash,让我们忘记它,因为我有新的创始,请参阅以下内容。
我用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 Toolbox用户手册为了检查如何使用工具箱刻录SPI Flash。
谢谢,PM_Dialog
亲爱的对话框,
在上一个我说我可以从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,则希望能够存储到SystemRam中。请检查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