打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
430板子AD采集不到基准电压(Ref+)的问题解决

问题描述:

 之前的板子AD采集是正确的,但是新作出来的板子(新板有稍许改动)AD采集的结果:

有的板子是对的,有的板子是错误的。错误板子的现象是基准电压(Ref+)的值都采不到。

 

解决方法:

在给2543的数据输入脚送入值后,一定要延迟一定时间(目的是等待送入的值稳定下来) 再给时钟送上升沿。

 

之前程序 :

    SPI_CLK_0;
    SPI_CS_0;
   
    for (i = 0; i < 12; i++)                             // Loop
    {        

        Delay_us(10);

        if (cmd & 0x80)
        {
            SPI_OUT_1;
        }
        else
        {
            SPI_OUT_0;
        }                          

        SPI_CLK_1;

        cmd = cmd << 1;
        g_usADValue[iChIdx][g_iSampleNo] = g_usADValue[iChIdx][g_iSampleNo] << 1;

        if (SPI_IN)
        {
            g_usADValue[iChIdx][g_iSampleNo] |=  0x0001;
        }

        Delay_us(10);

        SPI_CLK_0;
    }
     
    SPI_CS_1;

 

 之后的程序

    SPI_CLK_0;
    SPI_CS_0;
   
    for (i = 0; i < 12; i++)                             // Loop
    {        

        Delay_us(10);

        if (cmd & 0x80)
        {
            SPI_OUT_1;
        }
        else
        {
            SPI_OUT_0;
        }                          

                
        //一定要加这一句,否则会出问题,表现在有的板子是好的,有的板子有问题
        //该句的目的是:在SPI_OUT加载数据后,要等待该数据稳定                
        Delay_us(10);


        SPI_CLK_1;

        cmd = cmd << 1;
        g_usADValue[iChIdx][g_iSampleNo] = g_usADValue[iChIdx][g_iSampleNo] << 1;

        if (SPI_IN)
        {
            g_usADValue[iChIdx][g_iSampleNo] |=  0x0001;
        }

        Delay_us(10);

        SPI_CLK_0;
    }
     
    SPI_CS_1;

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
单片机读写SD卡最简单最基本的程序
SD卡接口的完整规范(一) -- SD技术 -- EDN电子设计技术
基于AT89C52单片机的SD卡读写设计
【接口时序】5、QSPI Flash的原理与QSPI时序的Verilog实现
A40i & T3 核心板原理图 A40i & T3 核心板引脚功能说明
GSC3280的ADC子系统驱动模型(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服