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.

[参考译文] ADS1255:与 ADS1255的 SPI 连接不起作用

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/890057/ads1255-spi-connection-to-ads1255-does-not-work

器件型号:ADS1255

您好!

我已经尝试控制 ADS1255一段时间、并尝试读取这些值。 不幸的是,我仍然有问题。

对于设置:我有一个板、其中 ATmega88是 ADS1255和 RS485通信之间的接口。 电路取自 NIRscanNano 的原理图、如下所示:



我读取了以下线程() ,并从该帖子 ()中获取了代码。

#define F_CPU 11059200

#include 
#include 
#include 

#define BAUD 115200UL
#define UBRR0_VALUE (F_CPU/(16* BAUD)-1)
#define CS_LOW PORTB &&~(1 <<PB2);
#define CS_HIGH PORTB |=(1 <<PB2);

/UART 函数____________________________

//_________________ 配置 UART _________
void UART_init ()
{
UBRR0H =(unsigned char)(UBRR0_value >> 8);
UBRR0L =(unsigned char) UBRR0_value;
UCSR0B =(1<<TXEN0) | (1<<RXEN0); UCSR0C = (1<<UCSZ00) | (1<
<<<"ads1255="" reset");="" uart_transmit_char('\r');="" _delay_us(5);="" ads1255_transceive(0xf);="" sdatac");="" _delay_us(10);="" cs_high;="" int32_t="" ads1255_read_data()="" result="0;" uint8_t="" adc_bytes[3];="" ads1255_transceive(0x01);="" adc_bytes[0]="ADS1255_transceive(0);" adc_bytes[1]="ADS1255_transceive(0);" adc_bytes[2]="ADS1255_transceive(0);" if="" (adc_bytes[0]="" 0x80)="" negativ="" (((0xff)<<<<<<<<

不幸的是、我从转换器获得了一个答案、但我没有预料到、之后我再也没有得到任何答案。 DRDY 信号始终处于高电平。 也许其他人会提供有关如何从 ADS1255获取合理值的提示或建议。

以下是使用我的 LogicAnalyzer 记录的前三条命令:

命令:0xFE (复位)

命令:0x0F (SDATAC)


命令:0x01、0x00、0x00 0x00 (RDATA、读取、读取、 读取)

我希望有人能为我提供一些建议或技巧。

此致
Michael

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

    您好、Michael、

    我建议探测晶体以检查它是否在振荡。

    如果 ADC 通电、计时、且/PWDN、/RESET 引脚保持高电平、则您应该会看到/DRDY 脉冲。 如果未激活、则器件未处于活动状态。 您可能还需要检查每个电源电压、并检查 AGND 和 DGND 之间是否连接良好(可能某个位置的焊料连接不良?)。

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

    您好、Michael、

    如果 DRDY 始终处于高电平、则这通常表示存在硬件问题。 您是否已检查以确保您的晶体正常工作并实际为 ADC 提供时钟信号?

    如果可能、您可以尝试使用外部时钟振荡器而不是晶体来查看是否可以输出数据。

    布莱恩

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

    尊敬的 Chris:

    感谢您的支持。 其中一个电源电压不稳定、这会导致错误数据。 现在、它按预期工作。

    此致、
    Michael