你好,
我正在为DA14531开发一种带有两个SPI设备的定制板。两者都在频率,敏感边缘,芯片选择极性方面使用相同的设置。
一个是外设,另一个是来自Macronix的闪存,它已经是DA14531的开发套件专业版。
我用keil测试了我的软件,通过重写一些细节来重用SPI代码示例,编写我的特定处理程序并正常工作。现在,下一阶段:我想从Macronix Flash引导。所以我需要一个新的芯片选择信号。我知道序列储备,初始化,用于I / O引脚。
但我第一次尝试有2个信号和2个库函数失败。
所需的是单独的芯片选择信号。Flash的示例代码使用使用使用的设置数据结构。
现在,我需要一个提示,我如何确保,SPI控制器能够从闪存和我的程序中启动,我可以在闪存中使用自由单元格,在一个相当明显的阶段,另一个时隙,使用我的外围设备的SPI控制器。
如何编写/修改/重用,以便操作2个独特但在SPI总线上以某种方式类似的设备?
感谢帮助
joachim
设备:
嗨Joachim,
谢谢你的问题。请你尝试解释问题是什么?我可以理解您计划从外部SPI闪存启动并使用空单元格存储您自己的数据。另外,将使用另一个SPI外围设备。DA14531正在从标准引脚启动 - 请检查表38:从数据表中启动序列步骤。外部SPI从站引导是步骤5,表38演示了应使用特定引脚。BootRom将在P01上切换SCS将闪光灯与来自那里的应用程序代码和设备靴子进行编程。
关于使用“自由空间”的热,您应该使用从SmartSnippet Toolbox中编程的闪存进行读取SPI Flash,并在存储应用程序固件的地址检查。在这些地址之后,您可以存储自己的数据。
>>>但我第一次尝试有2个信号和2个库函数失败。
你能说明吗?
谢谢,PM_DIALOG.
你好,谢谢你的回复!
在我的第一次尝试中,我使用了使用SPI闪存的示例代码,验证了一些交换。然后,我将其中一些代码移动到蓝牙应用程序中,并重用了闪存的那些引脚。我使用从电路板到板的电线附加了我的外围设备并写了SPI处理代码。它现在正在运行,值通过蓝牙发送。
现在,挑战是,两个SPI设备附有。我制作了简单的假设,重用代码,但仅使用不同的PIN芯片选择我的外围设备。Miso,Clk,MOSI一直并行(这是一个Aproach OK吗?)在第一步不起作用,即使整个蓝牙分数也死了。
两者,Macronix和我的外围设备都适用于相同的设置。
我需要建议,扩展基于RAM的代码,因此DA14531将从Flash引导。我基本上理解了PIN使用率,而不是SPI库。
你好,
joachim
嗨Joachim,
哪个GPIO是附着的外围设备?如果您希望在BLE项目上具有SPI Flash功能,请查看SDK的Prox_Reporter示例。
要从SPI Flash启动,您只需需要将与正确GPIO连接的共享,然后使用应用程序映像将其刻录。设备上电后,Flash的代码将被复制到系统RAM,然后将其复制到设备靴子。
为了与SPI外设进行交互,您需要使用正确的参数进行init和配置它,与之交互,然后释放它。
谢谢,PM_DIALOG.
感谢您的回答。
我将使用的GPIO只是免费的GPIO,仅用于控制额外的SPI芯片选择。我将使用一个,它连接到套件基板上的标题。
我会看看prox_reporter示例代码。
我理解,将哪些引脚用于闪光灯 - 只能在Pro套件的交付时跳跃。
要烧它,我明白采取RAM运行二进制(BIN)文件。使用智能工具包。
我需要保留我的额外GPIO,然后初始化I / O单元作为用于闪存的I / O单元格。为了使用我的外设,我需要我自己的chip_select函数,使用我的新gpio,使用设备和任何使用后,我必须用chip_select回到非活动的新gpio引脚。
我可以使用完全相同的库函数来传输(例如SPI控制器队列)。
如果我的SPI设备与相同的参数交谈,则只需要SPI库(?)另一个控制结构。
那是对的吗 ?
我试过这种方法,但可能有一些错误,某个地方。我需要再做一次。
问候,joachim
嗨joachimkr,
您需要选择和配置每次将在哪个设备“谈话”中。诚实地说,我尚未以粗体正确理解您的陈述,但该概念是您应该选择每次使用SPI总线的设备。
谢谢,PM_DIALOG.