SPI引导和引脚重映射/ DA14580和DA14585兼容性

⚠️
大家好. .谢谢你来参加论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,并包含在Dialog主网站中。所有的帖子和账户都已迁移。我们现在只接受新论坛的流量-请张贴任何新的线程//www.xmece.com/support.我们将在未来几天修复漏洞/优化搜索和标签。
18个职位/ 0个新
最后发表
BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
SPI引导和引脚重映射/ DA14580和DA14585兼容性

亲爱的Dialog支持团队:
我使用的是带SPI的DA14580,我的. hex大约是40KB,所以我必须使用外部闪存。
但是这个程序在这种情况下不起作用,如果我测试一个不使用SPI的程序,它就能工作。
我有以下几个问题:
1)我是否可以使用SPI外部闪存,并在启动后使用SPI ?
2)如果我可以在启动后使用SPI,如何重新映射引脚?
3)如果我使用DA14585,它有足够的OTP空间,我可以随机重新映射引脚/或任何规则重新映射引脚吗?
4)我现在用的是DA14580,请问DA14585和DA14580软硬件兼容吗?

非常感谢你的帮助。
便雅悯

设备:
PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

DA14580从标准引脚引导。请检查AN-B-001文档中的“表1:外部设备引脚分配和启动顺序”。您可以从我们的支持门户下载此文档。为了方便,您也可以点击下面的链接。

https://support.dialog-semiconductor.com/resource/b-001-da14580581583-booting-serial-interfaces

在启动过程之后,您可以为应用程序代码使用外部闪存。请问你所说的“重绘”是什么意思?你是想从不同的引脚从standers引脚引导,还是说你想在引导过程后改变SPI flash引脚?

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
我是说开机之后,我的

我的意思是在引导后,我的应用程序想要使用spi为其他目的(不是r/w闪存),例如,显示lcd使用spi。如果我使用jlink,它可以工作,但如果我使用flash,它就不行。

以上关于da14585的问题你也能帮我解答一下吗?

谢谢

PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

抱歉,但是我没有完全理解你的意思,如果你使用JLink它是工作的,但如果你使用flash它是不工作的。我需要一些关于这一点的澄清,请试着理解你正在努力完成什么。如果我理解正确的话,你想用你的固件烧毁SPI闪存,从那里启动,然后在启动后,你想重新映射相同的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

BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
亲爱的Dialog支持团队:

亲爱的Dialog支持团队:

谢谢你的快速回应,在某种程度上你对我问题的理解是正确的,我会更清楚地表达我的问题。

是的,我想燃烧SPI闪存与我的固件,从那里启动。
启动后,我需要使用SPI(其他gpio,用于CS)来控制其他组件(例如LCD)。

当我使用JLink(直接从Keil运行,固件不刻录到闪存。),由SPI控制的LCD工作良好。
但是如果我把固件刻录到闪存上并从那里启动,SPI控制的LCD就不能工作了。(我也测试了其他没有使用SPI的程序,刻录到flash,从flash启动程序工作)

希望我把我的问题表达清楚,希望你能给我理由。

非常感谢。
便雅悯

PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

当从SPI Flash引导时,LCD不工作时,您能否探测SPI信号,然后让我知道结果?您提到在启动之后,您希望使用不同的gpio来控制其他组件。你配置了吗?

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
亲爱的对话框,

亲爱的对话框,

对不起,我无法探测到信号。

附件是gpio的配置,有了配置,调试时工作正常,如果刻录到flash,会停止工作。
你能帮我看一下我的配置吗?

我有一个分析,
由于我的固件超过42KB,在启动后,系统仍然需要与flash通信,这可能会导致与flash SPI和我的SPI冲突。

非常感谢

便雅悯

附件:
PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

如果您能够探测SPI信号,这将是非常有用的,因为我们可以提取有关您的问题的进一步信息。顺便说一下,你不能探测到你的信号没有问题。你的配置似乎是正确的。如果我能从你所说的正确理解,如果你的固件小于42KB,你的应用程序正常工作吗?

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
亲爱的对话框,

亲爱的对话框,

我会设法探测到信号,然后再回来。

我有一个小于42KB的固件,它在flash中工作得很好,但固件没有SPI。
我想知道如果系统SRAM只有42KB,而固件却不止于此,它是如何工作的?

非常感谢你的快速回答。

便雅悯

PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

你的固件没有SPI是什么意思?所以,如果你下载固件到外部SPI闪存和启动从那里,这是正确的工作吗?另外,请确保你的固件大于42KB。如果是,当您将其存储到SysRAM中时,它能正常工作是很奇怪的。

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
亲爱的对话框,

亲爱的对话框,
没有SPI意味着应用程序不使用SPI,但它有SPI连接到flash,让我们忘记它,因为我有新的成立,请参阅以下。
我用SPI测试了另一个示例(我有SPI连接到flash,也连接到其他组件),这个示例的固件是37KB,从flash引导时可以正常工作。

那么如果固件超过42KB, DA14580就不能工作了?
如果固件超过42KB,我该怎么办?有什么方法使用DA14580?还是我必须选择其他芯片,比如DA14585?

非常感谢

便雅悯

PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

由于您正在使用DA14580,如果固件大小超过42KB,则希望能够存储到SystemRAM中。请检查DA14580数据表,你会发现系统RAM是42KB。因为你有一个外部SPI Flash,你可以存储你的固件,并从SPI Flash引导。为了烧录SPI Flash,你应该使用智能片段工具箱,你可以从我们的支持门户下载它。如果你想只下载固件到SystemRAM,你可以移动到DA14585。根据DA14585数据表,有96 kB的数据/保留系统内存。如果您还没有下载Smart Snippets工具箱,您可以从DA14580支持页面的“软件和工具”选项卡中找到它。也。我强烈推荐你看一下UM-B-083 SmartSnippets工具箱用户手册为了检查如何使用工具箱烧录SPI Flash。

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
亲爱的对话框,

亲爱的对话框,

在前面我说过我可以从flash启动,我已经知道如何将固件刻录到flash。

我还有一个问题,如果我把固件刻录到flash中,程序可以直接运行而不加载到SystemRAM中吗?(对不起,我对芯片知之甚少,我认为引导是将固件加载到SystemRAM中并在那里运行)。
我问这个问题的原因是,如果我刻录了一个超过42KB的固件,带SPI的程序就不能工作,如果我刻录了一个小于42KB的固件,那么带SPI的程序就可以工作。

谢谢

便雅悯

PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

我强烈建议您看看AN-B-001文件,以便了解DA14580是如何启动的。我已经给你提供了下载链接。请检查图2:DA14581引导序列,您将看到从外部设备引导序列之后,代码被下载到SysRAM。你的程序不能工作的原因是你不能下载固件到超过42KB的SysRAM。

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
亲爱的对话框,

亲爱的对话框,

我读过AN-B-001,我找不到关于DA14580上可以运行多大固件的直接信息。
我对你之前的回答感到困惑。
1)由于您正在使用DA14580,如果固件大小超过42KB,您希望能够存储到SystemRAM中。请检查DA14580数据表,你会发现系统RAM是42KB。因为你有一个外部SPI Flash,你可以存储你的固件,并从SPI Flash引导。
2)你的程序不工作的原因是你不能下载固件到超过42KB的SysRAM。

为了避免混淆,你能简单地回答我下面的问题是或否吗?
如果固件大于42KB,有没有办法在DA14580上运行程序?

PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

很抱歉造成混淆,我会尽量说得更具体一些。不能编写超过42K SYSRAM的软件。此外,你不允许使用所有的42K的SYSRAM,因为RAM的部分被堆栈、交换内存等使用。你不能将超过42K的固件存储到SPI Flash中。请检查图1:DA14580从AN-B-001启动顺序。根据该图,您将看到从SPI Flash引导后,代码被下载到SysRAM中,因此如果您的代码超过42K,它将无法装入RAM中。综上所述,由于您使用的是DA14580,因此不允许运行超过42K的固件。如果你想要更大的固件,你应该转移到DA14585产品。

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:3周3天前
加入:2016-03-14 02:38
亲爱的对话框,

亲爱的对话框,

谢谢,现在明白了。

便雅悯

PM_Dialog
离线
最后看到:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

很高兴事情都解决了。如果你认为以上任何答案是有用的,请在其中一个标记为已接受。

谢谢,PM_Dialog