我是用DSP28335来驱动DAC7724,DAC7724的几根控制引脚我是用过IO口输出高低电平来控制的,但是4路输出一直都是-10V,请问这个是为什么?以下是我程序,求解答。
while(1) {
CHA_DATA =3000; //要输入的值
dataPort&= 0xf000;
LDAC=HIGH;
RW=HIGH;
CS=HIGH;
DELAY_US(1); //延时10us
RW=LOW; for(j=0;j<4;j++); //延时800ns
CS=LOW;
A0=LOW;
A1=LOW;
dataPort|=CHA_DATA ;// A输出口要输出的值
DELAY_US(2); //延时20us
CS=HIGH; for(j=0;j<4;j++); //延时800ns
RW=HIGH; DELAY_US(3); //延时30us
LDAC= LOW; //载入数据
DELAY_US(2); //延时20us
LDAC= HIGH;
for(j=0;j<1;j++); //延时200ns
CS=LOW; }
Wanda WANG:
电路呢?有没有接并行接口?
如果接了的话,可以先试试并行接口是不是ok,可以确定电路有没有问题。
如果输出正常,再去调I2C的时序问题。
YONG CAI:
回复 Wanda WANG:
我把CS、RW、LDAC三个IO口输出的高低电平用逻辑分析仪测了,时序是没有错的
Haroad Chen:
回复 YONG CAI:
CAIYONG,
不知是否有上电复位这一步?
最好能贴出原理图和示波器的时序图
YONG CAI:
回复 Haroad Chen:
我图片一直无法插入,我可以以其他的方式发给你吗?
Wanda WANG:
回复 YONG CAI:
是不是浏览器的问题?换个试试。
或者用插入附件的方式。
YONG CAI:
回复 Wanda WANG:
YONG CAI:
回复 Wanda WANG:
第一条是CS、第二条是RW、第三条是LDAC
Decapton Wang:
dataPort|=CHA_DATA ;// A输出口要输出的值
dataPort需要的是个二进制值,CHA_DATA是个十进制数字3000,可以这样直接赋值?用逻辑分析仪,抓一下DB0~DB11的值,看看是不是在数字域输入时就错了。
YONG CAI:
回复 Decapton Wang:
我用LED灯测试并行口12位输入的值是没有错的