我对用于将DA14586连接到外部设备(MSP430)的引脚,用于从串行接口启动(我想使用SPI接口)。
我读取了AN-B-001“从串行接口启动”,并看到引导引脚分配(步骤1 / SPI Master)为P0_0 / SCK,P0_3 / CS,P0_5 / MOSI和P0_6 / MISO。这似乎足够明显,但我在DA14586数据表中阅读的东西让我困惑。Datasheet说:“在引导顺序期间,端口P2的四个SPI引脚用于访问内部闪存”(P2_0 / CLK,P2_3 / EN,P2_4 / DO,P2_9 / DI)。这听起来有点像我一样。数据表是否告诉我有关不同的功能?
一旦我使用串行接口引导了DA14586,我想使用相同的SPI接口控制DA14586。这有可能吗?
关键词:
设备:
嗨TP2017,
586附带嵌入式闪存,OTP报头被预编程,以便使用OTP标题中的“引导特定映射”字段从嵌入式闪存的引脚启动。AN-B-001文档涉及580/581/583系列,启动程序是相同的,但不完全相同,嵌入式闪光灯附带的586不遵循与583相同的架构(也是配有嵌入式闪光灯)。因此,在585/586案例中,在附录G中的文档UM-B-079 DA14585_586 SDK 6软件平台参考文档中介绍了引导过程。因此,究竟究竟是如何从内部闪存中触摸启动(如OTP标题中的适当字段指示)在未从内部闪存中启动后,它将开始执行UART序列,因为它在附录31中描述并继续其余引导协议。启动FW后,您可以根据需要使用引脚。
由于MT_dialog
感谢您的回复。不过我还是不确定别针的分配。UM-B-079 DA14585_586 SDK 6软件平台参考的附录G列出了步骤A引导过程的P0_0/SCK、P0_3/CS、P0_6/MISO和P0_5/MOSI。我还注意到DA14586 datasheet表21中指定的相同pinout。但是,我在表1引脚描述(DA14586 datasheet第19页)中显示了P2_0/SPI_CLK, P2_3/SPI_EN, P2_4/SPI_DO,和P2_9/SPI_DI,并有一个注释“注意:在启动序列期间,端口P2的四个SPI引脚用于访问内部Flash内存。因此,这些引脚不应被重绘或用于任何其他目的。”这是让我困惑的部分。我想确保我没有误读文档和分配错误的引脚之前,我提交到一个板设计。
谢谢
嗨TP2017,
如上所述,585和586的引导加载程序是相同的,这两个设备之间的差值是586具有内部闪光,以便存储代码,因为它具有内部闪光,并且大多数可能是用户想要的存储一些代码,由于此OTP特殊标志引导ROM代码不会直接执行串行引导过程,但它将首先检查在该字段中声明的特殊引脚上的SPI接口,如果它无法从中启动它然后将继续执行串行引导。当设备从外部闪光灯找到FW时,它将将代码镜像到585的RAM,引脚将根据您的FW重新映射,但是启动过程将结束,镜像过程将完成,因此您不会再次访问闪光灯以获取读取代码,但为了读取Flash的任何数据,您需要将FW的引脚配置为SPI引脚,以便访问内部闪存。但是,请注意,如果您计划在这些引脚上连接任何外部传感器,则应确保它们不会与引导一起使用
过程。
由于MT_dialog
哪个串行引导针头?
我想我理解你最后的评论,但我想在我订购原型板之前确定。
我正在为DA14586寻找串行启动的特定pinout。是P0_0/SCK, P0_3/CS, P0_6/MISO,和P0_5/MOSI(表21,p. 45的数据表)还是P2_0/SPI_CLK, P2_3/SPI_EN, P2_4/SPI_DO,和P2_9/SPI_DI(表1 p. 19的数据表)?数据表似乎自相矛盾。
(从表1,p.19:“注意:在引导序列期间,端口P2的四个SPI引脚用于访问内部闪存。因此,这些引脚不得重新映射或用于任何其他目的。”)这意味着P2 SPI引脚用于DA14586上的串行引导?
谢谢
嗨TP2017,
如上所述,586使用与585相同的引导加载程序,因此引导加载程序过程完全相同,但由于586具有嵌入式闪存,因此OTP标题字段引导特定映射从出厂刻录,以便首先从P2_0启动/ spi_clk,p2_3 / spi_en,p2_4 / spi_do和p2_9 / spi_di,如果失败,它将转到并执行标准引导加载程序过程。我承建了数据表有点令人困惑,因为它描述了标准序列,而不是烧毁的OTP字段的586选项,将与数据表的作者一起检查。
是的,这就是我在整个帖子中提到的。
由于MT_dialog
非常感谢您的帮助。
你好
我使用的是内置flash的DA14586。我的传感器之一是通过spi接口连接到da14586作为这个P0_0/SCK, P0_3/CS, P0_6/MISO,和P0_5/MOSI。
我正在配置这些spi引脚像GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_3, OUTPUT, PID_SPI_EN, true);
如果1号
ARCH_PUTS(“测试1 \ n \ r”);
# endif
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_0, OUTPUT, PID_SPI_CLK, false);
如果1号
arch_puts(“测试2 \ n \ r”);
# endif
gpio_configurepin(gpio_port_0,gpio_pin_6,输出,pid_spi_do,false);
如果1号
arch_puts(“测试3 r \ n \”);
# endif
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_5, INPUT, PID_SPI_DI, false);
但它没有启动。
所以,我如何通过SPI使我的传感器接口或者是什么是正确的竞争来做这件事。
感谢和问候
辛格小朋友!
嗨Jasmeet Singh,
你使用GPIO作为传感器有什么特殊的原因吗?你有没有试着把它连接到其他gpio中?
谢谢,PM_Dialog
你好
在第45页数据表21 (DA14586)。他们已经为spi master提供了外围引脚映射,这就是我们使用这些gpios作为我们传感器的spi线的原因。
不,我们没有尝试其他的gpios。
感谢和问候
辛格小朋友!
嗨Jasmeet Singh,
这是引导顺序,BootROM检查特定的gpio,以便从不同的串行设备引导。通常,您可以使用任何GPIO作为SPI—您也需要在您的固件中配置它。同时,能否用逻辑分析仪工具探测SPI信号并共享捕获?
谢谢,PM_Dialog