搜索
bottom↓
回复: 10

cs5532初始化不能成功

[复制链接]

出0入0汤圆

发表于 2009-8-31 22:33:50 | 显示全部楼层 |阅读模式
cs5532我按照datasheet上的说明进行初始化,却总不能成功。使用的单片机是LM3s8962。
和网上的一些参考例程对照过了,通过示波器观察了sclk和sdo的信号。发现我的时钟及发送的数据都是没有问题的,可是从sdi过来的数据总是没有重复性,0x00,0xff,0x10都出现过。
按道理,发送超过15个的0xff和1个0xfe,进行re-sync,然后再发送0x03,0x2000 0000开启一个复位周期,这时候接收的数据应该是0x1000 0000才对。可是我始终接收不到,有时候接受到了这样的数据,再来一次的是很又不是这个数据了。
很苦恼,哪位兄弟有碰见过类似的问题,给我个回复吧。非常感谢!
ps:我的时钟是4.096mhz的,频率没有问题,4.096左右跳动,但输出波形的幅值是250mv(交流测量),这个对cs5532工作有影响没有?

to amork:没找到合适的区,就发avr区了。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2009-9-1 08:16:38 | 显示全部楼层
没那么复杂,初始化很简单的

出0入0汤圆

 楼主| 发表于 2009-9-1 17:43:12 | 显示全部楼层
to qiaoam:
我也知道这部分很简单,但总是找不到问题出在哪里了。我的程序有问题是吗?另外硬件上注意些什么?

出0入0汤圆

发表于 2009-9-1 20:18:30 | 显示全部楼层
调整下SCLK线上的时钟频率试试

出0入0汤圆

 楼主| 发表于 2009-9-1 20:46:12 | 显示全部楼层
to zht_omc:

现在的时钟频率是100Khz。在0~2Mhz范围内。用示波器看的,频率很准的说。
换600Khz,还是不对。
感觉不是频率的问题。

出0入0汤圆

 楼主| 发表于 2009-9-1 21:04:54 | 显示全部楼层
贴下代码:
    //Peripheral config
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    GPIODirModeSet(GPIO_PORTA_BASE, GPIO_PIN_6, GPIO_DIR_MODE_OUT);
    GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_6,GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD);
    SSIConfig(SSI0_BASE, SSI_FRF_NMW,SSI_MODE_MASTER,ulBitRate, 8);
    SSIEnable(SSI0_BASE);
    GPIOPinTypeSSI(GPIO_PORTA_BASE,(GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5));//CS5532_SSI_PINS为SSI
    CS5532_CS_CLR();
    delay_ms(20);
    //ssi init
    for(i = 180; i > 0; i--)
    {
      SSIDataPut(SSI0_BASE,0xFF);
    }
    SSIDataPut(SSI0_BASE,0xFE);
    //cs5532 reset
    SSIDataPut(SSI0_BASE,0x03);//write config register
    SSIDataPut(SSI0_BASE,0x20);//0x2000 0000
    SSIDataPut(SSI0_BASE,0x00);
    SSIDataPut(SSI0_BASE,0x00);
    SSIDataPut(SSI0_BASE,0x00);
   
    delay_ms(20);
   
    //get config register to confirm if the reset is OK
    SSIDataPut(SSI0_BASE,0x0B);//read config register
    delay_ms(4);
    SSIDataGet(SSI0_BASE,(unsigned long *)(&ucTemp));
    ulConfReg = ucTemp;
    SSIDataGet(SSI0_BASE,(unsigned long *)(&ucTemp));
    ulConfReg = (ulConfReg<<8) + ucTemp;
    SSIDataGet(SSI0_BASE,(unsigned long *)(&ucTemp));
    ulConfReg = (ulConfReg<<8) + ucTemp;
    SSIDataGet(SSI0_BASE,(unsigned long *)(&ucTemp));
    ulConfReg = (ulConfReg<<8) + ucTemp;

出0入0汤圆

 楼主| 发表于 2009-9-1 22:42:25 | 显示全部楼层
这个是cs5532部分的布局。


(原文件名:未命名.JPG)

出0入0汤圆

发表于 2010-8-8 17:15:25 | 显示全部楼层
SSIDataGet(SSI0_BASE,(unsigned long *)(&ucTemp));
使用这个函数的时候,系统会不会发送时钟?因为此时的SSI,以控制器来看是主模式的。

出0入0汤圆

发表于 2011-9-6 16:11:43 | 显示全部楼层
大虾好,我最近刚接触这个芯片,初始化和你相同的问题,我是发送31个FF和1个FE,然后延时一段时间,然后发送如下代码:
        for (i=0;i<31;i++) //复位
        CS5532_SendByte(0XFF);
        CS5532_SendByte(0XFE);

        CS5532Delay(50);



        Nop();Nop();
        CS5532_SendByte(0X03);//复位RS位
        CS5532_SendByte(0X21);
        CS5532_SendByte(0X80);
        CS5532_SendByte(0X00);
        CS5532_SendByte(0X00);

        CS5532Delay(50);



        Nop();Nop();
            CS5532_SendByte(0x0b); //从物理通道1配置寄存器读
//while(rec1!=0x10)//检验物理通道1配置寄存器RV位        
//        {
            rec1=CS5532ReadByte( );
            rec2=CS5532ReadByte( );
            rec3=CS5532ReadByte( );
            rec4=CS5532ReadByte( );
//        }
while(1)//转换程序,调试用…
{
}

我用示波器抓波形的时候,当我发送“CS5532_SendByte(0x0b); //从物理通道1配置寄存器读”这条指令,只要SDO有输出,基本能读出0X10000000,但是有时候抓波形的时候,发送这条指令,SDO没有输出,感觉上像是5532没有反应过来,您是如何解决这个问题的,时序我查很多遍了,很不解,希望看到的也能谈谈自己的想法…谢谢拉!!!

出0入0汤圆

发表于 2011-9-19 14:56:54 | 显示全部楼层
为什么我的读回来是0X88 00 00 00呢,再读一次是0XFFFFFFFF,再读就都是0了,请高手们指点一下

出0入0汤圆

发表于 2012-11-16 19:09:59 | 显示全部楼层
stm8 I/O口模拟时序,,,一点头绪都没有,LZ现在还搞好了?拿来参考下.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表