DA1469x
3个月前
发布的jerryjuan225点 4回复我们正在使用sdk_10.0.10.118,并希望将gpio输出从活动设置为非活动,但失败了。
你能帮我检查一下有什么配置缺失吗?
hw_gpio_set_pin_function(HW_GPIO_PORT_0, HW_GPIO_PIN_12, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_GPIO);
hw_gpio_configure_pin_power (HW_GPIO_PORT_0 HW_GPIO_PIN_12 HW_GPIO_POWER_V33);
hw_gpio_configure_pin(HW_GPIO_PORT_0, HW_GPIO_PIN_12, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_GPIO, true);
hw_gpio_pad_latch_enable (HW_GPIO_PORT_0 HW_GPIO_PIN_12);
OS_DELAY_MS (1000);
hw_gpio_set_inactive (HW_GPIO_PORT_0 HW_GPIO_PIN_12);
OS_DELAY_MS (1000);
hw_gpio_set_active (HW_GPIO_PORT_0 HW_GPIO_PIN_12);
OS_DELAY_MS (1000);
hw_gpio_set_inactive (HW_GPIO_PORT_0 HW_GPIO_PIN_12);
3个月前
嗨,杰瑞,
P0_12和P0_13是CMAC的SWD。
请参阅数据表40.2.1节可编程引脚分配和表146:特定信号的固定分配。请参阅299页的注释1。
DA1469x数据表://www.xmece.com/sites/default/files/2020-12/da1469x_datasheet_3v2.pdf
默认情况下,CMAC调试器是启用的-参见bsb_debug.h中的dg_configENABLE_CMAC_DEBUGGER。
因此,为了禁用CMAC调试器并使用P0_12或P0_13作为GPIO,请在自定义配置文件(custom_config_XXX.h)中将dg_configENABLE_CMAC_DEBUGGER设置为0。
请参阅下面用于在peripher_init()中切换P0_12和P0_13的代码片段。
在custom_config_XXX.h:
#定义dg_configENABLE_CMAC_DEBUGGER (0)
在periph_init ():
hw_gpio_configure_pin(HW_GPIO_PORT_0, HW_GPIO_PIN_12, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_GPIO, false);hw_gpio_configure_pin(HW_GPIO_PORT_0, HW_GPIO_PIN_13, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_GPIO, false);hw_gpio_pad_latch_enable (HW_GPIO_PORT_0 HW_GPIO_PIN_12);hw_gpio_pad_latch_enable (HW_GPIO_PORT_0 HW_GPIO_PIN_13);hw_clk_delay_usec (100);hw_gpio_set_active (HW_GPIO_PORT_0 HW_GPIO_PIN_12);hw_gpio_set_active (HW_GPIO_PORT_0 HW_GPIO_PIN_13);hw_clk_delay_usec (100);hw_gpio_set_inactive (HW_GPIO_PORT_0 HW_GPIO_PIN_12);hw_gpio_set_inactive (HW_GPIO_PORT_0 HW_GPIO_PIN_13); hw_gpio_pad_latch_disable(HW_GPIO_PORT_0, HW_GPIO_PIN_12); hw_gpio_pad_latch_disable(HW_GPIO_PORT_0, HW_GPIO_PIN_13);
谢谢,PM_Dialog
3个月前
嗨,杰瑞,
当锁定GPIO意味着激活pad并将其连接到数字逻辑。当松开时,它断开pad与数字逻辑的连接,并保持pad状态。我能够使用您提供的代码切换peripher_init()中的GPIO。在代码中您试图切换P0_12的哪里?
为了使用CMAC调试器PADS作为gpio,你应该:
1.按照我之前的回复,关闭CMAC调试器
2.配置pad为GPIOS。
参见下面切换P0_12的示例代码:
hw_gpio_configure_pin(HW_GPIO_PORT_0, HW_GPIO_PIN_12, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_GPIO, false);hw_gpio_pad_latch_enable (HW_GPIO_PORT_0 HW_GPIO_PIN_12);hw_clk_delay_usec (100);hw_gpio_set_active (HW_GPIO_PORT_0 HW_GPIO_PIN_12);hw_clk_delay_usec (100);hw_gpio_set_inactive (HW_GPIO_PORT_0 HW_GPIO_PIN_12);hw_gpio_pad_latch_disable (HW_GPIO_PORT_0 HW_GPIO_PIN_12);
谢谢,PM_Dialog
3个月前
设置引脚高/低后,引脚状态没有相应改变,不确定发生了什么。