主题中讨论的其他器件:TMS320F28377D、 ADS1148
大家好、
我正在使用 TMS320F28377D 开发此 ADC 以进行 SPI 通信。 我在代码中遇到问题、因为在发送读取数据命令和时钟命令后、我在结果中得到值"0"、但它应该具有应用的输入值。 数据就绪中断即将到来、命令将相应地进行传输。 在输入中、我在 AIN0引脚上施加2.3V 电压、在 AIN1引脚上施加1.65V (VCM)电压。 请帮我解决以下问题、随附代码。
此致、
AMI
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.
大家好、
我正在使用 TMS320F28377D 开发此 ADC 以进行 SPI 通信。 我在代码中遇到问题、因为在发送读取数据命令和时钟命令后、我在结果中得到值"0"、但它应该具有应用的输入值。 数据就绪中断即将到来、命令将相应地进行传输。 在输入中、我在 AIN0引脚上施加2.3V 电压、在 AIN1引脚上施加1.65V (VCM)电压。 请帮我解决以下问题、随附代码。
此致、
AMI
吴约瑟
在为时钟传输最后一个命令"0"后、我只得到0。
START 和/RESET 为高电平。 /Drdy 正在转换我们在示波器上获得的信号、因为我从/Drdy 获取外部中断。 接地端是 ADC 和控制器的共同之处。
否、我们不使用校准寄存器、因为我们最初只想检查数据。 我在 MUX1=0x10h 中获取内部基准写入。 连接按照图64完成。 串行接口连接、我只是将 VREFOUT 和 VREFCOM 保持断开状态、AVDD 为3.3V。
我认为控制器没有任何问题。
此致、
AMI
AMI、
ADS1148上电时处于自动开始进行转换的状态。 在此状态下、您可以使用 SCLK 时钟输出数据、而无需执行任何类型的初始化。 只要您等待/DRDY、并在下一个/DRDY 到来之前时钟输出数据、就不会出现任何问题。
我将最基本的系统组合在一起、以便从器件中读取数据。 下面是一个小方框图和设置图片:


我已将 START 和/RESET 连接为高电平。 有一个分压器、基本上为我提供2V 基准电压和1V 输入电压。 我还将 SPI 通信连接到了 Total Phase Aardvark、以便可以从器件读取数据。 我施加电源、并检查/DRDY 是否以5SPS 数据速率(或200ms 的数据周期)输出。 即使示波器具有大量存储器、也很难看到、因为/DRDY 脉冲与整个数据周期相比非常小。
然后、我使用 Total Phase Aardvark 从器件读取数据。 这是来自 SPI 的用户界面。
然后、我向器件发送两个字节(16个 SCLK)。 实际上、DIN 始终为低电平、因此相当于发送0000h。 当我发送16个 SCLK 时、我得到3FD6h (16342d)。 您可以从示波器中看到以下内容:
或近距离拍摄: 
如果我的基准电阻器是一个完美的2.4kΩ Ω、那么我的输入测量将是:
测量值= 2.4kΩ* 16342 /(2^15)= 2.4kΩ* 0.4987 = 1.197kΩ μ A
现在、我不确定您为何无法从器件中获取任何内容。 如果/DRDY 脉冲如您所述输出、则器件正在转换(这意味着 START 和/RESET 均为高电平)。 下面是我将从调试开始的方法:
1.确保您的主器件确实在发送 SCLK、并确保 DOUT 不执行任何操作。
2.验证从主设备到设备的所有连接。 确保通过 SPI 路径没有任何不良连接或不良焊点。
3.查看发送器件的所有命令,并验证这些命令是否是您希望发送的命令。
4.使用 RDATA 命令读取数据。 如果您意外(或出于目的)发送了 SDATAC 命令、除非您发送 RDATA 以读取数据、否则输出数据不会输出。
再说一次、我不知道为什么数据不会输出。 我能够将该设置放在一起、以最少的设置和16个 SCLK 获取数据。 未向器件发送命令。 我要说、我确实需要对输入设置进行一些调试。 我的连接不好、输入范围过大、为我提供7FFFh 输出数据。 无论如何、获取数据并不困难。
吴约瑟