i.MX RT1050 ADC2调试工作总结
2022/6/19 23:20:58
本文主要是介绍i.MX RT1050 ADC2调试工作总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前段时间,小编在帮客户完成一个i.MX RT1050的项目,在项目中会用到ADC2去采样压力传感器的值,由于项目前期,小编只能在MIMXRT1050 EVK开发板上做验证,中间遇到一些软件和硬件的问题,虽然问题现在回想起来都很不起眼,但在当时还是很头疼的,所有小编在这里复盘一下当时遇到的问题及解决过程。 ADC_ETC触发ADC2代码实现 基于SDK软件包中的evkbimxrt1050_adc_etc_software_trigger_conv例程,使用ADC_ETC模块中trigger chain功能依次不间断地采样ADC2_IN5,ADC2_IN6,ADC2_IN8引脚(具体引脚对应关系如表1所示),在连续完成3个ADC采样后,触发中断,读取对应地采样值,完整代码请参考附件。 代码重点修改项如下:- 禁止TSC_BYPASS功能
- /* Initialize the ADC_ETC. */
- ADC_ETC_GetDefaultConfig(&adcEtcConfig);
- adcEtcConfig.XBARtriggerMask = 0x10U; /* Enable the external XBAR trigger4. */
- adcEtcConfig.enableTSCBypass = false;
- ADC_ETC_Init(DEMO_ADC_ETC_BASE, &adcEtcConfig);
- 增加B2B功能
- /* Set the external XBAR trigger0 chain0 configuration. */
- adcEtcTriggerChainConfig.enableB2BMode = true;
- adcEtcTriggerChainConfig.ADCHCRegisterSelect = 1U
- << DEMO_ADC_CHANNEL_GROUP0; /* Select ADC_HC0 register to trigger. */
- adcEtcTriggerChainConfig.ADCChannelSelect =
- DEMO_ADC_ETC_CHANNEL1; /* ADC_HC0 will be triggered to sample Corresponding channel. */
- //adcEtcTriggerChainConfig.InterruptEnable = kADC_ETC_Done0InterruptEnable; /* Enable the Done0 interrupt. */
- #if defined(FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN) && FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN
- adcEtcTriggerChainConfig.enableIrq = true; /* Enable the IRQ. */
- #endif /* FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN */
- ADC_ETC_SetTriggerChainConfig(DEMO_ADC_ETC_BASE, 4U, 0U,
- &adcEtcTriggerChainConfig); /* Configure the trigger0 chain0. */
- adcEtcTriggerChainConfig.ADCHCRegisterSelect = 1U
- << DEMO_ADC_CHANNEL_GROUP1; /* Select ADC2_HC1 register to trigger. */
- adcEtcTriggerChainConfig.ADCChannelSelect =
- DEMO_ADC_ETC_CHANNEL2; /* ADC_HC1 will be triggered to sample Corresponding channel. */
- //adcEtcTriggerChainConfig.InterruptEnable = kADC_ETC_Done0InterruptEnable; /* Enable the Done1 interrupt. */
- #if defined(FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN) && FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN
- adcEtcTriggerChainConfig.enableIrq = true; /* Enable the IRQ. */
- #endif /* FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN */
- ADC_ETC_SetTriggerChainConfig(DEMO_ADC_ETC_BASE, 4U, 1U,
- &adcEtcTriggerChainConfig); /* Configure the trigger4 chain1. */
- adcEtcTriggerChainConfig.ADCHCRegisterSelect = 1U
- << DEMO_ADC_CHANNEL_GROUP2; /* Select ADC2_HC2 register to trigger. */
- adcEtcTriggerChainConfig.ADCChannelSelect =
- DEMO_ADC_ETC_CHANNEL3; /* ADC_HC1 will be triggered to sample Corresponding channel. */
- //adcEtcTriggerChainConfig.enableB2BMode = false;
- //adcEtcTriggerChainConfig.InterruptEnable = kADC_ETC_Done0InterruptEnable; /* Enable the Done0 interrupt. */
- adcEtcTriggerChainConfig.InterruptEnable = kADC_ETC_Done0InterruptEnable; /* Enable the Done1 interrupt. */
- #if defined(FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN) && FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN
- adcEtcTriggerChainConfig.enableIrq = true; /* Enable the IRQ. */
- #endif /* FSL_FEATURE_ADC_ETC_HAS_TRIGm_CHAIN_a_b_IEn_EN */
- ADC_ETC_SetTriggerChainConfig(DEMO_ADC_ETC_BASE, 4U, 2U,
- &adcEtcTriggerChainConfig); /* Configure the trigger4 chain2. */
Debug技巧 在开发中,我们经常会利用debug工具(如Jlink, LPC-link2等)来观察代码运行的过程和结果,尤其是在代码运行结果与预期有出入的时候。同时,在开发过程中,使用printf打印一下信息也是一种常用的debug手段,在这里,小编分享一个宏打印的的debug技巧,帮助我们快速定位异常情况发生的位置。
具体代码如下,其中宏定义__FILE__,__func__,__LINE__分别代表调试信息所在的文件,函数及行号。除此之外,常用的宏还有:__DATE__、__TIME__,分别代表当前的编译日期与时间。
- #define LOG(frm,args...) {\
- PRINTF("[%s : %s : %d]\n",__FILE__,__func__,__LINE__);\
- PRINTF(frm,##args);\
- PRINTF("\n");\
- }
硬件的“坑” 在使用MIMXRT1050 EVK开发板进行验证过程中,发现板子上的一个‘小坑’,如果将WDOG_B (GPIO_B1_13)脚配置成GPIO输出高速的高低电平变换,会触发MCU复位,原因是UM805RE的MR脚会被拉低。
这篇关于i.MX RT1050 ADC2调试工作总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享
- 2024-11-22ansible 的archive 参数是什么意思?-icode9专业技术文章分享
- 2024-11-22ansible 中怎么只用archive 排除某个目录?-icode9专业技术文章分享
- 2024-11-22exclude_path参数是什么作用?-icode9专业技术文章分享
- 2024-11-22微信开放平台第三方平台什么时候调用数据预拉取和数据周期性更新接口?-icode9专业技术文章分享
- 2024-11-22uniapp 实现聊天消息会话的列表功能怎么实现?-icode9专业技术文章分享
- 2024-11-22在Mac系统上将图片中的文字提取出来有哪些方法?-icode9专业技术文章分享
- 2024-11-22excel 表格中怎么固定一行显示不滚动?-icode9专业技术文章分享
- 2024-11-22怎么将 -rwxr-xr-x 修改为 drwxr-xr-x?-icode9专业技术文章分享
- 2024-11-22在Excel中怎么将小数向上取整到最接近的整数?-icode9专业技术文章分享