用430的A1,A2,A3,A4口进行AD采集,A3口出现问题,一直高电平,当把A3口配置成输入模式时依然是高电平,当配置成输出低电平时候,正常,是板子烧了吗?自己设计的板子,有的能用有的不能用,已经两块出现这个问题了,电路板检查没有问题,芯片别的功能也正常。就是A3口用问题。把板子A3口走线隔断,排除外部电路问题,请问是430芯片烧了吗?那为什么别的功能正常呢
灰小子:
重新焊一下相关io,或者换一个芯片试试
看是焊接问题还是mcu的问题。
MSP430F149现在市场上有不少翻新货,选择采购渠道要谨慎
PEIYUAN YU:
回复 灰小子:
换了好几片芯片,还是不行,只焊个最小系统加分压电阻都会出现这个问题,有时候开始没问题,跑一会之后会出现问题,附件是我的原理,麻烦我看一下,谢谢
Ricardo Li:
回复 PEIYUAN YU:
换一批芯片试试,感觉你这芯片有问题。
PEIYUAN YU:
回复 Ricardo Li:
原理图您帮忙看看有问题吗
user4796604:
回复 PEIYUAN YU:
我估计你肯定不会放过DTC功能吧?用了DTC,然后又用仿真器,数据会错位的,万用表测下实际电压对不对
PEIYUAN YU:
回复 user4796604:
adc12也有DTC功能吗,我没用过这个,
void ADC_Init(void) { P6SEL = 0x0F; // Enable A/D channel inputs ADC12CTL0 = ADC12ON+MSC+SHT0_8+REFON+ REF2_5V; // Turn on ADC12, set sampling time // ADC12CTL0 = ADC12ON+MSC+SHT0_8+REFON; // ADC12CTL0 = ADC12ON+MSC+SHT0_8; // ADC12CTL1 = SHP+CONSEQ_1; // Use sampling timer, single seq ADC12CTL1 = SHP+CONSEQ_1+ADC12SSEL_2+ADC12DIV_7; ADC12MCTL0 = SREF_1+INCH_0; // ref+=AVcc, channel = A0 ADC12MCTL1 = SREF_1+INCH_1; // ref+=AVcc, channel = A1 ADC12MCTL2 = SREF_1+INCH_2; // ref+=AVcc, channel = A2 ADC12MCTL3 = SREF_1+INCH_3+EOS; // ref+=AVcc, channel = A3, end seq
ADC12IE = 0x08; // Enable ADC12IFG.3 ADC12CTL0 |= ENC; // Enable conversions // P6SEL = 0x0F; }
这是我的ad初始化,程序在别的板子测试过,然后说的那个A3引脚2v到3v的高电平时电压表实际测得的,也就是说ad采集的确实是对的,不过这个采集引脚有个电压。而且外部除了分压电阻没有别的东西。可以确定电压是单片机输出的,也就是他自己出来个电压,自己又可以准确测量,是不是有点绕,我用的是内部2.5v参考,所以2.5以上电压一直是2.5
user4796604:
回复 PEIYUAN YU:
试过输入模式下拉电阻吗
PEIYUAN YU:
回复 user4796604:
试过,现在板子焊上最小系统,用烧写器第一次烧程序可以烧进去,然后程序有时候运行一段时间,有时候直接不行,退出在线调试,第二次进就显示找不到设备,怀疑是芯片烧了,目前芯片换了几批试过了,很大可能是板子的问题,但是我的原理图并没有问题,PCB布板的质量会影响这么大吗
这是我的lay out
这是我的原理图
请大家帮我看一下,谢谢
user4796604:
回复 PEIYUAN YU:
停下的时候看下,晶振工作有没有异常,莫不是起振电阻不在,晶振罢工了?
PEIYUAN YU:
回复 user4796604:
之前从来没有加过起振电阻,只用电容,有这么大影响吗? 这个板子我焊过好几块了,各种问题,只有一块可以正常运行。剩下的都有问题,有的可以正常运行烧写,但是AD口的A3一直是有一个电平,不能正常的ad采集。还有可以烧写,运行一会不行的,也有这样的,直接烧写都不行的,就是很奇怪,找不到原因