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

DSP28335来驱动DAC7724,调试时遇到的问题,求解答

网友 cayong1207在21ic TI DSP技术论坛问以下问题未能解决

我是用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;  }

jinying wu:

您好!您的问题解决了吗?我也遇到这个问题了,想请教一下您

网友 cayong1207在21ic TI DSP技术论坛问以下问题未能解决

我是用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;  }

10#:

HIGH/LOW是如何定义的?没有上下文无法判断。

不过我猜测你是定义的宏用于操作GPIO的DAT寄存器置1或清0来输出高低,请注意,通过DAT寄存器连续操作同一组GPIO控制高低电平输出时会使前面的被覆盖,所以建议每条操作后都加入延时,或者直接使用SET/CLEAR/TOGGLE寄存器来操作,请参考:

http://processors.wiki.ti.com/index.php?title=General_Purpose_IO_(GPIO)_FAQ_for_C2000#Q:_Back-to-back_DAT_register_writes_do_not_work_as_expected

以及它提到的Programming TMS320x28xx Peripherals in C/C++ (SPRAA85)文档的第6章节Read-Modify-Write Considerations When Using Bit Fields.

赞(0)
未经允许不得转载:TI中文支持网 » DSP28335来驱动DAC7724,调试时遇到的问题,求解答
分享到: 更多 (0)