打印

cs5532配置 通道设置寄存器 求指点

[复制链接]
6594|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wolf1116|  楼主 | 2013-5-10 11:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
==============================================================================
    D23(MSB)   D22   D21   D20   D19   D18   D17   D16   D15   D14   D13   D12
------------------------------------------------------------------------------
    A1         A0    CS2   CS1   CS0   WR2   WR1   WR0   G2    G1    G0    U/ B
==============================================================================
    D11        D10   D9    D8    D7    D6    D5    D4    D3    D2     D1    D0
------------------------------------------------------------------------------
    A1         A0    CS2   CS1   CS0   WR2   WR1   WR0   G2    G1     G0    U/ B

CS5532_Write_Byte(0x05);    //写单个通道设置寄存器(8位):0x05
CS5532_Write_Byte(0x31);    //原为0x35);//(0x34);//(0x25);        960       
                            /*物理通道1、32倍增益、60Hz字速率*/
CS5532_Write_Byte(0x40);    //(0x40);//                /*双极性模式:0xc0*/
CS5532_Write_Byte(0x28);
CS5532_Write_Byte(0xc0);

对照注释,我怎么对应不上啊~~
达人指点!!!

相关帖子

沙发
mage心寒| | 2014-3-13 15:06 | 只看该作者
为什么我买的cs5532asdatasheet上面没有你上面的数据表呢。。。直接读数据不行吗?

使用特权

评论回复
板凳
xyz549040622| | 2014-3-13 17:18 | 只看该作者
楼主读到的都是0xFF吧,很简单,你读寄存器的时序不对,随意读到的都是0xff,你逻辑分析仪抓波形看看

使用特权

评论回复
地板
xyz549040622| | 2014-3-13 17:18 | 只看该作者
楼主读到的都是0xFF吧,很简单,你读寄存器的时序不对,随意读到的都是0xff,你逻辑分析仪抓波形看看

使用特权

评论回复
5
mage心寒| | 2014-3-14 11:10 | 只看该作者
@xyz549040622 我看楼上之前写过一个帖子就是说cs5532的https://bbs.21ic.com/forum.php?mod=viewthread&tid=434540  我用spi直接驱动的,我就是有点不明白,复位命令中那个参考电压datasgeet上面怎么选择的,有点没有看明白能不能请教一下,还有就是我看你复位命令的第二位写的0x22,感觉0x21也是自动校准的意思啊,你上面那个帖子的代码不知道有啥问题能不能稍微参考一下?

使用特权

评论回复
6
xyz549040622| | 2014-3-14 11:18 | 只看该作者
mage心寒 发表于 2014-3-14 11:10
@xyz549040622 我看楼上之前写过一个帖子就是说cs5532的https://bbs.21ic.com/forum.php?mod=viewthread&tid ...

上面那个代码的版本早就更新了,读出数据为0xff和你选择的参考电压无关,默认即可
只要确认你读的时序正确就没事了
你现在的问题是什么呢?

使用特权

评论回复
7
mage心寒| | 2014-3-14 11:30 | 只看该作者
1.参考电压怎么选择,我看你程序里面写了,我的参考电压15脚va+是直接外部接5V的不知道有没有影响?
2.IO模拟暂时没有问题,看了几天datssheet现在在写程序框架,根据时序来,就是第一点有点不明白,其它暂时没有,我读数据的格式是直接32位一起读的应该没有问题吧。

使用特权

评论回复
8
mage心寒| | 2014-3-14 13:17 | 只看该作者

@xyz549040622  
unsigned int ReadCs5532ID(void)    //读id 复位cs5532
{
          unsigned char i;
          unsigned int Cs5532ID;
           CS5532_SDO_1;
          CS5532_SDI_0;
          CS5532_CLK_0;
          for(i=0;i<31;i++)
     Cs5532_WriteByte(0xff);        //初始化,写15个字节SYNC1
    ;;
         Cs5532_WriteByte(0xfe);         //写一个字节的SYNC0
         Delay_ms(50);
        for(i=0;i<5;i++)
          Cs5532_WriteByte(cs5532ResetData);    //reset cs5532
        ;;
        Cs5532_WriteByte(0x0b);         //从物理通道1配置寄存器读
       
        Cs5532ID=Cs5532_ReadData();
        if(Cs5532ID==0x10000000)     //复位成功,bitRS=1       
        {
                   Uart0_Printf("read cs5532id success");
        }
        else
  {
                  Uart0_Printf("read cs5532id error");
        }
  Delay_ms(5);       
        Cs5532_WriteByte(0x03);  //写配置寄存器
  Cs5532_WriteByte(0x00);//
  Cs5532_WriteByte(0x08);
  Cs5532_WriteByte(0x00);
  Cs5532_WriteByte(0x00);
       
        Delay_ms(5);
        Cs5532_WriteByte(0x05);  //写通道寄存器
  Cs5532_WriteByte(0x02);//
  Cs5532_WriteByte(0x08);
  Cs5532_WriteByte(0x00);
  Cs5532_WriteByte(0x00);
       
        Cs5532_WriteByte(0x0c);
       
  
  return Cs5532ID;
          
}

ID能读到,读到的数据是-2啥意思??

unsigned int Cs5532_ReadData(void)
{
            unsigned char  i;
      uint32_t AD5532Value = 0;
      CS5532_CLK_0;//时钟拉低
      CS5532_SDO_0;//
      delay_AD(100);
      for(i = 0;i < 32; i++)
      {
          if(GPIO_ReadValue(2)&(1<<8)) //假如读取的是高电平
          {
               AD5532Value|=0x00000001;  //把高电平给了最低位,因为MSB优先
          }
          delay_AD(100);
          CS5532_CLK_1;//时钟拉高
          delay_AD(100);
          CS5532_CLK_0;//时钟拉低
                                       
          AD5532Value<<=1;//
      }
      CS5532_CLK_0;//时钟拉低
      CS5532_SDO_1;//
      return AD5532Value;
}  //read


void Cs5532_WriteByte(unsigned char data)
{
          unsigned char  i;
    CS5532_CLK_0;//先把时钟拉低
    CS5532_SDI_0;//数据拉低
    for(i = 0;i<8;i++)
    {  
           if(data&0x80)//高位先出
           {
                CS5532_SDI_1;
           }
           else
           {           
                CS5532_SDI_0;        
           }
           delay_AD(100);
           CS5532_CLK_1;//时钟拉高
           delay_AD(100);
           CS5532_CLK_0;//时钟拉低
           data<<=1;//数据移位
     }
     CS5532_CLK_0;//时钟拉低
     CS5532_SDI_0;
}  write
不知道哪里有问题,可以知道一下吗

使用特权

评论回复
9
mage心寒| | 2014-3-14 13:18 | 只看该作者
我的意思是-2是读AD的值,不是id的

使用特权

评论回复
10
xyz549040622| | 2014-3-14 13:43 | 只看该作者
        for(u8i = 0;u8i < 8;u8i++)//8个清串口时钟
        {
                DrvSYS_Delay(2);
                SetBit_CSCLK();//时钟拉高
                DrvSYS_Delay(2);
                ClrBit_CSCLK();//时钟拉低
        }
读数据时和读寄存器时不一样的,多了8个清串口时钟,你看看手册上的时序

使用特权

评论回复
11
mage心寒| | 2014-3-14 14:05 | 只看该作者
xyz549040622 发表于 2014-3-14 13:43
for(u8i = 0;u8i < 8;u8i++)//8个清串口时钟
        {
                DrvSYS_Delay(2);

看到了,谢谢。。

使用特权

评论回复
12
mage心寒| | 2014-3-17 11:03 | 只看该作者
@xyz549040622  电路图A0,A1空着有影响吗?我焊接的电路板RS返回一都不对,这是什么问题?

使用特权

评论回复
13
xyz549040622| | 2014-3-17 11:58 | 只看该作者
mage心寒 发表于 2014-3-17 11:03
@xyz549040622  电路图A0,A1空着有影响吗?我焊接的电路板RS返回一都不对,这是什么问题?  ...

没影响的,悬空即可

使用特权

评论回复
14
mage心寒| | 2014-3-17 16:24 | 只看该作者

@xyz549040622,我今天用示波器测试了下,从我M3出来的信号都是正常的,到cs5532这边信号就NG了,不知道什么原因,可以请教一下吗?

使用特权

评论回复
15
mage心寒| | 2014-3-17 17:03 | 只看该作者

@xyz549040622   延迟的clk是以cs5532的晶振算吗,你之前延迟1us是不是短了,应该延迟2us或者3us吗??希望指点一下,谢谢。。

使用特权

评论回复
16
xyz549040622| | 2014-3-17 17:15 | 只看该作者
mage心寒 发表于 2014-3-17 17:03
@xyz549040622   延迟的clk是以cs5532的晶振算吗,你之前延迟1us是不是短了,应该延迟2us或者3us吗??希望 ...

你用的SPI对吧,我也是SPI没调通转的IO模拟,你抓波形,波形正确了就好,时间无所谓

使用特权

评论回复
17
mage心寒| | 2014-3-17 17:50 | 只看该作者
@xyz549040622  我现在就是IO口模拟啊,发现SDO的数据永远是1,延迟到底是多少???,datasheet我找不到,我抓波形显示我的时序是对的。。。求解。。

使用特权

评论回复
18
mage心寒| | 2014-3-17 17:58 | 只看该作者

@xyz549040622  给个联系方式可以吗,公司这东西比较感,我没有多少时间,估计还要麻烦你一下。。。我的QQ2656351599

使用特权

评论回复
19
mage心寒| | 2014-3-18 14:55 | 只看该作者

@xyz549040622 可以把你的读数据的函数借我参考下吗??谢谢

使用特权

评论回复
20
xyz549040622| | 2014-3-18 15:28 | 只看该作者
mage心寒 发表于 2014-3-17 17:58
@xyz549040622  给个联系方式可以吗,公司这东西比较感,我没有多少时间,估计还要麻烦你一下。。。我的QQ ...

不好意思,刚看到

使用特权

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

本版积分规则

2

主题

38

帖子

1

粉丝