[原创] nrf52832调试记录之IO引脚配置

志心工作室   2020-11-18 11:56 楼主

    由于本工作室开发的蓝牙心电记录模块采用的是nrf52832作为主控芯片,在开发过程中遇到一些问题会陆续和大家分享:

    下图是nrf52832芯片QFN48封装的引脚图 image.png

其中P0.02~P0.05和P0.28~P0.31可配置为ADC采集引脚,其他的IO脚可任意分配到各个外设

其中P0.09和P0.10默认分配到NFC功能外设,如果需要设置为普通IO或映射到其他外设需要添加宏CONFIG_NFCT_PINS_AS_GPIOS

image.png

P0.21默认作为复位引脚,如果需要设置为普通IO或映射到其他外设需删除宏CONFIG_GPIO_AS_PINRESET 

image.png 但是实际调试删除后无效,debug观察发现PSELRESET还是连接到默认的复位引脚

image.png 查找源码发现下面的if语句始终不成立,因此需要手动修改 NRF_UICR->PSELRESET[0] NRF_UICR->PSELRESET[1]至需要的reset引脚或断开连接,我在debug调试的时候直接修改寄存器至空着的IO脚

由于此寄存器掉电不丢失,所以可以正常修改

/* Bit 31 : Connection */
#define UICR_PSELRESET_CONNECT_Pos (31UL) /*!< Position of CONNECT field. */
#define UICR_PSELRESET_CONNECT_Msk (0x1UL << UICR_PSELRESET_CONNECT_Pos) /*!< Bit mask of CONNECT field. */
#define UICR_PSELRESET_CONNECT_Connected (0UL) /*!< Connect */
#define UICR_PSELRESET_CONNECT_Disconnected (1UL) /*!< Disconnect */

 

 #if defined (CONFIG_GPIO_AS_PINRESET)
        if (((NRF_UICR->PSELRESET[0] & UICR_PSELRESET_CONNECT_Msk) != (UICR_PSELRESET_CONNECT_Connected << UICR_PSELRESET_CONNECT_Pos)) ||
            ((NRF_UICR->PSELRESET[1] & UICR_PSELRESET_CONNECT_Msk) != (UICR_PSELRESET_CONNECT_Connected << UICR_PSELRESET_CONNECT_Pos)))
{
            NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
            while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
            NRF_UICR->PSELRESET[0] = 0xffff;
            while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
            NRF_UICR->PSELRESET[1] = 0xffff;
            while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
            NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
            while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
            NVIC_SystemReset();
        }
    #endif

 

串口通信引脚

    配置串口通信时,当串口接收引脚悬空,并使能接收时容易出现错误,导致程序死在串口接收错误里,可在RX引脚接上拉电阻解决

 

由于正常使用的32768时钟所以未作IO配置

 

本帖最后由 志心工作室 于 2020-11-18 14:38 编辑

回复评论 (4)

谢谢分享~有那种demo开发板之类的吗?可以给网友体验一下

玩板看这里: https://bbs.eeworld.com.cn/elecplay.html EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
点赞  2020-12-8 20:37
引用: okhxyyo 发表于 2020-12-8 20:37 谢谢分享~有那种demo开发板之类的吗?可以给网友体验一下

https://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=1149010&page=1#pid3030385

这个是样品测试,现在只有小批量做了一些,后续量产后可以给做穿戴式产品或医疗方面的网友体验

专注医疗健康解决方案
点赞  2020-12-12 20:30
引用: 志心工作室 发表于 2020-12-12 20:30 https://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=1149010&page=1#pid3030385 这个是样品 ...

那祝你这边一切顺利呀

玩板看这里: https://bbs.eeworld.com.cn/elecplay.html EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
点赞  2020-12-14 09:03

不错的分享

点赞  2020-12-20 12:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复