使用DA14681 SWD引脚作为ADC

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
6个员额/ 0个新员额
最后发表
mahmed106
离线
最后看到:3个月1个星期前
加入:2019-05-03所
使用DA14681 SWD引脚作为ADC

嗨对话框

我正在使用基于DA14681的板,我想使用6个热敏电阻,为此我必须使用一个ADC引脚,与SWD引脚共享,(SWD CLK和SWDIO)。

我配置了这个大头针,但它没有工作,然后从这个查询,我意识到调试器需要禁用这个大头针工作,(https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。

但仍然没有进展。

首先,我不知道在代码的哪里我需要禁用调试器。我在外设初始化之前做了这个,我认为它禁用了调试器,cz现在JTAG不是编程的板。所以我不得不通过SUOTA烧代码。

如果我的JTAG禁用了这个ADC引脚,我可以通过串行编程一个基于SUOTA的代码吗?

其次,即使禁用了调试器,我的ADC仍然没有读取数据,还有什么我在代码中丢失的?

请帮忙,谢谢

设备:
PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨mahmed106,

嗨mahmed106,

谢谢你的问题。正如所附的论坛帖子中提到的,P2_4用于SWCLK和ADC,所以你应该禁用调试器,以防你想使用ADC引脚。

调试器应该在系统初始化时和在使用peripher_init()函数之前禁用。在peripher_init()中,应该将P2_4配置为ADC引脚。通过这种方式,调试器在您的软件中被禁用,因此您不能使用JTAG接口与QSPI flash进行交互。您可以使用UART接口(erase_qspi_serial_win / program_qspi_serial_win脚本),而不是使用JTAG接口来擦除/编程flash。

如果在应用层禁用调试器,应该首先擦除UART上的flash,然后才能使用JTAG进行编程。在应用程序代码中禁用调试器,并不意味着永久禁用调试器。

另一种可能的解决方案是,每次使用ADC外围块时都将P2_4重新配置为ADC。在使用它捕获ADC之后,您应该将它配置回SWCLK。

谢谢,PM_Dialog

mahmed106
离线
最后看到:3个月1个星期前
加入:2019-05-03所
嗨对话框

嗨对话框

谢谢你的建议,我已经尝试过这个方法了

“另一种可能的解决方案可能是在每次使用ADC外围块时重新配置P2_4为ADC。在使用它捕获ADC之后,您应该将它配置回SWCLK。”

我可以通过JTAG编程,当我禁用调试器,但我的ADC值读取为零,,,,我不知道现在为什么ADC仍然不工作,,

所有其他adc工作正常。

为了让ADC在P2_4引脚上工作,我还需要做什么其他设置吗?

PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨mahmed106,

嗨mahmed106,

谢谢你遵循我的方法。所有您需要做的是在系统初始化或使用P2_4作为ADC引脚之前禁用调试器(当然,首先按照建议重新配置它)。您不应该对P2_4进行任何特殊配置。您能否尝试我的第一种方法并在系统初始化(在调用peripher_init()之前)禁用调试器?之后,应该在peripher_init()中配置P2_4和ADC引脚。

谢谢,PM_Dialog

mahmed106
离线
最后看到:3个月1个星期前
加入:2019-05-03所
是的,我就是这样做的

是的,我已经照你说的做了。,我在periph初始化之前禁用了调试器,并且在periph初始化中我把这个引脚作为ADC(下拉配置)
这个adc仍然不工作,其他adc工作良好。

PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨mahmed106,

嗨mahmed106,

所以,如果调试器被禁用,只有P2_4不作为ADC引脚工作?能否分享一下P2_4配置以及如何使用ADC适配器?

谢谢,PM_Dialog