设计ADuC845低噪声信号采集版

   日期:2020-11-03     浏览:88    评论:0    
核心提示: ➤ 01低噪声高精度AD采集模块在 基于ADuC845的数据采集板 设计的模拟信号采集板在实验过程中采集信号出现了很大的噪声。主要是由于电路板底线没有进行很好的处理。低噪声设计的主要方案:将单片机的电源和底线分成模拟和数字两个版本,之间通过单点连接;对于参考电源使用外部参考电压。在后面设计中,采用 LT1004CZ-2.5 参考电压源 作为但潘辰的参考2.5V的电压源。 ➤ 02模块设计1.电路设计1▲ 模块SCH▲ 快速制版PCB2.电路焊接制作下面是

 

01低噪声高精度AD采集模块

基于ADuC845的数据采集板 设计的模拟信号采集板在实验过程中采集信号出现了很大的噪声。主要是由于电路板底线没有进行很好的处理。

低噪声设计的主要方案:

  • 将单片机的电源和底线分成模拟和数字两个版本,之间通过单点连接;
  • 对于参考电源使用外部参考电压。在后面设计中,采用 LT1004CZ-2.5 参考电压源 作为但潘辰的参考2.5V的电压源。

 

02模块设计

1.电路设计1

▲ 模块SCH

▲ 快速制版PCB

2.电路焊接制作

下面是制作之后的PCB。左边是基于ADuC845的数据采集板 没有进行低噪声设计的版本。右边是采用了低噪声设计的版本。

▲ 焊接之后电路模块

 

03软件设计2



#include <ADUC845.h>
#include <stdio.h>
#include "STRING.H"

#include "uc845.h"
#include "serialtxt.h"
#include "control.h"
#include "config.h"
#include "ST7565.H"
#include "M25P64.H"

//------------------------------------------------------------------------------
char xdata szString[32];
//------------------------------------------------------------------------------
void main(void) { 
    unsigned int nCount;
    unsigned int nShow;
    int nNumber;

    UC845Init();
    ControlInit();
    SerialTxtInit();
    ST7565Init();

    //--------------------------------------------------------------------------
    printf("ADuC845 -- Dr. ZhuoQing %s %s\r\n", __DATE__, __TIME__);
    nCount = 0x0;
    
    //--------------------------------------------------------------------------
    nShow = 0;    
    nNumber = 0;
    
    ADC0SetChannel(ADC0_CHANNEL_AIN1);
    ADC1SetChannel(ADC1_CHANNEL_AIN2);

    while(1) { 
        nCount ++;
        if(nCount & 0x100) LED = 0;
        else LED = 1;
        
        WaitTime(1);
        
        //----------------------------------------------------------------------
        if(++nShow >= 250) { 
            nShow = 0;
            if(ADC0_CANREAD) { 
                sprintf(szString, "ADC0:%06x", ADC0ReadInt16());
            } else sprintf(szString, "ADC0:------");
            
            ST7565_Print(0, 2, szString);
            
            if(ADC1_CANREAD) { 
                sprintf(szString, "ADC1:%06x", ADC1ReadInt16());
            } else sprintf(szString, "ADC1:------");
            
            ST7565_Print(0, 4, szString);
            
            sprintf(szString, "Number:%04d", ++nNumber);
            ST7565_Print(0, 0, szString);

        }
        
        DACOutput(nCount);
            
        //---------------------------------------------------------------------- 
        ConsoleDebug();

    }
}

 

※ 结论

设计之后的版本可以实现采集电压版本。

  1. 模块电路AD工程文件:AD\ADuC845\2020\LowNoiseADuC845.PcbDoc * ↩︎

  2. 下位机的软件:C51\ADuC845\Test\2020\TestLCD\MAIN.c ↩︎

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服