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.

[参考译文] TMS320F28376S:ADC 采集窗口持续时间

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/863675/tms320f28376s-adc-acquisition-window-duration

器件型号:TMS320F28376S

尊敬的先生:

我们正在开发的产品之一中使用28376S 芯片,并对 ADC 采集时间进行重新分级有一些问题。

ADC-A 被设定为在50MHz 频率下工作 (C28x 在200MHz 上工作), 采集时间为 500ns ( 我也尝试过1000ns)

2、我们设置了4xSOC (0..4)来采样  特定模拟输入(3、2、5、4、0) - SOC0-4的触发来自 PWM1 (例如、20Khz 频率下的 EPMSOCA)

除了 SOC15、我们还定义了对内部温度进行采样(例如 CHSEL=13)、触发频率为每~100ms 由软件触发一次

答:我们所面临的问题是,每隔~100ms (内部温度测量),    SOC0 ( 在 SOC15之后采样)就会受到一定的影响,SOC0连接到0v。

SOC0在+15 ADC 点之间变化,如果我们在 SOC15上停止采样,没有问题,您能就此问题提出建议 吗?

b.关于  ADC 采集时间 、如果我们在模拟引脚 RC 滤波器上的 Rs=220 Ω 且 Cs=680ns 、  则根据文档、采集时间将为~ 880ns   

它是否正确,或者我们有误计算?

C.在顺序采样之间可能产生额外影响的因素 (例如,SCO0影响 SOC1,SOC1影响 SOC2 )

我们怀疑这是 由于顺序采样 而不是噪音,请您发表意见?

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

    您好、Eyal、

    是的、通常一个采样对后续采样的影响是由后续通道上的 S+H 时间不足造成的。

    您确定220 Ω+ 680pF RC 是输入端唯一的阻抗吗?

    驱动运算放大器的带宽是多少?  您可以在以下资源中找到所需 BW 的计算: https://training.ti.com/ti-precision-labs-adcs-introduction-sar-adc-front-end-component-selection?context=1139747-1128375-1139106-1128643

    SW 力可能影响的另一个因素是采样的时序/顺序。  您可以将温度传感器样本添加到 ePWM 驱动样本、以确保时序一致。   

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

    您好,Devin,

    感谢您的快速响应,我尝试修改了各种参数 ,如 ACQ 时间、ADC 频率,甚至通过 PWM 触发将 SOC15 (内部温度)设置为(如其他 SOC0.4),并删除了软件触发器。

    1.我仍然觉得顺序采样之间有一定的影响

    我进行了一些测试 ,其中包括将 BLDC 电机连接到装置(产品是 BLDC 驱动器)并测量电流,它打开

    SOC0 - ADCA、

    SOC0 - ADCB  

    我们还有额外的电机控制、我们可以控制它的电流测量值为、它   

    SOC1-ADCA、

    SOC1-ADCB 、

    连接到该轴、而不是电机。

    采样的顺序为(电机#1 (IT-SOC0_ADCA、IT-SOC0_ADCB)、然后电机#2 (IT-SOC1_ADCA、IT-SOC1_ADCB)

    A.当电机被连接到轴#1上时,它对轴#2有一定的影响  (高达~ 12 ADC 点),它与电流(正弦波)相关

    B.当我们将电机连接到轴#2 并移动它时  , 对轴#1没有直接影响    

    为此,我想影响 只能是顺序(SOC0 -> SOC1),而不能是另一种方式。

    然后、我更改代码、以便反向采样   

    例如,2号电机是,IT (SOC0-ADCA、SOC0-ADCB)

    1号电机   是、IT (SOC1-ADCA、SOC1-ADCB)

    并进行了与之前相同的测试,仅存在一些顺序影响 (例如 SOC0--affect >SOC1)

    您能就此事提出建议 吗? (我已将 S+H 增加到511 ~ 1.5us,ADC 引脚具有200pf 电容),电机电流通过 OP-AMP 馈送

     

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

    您好、Eyal、

    您是否可以将缓冲器和输入电路以及设置代码共享到 ADC?  只是想快速检查一下是否有一些项目可能被忽略了。

    谢谢、此致、

    Joseph  

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

    您好, Joseph ,

    感谢您的响应,我实际上无法分享原理图,但下面 是28376S 的模拟输入 (所有模拟都是相同的)

    如果缺少特定内容,请说明,我将根据进行披露。  

    空配置 ADC (空)


    //为所有4个 ADC 转换器加电
    EALLOW;

    /*启用 ADC 时钟*/
    CpuSysRegs.PCLKCR13.bit.ADC_A = 1;
    CpuSysRegs.PCLKCR13.bit.ADC_B = 1;
    CpuSysRegs.PCLKCR13.bit.ADC_C = 1;
    CpuSysRegs.PCLKCR13.bit.ADC_D = 1;

    /*重置 ADC*/
    DevCfgRegs.SOFTPRES13.bit.ADC_A = 1;
    DevCfgRegs.SOFTPRES13.bit.ADC_B = 1;
    DevCfgRegs.SOFTPRES13.bit.ADC_C = 1;
    DevCfgRegs.SOFTPRES13.bit.ADC_D = 1;

    /*释放 ADC 复位*/
    DevCfgRegs.SOFTPRES13.bit.ADC_A = 0;
    DevCfgRegs.SOFTPRES13.bit.ADC_B = 0;
    DevCfgRegs.SOFTPRES13.bit.ADC_C = 0;
    DevCfgRegs.SOFTPRES13.bit.ADC_D = 0;

    /*设置默认 ADC 配置字#1*/
    //位15-14 00:保留
    //位13 0:ADCBSY、ADC 忙、只读
    //位12 0:保留
    //位11-8 0:ADCBSYCHN、ADC 忙通道、只读
    //位7 0:ADCPWDNZ、ADC 断电、0 =断电、1 =上电
    //位6-3 0000:保留
    //位2 1:INTPULSEPOS、INT 脉冲生成、0=转换开始、1=转换结束
    //位1-0 00:保留
    AdcaRegs.ADCCTL1.ALL = 0x0004;
    AdcbRegs.ADCCTL1.ALL = 0x0004;
    AdccRegs.ADCCTL1.ALL = 0x0004;
    AdcdRegs.ADCCTL1.ALL = 0x0004;


    /*设置默认 ADC 配置字#2*/
    //位15-8 0:保留
    //位7 0:SIGNALMODE,由下面的 AdcSetMode()配置以获得正确的校准
    //位6 0:分辨率,由下面的 AdcSetMode()配置以获得正确的校准
    //位5-4 00:保留
    //位3-0 0110:预分频、ADC 时钟预分频器。 1000=CPUCLK/5   

    /*将 ADC CLK 设置  为200MHz/5=40MHz,*/

    AdcaRegs.ADCCTL2.ALL = 0x0008;
    AdcbRegs.ADCCTL2.ALL = 0x0008;
    AdccRegs.ADCCTL2.ALL = 0x0008;
    AdcdRegs.ADCCTL2.ALL = 0x0008;

    /*设置 ADC 突发模式*/
    //位15 0:BURSTEN、0 =禁用突发模式、1 =启用突发模式
    //位14-12000:保留
    //位11-8 0000:BURSTSIZE、0=1 SOC 已转换(无关)
    //位7-6 00:保留
    //位5-0 000000:BURSTTRIGSEL,00=仅软件(无关)
    AdcaRegs.ADCBURSTCTL.ALL = 0x0000;
    AdcbRegs.ADCBURSTCTL.ALL = 0x0000;
    AdccRegs.ADCBURSTCTL.ALL = 0x0000;
    AdcdRegs.ADCBURSTCTL.ALL = 0x0000;

    /*设置 ADC 分辨率和瓶胚校准*/
    AdcSetMode (ADC_ADCA、ADC_resolution_12位、ADC_SIGNALMODE_SINGLE);
    AdcSetMode (ADC_ADCB、ADC_Resolution、12位、ADC_SIGNALMODE_SINGLE);
    AdcSetMode (ADC_ADCC、ADC_Resolution、12位、ADC_SIGNALMODE_SINGLE);
    AdcSetMode (ADC_ADCD、ADC_Resolution、12位、ADC_SIGNALMODE_SINGLE);

    /*设置 SOC */
    SetupADCChanenls();

    /*为 ADC*/加电
    AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;//为 ADC 加电
    AdcbRegs.ADCCTL1.bit.ADCPWDNZ = 1;//为 ADC 加电
    AdccRegs.ADCCTL1.bit.ADCPWDNZ = 1;//为 ADC 加电
    AdcdRegs.ADCCTL1.bit.ADCPWDNZ = 1;//为 ADC 加电

    DELAY_US (1000);//延迟1ms 以允许 ADC 加电时间
    EDIS;

    /*设置 SOC */

    void SetupADCChanenls (void)(空)

    /*禁用 ADC 中断*/
    AdcaRegs.ADCINTSEL1N2.ALL = 0;
    AdcaRegs.ADCINTSEL3N4.ALL = 0;
    AdcbRegs.ADCINTSEL1N2.all = 0;
    AdcbRegs.ADCINTSEL3N4.ALL = 0;
    AdccRegs.ADCINTSEL1N2.ALL = 0;
    AdccRegs.ADCINTSEL3N4.ALL = 0;
    AdcdRegs.ADCINTSEL1N2.ALL = 0;
    AdcdRegs.ADCINTSEL3N4.ALL = 0;

    /*解压所有 SOC 触发器*/
    AdcaRegs.ADCINTSOCSEL1.ALL = 0;
    AdcaRegs.ADCINTSOCSEL2.ALL = 0;
    AdcbRegs.ADCINTSOCSEL1.ALL = 0;
    AdcbRegs.ADCINTSOCSEL2.ALL = 0;
    AdccRegs.ADCINTSOCSEL1.ALL = 0;
    AdccRegs.ADCINTSOCSEL2.ALL = 0;
    AdcdRegs.ADCINTSOCSEL1.ALL = 0;
    AdcdRegs.ADCINTSOCSEL2.ALL = 0;

    /*ADC SOC 优先级*/
    AdcaRegs.ADCSOCPRICTL.bit.SOCPRIORITY = 0;
    AdcbRegs.ADCSOCPRICTL.bit.SOCPRIORITY = 0;
    AdccRegs.ADCSOCPRICTL.bit.SOCPRIORITY = 0;
    AdcdRegs.ADCSOCPRICTL.bit.SOCPRIORITY = 0;

    / /
    /*ADC_A */
    / /
    /*SOC 0*/
    AdcaRegs.ADCSOC0CTL.bit.CHSEL = ADCA_IS0;// SOC0 ADCA 将在通道 ADCINA3 (相位 S0)上转换
    AdcaRegs.ADCSOC0CTL.bit.ACQPS = ADC_ACQ_WINDOW;//ADC_ACQ_WINDOW = 90 > 90*5ns=400ns
    AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 5;//ePWM1 SOCA (CTR=PRD)
    AdcaRegs.ADCINTSOCSEL1.bit.SOC0 = 0;

    /*SOC 1*/
    AdcaRegs.ADCSOC1CTL.bit.CHSEL = ADCA_IS1;// SOC1 ADCA 将在通道 ADCINA4 (S1相)上转换
    AdcaRegs.ADCSOC1CTL.bit.ACQPS = ADC_ACQ_WINDOW;//采样为15个 SYSCLK 周期--> 75ns
    AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 5;//ePWM1 SOCA (CTR=PRD)
    AdcaRegs.ADCINTSOCSEL1.bit.SOC1 = 0;

    /*SOC 2*/
    AdcaRegs.ADCSOC2CTL.bit.CHSEL = ADCA_SIN0;// SOC2 ADCA 将在通道 ADCINA2 (SIN0)上转换
    AdcaRegs.ADCSOC2CTL.bit.ACQPS = ADC_ACQ_WINDOW;//采样为15个 SYSCLK 周期--> 75ns
    AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 6;//ePWM1 SOCB (CTR=0)
    AdcaRegs.ADCINTSOCSEL1.bit.SOC2 = 0;

    / /
    /*ADC_B */
    / /
    /*SOC 0*/
    AdcbRegs.ADCSOC0CTL.bit.CHSEL = ADCB_IT0;// SOC0 ADCB 将在通道 ADCINB3 (相位 T0)上转换
    AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 5;//ePWM1 SOCA
    AdcbRegs.ADCSOC0CTL.bit.ACQPS = ADC_ACQ_WINDOW;//采样为15个 SYSCLK 周期--> 75ns
    AdcbRegs.ADCINTSOCSEL1.bit.SOC0 = 0;

    /*SOC 1*/
    AdcbRegs.ADCSOC1CTL.bit.CHSEL = ADCB_IT1;// SOC1 ADCB 将在通道 ADCINB5 (相位 T1)上转换
    AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 5;//ePWM1 SOCA
    AdcbRegs.ADCSOC1CTL.bit.ACQPS = ADC_ACQ_WINDOW;//采样为15个 SYSCLK 周期--> 75ns
    AdcbRegs.ADCINTSOCSEL1.bit.SOC1 = 0;

    /*SOC 2*/
    AdcbRegs.ADCSOC2CTL.bit.CHSEL = ADCB_COS0;// SOC2 ADCB 将在通道 ADCINB2 (COS0)上转换
    AdcbRegs.ADCSOC2CTL.bit.ACQPS = ADC_ACQ_WINDOW;//采样为15个 SYSCLK 周期--> 75ns
    AdcbRegs.ADCSOC2CTL.bit.TRIGSEL = 6;//ePWM1 SOCB (CTR=0)
    AdcbRegs.ADCINTSOCSEL1.bit.SOC2 = 0;

     针对 ADC 触发器的 SOCA、SOCB 的 ePWM #1设置  

    /*ADC 触发机制基于 CTR=PRD 上的 ePWM1 ePWMSOCA,CTR=0上的 ePWMSOCB */
    EALLOW;

    /*在第一个事件上启用 ePWMSOCA */
    EPwm1Regs.ETPS.bit.SOCAPRD = ET_1ST;

    /*启用 ePWMSOCA */
    EPwm1Regs.ETSEL.bit.SOCAEN = 1;

    /*Event ePWMSOCA on CTR=0*/
    EPwm1Regs.ETSEL.bit.SOCASEL = ET_CTR_ZERO;

    /*在第一个事件上启用 ePWMSOCB */
    EPwm1Regs.ETPS.bit.SOCBPRD = et_1st;

    /*启用 ePWMSOCB */
    EPwm1Regs.ETSEL.bit.SOCBEN = 1;

    /*Event ePWMSOCB on CTR=0*/
    EPwm1Regs.ETSEL.bit.SOCBSEL = ET_CTR_ZERO;

    EDIS;

    每个 PWM 周期(在 CTR=0时)  处理伺服寄存器和运动控制的中断获取 ADC 样本(在~10us 之后),所有 ADC 都有停止转换(所有中断都是针对 PWM CTR=0)

    以验证 ADC 是否已完成  

    void ISR_Handle () //at PWM CTR=0 every 20Khz

    ~10us 后

    (笑声)

    /*如果 ADC A、B、C、D 尚未完成相关通道的转换*/,则等待
    对于(SERVO_LATCH_ADC_LON_0;SERVO_LATCH_ADC_LON_= 300;SERVO_LATCH_ADC_LIN++)

    /*等待 ADC A、B、C、D 不忙*/
    如果((AdcRegs.ADCCTL1.bit.ADCBSY =0)&&(AdcbRegs.ADCCTL1.bit.ADCBSY =0)&&(AdcRegs.ADCCTL1.bit.ADCBSY =0)&&(AdcRegs.ADCCTL1.bit.ADCBSY =0)&&(AdcdRegs.ADCCTL1.bit.ADCBSY =0)

    IF (SERVO_LATCH_ADC_dly > SERVO_LATCH_ADC_dly_max)
    伺服_LATCH_ADC_dly_max =伺服_LATCH_ADC_dly;
    中断;

    getADCResults();//读取所有 ADC 结果

    流量短

    1.set UP ADCA、B 用于对 ADC-A (IS0、IS1) 、ADC-B (IT0、IT1)进行采样 -在 CTR=0时触发到 ADC 的是 ePWM SOCA、SOCB

     a. ADC  @40MHz (200MHz/5=40MHz)

     b. ACQ 时间=100  ,例如100*5ns =500ns,适用于所有 SOC  

    2.set PWM at 20Khz,将 SOCA、SOCB 设置为 CTR=0

    每20Khz 触发一次 ISR 以处理伺服算法(~10us 之后)读取 ADC 结果。

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

    只是为了了解更多信息,我已实施了一些解决方法来减少/消除此问题

    在2个后续样本(例如 IS0、IS1)之间、我插入了对模拟输入#8 (例如、VREFLO、即 GND)进行采样的附加 SOC

    因此 ADC 采样顺序 现在是  (SOC0) IS0..... (SOC1) VREFLO… (SOC2) IS1 (SOC3) VREFLO ,全部由 ePWM1触发  

    这当然会增加额外的采样时间。

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

    您好、Eyal、

    感谢您提供更多详细信息。  以下是一些注释:

    1) 您最好在设计中考虑了采集窗口计算。  用户经常会忽略这一点。

    2) 查看缓冲器原理图、乍一看、似乎有680pF 电容和51欧姆串联电阻、但我对反馈路径有疑问、尤其是 R2和 R3以及电平转换器 V1。  在原理图中、这表示为1.5V、但这可能是一个具有滤波电容器的参考芯片。  R2、R3以及与 V1电源相关的任何电容都可能使输入阻抗网络比仅 R1和 C1复杂得多。  最好在考虑所有这些组件的情况下对 ADC 输入端的输入阻抗进行建模。

    3) 查看设置代码、可以看到每个 ADC 以串行方式(SOC0->SOC1->SOC2)进行转换、并且 ADCA 和 ADCB 的 ePWM 触发器相同、因此 ADCA/B 会同时转换每个 SOC 数  ADC 的 ACQPS 和 ADCLK 设置也相同。  这似乎符合 TRM 中描述的 ADC 的"同步运行模式"。  异步运行模式会在转换期间产生一些错误。

    4) 在折扣了异步运行模式后、问题可能仍然与采样窗口有关。  正如我在项目2中指出的那样、外部阻抗可能不仅仅是 R1和 C1、但我可能会错。  通过在之间插入 VREFLO 转换、这可能是一种症状、即在转换下一个 SOC 之前、在输入端看到剩余电荷(必须完全放电)-这表示可能需要重新计算采样窗口/阻抗。

    此致、

    Joseph

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

    您好,Joseph,

    感谢您的快速响应,您能不能帮助我通过 使用 TINA 之类的某种模拟来解决 S+H 上的阻抗效应问题  

    或请我参考一个。

    谢谢  

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

    您好、Eyal、

                 我将查看我们是否有用于此目的的 TINA 资源。  我会随时向您发布。

    此致、

    Joseph

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

    您好 Joseph  

    只是为了提供附加信息  

    OP-AMP 为 OPA2365AIDG4 、带宽为50MHz、开环电阻为30欧姆(在本例中小于3欧姆)

    输入到(+)的参考电压为2.5V TL4050B25IDBZT

    3.我尝试弄清楚 ADC 引脚旁边的 RC 滤波器、它也会影响 ACQ 时间   

    我尝试将 ACQ 时间缩短为511 (例如5*511 ~ 2.55us),它看起来解决了这个问题,但我不明白为什么看到 ADC 引脚  

    如此高的冲击、需要这么长的 ACQ 时间

    5. ADC 引脚旁边的附加缓冲区是否可以解决此问题(例如,ADC 的阻抗看起来是?)

    很高兴听到 if 和 addional 的建议  

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

    您好、Eyal、

    抱歉、我不太幸运使用 ADC 输入 TINA 模型。  我想的是、除了在 TINA 中创建源电阻和电容之外、还创建一个 RC 输入等效电路、其中计时开关在 ACQPS 持续时间内打开并打开、以允许 Ch 放电(在 SAR 中) 但尚未实现。  如果您有机会、也可以尝试使用它。

    总之、感谢您提供其他信息。  我看不到您使用的运算放大器和参考 IC 有任何问题。  您在项目4中的实验表明、这是您要处理的稳定时间问题。  511是最大 ACQPS 计数、在 SH 时间内相对较大。  请继续操作、并尝试在 ADC 引脚的输入端实现另一个缓冲器。  缓冲器会将 ADC 输入与电流电路中存在的任何阻抗隔离、然后您应该能够使用最小 ACQPS 计数。

    此致、

    Joseph

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

    您好、Eyal、

    您是否有机会在信号调节器电路之后实现缓冲器、以查看转换和采样时间是否已解决?

    此致、

    Joseph

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

    您好,Joseph,

    实际上 ,我们正在考虑为下一个 PCB 布局添加这种东西,因为在当前板中添加缓冲器不是很容易,因为组件布局相当密集(因此添加贴片相当简单)。

    1.如果我们谈论缓冲区,如果在 RC 滤波器之后添加缓冲区以隔离阻抗,我们仍然需要添加 captor (这将为 S+H 充电)? 如果是,它的最小值是多少?

    关于仿真,已创建了与调制 S+H 的仿真 ,并在2个输入之间切换以查看其行为方式,但通过仿真,ACQ 时间要短得多(或者我缺少了一些东西)

    最后一个仍在研究中的选项是将 RC 滤波器减少到 ADC 引脚附近、并在 RC 滤波器之前将其移至 OP-AMP (例如、将滤波器移至 OPAMP)

    问题在于 OPAMP 与 DSP 不在同一电路板上,因此使走线接近 DSP 会受到噪声、串扰的影响  

    如果你有任何意见或想法,我很高兴听到你的意见  

    Eyal。

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

    您好、Eyal、

    通常、直接位于 ADC 引脚上的 R 和 C 不用于滤波目的。  相反、引脚上有一个 C、其功能是:

    • 将浪涌电流减小至 S+H 开关第一次闭合时、以便将引脚上的瞬态电压尖峰降至最低。  典型的建议 Cs=20*Ch 将使输入瞬态保持在少于1/20=少于输入范围的5%。  这可以防止驱动运算放大器必须转换。  
    • 直接提供充电通道所需的全部电流、使其接近最终电压(这称为"电荷共享")、从而使 S+H 时间非常短。  对于一个12位 ADC,4096*2*Ch 将在大型外部电容器与小型内部电容器相等之后导致1/2 LSB 的稳定误差。

    然后、R 函数将:

    • (在非电荷共享情况下)添加了一些小 R (例如20欧姆)、以确保驱动运算放大器在驱动容性负载时保持稳定
    • (在电荷共享情况下) R 通常不是有意的;它来自分压器或是某些传感器的输出电阻。  R 的大小、采样率和稳定误差之间将存在折衷。  

    因此、为了获得最佳性能、您通常会拥有

    • 滤波器级-->驱动级--> ADC 引脚 R-C (上面讨论过)--> ADC 引脚

    上面没有提到的另一个经验法则是、理想情况下  、驱动级的运算放大器时间常数(1/2*pi*op-amp-bandwidth)应该大约为引脚 R-C 的1/4  这可确保运算放大器带宽不是决定稳定时间的限制因素。  这可能会导致滤波器级将信号带宽限制在200kHz 左右、但驱动级仍需要具有几 MHz 带宽的运算放大器来驱动 ADC、从而实现最佳性能/最短稳定时间。   

    您可以从以下网址获得有关该主题的更多信息: https://training.ti.com/node/1139106

      

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

    您好,Joseph,  

    感谢提供信息的回答,我们已根据您的建议 安装了一些补丁,并将测试将分阶段到

    滤波器(RC)->OPAMP (具有一定的层叠)->ADC R-C (Rs=51欧姆,Cs=680pf ~ 217ns ACQ 时间)。

    关于 替代选项和选择 Cs,在~ 这种情况下,您建议 ACQ 时间最短?

    数据表建议~75ns (或至少1个 ADC CLK),它是否正确?  

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

    您好、Eyal、

    是的、对于118nF、您可以使用75ns S+H  

    请注意、对于给定的 Rs、采样率和误差之间将存在折衷。   

    • 外部源需要在两次采样之间的时间内对 Cs 至 Rs 进行再充电  
      • 这是对同一通道进行采样之间的时间、而不是在转换序列中的后续通道之间进行采样(通常这最终是 EPWM 生成触发事件的速率)
      • 您不必假设 Cs 已完全充电或放电

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

    [引用 user="Eyal Saban1"] 对   SOC0 (在 SOC15之后立即采样)有一些影响,SOC0连接到0v。

    这是因为两个在地面上运行 dv/dt 的电机将是主要可疑的、会对 SOC0产生影响。 如果 SOC0保持悬空(禁用)或连接到3V3、会发生什么情况? TM4C1294中的 ADC 温度传感器有已知的 S+H 勘误表。 它需要奇数中断处理程序 WA 保持安静、但循环读取后直接耗尽 FIFO、这也与5ms 计时器驱动的触发处理器相同。

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

    尊敬的 GL:

    感谢您的意见  

    1."在地面上运行 dv/dt 的两个电机将成为主要的疑似故障、对 SOC0的影响" - 我们也怀疑此问题、但我们   看到影响在后续方式中是 alwyas、例如 SOC0影响 SOC1影响 SOC2 等

    我们通过在 SOC 之间采样 VERFLO 来消除此问题(只是为了验证)                                                                (例如 SOC0 (VERFLO)、SOC1 (sample #1)、SOC2 (VERFLO)、SOC3 (sample #2)、SOC4 (VERFLO)……)

    问题很可能是由于初爆器问题时间和荒谬的工作模式(所有 ADC 必须使用相同的 CLK 同时触发)

    2.I actalyy 没有在 TMS32028376S 中看到 任何有关温度传感器的勘误表,这是唯一需要700ns 的访问时间的东西  

    如果可以、请向我推荐

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

    您好、Eyal、

    [引用用户="Eyal Saban1"]

    我没有在 TMS32028376S 中看到 任何有关温度传感器的勘误表,唯一需要700ns 的访问时间 的是,如果可以,请向我咨询[/引述]

    我之前提到的另一个 MCU 类别有勘误表 、 但后来回顾 了 TMS32F82049c 注意   、ADC 模块中没有内置单独的温度传感器。  TI 工程师 让 SW 轮询温度函数 在环路等待 传感器中断、  并将处理器触发 作为计时器的源断言。

    我们的 MCU 为     多  个外部温度传感器使用具有触发处理器 ADC 转换1秒间隔的计时器。 否则 、更快的采样率 电机 噪声 会 以不良的方式影响传感器。 在  ADC 输入或 电荷共享电容器附近添加1k 电阻器下拉、任何值都会使一个传感器上的噪声输入变得更糟。 有时、    单独使用电阻器 PD 和传感器负载电容时、没有电荷电容会更好、 700ns 的缝隙对于内部传感器而言有点长。    

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

    尊敬的 GL:

    1.我没有注意到您提到了扩散 MCU,感谢您的启发  

    2.对内部温度传感器的精度时间进行重新调整 、这是根据数据表进行的