搜索
bottom↓
回复: 1

CS5460A 读寄存器一直为0 发现不了问题!求大神指点

[复制链接]

出0入0汤圆

发表于 2017-11-17 13:25:29 | 显示全部楼层 |阅读模式
//-------------CS5460 SPI读写-------------------------

void CS5460A_Write(U8 Add,UINT Data)
{
        U16 MSB,nAdd;
       
        nAdd = WRI | Add;
        MSB = (nAdd << 8) | (Data >> 16);

        ASPI_Write(wCPLD_ADLSB,Data);
        ASPI_Write(wCPLD_ADMSB,MSB);
       
        Delay(_1ms);
}

UINT CS5460A_Read(U8 Add)
{
        U16 MSB,nAdd;
        uint nData=0;

        nAdd = READ | Add;
        MSB = (nAdd << 8);

        ASPI_Write(wCPLD_ADMSB,MSB);

        Delay(100);

        nData = ASPI_Read(rCPLD_ADMSB);
        nData <<= 16;
        nData |= ASPI_Read(rCPLD_ADLSB);

        return nData;
}


//AD自检
bool ADC_CHECK(void)
{
        U32 rData=0;

        _PrintHZ12(GUI_WHITE,"\nAD   INIT ...");
       
        // CS5460A复位脚发脉冲
        g_tCpld1.ADREST        = 0;
        _WriteCpld1();
        Delay(_15ms);
        g_tCpld1.ADREST        = 1;
        _WriteCpld1();
        Delay(_20ms);
       
        // 同步控制命令字
    CS5460A_Write(0xFF,0xFFFFFE);
       
    // 读配置寄存器缺省值
        rData = CS5460A_Read(CONFIG);
       
    //判断
    while(!rData)  
    {  
        _PrintHZ12(GUI_RED," AD FAIL");

                if(ReadKeypad())
                break;
    }
       
        _PrintHZ12(GUI_GREEN," PASS");
       
        FeedDog();
    Delay(_800ms);

        return true;
}

出0入0汤圆

 楼主| 发表于 2017-11-17 13:27:45 | 显示全部楼层
上面我写了个 AD自检的程序  , 读配置寄存器(CONFIG)的初始值,如果不为0,则判断AD读写正常。 可是实际情况,SDO一直读的是0.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 01:27

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

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