打印
[技术求助]

DAC8760

[复制链接]
2463|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
mmuuss586| | 2014-7-20 10:18 | 只看该作者

那你把程序,原理图贴上来看看,让大家帮你分析下;

使用特权

评论回复
板凳
xyz549040622| | 2014-7-20 11:54 | 只看该作者
1.找到官网推荐的电路,确保你的硬件连接正确
2.假如是自己写的程序,抓波形,确保和时序图一致,或者直接移植别人好的程序
3.假如波形正确,再返回硬件,查看芯片是否挂掉

使用特权

评论回复
地板
流星在颤抖|  楼主 | 2014-7-21 16:13 | 只看该作者
mmuuss586 发表于 2014-7-20 10:18
那你把程序,原理图贴上来看看,让大家帮你分析下;





#include<msp430.h>
#include<DAC8760.h>
void DAC8760_delay(unsigned int j)
{
     while(j--)
      {
       asm("NOP");
      }
}
/***************************
**
开始工作信号
**
****************************/
void DAC8760_start()
{
// DAC8760_SCLK_0_();
DAC8760_LATCH_0_();
// DAC8760_delay(1);
// DAC8760_SCLK_1_();
// DAC8760_SCLK_0_();
DAC8760_LATCH_1_();
// DAC8760_delay(1);
DAC8760_LATCH_0_();
// DAC8760_delay(3);
}
/***********************************
函数功能:
写数据
**
**
参数:
com
:前
8
位命令;
dat
:数据
**
***********************************/
void DAC8760_write_byte(unsigned char com, unsigned int dat)
{
unsigned char i=0;
DAC8760_LATCH_0_();
DAC8760_SCLK_0_();
for(i=0;i<8;i++)
{
  DAC8760_SCLK_0_();
  if(com&0x80)
  {
   DAC8760_DIN_1_();
  }
  else
  {
   DAC8760_DIN_0_();
  }
  delay_us(4);
  DAC8760_SCLK_1_();
  delay_us(4);
  com<<=1;
}
for(i=0;i<16;i++)
{
  DAC8760_SCLK_0_();
  if(dat&0x8000)
  {
   DAC8760_DIN_1_();
  }
  else
  {
   DAC8760_DIN_0_();
  }
  delay_us(4);
  DAC8760_SCLK_1_();
  delay_us(4);
  dat<<=1;
}
DAC8760_SCLK_1_();
//delay_us(3);
DAC8760_LATCH_1_();
DAC8760_DIN_1_();
//delay_us(3);
}
/***************************
* 读字节
**************************/
uint DAC8760_read_byte(unsigned char com, unsigned int dat)
{
uint data=0;
uchar i;
DAC8760_write_byte(com,dat);
DAC8760_LATCH_0_();
for(i=0;i<8;i++)
{
  DAC8760_SCLK_1_();
  //DAC8760_delay(2);
  DAC8760_SCLK_0_();
// DAC8760_delay(2);
}
for(i=0;i<16;i++)
{
  DAC8760_SCLK_1_();
  //DAC8760_delay(2);
  if(DAC8760_SDO_())
  {
   data|=0x01;
  }
  DAC8760_SCLK_0_();
  //DAC8760_delay(2);
  data<<=1;
}
return data;
}
/***************************
**
连续写入
**
***************************/
void DAC8760_con_write()
{
unsigned char i=0;
DAC8760_SCLK_0_();
DAC8760_LATCH_0_();
//DAC8760_delay(5);
for(i=0;i<24;i++)
{
  DAC8760_DIN_0_();
  DAC8760_SCLK_0_();
// DAC8760_delay(1);
  DAC8760_SCLK_1_();
  //DAC8760_delay(1);
}
DAC8760_SCLK_0_();
DAC8760_LATCH_1_();
// DAC8760_delay(5);
}

void DA_init()
{
CLk_clear;
DAC8760_con_write();
    DAC8760_write_byte(DACResetReg,0x0001);
//  DAC8760_con_write();
     DAC8760_write_byte(DACConfigurationReg,0x0088);
//  DAC8760_con_write();
//  while(DAC8760_read_byte(DACReadReg,ReadConfigurationReg)==0x0088);
  // DAC8760_con_write();
   DAC8760_write_byte(DACControlReg,0x1006);
  // DAC8760_con_write();
     DAC8760_write_byte(DACDataReg,0xffff);
// DAC8760_delay(10);
}

使用特权

评论回复
5
流星在颤抖|  楼主 | 2014-7-21 16:20 | 只看该作者
xyz549040622 发表于 2014-7-20 11:54
1.找到官网推荐的电路,确保你的硬件连接正确
2.假如是自己写的程序,抓波形,确保和时序图一致,或者直接 ...

电路附上了,程序也在那,有空帮忙研究下,没有仪器用啊。芯片刚换了一个也一样

使用特权

评论回复
6
mmuuss586| | 2014-7-21 18:49 | 只看该作者
流星在颤抖 发表于 2014-7-21 16:20
电路附上了,程序也在那,有空帮忙研究下,没有仪器用啊。芯片刚换了一个也一样 ...

1、图没啥问题;
2、程序对了下时序也没看出问题;
ACControlReg:这个定义的多少啊?

有示波器的话,用示波器分析下看看吧;

使用特权

评论回复
7
流星在颤抖|  楼主 | 2014-7-21 19:34 | 只看该作者
mmuuss586 发表于 2014-7-21 18:49
1、图没啥问题;
2、程序对了下时序也没看出问题;
ACControlReg:这个定义的多少啊?

0X55.。。。示波器有是有,太旧。观察不了。。哎,调了好几天了

使用特权

评论回复
8
hejianhu| | 2016-5-11 19:46 | 只看该作者
你好,你的DAC8760有输出吗?能参考一下程序吗?谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

19

帖子

0

粉丝