我对将DA14586连接到外部设备(MSP430)的引脚感到困惑,以便从串行接口引导(我想使用SPI接口)。
我读AN-B-001“从串行接口启动”,看到启动引脚分配(步骤1/SPI Master)是P0_0/SCK, P0_3/CS, P0_5/MOSI,和P0_6/MISO。这似乎足够清楚了,但我在DA14586数据表中读到的一些东西让我困惑。数据表显示“在引导序列中,P2端口的四个SPI引脚被用来访问内部Flash内存”(P2_0/CLK, P2_3/EN, P2_4/DO, P2_9/DI)。这对我来说是一样的。数据表是否告诉我不同的函数?
一旦我使用串行接口引导DA14586,我想使用相同的SPI接口控制DA14586。这有可能吗?
关键词:
设备:
嗨TP2017,
586自带一个嵌入式flash, OTP头是预先编程的,以便使用OTP头中的“boot specific mapping”字段从嵌入式flash的引脚启动。an - b -001文件涉及580/581/583系列,启动过程完全相同但不完全相同,586附带嵌入式flash不遵循与583(也附带嵌入式flash)相同的架构。因此,在585/586案例中,引导过程在文档UM-B-079 DA14585_586 SDK 6软件平台参考文档附录g中进行了描述。它将检查从内部flash引导OTP(适当的字段头指示)从内部flash引导失败后将开始执行附录中描述的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有一个内部flash存储代码,因为它有一个内部flash和最有可能的用户想存储一些代码,由于这OTP特殊标志的引导rom代码不会直接执行串行引导过程,但它将首先检查特殊销上的SPI接口中声明该字段,如果不能从这将引导去执行串行引导。当设备发现你的fw从外部flash,将镜子代码的内存585和别针将remmaped根据你的弗兰克-威廉姆斯,但引导程序将结束和镜像过程将完成,所以你不会有再次访问flash阅读代码,但是为了从flash读取任何数据,你将需要配置从fw的引脚作为SPI引脚,以便访问内部flash。但是要注意,如果你打算将任何外部传感器连接到这些引脚上,你应该确保它们不会干扰启动
过程。
由于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有一个嵌入式flash,为了首先从P2_0/SPI_CLK、P2_3/SPI_EN、P2_4/SPI_DO引导,从工厂刻制了特定于OTP Header字段的Boot映射。和P2_9/SPI_DI,如果失败,它将执行标准引导加载程序。我理解,这个数据表有点混乱,因为它描述了标准序列,而不是586选项与烧伤的OTP字段,将与数据表的作者检查它。
是的,这就是我在文章中一直提到的。
由于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, OUTPUT, 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或什么是正确的程序来做这。
感谢和问候
辛格小朋友!
你好,小朋友!辛格
有什么特别的原因,为什么您使用的传感器的GPIO ?你试过在其他gpio中连接它吗?
谢谢,PM_Dialog
嗨
在第45页数据表(DA14586)的21。他们给出了外围引脚映射spi主人,这是我们使用这些gpios作为spi线为我们的传感器的原因。
没有,我们没有尝试其他gpios。
感谢和问候
辛格小朋友!
你好,小朋友!辛格
这是BootROM为了从不同的串行设备启动而检查特定gpio的启动顺序。一般来说,你可以使用任何GPIO作为SPI -你也需要在你的固件中配置它。同时,您是否可以使用逻辑分析仪工具探测SPI信号并共享捕获?
谢谢,PM_Dialog