我对用于将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中列出了P0_0/SCK、P0_3/CS、P0_6/MISO和P0_5/MOSI的步骤A引导过程。我还注意到DA14586 datasheet表21中指定的相同pinout。然而,我在表1引脚描述(p. 19的DA14586 datasheet),它显示了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
哪个串行引导pinout?
我想我理解你最后的评论,但我想在订购原型板之前确定一下。
我正在寻找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
非常感谢你的帮助。
你好
我使用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页数据表(DA14586)的21。他们给出了外围引脚映射spi主人,这是我们使用这些gpios作为spi线为我们的传感器的原因。
没有,我们没有尝试其他gpios。
感谢和问候
辛格小朋友!
嗨Jasmeet Singh,
这是BootROM为了从不同的串行设备启动而检查特定gpio的启动顺序。一般来说,你可以使用任何GPIO作为SPI -你也需要在你的固件中配置它。同时,您是否可以使用逻辑分析仪工具探测SPI信号并共享捕获?
谢谢,PM_Dialog