我有 ADS1256 ADC 模块、它与 STM32F746相连、
根据数据表、I 与读取寄存器进行了量程、默认值是可以的、但当我向任何寄存器写入任何值时、MSB 等于 I 位7在读取时始终为"1"、
例如、
DRATE:A/D 数据速率(地址03h)
如果我写入一个0x33、即00110011--15SPS
读取时、我始终得到一个 b3、即10110011、
同样、对于所有寄存器读取、位7始终为"1"
请找到所附的逻辑分析仪屏幕截图
谢谢你。
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.
我有 ADS1256 ADC 模块、它与 STM32F746相连、
根据数据表、I 与读取寄存器进行了量程、默认值是可以的、但当我向任何寄存器写入任何值时、MSB 等于 I 位7在读取时始终为"1"、
例如、
DRATE:A/D 数据速率(地址03h)
如果我写入一个0x33、即00110011--15SPS
读取时、我始终得到一个 b3、即10110011、
同样、对于所有寄存器读取、位7始终为"1"
请找到所附的逻辑分析仪屏幕截图
谢谢你。
您好、Tom、
T6延迟似乎不正确
从数据表中、
T6
从 DIN 的最后一个 SCLK 边沿到 DOUT 的第一个 SCLK 上升边沿的延迟:RDATA、RDATAC、
RREG 命令
τCLKIN μ A
主时钟周期为0.625us * 50 = 31.25us -- T6延迟
在执行0x00第二次命令读取寄存器后、我应用32us 的延迟、现在读取寄存器看起来正常、我检查了可重复性、看起来正常、
正确的 T6延迟、我无法使用 T6获取正确的数据、请更正。
谢谢、
Vikas。
尊敬的 Chris:
读取和写入寄存器是可以的
在单次模式0x01中读取正确的数据时遇到问题。
频率为830kHz
在读取数据时、我每次都获取随机值、一段时间后、我会说在30-50秒后、连续读取停止、输出始终为16777215 -0xFFFF
我计划读取单端 CH1-ain0
ADC 配置为-状态为0xf0、其中上半字节为 xxxx
寄存器多路复用器位于0x0F
reg adcon 位于0x20
reg draate 为0x03 --目前最低的数据速率
编程 SPI 配置 hspi2.instance = SPI2; hspi2.Init.Mode = SPI_MODE_MASTER; hspi2.Init.DIRECTION = SPI_DIRECT_2LINES; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; hspi2.Init.CLKPolarity = SPI_POLIT_LOW; hspi2.Init.CLKPhase = SPI_PHASE_2EDGE; hspi2.Init.NSS = SPI_NSS_Soft; hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;//------ 844kbits/sec hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMDE_DISABLE; hspi2.Init.CRCCalctration= SPI_CRCALLATION_DISABLE; hspi2.Init.CRCPolomial = SPI_CLCI_INCE_LENGTH ;hspi_CRC7 = SPI_CLCI_CI_INCE_INZATION;HCIZIZE = SPIZE = SPIZE hspi2.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
我不理解"1.6MHz 主时钟、那么 SCLK 不应超过400kHz"
如果我降低时钟频率、因为在屏幕截图中、当读取和写入时钟看起来是830kHz
请改正。
谢谢你。
大家好、Vikas、
当问及主时钟频率(fCLKIN)时、我想知道您连接到 XTAL1/CLKIN 和 XTAL2引脚的是什么。 您是使用晶体为 ADS1256计时、还是使用连接到 XTAL1/CLKIN 引脚的外部时钟源? 该时钟的频率是多少?
SCLK 信号是用于串行通信的独立信号;然而、最大 SCLK 频率被限制在 ADC 主时钟频率的四分之一。
感谢您提供额外的屏幕截图。 我注意到的一点是、在计时输出 hte 数据时、您似乎是向 ADC 发送随机命令。 我建议在 RDATA 命令(0x03)之后、在计时输出数据时仅发送 WAKEUP (0x00)命令(这些命令等效于 NOP):