跳到主要内容

两个不同的SPI设备,带有SPI驱动程序从图书馆

7个月前

两个不同的SPI设备,带有SPI驱动程序从图书馆

张贴了Joachimkr.0分 5回复
0旋转

你好,

我正在为DA14531开发一种带有两个SPI设备的定制板。两者都在频率,敏感边缘,芯片选择极性方面使用相同的设置。
一个是外设,另一个是来自Macronix的闪存,它已经是DA14531的开发套件专业版。
我用keil测试了我的软件,通过重写一些细节来重用SPI代码示例,编写我的特定处理程序并正常工作。现在,下一阶段:我想从Macronix Flash引导。所以我需要一个新的芯片选择信号。我知道序列储备,初始化,用于I / O引脚。
但我第一次尝试有2个信号和2个库函数失败。

所需的是单独的芯片选择信号。Flash的示例代码使用使用使用的设置数据结构。
现在,我需要一个提示,我如何确保,SPI控制器能够从闪存和我的程序中启动,我可以在闪存中使用自由单元格,在一个相当明显的阶段,另一个时隙,使用我的外围设备的SPI控制器。
What do I have to write / modify / reuse, in order to operate 2 distinct but somehow similar devices on the SPI bus ?

感谢帮助
joachim

7个月前

PM_DIALOG.

嗨Joachim,

Thanks for your question. Could you please try to explain what is the issue? I can understand that you are planning to boot from an external SPI Flash and use the empty cells for storing your own data. Additionally, another SPI peripheral will be used. The DA14531 is booting from standard pins – please check table Table 38: Booting Sequence Steps from the datasheet. Booting for an external SPI slave is step 5 and the table 38 demonstrates the specific pins should be used. The BootROM will toggle the SCS on P01 will the flash is programmed with the application code and device boots from there.

关于使用“自由空间”的热,您应该使用从SmartSnippet Toolbox中编程的闪存进行读取SPI Flash,并在存储应用程序固件的地址检查。在这些地址之后,您可以存储自己的数据。

>>>But my very first attempt to have 2 signals and 2 library functions failed.

你能说明吗?

谢谢,PM_DIALOG.

7个月前

Joachimkr. 0分

你好,谢谢你的回复!

在我的第一次尝试中,我使用了使用SPI闪存的示例代码,验证了一些交换。然后,我将其中一些代码移动到蓝牙应用程序中,并重用了闪存的那些引脚。我使用从电路板到板的电线附加了我的外围设备并写了SPI处理代码。它现在正在运行,值通过蓝牙发送。

现在,挑战是,两个SPI设备附有。我制作了简单的假设,重用代码,但仅使用不同的PIN芯片选择我的外围设备。Miso,Clk,MOSI一直并行(这是一个Aproach OK吗?)在第一步不起作用,即使整个蓝牙分数也死了。

两者,Macronix和我的外围设备都适用于相同的设置。

我需要建议,延长我的基于RAM的代码,所以DA14531 will boot from flash. I basically understood the pin usage, but not the SPI library.

问候,

joachim

7个月前

PM_DIALOG.

嗨Joachim,

哪个GPIO是附着的外围设备?如果您希望在BLE项目上具有SPI Flash功能,请查看SDK的Prox_Reporter示例。

要从SPI Flash启动,您只需需要将与正确GPIO连接的共享,然后使用应用程序映像将其刻录。设备上电后,Flash的代码将被复制到系统RAM,然后将其复制到设备靴子。

为了与SPI外设进行交互,您需要使用正确的参数进行init和配置它,与之交互,然后释放它。

谢谢,PM_DIALOG.

7个月前

Joachimkr. 0分

Thanks for your answer.

我将使用的GPIO只是免费的GPIO,仅用于控制额外的SPI芯片选择。我将使用一个,它连接到套件基板上的标题。
我会看看prox_reporter示例代码。

我理解,将哪些引脚用于闪光灯 - 只能在Pro套件的交付时跳跃。
要烧它,我明白采取RAM运行二进制(BIN)文件。使用智能工具包。
我需要保留我的额外GPIO,然后初始化I / O单元作为用于闪存的I / O单元格。为了使用我的外设,我需要我自己的chip_select函数,使用我的新gpio,使用设备和任何使用后,我必须用chip_select回到非活动的新gpio引脚。
I can use exactly the same library functions for transmission (SPI controller queue for example).
如果我的SPI设备与相同的参数交谈,则只需要SPI库(?)另一个控制结构。

那是对的吗 ?

我试过这种方法,但可能有一些错误,某个地方。我需要再做一次。

问候,joachim

7个月前

PM_DIALOG.

Hi joachimkr,

您需要选择和配置每次将在哪个设备“谈话”中。诚实地说,我尚未以粗体正确理解您的陈述,但该概念是您应该选择每次使用SPI总线的设备。

谢谢,PM_DIALOG.