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.

[参考译文] ADS1248:器件未正确复位

Guru**** 2541440 points
Other Parts Discussed in Thread: ADS1248

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/829596/ads1248-device-not-properly-reset

器件型号:ADS1248

大家好、  

我面临着 ADS1248相当奇怪的行为、不知道要去哪里看... 我的板上有多个 ADS1248器件、每个器件最多使用5个 MUX 配置。 但是、为了简单起见并进行调试、我目前只在 CONFIG 和 DEVICE 上使用。 如果我对电路板进行供电、ADC 扫描工作正常。 SPI 读取正常、一切正常:

黄色:片选/红色:MOSI /蓝色:SCK /绿色:MISO

但是、当我使用调试器启动同一个应用程序并且不对 ADC 进行电源复位时、再也没有任何东西回来了。 但是、DRDY 信号会触发我的读取:

黄色:片选/红色:MOSI /蓝色:SCK /绿色:MISO

在这里、红色的 DRDY 信号:

黄色:片选/红色:DRDY /蓝色:SCK /绿色:MISO

CPU 每次使用以下代码对器件进行编程:

//从复位
ADS1248_disable_CS (ADC)唤醒器件;
GPIO_clearPin (ADC->GPIO[ADS1248_GPIO_nReset]);
GPIO_clearPin (ADC->GPIO[ADS1248_GPIO_ConversionStart]);
HAL_Delay (1);// 1ms
GPIO_setPin (ADC->GPIO[ADS1248_ConversionStart];GPIO_Reset]
GPIO_setPin (ADC->GPIO[ADS1248_GPIO_ConversionStart]);
HAL_DELAY (1);// 1ms
ADS1248_ENABLE_CS (ADC);

//停止连续数据转换
ADC->txBuffer[0]= SDATAC;
HAL_SPI_Transmit (ADC->spiHandle、ADC->txBuffer、1、tx100);
HAL_DELAY (1);// 1ms
ADS1248_DISABLE_CS (ADC); 

1. CS 高电平/复位低电平/启动低电平

2. 1ms 延迟

3.复位始终为高电平/启动始终为高电平(在这一点之后从未触碰)

4.1ms 延迟(最小0.6ms)

5.停用连续转换

6.设置寄存器

我已验证上述所有电源、时序和信号。 一切看起来都很好(如果这有帮助、可以再次测量)。 在没有电源复位的情况下、ADC 响应始终为零。 如果我读取配置寄存器(RREG)、则表示 ADC 响应以及我上传的配置。

谢谢、致以诚挚的问候

Daniel

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

    我终于找到了... 一个函数用0覆盖 FSC 寄存器、导致输出为零

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

    很高兴听到这个问题被发现了 Daniel!  

    如果您有其他问题/疑虑、请立即开始新主题!