跳过主要内容

控制两个SPI奴隶:Flash为SUOTA加通用SPI IC

DA14585

2年前

发布的Firefox200540分 1回复
0的问题

你好,

我想使用SPI与外部闪光为SUOTA。flash SPI的引脚配置类似于Dev Kit Basic Board[1]。
另外,我想控制一个额外的CS引脚选择设备的第二个奴隶。

1.参考SUOTA示例演示[2],不需要spi_flash驱动程序[3],因为引导例程会检查是否有任何外部flash,如果有,程序将从外部flash加载。我在数据表[4]中的BootROM序列中读到这一点。我的假设对吗?

2.是否有可能使用CS引脚的第二个奴隶在不同的端口比SPI接口?
我需要它在端口2引脚1。但是就像下面的代码一样,我不认为这是可行的,因为引脚是与端口相关的。这是正确的吗?

user_periph_setup.h
' ' '
#定义SPI_GPIO_PORT GPIO_PORT_0
#定义SPI_CLK_PIN GPIO_PIN_0
* # define SPI_CS_PIN GPIO_PIN_3 *
#定义SPI_DI_PIN GPIO_PIN_5
#定义SPI_DO_PIN GPIO_PIN_6
' ' '

user_periph_setup.c
' ' '
*GPIO_ConfigurePin(SPI_GPIO_PORT, SPI_CS_PIN, OUTPUT, PID_SPI_EN, true)
GPIO_ConfigurePin(SPI_GPIO_PORT, SPI_CLK_PIN, OUTPUT, PID_SPI_CLK, false);
GPIO_ConfigurePin(SPI_GPIO_PORT, SPI_DO_PIN, OUTPUT, PID_SPI_DO, false);
GPIO_ConfigurePin(SPI_GPIO_PORT, SPI_DI_PIN, INPUT, PID_SPI_DI, false);
' ' '

3.如果我想使用SUOTA特性,另外控制第二个SPI奴隶。我必须使用哪个驱动程序?只有SPI驱动[5]?

4.spi_flash项目[6]仅用于检查SPI接口是否正常工作,与SUOTA无关。这是正确的吗?

硬件和SDK版本:
* DA14585
* SDK 6.0.10.511

[1]https://support.dialog-semiconductor.com/system/files/resources/E-DA145..。
[2]https://support.dialog-semiconductor.com/system/files/resources/Trainin..。
[3] 6.0.10.511 \ sdk \ \司机\ spi_flash平台
[4]https://support.dialog-semiconductor.com/system/files/resources/DA14585..。
[5] 6.0.10.511 \ sdk \ \司机\ spi的平台
[6] 6.0.10.511 \ \ target_apps \ peripheral_examples \ spi \ spi_flash项目

谢谢,并致以良好的问候!

2年前

PM_Dialog

嗨Firefox2005,

关于BootROM序列,它独立于spi_flash驱动程序和SUOTA功能。你可以控制第二个奴隶与一个额外的CS引脚选择设备如你提到的,但你应该确保第二个SPI奴隶是不活动的过程。gpio默认为零,它们是低激活的,所以这意味着第二个SPI从是默认激活的。为了避免这种情况,您可以添加一个上拉,以便在引导过程中使其处于非活动状态,并确保DA14585将从外部SPI flash引导。既然您这样做了,那么您就可以拥有SUOTA功能,并且可以通过将CS配置为低电平来激活第二个从服务器。如果您想使用SUOTA特性并额外控制第二个SPI从服务器,可以使用SPI驱动程序。您还正确地提到了spi_flash项目没有实现SUOTA功能,它演示了如何使用SPI Flash驱动程序初始化、读取、写入和擦除SPI Flash内存。

谢谢,PM_Dialog