最近刚接触这款芯片,就遇到一个很奇怪的问题,如下:
芯片:STM8L151C8
调试工具:STVD V4.3.0、ST-Link V2、串口
硬件:
1.一块LQFP48pin的转板,转成2.0排针接口,除电源、Res和UART3管脚外,其他均悬空
2.5V转3.3V的LDO,外加10uF和0.1uF并联的去耦电容
3.SWIM接口和UART转板
软件:
1.初始化CLK:使用HSI,不分频16M,并开启USART3时钟使能
2.初始化GPIO:PA4、PA5、PA7设置为上拉输入;PA6设置为推挽输出,并输出低电平;其他所有端口均设置为推挽输出,并输出高电平
3.初始化USART3(波特率115200)
4.循环打印PA~PF的IDR寄存器值(读取每个端口的状态)
事件:
使用SWIM接口烧录程序,并能在PC上循环打印各端口值,但是遇到三个异常:
1.理论上PA_IDR=0xBF,但实际上PC上打印以及示波器测量管脚得到的值为0x1F、0x3F和0x9F三种情况(多次测量记录),有时会稳定在其中一种状态,有时会进行切换;
2.除PA口外,其他端口正常情况应该均为0xFF,但PC口有时会变成0xF3,并保持不变;除PA和PC端口有问题外,其他端口均正常。
3.使用DC Source供电5V,结果发现DC Source上的电流在跳变,从几毫安跳变上升到几十毫安,有时会稳定在某个电流上一小段时间,有时等个一两分钟,芯片的电源管脚就发黑冒烟,玩完了~
问题:
1.虽然只有个空板,所有端口悬空,但软件配置时没有一个端口悬浮输入,输入均设置为上拉输入,那为什么PA和PC口会有异常?
2.没有程序时上电测电流均正常,非常小,且稳定,但灌入程序等上几分钟,电流就会开始跳变,有的芯片能稳定跳来跳去不烧,但有的芯片电流跳着跳着就跳过头冒烟了。起初以为是LDO问题,使用DC Source直接给芯片供电3.1V,结果现象一样;后来换两节干电池供电,现象依旧,太奇怪了。
STM8L芯片是淘宝买的,从2个不同店各买了10片,均有同样的问题,也没有其他硬件电路,只有个简单的软件,不至于运行软件都把芯片烧了吧。。。
麻烦各位帮忙分析一下,给点意见,谢谢! |