TI中文支持网
TI专业的中文技术问题搜集分享网站

msp430f169的DA 输出电压问题

刚学习msp430f169 ,想用169的DA输出任意电压值。

可发现DAC12_0DAT 低于一定的值时,P6.6就等于0.68V(虽然还没有凑出具体是多少),想知道能DA输出的电压,能低于0.68V吗?希望知道具体操作。谢谢

#include <msp430f169.h>
#define uchar unsigned char
// 初始化DAC12通道0
void InitDAC12_0(void)
{
// 效验DAC
ADC12CTL0=REF2_5V+REFON;
DAC12_0CTL |= DAC12CALON; // 启动效验DAC
while((DAC12_0CTL & DAC12CALON) != 0){_NOP();} // 等待效验完成
// 控制寄存器设置
// 选择输入缓冲器中速中电流,输出缓冲器中速中电流,12位DAC,满电压输出为内基准,自动更新数据
DAC12_0CTL = DAC12AMP_5 + DAC12IR + DAC12LSEL_0;
DAC12_0CTL |= DAC12SREF_0;
DAC12_0CTL |= DAC12ENC; // 启动DAC模块(DAC12LSEL_0时此句可以省)
DAC12_0DAT = 0x03ff; // 初始化电压
}
//时钟
void Clock_Init()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT2振荡器
BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清楚振荡器错误标志
for(i=0;i<100;i++)
_NOP();
}
while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待
IFG1&=~OFIFG;}
void main(void)
{ WDTCTL = WDTPW + WDTHOLD; ; //看门狗初始化
Clock_Init(); //时钟初始化
InitDAC12_0() ;
}

王七七:

感觉你的参考电压源设置有问题。对于12位DAC模块来说,分辨率可以达到0.024%,即1/4096,建议你先看一下输入数字量为0时,输出模拟量对0的偏移值是多少。

yu lv:

回复 王七七:

当DAC12_0DAT = 0x0000时, 输出的电压就是0.68V了

wang li3:

回复 王七七:

你好,如果MSP430F169单片机的Veref引脚接的是3.3V那么DAC12IR=0,那么DAC_0的的p6.6最大输出能大于3.3V吗?

kqian0327:

你好,

你给的DAC参考电压即为你能输出的最大DAC值,多少位的DAC决定了DAC输出的最小步长。

例如12位的DAC,3.3V的参考电压,最小步长即为3.3/4096。

根据这个道理你就可以输出你需要的电压X : )

希望对你有帮助。

user5943759:

回复 kqian0327:

我与题主遇到了同样的问题。关键问题是另DAC12_0DAT=0x0000时,p6.6输出不为0V而是0.68V。请问如何解决?谢谢!

user5939424:

回复 kqian0327:

您好,我用的板子是MSP430F5529, 请问使用内部DAC想输出模拟电压时,需要设置引脚为DAC输出复用功能吗?我看了datasheet貌似没有有DAC复用功能的引脚?

灰小子:

回复 user5939424:

楼上,您好。

msp430f5529内部没哟dac,建议选用其他带dac的msp430

赞(0)
未经允许不得转载:TI中文支持网 » msp430f169的DA 输出电压问题
分享到: 更多 (0)