首先我想用它做数字电位器。用的是430F169,硬件I2C。根据芯片手册,可以写进去。但是为什么阻值达不到100k。最大只有20k.
我把VSS接的地。经过过两天的挣扎,后来把LA或HA接地,阻值到了100K。输入值可以相应变化,可是为什么,我用万用板表笔正着测时是个阻值,表笔反过来测时是另外一个阻值。好奇怪!本来想忽略这问题,但是把芯片接到自己的应用电路中时,就没用了。。郁闷中。。。。
今天又看了下手册,不知道ACR寄存器怎么用的,它的寄存器地址和WRA地址一样,怎么写?
void i2c_write(unsigned char add,unsigned char data1)
{
I2CNDAT = 0x02; //发送两个字节
U0CTL |= MST; //设置为主机
I2CTCTL |= I2CSTT + I2CSTP + I2CTRX; //开启发送为,停止位,起始位
while((I2CIFG & TXRDYIFG)==0); //等待发送
I2CDRB = add; //发送空间地址
while((I2CIFG & TXRDYIFG)==0);
I2CDRB = data1; //发送数据 while((I2CTCTL & I2CSTP)==0X02);
}
KW X:
因开关是MOS构成的,有二极管寄生于此,由于二极管的缘故,两个方向值不一样也是情理之中。
不知道亲的电路是啥样的?猜的好费劲。。。
Martin:
你好,
能否详细描述一下 接到应用电路后,出现了什么问题呢?最好能够上传一下你的电路图,以便分析。
ACR是访问权限控制寄存器,其中的VOL位控制是否可以写入IVRA,IVRB 位,在应用中如果不需要重新设置初始值,但是需要重新设置输出值的时候,非常有用;还有SHDN, WIP寄存器,具体可以参考数据手册第10页ACR (Access Control Register)所述。
ACR寄存器的地址位0x10,如TPL0102 Register Map表中所示。
feng xiaokang:
回复 Martin:
你好,
我主要是想做个RC振荡,用数字电位器调R,改变频率。
请问为什么要把L或是H接地,阻值才能达到100K。怎样才能让正反阻值相同呢?
Martin:
回复 feng xiaokang:
你好,
设计人员指导说 正反阻值是相同的,不过你用万用表测量可能不太准,特别是手持式万用表;
推荐使用台式万用表或者直接输入一个小电流,再看压降来测量。
Martin:
回复 Martin:
以下是设计人员的邮件回复:
No, it's not required to have the L or H terminal connected to ground. The resistances also should be symmetrical between the terminals for any given wiper code (i.e. Rwl = Rlw).
The only requirement on the H, W, and L terminals are that they remain between VDD and VSS. I suspect what is happening is that when none of the terminals are connected, the DMM applies its own bias which may be pulling the H, W, or L terminals slightly outside of the VDD to VSS range. By biasing one of the terminals to VSS, the dPOT terminals remain within their operating range and the the correct reading was observed. A bench DMM may yield more accurate readings in this case since it will share the same system ground as the power supply to the TPL0102.
feng xiaokang:
回复 Martin:
你好,我用五位半的台式测得,还是差不多。我的VDD接的3.3V VSS接的GND ,RW,RL没接地的情况下,Rw Rl 间只有30K,但正反测阻值差不多。 如果接了地,阻值能达到100K左右,但正反测阻值就不同了0.0.