我正在尝试使用 Arduino Tensy 微控制器配置 ADS8588S ADC。 我使用的是串行接口模式、仅使用 DOUTA 在转换后使用 Arduino SPI 接口进行读取。 我已经为以下 Tensy 和 ADC 添加了引脚分配。
我将这两个组件焊接到了我设计的 PCB 上。 我已附上我的原理图以及 PCB 图片。 我在 Tensy 上标记了几个引脚、它安装在原理图视图的下侧。 ADC 安装在左下角、因此与上面显示的引脚相比旋转了90度。
黄线将连接在一起的 CONVSTA/B 连接到外部3.3V 50%占空比方波。
我通过以下选项选择串行模式:
PAR/SER/字节 SEL 逻辑高电平
DB15/字节 SEL 逻辑低电平
我在下面的 tensy 中包含了 Arduino 程序。
我将时钟速度定义为20MHz、但实际上它是18.75MHz、是600MHz 时钟速度的1/32。
我的问题是、第一个字节被发送16次、而不是被更新。 FRSTDATA 标志也会将其清零、该标志会变为高电平16次。 我认为 FRSTDATA 应该只在前16个 SCLK 周期内保持高电平、但在我的系统中、它在一个 SCLK 周期后变为低电平。
但是忙、CS 和 SCLK 似乎工作正常。 此外、我没有包括连接到 CONVSTA/B 的外部系统时钟(之前图片中的黄线)、但它也可以正常工作、并且在 BUSY 达到预期的高电平之前上升。
在我收到的数据中、问题也很明显、其中所有8个解释值都是相同的。 这是因为通道1的第一个最高有效字节与其他15个字节的数据是重复的。
这是否是与接地相关的硬件问题? 从时序图中、我注意到 BUSY 和 CS 在18.75MHz SCLK 上似乎存在一些串扰。 或者我是否遇到软件问题?
谢谢、
Skyler



