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

dac8728不能写寄存器,但是能读

如题,不能写进去寄存器,只能读到有些寄存器是默认值0x8000,有些是0x0000。向配置寄存器写0x8180 只能读到0x8000;如图,用dsp28335的memory功能查看,其中地址0x4020是配置寄存器的地址,红色框框内的是dac寄存器(一部分)的地址和数据:

 

LDAC锁存信号永久接地,检查cs片选信号  WRorREAD信号硬件连接没问题,请问大概是什么问题呢?会不会是时序的问题?

如果是时序问题,该怎么配置?我不会配置啊。我用的是f28335,150MHZ.

    EALLOW;
    XintfRegs.XINTCNF2.bit.XTIMCLK = 1;
    // No write buffering
    XintfRegs.XINTCNF2.bit.WRBUFF = 0;
    // XCLKOUT is enabled
    XintfRegs.XINTCNF2.bit.CLKOFF = 0;
    // XCLKOUT = XTIMCLK/2
    XintfRegs.XINTCNF2.bit.CLKMODE = 0;

   // Zone 0————————————
    XintfRegs.XTIMING0.bit.XWRLEAD = 3;
    XintfRegs.XTIMING0.bit.XWRACTIVE = 5;
    XintfRegs.XTIMING0.bit.XWRTRAIL = 3;
    XintfRegs.XTIMING0.bit.XRDLEAD = 3;
    XintfRegs.XTIMING0.bit.XRDACTIVE = 5;
    XintfRegs.XTIMING0.bit.XRDTRAIL = 3;
    XintfRegs.XTIMING0.bit.X2TIMING = 0;
    XintfRegs.XTIMING0.bit.USEREADY = 0;
    XintfRegs.XTIMING0.bit.READYMODE = 1;  // sample asynchronous
    XintfRegs.XTIMING0.bit.XSIZE = 3;

Wanda WANG:

dac8728是并行接口控制模式,时序比较简单。可能是你某些控制引脚给的电平不对。

你能详细描述下你向配置寄存器写0x8180 的过程吗?ADC的那个控制引脚你是如何配的。

miao young:

回复 Wanda WANG:

你好,我是用ccs3.3   dsp28335 通过cpld译码向地址0x4020写入寄存器值0x8180,即:*(Uint32 *)0x4020=0x8180;也可以通过ccs的memory功能向0x4020写,都写不进去。但是读寄存器又没问题。用万用表测得实际输出电压是14.7V。我的参考电压是+5v。

好像dsp的时序是先拉低cs片选信号,然后再拉低写信号wr,而dac8728写时序,是先拉低写信号wr,然后再拉低cs,两者前后顺序不一样,这个有影响么?

关于配置。您说的adc的配置我不知道您是不是具体指哪个引脚,我把所有控制引脚都列出来好了,还请你看一下:

USB/BTC  ,LDAC(直接接地,与上图不一样),  gpio这 三个信号接地。CLR   RSTSEL RST 上拉接高。另外就是cs和wr信号。有没有漏掉什么控制信号?

Decapton Wang:

回复 miao young:

LDAC不能直接接地吧,正常的操作应该是串行数据依次写到DAC内部的移位寄存器,然后用~LDAC拉低把移位寄存器里的值写到DAC里。现在~LDAC一直为低,有可能会出问题。

赞(0)
未经允许不得转载:TI中文支持网 » dac8728不能写寄存器,但是能读
分享到: 更多 (0)