道歉,如果此问题已被问到。我们最近购买了许多DA14531模块,可以集成到使用项目中。目前我们还在调查阶段。
要调查模块的工作原理,我将其连接到数据表第7节中推荐的STM32L552微控制器(MCU):
* J14 TX在MCU上的DA14531到LPUART1 RX引脚。
* J10 RX上的DA14531到LPUART1的TX引脚上的单片机。
* J12 RST在MCU上的GPIO PIN上,左转浮动。
我天真地假设模块将在制造商的命令中预先配置无附带的指令,但我并没有在57600bps或115200bps的模块上关闭模块的简单“ATI”识别命令。
据推测,我需要在使用之前用无附加的.hex文件闪现模块。但是,该模块已经焊接在电路中并连接到MCU。我目前没有开发板可以单独刷新模块。一旦我们去生产,我们将想要刷新和/或升级模块在电路中,而不是在焊接之前必须单独闪烁它们。
是否有一些方法可以使用上面的引脚配置将模块放入引导加载模式?我发现代码“DA145xx_SDK/6.0.14.1114/utilities/flash_programmer”在SDK中,这似乎是运行在模块上执行引导加载的代码。我可以根据这些信息很容易地编写自己的flash实用程序来在STM32L552中运行。代码似乎表明引导加载程序使用单线UART模式,为此我可能不得不重新安排到MCU的线路。我有内联电阻在电路中,所以重新安排电线不应该是一个大的戏剧,我们将修复PCB在下一个原型。
什么是我需要用来强制DA14531模块进入其引导加载程序的序列,是否模块已经闪烁或不闪烁?拉高,等一下?切换一些其他针?目前从文档中对我来说并不清楚。描述引导序列的文档非常方便。扫描时,我可能会错过它,很抱歉,如果我错过了显而易见的事情。
希望有一种方法来做这与一个刚从工厂出来的DA14531模块。
嗨rhys weatherley,
感谢您在线的问题,并欣赏我们的微小模块BLE解决方案。
在没有预先编程的固件的情况下,模块即将到来,因此在使用之前,您需要闪存它(在壳体中的无附件FW)。
它可以通过P05上的单线UART或通过JTAG接口进行编程。如果您有任何Dialog dk,您可以使用它通过JTAG对模块进行编程。所有DA145xx开发套件包含一个Segger J-Link设备,提供串行线调试(SWD)能力。默认情况下,此J-Link设备连接到开发工具包板上的DA145xx设备,但是也可以将其连接到您自己的硬件,允许开发工具包板充当调试探针。请参阅以下教程的更多信息:
http://lpccs-docs.dialog-semiconductor.com/Tutorial_SDK6/debug_probe.html
老实说,我不能理解为什么你需要flash是一个引导加载程序。该模块和DA14531 SoC通常从特定引脚启动,启动过程包括非常指定的步骤。
我建议首先退房AN-B-072:从OTP和串行接口启动DA14531应用笔记,如描述了使用串行接口(如I2C,UART,SPI)以及如何将DA14531将固件编程到Flash,EEPROM或OTP内存中的可用引导选项。
在第4节中,可以找到引导序列和引导引脚。
根据该模块的数据表,J9(P0_10 / SWDIO)和J10(P0_2 / SWCLK)适用于SWD接口,如默认设置。因此,这意味着不可能为UART RX使用J10。
根据DA14631数据表,SWD信号映射由sys_ctrl_reg [debugger_enable]定义。但是,默认情况下,这些信号映射在端口上。替代的SWD映射由sys_ctrl_reg [debugger_Enable]比特字段选择。RST默认功能可以由HWR_CTRL_REG [DISABLE_HWR]位禁用。
因此,如果您想使用J10(P0_2)作为UART引脚,则应重新映射SWCLK并相应地在软件上配置Skeptic PIN。
如果您检查CodeLess的源代码并打开user_peri_setup .h文件,您将看到在P0_6上配置了UART TX,在P0_5上配置了UART RX。您可以根据您的要求更改配置。记住,如果你计划使用任何可用的睡眠模式,你也需要连接RTS/CTS信号。
谢谢,PM_Dialog
谢谢你提供的信息。我会调查一下,看看我是否可以利用1线接口来做我想做的事情。
“要诚实地,我无法理解为什么你需要闪存的原因是带有引导加载程序。模块和通常从特定引脚启动DA14531 SoC,引导过程包括非常指定的步骤。”
我们希望降低设备的复杂性尽可能地用于生产目的。如果可以通过UART编程新固件,则我们还可以从MCU端执行现场固件更新。这与JTAG很难做到。
您能否建议一个替代对话框BLE模块,如SmartBond TINY,它用AT命令设置用于即插即用操作的AT命令?我们选择主要是因为它的功率特性低。我们不需要在模块上运行自己的代码 - 我们有一个单独的芯片。
嗨rhys weatherley,
谢谢你的回复。我们已从论坛中采取离线方式,并将要求安富利AU跟进并直接联系您的注册电子邮件地址。
谢谢,PM_Dialog
如何将接收器安装在非蓝牙设备中进行功率传输
嗨奇迹托马斯,
谢谢你的评论。你能澄清你想要做的事情吗?
谢谢,PM_Dialog