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

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
6个员额/ 0个新员额
最后发表
joachimkr
离线
最后看到:1个月3个星期前
加入:2018-07-06 08:58
两个不同的SPI设备,带有库中的SPI驱动程序

你好,

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

所需要的是一个单独的芯片选择信号。flash的示例代码使用了带有设置的数据结构。
现在,我需要一个提示,我如何能确保,SPI控制器能够从flash和引导在我的程序我可以免费利用细胞内的flash和在一个截然不同的阶段,另一个时段,利用SPI控制器外围。
我必须写/修改/重用什么,以便在SPI总线上操作2个不同但某种程度上类似的设备?

谢谢你的帮助
约阿希姆

设备:
PM_Dialog
离线
最后看到:2天9小时前
工作人员
加入:2018-02-08 11:03
嗨,约阿希姆,

嗨,约阿希姆,

谢谢你的问题。您能解释一下是什么问题吗?我可以理解,你正计划从外部SPI Flash启动,并使用空单元来存储自己的数据。此外,还将使用另一个SPI外设。DA14531正在从标准引脚启动-请检查表38:从数据表启动序列步骤。启动外部SPI从站是步骤5,表38演示了应该使用的具体引脚。BootROM将切换P01上的SCS,将用应用程序代码编写flash并从那里启动设备。

关于热使用“空闲空间”,你应该通过使用Flash编程从SmartSnippets工具箱读取SPI Flash,并检查应用程序固件存储在哪个地址。在这些地址之后,您可以存储自己的数据。

但是我第一次尝试使用2个信号和2个库函数失败了。

你能指出来吗?

谢谢,PM_Dialog

joachimkr
离线
最后看到:1个月3个星期前
加入:2018-07-06 08:58
您好,感谢您的回复!

您好,感谢您的回复!

在我的第一次尝试中,我使用了示例代码,它验证了与SPI flash的某些交换。然后,我将其中一些代码移动到一个蓝牙应用程序中,并在flash中重用了这些引脚。我使用电线连接我的外设从板到板,并编写SPI处理代码。它现在正在工作,值是通过蓝牙发送的。

现在的挑战是,要同时附加两个SPI设备。我做了一个简单的假设,以重用代码,但使用一个不同的引脚来选择我的外围设备。MISO, CLK, MOSI是并行的(这种方法可以吗?)这并没有在第一步起作用,甚至整个蓝牙部分都死了。

Macronix和我的外设都在相同的设置下正常工作。

我需要建议,以扩展我的基于RAM的代码,所以DA14531将从flash启动。我基本上了解了引脚的用法,但不了解SPI库。

问候,

约阿希姆

PM_Dialog
离线
最后看到:2天9小时前
工作人员
加入:2018-02-08 11:03
嗨,约阿希姆,

嗨,约阿希姆,

外设连接在哪个gpio ?如果你想在BLE项目中拥有SPI flash功能,请查看SDK的prox_reporter示例。

要从SPI Flash引导,您应该只需要创建连接到适当gpio的共享,然后用应用程序映像刻制它。一旦设备启动,Flash中的代码将被复制到System-RAM中,然后设备启动。

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

谢谢,PM_Dialog

joachimkr
离线
最后看到:1个月3个星期前
加入:2018-07-06 08:58
谢谢你的回答。

谢谢你的回答。

我将使用的GPIO,只是一个免费的,只用于控制额外的SPI芯片选择。我将使用一个,它被连接到套件基板的头部。
我将研究prox_reporter示例代码。

我明白了,闪存要用哪些引脚——只有那些在Pro套件交付时可以跳线的引脚。
为了烧录它,我理解为使用RAM操作二进制(bin)文件。使用智能工具箱。
我需要保留我额外的GPIO,然后初始化那个I/O单元格作为一个用于flash。为了使用我的外围设备,我需要我自己的chip_select功能,使用我的新GPIO,使用设备和任何使用后,我必须返回新的GPIO引脚与chip_select回到非活动。
我可以使用完全相同的库函数进行传输(例如,SPI控制器队列)。
如果我的SPI设备使用相同的参数通信,我只需要另一个控制结构的SPI库(?)。

对吗?

我尝试过这种方法,但可能在某个地方出了问题。我需要再做一次。

问候,约阿希姆

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

嗨joachimkr,

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

谢谢,PM_Dialog