两个不同的SPI设备,带有库中的SPI驱动程序

了解更多常见问题教程

6个职位/0个新职位
最后一篇文章
约阿希姆克尔
离线
最后一次见到:3周4天前
已加入:2018-07-06 08:58
两个不同的SPI设备,带有库中的SPI驱动程序

你好,

我正在为DA14531开发一个带有两个SPI设备的定制板。两者在频率、敏感边缘、芯片选择极性方面使用相同的设置。
一个是外设,另一个应该是Macronix的flash,它已经在DA14531的Pro开发工具包中了。
我用Keil测试了我的软件,通过重写一些细节重用了SPI代码示例,编写了我的特定处理程序,它正在工作。现在,下一阶段:我想从Macronix flash启动。所以我需要一个新的芯片选择信号。我知道I/O引脚的保留、初始化和使用顺序。
但是我第一次尝试有两个信号和两个库函数失败了。

What is required, is a separate chip select signal. The example code for the flash is using a data structure with settings which is used.
现在,我需要一个提示,如何确保SPI控制器能够从flash启动,在我的程序中,我可以使用flash中的空闲单元,在一个非常不同的阶段,另一个时隙,使用SPI控制器作为我的外设。
为了在SPI总线上操作两个不同但相似的设备,我必须写/修改/重用什么?

谢谢你的帮助
约阿希姆

设备:
PM\U对话框
离线
最后一次见到:2天16小时前
工作人员
已加入:2018-02-08 11:03
你好,约阿希姆,

你好,约阿希姆,

谢谢你的问题。你能解释一下是什么问题吗?我可以理解,您计划从外部SPI闪存启动,并使用空单元存储您自己的数据。此外,还将使用另一个SPI外围设备。DA14531是从标准引脚引导-请查看数据表中的表38:引导顺序步骤。外部SPI从机的引导是第5步,表38说明了应使用的特定引脚。BootROM将切换P01上的SCS,闪存用应用程序代码编程,设备从此处引导。

关于如何使用“可用空间”,应使用SmartSnippets工具箱中编程的闪存读取SPI闪存,并检查存储应用程序固件的地址。在这些地址之后,您可以存储自己的数据。

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

你能指出一下吗?

谢谢,下午好

约阿希姆克尔
离线
最后一次见到:3周4天前
已加入:2018-07-06 08:58
你好,谢谢回复!

你好,谢谢回复!

In my first attempt, I used the example code, which verifies some exchange with the SPI flash. Then, I moved some of this code into a bluetooth application and reused those pins for the flash. I attached my peripheral using wires from board to board and wrote the SPI handling code. It is working now, values are sent via bluetooth.

现在,面临的挑战是,两个SPI设备都要连接。我做了一个简单的假设,重新使用代码,但只是使用不同的引脚芯片选择我的外设。味噌、CLK、MOSI都是平行的(这样可以吗?)这在第一步就不起作用了,甚至整个蓝牙部分都死了。

两者,Macronix和我的外设工作在相同的设置,正确。

我需要建议,以扩展我的RAM为基础的代码,使DA14531将启动闪存。我基本上了解pin的用法,但不了解SPI库。

问候语,

约阿希姆

PM\U对话框
离线
最后一次见到:2天16小时前
工作人员
已加入:2018-02-08 11:03
你好,约阿希姆,

你好,约阿希姆,

外设连接在哪个gpio中?如果您想在BLE项目上使用SPI flash功能,请查看SDK的proxïu reporter示例。

要从SPI Flash启动,您只需要创建连接到正确gpio的共享,然后将其与应用程序映像一起刻录。一旦设备通电,闪存中的代码将被复制到系统RAM中,然后设备启动。

为了与SPI外围设备交互,您需要初始化并用正确的参数配置它,与is交互,然后释放它。

谢谢,下午好

约阿希姆克尔
离线
最后一次见到:3周4天前
已加入:2018-07-06 08:58
谢谢你的回答。

谢谢你的回答。

我将使用的GPIO,只是一个免费的,只用于控制额外的SPI芯片选择。我将使用一个,这是有线连接到一个标题上的基础板的工具包。
我将研究prox\u reporter示例代码。

我知道,哪些引脚将用于闪光灯-只是那些,可以跨接,在专业套件交付。
To burn it, I understood to take the RAM operating binary (bin) file. Using the smart toolkit.
我需要保留额外的GPIO,然后将I/O单元初始化为用于闪存的单元。为了使用我的外设,我需要我自己的chip\u select功能,使用我的新GPIO,使用设备,并且在任何使用之后,我必须将chip\u select的新GPIO pin返回到非活动状态。
我可以使用完全相同的brary functions for transmission (SPI controller queue for example).
如果我的SPI设备使用相同的参数进行通信,我只需要为SPI库(?)使用另一个控制结构。

对吗?

I tried that approach but there might has been some bug, somewhere.I need to do it again.

Regards, Joachim

PM\U对话框
离线
最后一次见到:2天16小时前
工作人员
已加入:2018-02-08 11:03
你好,约阿希姆克尔,

你好,约阿希姆克尔,

您需要选择并配置每次“通话”的设备。老实说,我还没有正确理解你的粗体陈述,但概念是,你应该选择哪个设备采取的SPI总线每次。

谢谢,下午好