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.

[参考译文] ADC5140随机样本"粘滞"全部0或全部1

Guru**** 2484615 points
Other Parts Discussed in Thread: ADC5140EVM-PDK

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1097335/adc5140-random-samples-sticking-to-all-0-or-all-1

部件号:TLV320ADC5140
线程中讨论的其他部件:ADC5140EVM-PDK

您好!  我需要一些帮助,以菊花链模式配置两个ADC5140 ADC (如应用说明中的图9所示: 具有共享TDM和I 2C总线的多个TLV320ADCx140设备)。  我正在 使用TDM模式,24位,8个通道(4个来自第一个ADC,4个来自第二个ADC)。  大部分情况下都正常工作,但随机的情况是,我从链上最后一个ADC的第一个通道中得到全部0或全部1。  我附上了一个示例,说明了该问题。  我的初始化代码如下所示:

//拉低硬件重置,等待10毫秒,然后释放

CLR_ADCMASTER_RESET;   
Systick_Delay_ms (10);       
Set_ADCMASTER_RESET;
Systick_Delay_ms (10);

// 模数转换器1/////////////////////////////////////////////////////////////////////   

LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_PAGE_SELECT,0x00);//将页面设置为零
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_SLEEP_CFG,0x81);//唤醒并启用Areg

Systick_Delay_ms (10);

LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_ASI_CFG0,0x20); // 24位字
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_ASI_CFG1,0x00);
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_ASI_CH1,0x00);//映射到默认插槽
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_ASI_CH2,0x01);  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_ASI_CH3,0x02);  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_ASI_CH4,0x03);  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_BIAS-CFG,0x60);  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_CH1_CFG0,0x80);//线路输入,差分, 交流耦合
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_CH2_CFG0,0x80);//  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_CH3_CFG0,0x80);//  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_CH4_CFG0,0x80);//  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_DSP_CFG0,0x00);//

LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_ASI_OUT CH_EN,0xf0);  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_in_CH_EN,0xf0);  
LPI2C1_Write (I2C_ADDR_ADC1,ADCX140_PWR_CFG,0x60);  

// 模数转换器2 //////////////////////////////////////////////////////////////////////

LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_PAGE_SELECT,0x00);//将页面设置为零
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_SLEEP_CFG,0x81);//唤醒并启用Areg

Systick_Delay_ms (10);

LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CFG0,0x20);
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CFG1,0x00);  
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CFG2,0x80);//设置Daisy链模式
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CH1,0x00);//   映射到默认插槽
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CH2,0x01);//
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CH3,0x02);//
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CH4,0x03);//
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_GPIO _CFG0,0xB0);//为菊花链式输入GPIO
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_BIAS-CFG,0x60);//
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_CH1_CFG0,0x80);//通道1配置
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_CH2_CFG0,0x80);//通道2配置
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_CH3_CFG0,0x80);//通道3配置
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_CH4_CFG0,0x80);//通道4配置
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_DSP_CFG0,0x00);

LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_OUT CH_EN,0xf0);  
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_in_CH_EN,0xf0);  
LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_PWR_CFG,0x60);  

有人能告诉我为什么我会得到粘在所有0或1上的间歇性样本吗?  只有第二个ADC的第一个通道?

提前感谢大家!

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

    快速更新。  "错误"似乎与输入信号有关。  我正在使用函数发生器的两个输出驱动输入,偏移180度。  如果输入大于大约20mVpp,则出现问题。  但是,从数据表中我可以看到输入(AVDD = IOVDD = 3.3V)可以处理高达2Vpp -所以我仍然感到困惑。  希望这能有所帮助!

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

    您好Bucky,

    感谢您提供额外信息。 Sanjay是一位工程师,他会为您研究这个问题;您很快就会听到他的声音。

    感谢您的耐心等待,

    Jeff

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

    请将您的示意图发送给我吗?

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

    你好Sanjay!  

    我没有任何写出来-但 它是 您的ADC5140EVM-PDK主板(DC087 A)中的两块。  它们的布线方式与 应用说明中的图9所示完全相同: 多台TLV320ADCx140设备,具有共享TDM和I2C总线  虽然不是4台设备,但只有2台。

    所有+输入都连接到 函数发生器的第一个通道(1kHz,相位= 0度)。  输入全部连接到函数发生器的第二个通道(1kHz,相位= 180度)。  发电机的接地与演示板的接地相连。 移除管座(J5至J12),以便信号与ADC进行交流耦合。   

    感谢你的帮助。

     

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

    对于第二个ADC,您可以尝试插槽4,5,6,7的ASI_CHI吗?

    LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CH1,0x04);  
    LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CH2,0x05);  
    LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CH3,0x06);  
    LPI2C1_Write (I2C_ADDR_ADC2,ADCX140_ASI_CH4,0x07);  

    如果有帮助,请告诉我

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

    您好,Sanjay,感谢您的回复。  下面是我尝试您的解决方案时会发生的情况。

    由于这些器件是以菊花链方式连接的,因此将第二个ADC的数据移至插槽4至7似乎会将其从主ADC的数据流中删除(我假设它正在查找插槽0至3中的辅助ADC的数据?)

    应用程序说明(P14/P15)显示"请注意,每个设备的信道都映射到插槽0-3 ",这也是我获得原始代码的原因。   

    再次感谢!

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

    此致

    Sanjay

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

    抱歉输入错误。 今天是假期。 明天我会给你一个答复。

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

    仍在检查。 请求时间到明天

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

    您好Bucky,

    只需检查您的问题现在是否已解决,或者您是否仍在等待其他回复? 我对原始问题的解释是,当两个ADC都不在插槽上传输时,它将以Hi-z的方式传输,并且如果没有固定总线的东西,它可能以高或低的方式浮动。

    Brian

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

    您好,Brian,  

    实际上,我通过使第一个ADC从外部晶体中运行,然后通过第二个ADC以菊花链方式连接它来实现工作。  我没有在这里发布,因为我仍然想看看我的原始设置的解决方案是什么-我仍然在Sanjay上等待。

    问题在于,当时的95 % 一切都能正常工作,但有些随机帧的第一个通道似乎是Hi-Z  在原始示波器截图中,您可以看到前两个框架很好,但第三个框架的第一个示例很奇怪。

    谢谢!

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

    您好Bucky,

    我对延迟回复表示歉意。  

    您是否考虑过尝试共享TDM? 您只有2个设备,因此芯片的SDouts可以绑定在一起,而无需担心电容负载。

    在Daisy链中,数据循环发生,并且可能出现计时延迟。 可以考虑尝试共享TDM以查看您是否解决了问题