这芯片怎么回事,我使用了SD16A的第一、二、三通道(AIN0、AIN1、AIN2),每五通道(AIN4)与TIMERA的PWM(TA1、TA2)是同一个引脚。我使用了PWM输出。在使用中发现,只要我打开SD16A的第三通道,TA1引脚输出就一直为低电平,不受PWM控制,当我关掉SD16A的第三通道(AIN2),TA1引脚输出就正常。但TA2输出一直是正常的。不受影响。以上说的这几个引脚都是在悬空的情况下测试的。
谁能解释一下这怎么回事。是不是SD16A第三、四、五通道(AIN2、AIN3、AIN4)共用的是一个地?
你是怎么打开AIN2的??
是不是设置了SD16AE2???
所以会出现这种现象的
建议你好好看一下datasheet 后面关于端口描述部分
SD16AE2设置的不是Ain2而是Ain4
这个问题我几乎回答了好几百遍了 可是还是有人犯错误,郁闷啊
SD16A中的差分输入口跟SD16AE不是一一对应的。。。。
好像也不像你说的那样。我看过他的资料上最后几句了。大意是说当输入口不用的时候会将它的负输入端(AIN-)连接到VSS,SD16AE2对应的就是AIN2。
晕倒。。。。
A2输入:
SD16INCTL0 |= SD16INCH_2;
SD16AE = SD16AE6 + SD16AE7; //A2输入口为P1.6/P1.7
A3输入:
SD16INCTL0 |= SD16INCH_3;
SD16AE = SD16AE4 + SD16AE5; //A3输入口为P1.4/P1.5
A4输入:
SD16INCTL0 |= SD16INCH_4;
SD16AE = SD16AE2 + SD16AE3; //A4输入口为P1.2/P1.3
仔细看看数据手册 后面关于IO口的几页,尤其是关于P1口的几页
这是我写的SD16A驱动程序中通道选择的部分,把司马大侠剩下的几个通道补充完整了,呵呵
switch ( channel )
{
case 0:
SD16INCTL0 |= SD16INCH_0;
P6SEL |= BIT1 | BIT0;
break;
case 1:
SD16INCTL0 |= SD16INCH_1;
P6SEL |= BIT3 | BIT2;
break;
case 2:
SD16INCTL0 |= SD16INCH_2;
SD16AE = SD16AE6 | SD16AE7;
break;
case 3:
SD16INCTL0 |= SD16INCH_3;
SD16AE = SD16AE4 | SD16AE5;
break;
case 4:
SD16INCTL0 |= SD16INCH_4;
SD16AE = SD16AE2 | SD16AE3;
break;
case 5:
SD16INCTL0 |= SD16INCH_5;
break;
case 6:
SD16INCTL0 |= SD16INCH_6;
break;
case 7:
SD16INCTL0 |= SD16INCH_7;
break;
}