This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS1220:特定时钟的数据转换

Guru**** 2394305 points
Other Parts Discussed in Thread: MSP430FR4133, XTR117, ADS1220, ADS1247, ADS124S06

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/625179/ads1220-data-conversion-at-specific-timings

部件号:ADS1220
主题中讨论的其他部件:MSP430FR4133XTR117,ADS1247ADS124S06

您好,TI:

这是我在这个论坛上的第一个职位。 我已经成功设计了流量计电子仪器(使用MSP430FR4133),用于在双线自定义段LCD (4-Mux)上显示实时流速和累计总流量。 它是安装在仪表上的装置,其输入通过涡轮流量计作为磁性正弦分离和簧片开关。 具有2线4/20mA脉冲输出,4-20mA模拟输出(XTR117)回路供电以及电池供电(在没有回路电源时仅使用40µA Ω)。 这一切都是因为您出色的参考设计。 我们对此非常感谢。

现在我要设计电磁流量计指示器。 在此中,将使用脉冲直流激励(恒流)方法激发线圈。 当导电液体通过线路时,由于线圈产生的交替磁场,电极处会产生电压。 在无流动或湍流的情况下,电极之间的差分电压几乎为零。  

我计划使用ADS1220 ADC转换器IC通过不锈钢电极收集差分电压样品。  

对于噪声抑制,脉冲直流激励的频率将是交流线路频率(印度为50 Hz)的倍数。 对于我们大多数常用的流量计线路尺寸,6.25Hz应是合适的激励频率。

以下是线圈的脉冲直流激励图像(由同一微控制器(MSP430FR4133,也是ADS1220的主控器)生成的时钟)。 在下图中以蓝色卵形突出显示的实例中,需要采集电极信号的样本。

我将同时使用 50 Hz和60 Hz的拒绝FIR过滤器配置。

关于ADS1220 ADC的问题是,我应该如何配置ADS1220?

1.我应该使用单影像模式还是连续转换模式?

2.数据速率应是多少?

3.还是采用20SPS数据速率的单次激发模式? 这是否有效?

如果TI也能提供电磁流量计的参考设计,这将非常有用。 :(

此致,

哈里什

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Harish,

    欢迎参加论坛! 与电源,启动和设置有关的注意事项有几个。  您还希望测量窗口中的结果保持一致。  您可以在20sps时使用单次激发模式,但问题在于对正时有信心,并且在开始测量时输入已充分稳定。

    我会使用更快的数据速率,捕获多个读数并计算结果的平均值。  通过这种方法,您可以在捕获数据时对其进行分析 ,以确保结果已稳定下来,并且不受稳定的影响。  我还会使用连续转换模式,并使用powerdown命令结束每个测量周期以节省电量。   测量周期的转换可通过启动/同步命令开始。  无论您使用单次激发模式还是连续模式,以及您选择的数据速率都取决于您对测量本身的信心程度。  如果您发现单次激发模式下的20sps也包括一些模拟稳定,则您尝试调整计时,但这不是决定性的,因为没有足够的数据 进行验证。  这就是为什么我建议多读数。

    为了保持一致性,我会使用定时器中断来启动每个周期,并设置额外的定时器来触发各种其他事件,包括发送启动/同步命令和每个1/2周期的断电。

    此致,

    Bob B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob,您好!

    感谢您的快速响应。

    [引述用户="Bob Benjamen"]

    如果您发现单次激发模式下的20sps也包括一些模拟稳定,则您尝试调整计时,但这不是决定性的,因为没有足够的数据 进行验证。

    [/QUOT]我将使用安装在同一线路中的涡轮流量计作为流速参考。

    电极 µVolts的信号对200µVolts μ S/mps的灵敏度一般为150 μ S/mps。 (MP是以米/秒为单位的流速)。 因此,在电极产生的0.5 m /秒到15 m /秒的范围内,差分信号通常位于80µVolt μ V到5mV之间。 电子设备将由交流电源供电(100V至260V,50Hz)。 此电极的信号非常弱,极易受到交流电源线频率产生的噪音的影响。

    这就是为什么我考虑使用ADS1220的50Hz抑制滤波器设置的原因。 但是,根据数据表,如果使用50Hz抑制,则不能超过20SPS。

    如果我使用5Hz双相脉冲直流激励线圈,那么在任何方向都可以准时获得100ms。 然后在线圈激励脉冲上升边缘50ms后发送启动命令(使用20SPS,50Hz抑制和某些PGA增益~16)并获取其他样本的平均值。 这是否有效?

    虽然我也会尝试提高数据速率。

    因为我将在设备中使用内置的SMPS供电,所以花费几毫安不会影响我。

    另一个问题是,在仅使用ADS1220的单极模拟电源时,是否也可以测量负极采样?

    此致,

    哈里什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Harish,

    您当然可以尝试按您描述的方式进行测量,然后将结果与涡轮流量计进行比较。  

    只要符合共模输入范围要求,您就可以使用单极电源测量差分信号。  如果相对于  AGND的输入(AINN或AINP)低于AGND,则ADS1220需要双极电源。

    此致,

    Bob B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob,您好!

    ADS1220的任意引脚是否可以取出内部参考电压? 我需要它作为我正在使用的仪表放大器的参考。

    AD8220ARMZ的引脚描述说,

    可以通过以下方式选择增益:

    下面给出了使用AD8220ARMZ的配置(增益通常在10到20之间)。 J2连接电极的原始信号。

    由于添加精密的低温漂移并联电压参考将增加我的项目的成本。

    如果无法将内部参考电压2.048V输出到ADS1220的任何引脚上,您是否可以推荐一款具有相同用途的替代JFET仪表放大器(低成本)?如果是,具有组件值的电路将会更有帮助。

    谢谢,此致,

    哈里什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Harish,

    遗憾的是,ADS1220设计不允许从器件中得出内部参考。  我们还有其它具有 参考输出功能的ADC,如ADS1247 (类似于ADS1220) 或ADS124S06。  对于INA,参考电平用于将 输出转换到ADC所需的输入范围。  这应该是一个低噪声源,因为 此电压将直接进入ADC。  我确信TI有一个等效的INA器件,但不幸的是,我不熟悉INA产品组合。  您可以在"精密放大器"下的"放大器论坛"上提出类似请求。

    此致,

    Bob B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob,您好!

    我正在尝试使用您提供的库与ADS1220进行通信,并对MSP430FR4133进行了一些修改。

    MSP430FR4133           ADS1220

    1.1   味增(DOUT)  

    WFP 1.0 >>---------------  MOSI (DIN)  

    WFP 1.2 >>---------------  SCLK  

    1.4   INT (DRDY)(内部(DRDY))  

    WFP 1.3 >>---------------  CS

    当我将增益写入ADS1220的配置寄存器时,从该寄存器读回来会返回正确的值。 这意味着ADS1220的配置很好。

    但是当我尝试将AINP上的ADC值读为AIN0,将AINN读为AVSS时,它只是给了我0xFFFFFFFF。 遗憾的是,我只有双通道范围,因此无法同时监控所有引脚。 我曾尝试读取各种配置中的ADC值,但没有运气。

    //main.c文件
    
    #include <msp430fr4133.h>
    #include "lcdLib.h"
    #include "ADS1220.h"
    
    //全局变量
    float Vol=f; 1.2.3456万
    char buffer[15];
    char dFlag =0,intr=9;
    
    void initGpio(void);
    void Init_Clock(void);
    void ConfigTimer(void);
    void SPIinit(void);
    void Init_startup (void);
    
    
    void main(void){
    
    带符号的long tData=0;
    
    WDTCTL = WDTPW + WDTHOLD;//停止看门狗
    delay_ms(10);//加电稳定的延迟
    init_startup ();
    ADS1220SendResetCommand();
    ADS1220Init();//初始化SPI端口引脚和控制
    ADS1220Config();//为ADS1x20器件设置基本配置
    ADS1220SetGain (ADS1220_Gain_32);
    lcdInit();//初始化LCD
    
    同时(1)
    {
    
    IF (dFlag=1)//如果有新数据可用
    {
    lcdClear();
    tData = ADS1220ReadData();//从ADS1220
    ADS1220SendShutdownCommand()获取数据;
    dFlag=0;
    Volt =(tData/2^23)*Vol; 2.048
    }
    ftoa(Volt,buffer, 3);
    lcdSetText;
    
    INTR=ADS1220GetGain();
    lcdSetInt(intr,14,1);
    
    
    }
    }
    void initGpio(void)
    {
    P1DIR = 0xFF;
    P2DIR = 0xFF;P3DIR = 0xFF;P4DIR = 0xFF;
    P5DIR = 0xFF; P6DIR = 0xFF;P7DIR = 0xFF;P8DIR = 0xFF;
    P1REN = 0xFF;
    P2REN = 0xFF; P3REN = 0xFF;P4REN = 0xFF;
    P5REN = 0xFF;P6REN = 0xFF;P7REN = 0xFF; P8REN = 0xFF;
    P1OUT = 0x00;
    P2OUT = 0x00;P3OUT = 0x00;P4OUT = 0x00;
    P5OUT = 0x00;P6OUT = 0x00;P7OUT = 0x00;P8OUT = 0x00;
    //禁用GPIO开机默认高阻抗模式
    //以激活先前配置的端口设置
    PM5CTL0 &=~LOCPM5;
    }
    Void ConfigTimer(void){
    
    TA0CCTL0 |= CCIE; //已启用TACR0中断
    TA0CCR0 = 3276; //=3.2767万/75,适用于75Hz
    TA0CTL = tassel__ACLK | MC__UP; // SMCLK,UP模式
    }
    
    void Init_Clock(void)
    {
    P4SEL0|= BIT1| BIT2; //将XT1引脚设置为第二个函数
    
    DO
    {
    CSCTL7 &=~(XT1OFFG | DCOFFG); //清除XT1和DCO故障标志
    SFRIFG1 &=~OFIFG;
    } While (SFRIFG1 & OFIFG); //测试振荡器故障标志
    
    __bis_sr_register (SCG0); //禁用FLL
    CSCTL3 |= SELREF__XT1CLK; //将XT1CLK设置为FLL参考源
    CSCTL0 = 0; //清除DCO和MOD寄存器
    CSCTL1 &=~(DCORSEL_7); //首先清除DCO频率选择位
    CSCTL1 |= DCORSEL_3; //设置DCO = 8MHz
    CSCTL2 = FLLD_0 + 243; // DCODIV = 8MHz
    __DELAY周期(3);
    __BIC_SR_REGISTER (SCG0); //启用FLL
    while (CSCTL7和(FLLUNLOCK0 | FLLUNLOCK1));//轮询,直到FLL锁定
    
    CSCTL4 = SELMS__DCOCLKDIV | LAST__XT1CLK;//将默认的REFO(~3.2768万Hz)设置为ACLK源,ACLK =3.2768万Hz
    //默认DCODIV为MCLK和SMCLK源
    
    PM5CTL0 &=~LOCKLPM2; //禁用GPIO开机默认高阻抗模式
    //要激活先前配置的端口设置
    ,}//
    将USCI SPI外围设备设置为使用A0
    void SPIinit(void)
    {
    UCA0CTLW0|= UCSWRST; //**将状态机置于RESET*
    UCA0CTLW0 |= UCMST | UCSYNC | UCMSB;// SPI主控,同步
    UCA0CTLW0 |= UCSSEL_2 | UCSWRST;//使用SMCLK设置比特率时钟,并保持复位
    UCA0BR0 =4;// SMCLK/4 = SCL0;
    CA0
    = ULW; CA0 //无调制
    UCA0CTLW0 &=~UCSWRST;//释放外设以使用
    }
    
    void Init_startup (void)
    {
    __disable_interrupt (); //禁用全局中断
    
    initGpio(); //初始化端口(执行第一个端口,因为时钟会更改端口)
    //SetVCore(3); // USB核心要求将VCORE设置为1.8 volt,取决于CPU时钟频率
    init_Clock();
    ConfigTimer();
    SPIinit();
    
    __enable_interrupit(); //启用全局中断
    }
    
    #pragma vector = Port1_vector
    __interrupt void Port_1(void)
    {
    
    SWITCH(__sene_in_range(P1IV,16))
    {
    案例0:中断;
    案例10:
    dFlag=1;
    中断;
    默认:中断;
    }}//end
    
    
    of main.c. 
    //在ADS1220.c.中所做的更改
    
    。void ADS1220Init(void)
    {
    
    P1SEL0|= ADS1220_DIN | ADS1220_DOUT | ADS1220_SCLK;//设置为辅助功能
    P1SEL0 &=~(GPIO 1220_DRDY| ADS1220_CS);//设置为ADS1220_ADS1220_UST);1220;
    
    //定义初始状态
    P1CS_1220= // CS实际上不是CS,因此应禁用高
    
    //定义输入
    P1DIR &=~(ASD1220_DRDY);// DRDY是微P1IES
    的输入|= ADS1220_DRDY;//并应用作检索数据的中断
    //定义输出
    P1DIR |= ADS1220_CS;
    
    返回
    
    ;}
    
    // ADS1220初始配置
    void ADS1220Config(void)
    {
    Unsigned Temp;
    
    ADS1220ReadRegister (ASD1220_0_register,0x01,&Temp);//
    
    清除prev值;
    Temp &=0x0F;
    Temp |= ADS1220_MUX_0_G;//输入多路复用器配置:1000:AINP = AIN0,AINN = AV0; ADS1220_AV0;
    
    写入
    寄存器中包含新值的ADS1220_ADS1220= AD_ADS1220;1220 AD_ADS1220;</s>1220
    
    ADS1220ReadRegister (ADS1220_1_REGISTER,0x01, &Temp);
    
    //清除prev数据速率代码;
    Temp &= 0x1f;
    Temp |=(ADS1220_DR_600 + ADS1220_CC);//将默认启动模式设置为600sps和连续转换
    // Temp ||(ADS1220_DR_600);
    // Temp &=~(ADS1220_CC); //将默认启动模式设置为20sps和单触发转换
    //将包含新值的寄存器值写回ADS
    ADS1220WriteRegister (ADS1220_1_register,0x01,&Temp);
    
    
    }
    /*轮询函数*/
    int ADS1220WaitForDataReady(int Timeout)
    {
    IF (超时>0)
    {//
    等待/DRDY =1
    While (!(P1IN & ADS1220_DRDY)&&(Timeout-->=0);//
    
    等待/DRDY =0
    while (P1IN & ADS1220_DRDY)
    
    和ADS1220_DRDY)超时<-0)
    //ADS1220_timeout_warning;
    }
    else
    {//
    wait for /DRDY =1
    while (!(P1IN & ADS1220_DRDY))
    ;
    // wait for /DRDY =0
    while (P1IN & ADS1220_DRDY))
    ;
    }
    return ADS1220_no_error;
    
    
    ADS1220AssertCS(
    
    
    ~ fint =
    
    
    
    

    //在ADS1220.h中所做的更改

    // WFP 1.3 #define ADS1220_CS BIT3 // WFP 1.0 #define ADS1220_DIN BIT0 // WFP 1.1 #define ADS1220_DOUT BIT1 // WFP 1.4 #define ADS1220_DRDY BIT4 // WFP 1.2 #define ADS1220_SCLK BIT2

    e2e.ti.com/.../lcdLib.c

    e2e.ti.com/.../lcdLib.h

    我正在使用的ADS1220分线板布局。

    我真的很喜欢这个。

    谢谢,此致,

    哈里什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Harish,

    是否确定中断在DRDY上正常工作?  我问,因为我看不到您给出启动/同步命令的任何地方。  您发出我认为是powerdown命令(ADS1220SendShutdownCommand()),要开始转换,您需要使用start/sync命令来开始新的转换(如果在单触发模式下 ),在连续模式下开始初始转换,或者在任何时候(如果在断电模式下)开始新的转换。

    此致,

    Bob B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob,您好!

    [引述用户="Bob Benjamen"]

    您发出我认为是powerdown命令(ADS1220SendShutdownCommand()),要开始转换,您需要使用start/sync命令来开始新的转换(如果在单触发模式下 ),在连续模式下开始初始转换,或者在任何时候(如果在断电模式下)开始新的转换。

    [/引述]
    感谢您的指出。 我尝试过以下方法,但这次也没有运气。 (600SPS,连续转换)
    //main.c文件
    
    #include <msp430fr4133.h>
    #include "lcdLib.h"
    #include "ADS1220.h"
    
    //全局变量
    float Vol=f; 1.2.3456万
    char buffer[15];
    char dFlag =0,intr=9;
    
    void initGpio(void);
    void Init_Clock(void);
    void ConfigTimer(void);
    void SPIinit(void);
    void Init_startup (void);
    
    
    void main(void){
    
    带符号的long tData=0;
    
    WDTCTL = WDTPW + WDTHOLD;//停止看门狗
    delay_ms(10);//加电稳定的延迟
    init_startup ();
    ADS1220SendResetCommand();
    ADS1220Init();//初始化SPI端口引脚和控制
    ADS1220Config();//为ADS1x20器件设置基本配置
    ADS1220SetGain (ADS1220_Gain_32);
    lcdInit();//初始化LCD
    ADS1220SendStartCommand();//开始第一个转换
    
    同时(1)
    {
    IF (dFlag=1)//如果有新数据可用
    {
    lcdClear();
    tData = ADS1220ReadData();//从ADS1220
    dFlag=0获取数据;
    Volt =(tData/2^23)*ADS; 2.048
    }
    ftoa(Volt,buffer, 3);
    lcdSetText(buffer, 0,0);
    
    Ginr=12;
    lcdSetInt(intr,14,1);
    
    
    }
    }
    void initGpio(void)
    {
    P1DIR = 0xFF;
    P2DIR = 0xFF;P3DIR = 0xFF;P4DIR = 0xFF;
    P5DIR = 0xFF; P6DIR = 0xFF;P7DIR = 0xFF;P8DIR = 0xFF;
    P1REN = 0xFF;
    P2REN = 0xFF; P3REN = 0xFF;P4REN = 0xFF;
    P5REN = 0xFF;P6REN = 0xFF;P7REN = 0xFF; P8REN = 0xFF;
    P1OUT = 0x00;
    P2OUT = 0x00;P3OUT = 0x00;P4OUT = 0x00;
    P5OUT = 0x00;P6OUT = 0x00;P7OUT = 0x00;P8OUT = 0x00;
    //禁用GPIO开机默认高阻抗模式
    //以激活先前配置的端口设置
    PM5CTL0 &=~LOCPMKL5;
    }
    Void Init_Clock(void)
    {
    P4SEL0|= BIT1| BIT2; //将XT1引脚设置为第二个函数
    
    DO
    {
    CSCTL7 &=~(XT1OFFG | DCOFFG); //清除XT1和DCO故障标志
    SFRIFG1 &=~OFIFG;
    } While (SFRIFG1 & OFIFG); //测试振荡器故障标志
    
    __bis_sr_register (SCG0); //禁用FLL
    CSCTL3 |= SELREF__XT1CLK; //将XT1CLK设置为FLL参考源
    CSCTL0 = 0; //清除DCO和MOD寄存器
    CSCTL1 &=~(DCORSEL_7); //首先清除DCO频率选择位
    CSCTL1 |= DCORSEL_3; //设置DCO = 8MHz
    CSCTL2 = FLLD_0 + 243; // DCODIV = 8MHz
    __DELAY周期(3);
    __BIC_SR_REGISTER (SCG0); //启用FLL
    while (CSCTL7和(FLLUNLOCK0 | FLLUNLOCK1));//轮询,直到FLL锁定
    
    CSCTL4 = SELMS__DCOCLKDIV | LAST__XT1CLK;//将默认的REFO(~3.2768万Hz)设置为ACLK源,ACLK =3.2768万Hz
    //默认DCODIV为MCLK和SMCLK源
    
    PM5CTL0 &=~LOCKLPM2; //禁用GPIO开机默认高阻抗模式
    //要激活先前配置的端口设置
    ,}//
    将USCI SPI外围设备设置为使用A0
    void SPIinit(void)
    {
    UCA0CTLW0|= UCSWRST; //**将状态机置于RESET*
    UCA0CTLW0 |= UCMST | UCSYNC | UCMSB;// SPI主控,同步
    UCA0CTLW0 |= UCSSEL_2 | UCSWRST;//使用SMCLK设置比特率时钟,并保持复位
    UCA0BR0 =4;// SMCLK/4 = SCL0;
    CA0
    = ULW; CA0 //无调制
    UCA0CTLW0 &=~UCSWRST;//释放外设以使用
    }
    
    void Init_startup (void)
    {
    __disable_interrupt (); //禁用全局中断
    
    initGpio(); //初始化端口(执行第一个端口,因为时钟会更改端口)
    //SetVCore(3); // USB核心要求将VCORE设置为1.8 volt,取决于CPU时钟频率
    init_Clock();
    SPIinit();
    
    __enable_interrupit(); //启用全局中断
    }
    
    #pragma vector = Port1_vector
    __interrupt void Port_1(void)
    {
    
    SWITCH(__sene_in_range(P1IV,16))
    {
    案例0:中断;
    案例10:
    dFlag=1;
    中断;
    默认:中断;
    }}//end
    
    
    of main.c. 

    此外,正如您所说,中断根本不起作用,因为dFlag从未设置。

    谢谢,此致,

    哈里什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Harish,

    首先,通过使用范围进行验证,确保DRDY实际上是切换的。  如果DRDY正在切换,并且您没有收到中断,则需要验证中断的设置和连接。  有时,如果中断已发出,但以前从未服务过,它有助于清除中断。

    此致,

    Bob B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob,您好!

    感谢您的持续支持。

    未启用DRDY中断。 我刚刚启用了DYDY引脚中断并修复了它。 现在它正在使用单激发转换,330SPS和增益=1。 我用来转换为毫伏的公式是

    mVolt =(浮动)(tData/2^23)/2048; 

    1.但现在的问题是,当我使用某些PGA增益设置时,它不返回正确的值。 对于GAIN =16,我使用公式AS,

    mVolt =(浮动)(tData/2^23)/128; 

    main.c文件附在下面。 请给出建议。

    e2e.ti.com/.../0820.main.c

    2.我遇到的另一个问题是,当我使用CCS编译相同的代码时,它会生成大约14KB的代码大小。 但当我使用IAR编译时,它只生成5.3Kb大小。 链接器是否有任何设置。 我正在使用CCS版本6.2。0

    谢谢,此致,

    哈里什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Harish,

    应用增益后,是否确定输入电压在ADS1220的正确共模输入范围内?  在进行任何转换之前,您所施加的电压是多少?您得到的输出代码是什么?  这将非常有助于了解如何帮助诊断您的问题。

    就代码大小而言,这种较大的代码大小通常是由于调试器代码造成的。  尝试将配置更改为“释放”。  使用Release Build时,您将无法再使用调试器。

    此致,

    Bob B