PIC16(L)F1704/8 踩坑记录一、慎用 RA5 = 0,而应使用LATA5 = 0配置GPIO电平

20240607更新:
        异常品重新更新烧录测试了,发现使用LATx寄存器去配置IO也是有问题的,还是RA5引脚还是配置错误的。做了如下测试:
        1、怀疑上电时电源不稳,分别使用PORTx 和 LATx寄存器执行GPIO初始化前前延时100ms,等待稳定,实测无效,NG,但是LATx配置GPIO出现异常的概率明显降低了些;而且只要功耗待机功耗变高了,无论如何再重新上电,功耗均是异常的,除非重新更新程序;
        2、在main函数while(1)循环执行 RA5 = 0和LATA5 = 0,功耗正常,反复测试未在出现功耗异常,GPIO电平保持为低。

 

PS:  以上为更新内容,踩坑过程如下文所述。   第一次遇到这种情况,这是芯片设计问题吗?
贴上该引脚的相关原理图,有哪位大神帮分析下,如下:

预留的电压检测电路,因未启用,所以只在初始化时使用PORTA寄存器将RA5配置为低电平,但是发现10%产品该引脚输出为高。在上图位置加上这个语句后,功能正常,不能理解的是为什么初始化的时候为什么有的会无效。在线求大神解惑

 


踩坑回顾:

       一款刚转量产的产品,小批量生产600PCS,发现产品有大概10%左右的不良品,异常表现为待机功耗偏高。正常的产品功耗在350uA左右,异常品的功耗在2.2mA左右,产线一开始是先更新的程序去测试,发现更新后功耗正常了,于是安排灌胶,灌胶后复测,发现功耗又异常了还是2.2mA左右。于是反馈到我这里过来,要了几个异常品来分析,分析发现:
1、重新烧录程序,然后直接上电,每次功耗都是正常的;

2、断电1分钟,重新上电有初始化,但是此时功耗是正常的;

3、放置数分钟后,重新上电,功耗又异常了,之后无论如何上电,功耗都无法恢复正常;

一开始怀疑芯片有问题,因为出问题的的大概只有10%,但是其他产品上有未发现异常,于是与同事一起分析,最后发现是程序上的问题,具体如下:

程序上操作IO口的电平是直接使用PORTx寄存器,相关操作如下:

问题就出现了RA5口,正常情况下,该引脚输出的应为低电平,仅当检测电压的时候才会输出高电平,以降低功耗,但是那些异常品的这个IO口都是持续输出高电平的,这就导致了整机的待机功耗偏高了。

后来,查阅规格书,发现有如下的表述内容:

PORTA 寄存器:

LATA 寄存器:

我在程序上,使用就是PORTx寄存器来操作IO进行电平翻转,前期测试均未发现问题,但是量产发现了约10%左右的异常,后来将操作IO电平的寄存器改为LATx后,功耗正常,多次测试,均无异常。

以上,就是本次在使用PIC单片机时遇到的问题,其实,其他产品也一直都是操作PORTx寄存器的方式实现的,但是都会发现此异常,这是首次发现,写个记录总结下,如有其他兄弟姐妹遇到类似问题,欢迎留言,大家一起探讨,共同进步。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值