主题中讨论的其他器件:ADS7953、 ADS7951
我正在将上述 EVM 板与 Arduino MEGA 板连接。 无论选择何种通道、我都只能测量通道0。 任何其他通道都无法进行测量。
加电时,我写入此数据以在手动模式下进行配置:0x18 0xCF
通道-0的 ADC 测量结果良好、使用的基准电压为2.5V
SPI 设置: SPI.beginTransaction(SPISettings(1000000、MSBFIRST、SPI_MODE1);
感谢您的任何帮助。
此致
Raj
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.
我正在将上述 EVM 板与 Arduino MEGA 板连接。 无论选择何种通道、我都只能测量通道0。 任何其他通道都无法进行测量。
加电时,我写入此数据以在手动模式下进行配置:0x18 0xCF
通道-0的 ADC 测量结果良好、使用的基准电压为2.5V
SPI 设置: SPI.beginTransaction(SPISettings(1000000、MSBFIRST、SPI_MODE1);
感谢您的任何帮助。
此致
Raj
您好!
您是否会提供数字通信的示波器截图、包括 SDI、SCLK、SDO 和 CS。 这样可以目视检查数字通信、并 将其与处理器的预期结果和实际执行的结果进行比较。 请包括3个帧。
此外 、为了进行调试、我 建议在 ADC 输入端使用已知的直流值、例如 CH1 = 1V、CH2 = 2V 等、以了解测量输出的预期结果。
您以什么模式运行器件? 在调试过程中、我建议手动确认通信是否正确。 器件可从此处配置为其他模式
此致
Cynthia
你好
感谢您的快速响应。
目前、我能够从器件中获取以下已知值的正确 ADC 计数。
2.5 V - 4096
0 V - 0
1.85-2950
配置的模式当前为手动/无断电/通道/GPIO 配置为输出/范围:2. 5V
问题是我只能获得通道0的 ADC 计数。 当我为所有通道将相同的代码放入 for 循环时、我得到的通道编号仍然为0、通道0 ADC 值。
我很快会尝试为您提供快照。
感谢你的帮助。
此致
Raj
您好!
在手动模式下、您必须选择下一个采样通道。 如果您持续发送同一命令、则将持续对同一信道进行采样。
根据下表、需要更改 DI010至07位以对不同通道进行采样。 请这样做、并告诉我这是否可以解决问题。
此外、如果您使用命令0x18h、0xCF、则 DI04位为低电平、这意味着器件将输出与输出数据对应的通道。 在您的所有采样中、前四个位应始终保持一致。
完成正确的配置后、您可能会考虑使用不同的模式。 该器件支持自动扫描模式、可在每帧对预定的通道序列进行采样。 这与手动模式不同、用户在每个帧中选择下一个采样通道。
此致
Cynthia
您好!
这是我尝试读取连续信道的简单代码:
代码在 Arduino Uno 中编程、并在无限循环中连续运行:
serial.println ("chan-0");
digitalWrite (ADC_CS、低电平);
//发送命令字节
Result [0]= SPI.transfer (0x18);
Result [1]=SPI.transfer (0x4F);
//禁用设备
digitalWrite (ADC_CS、高电平);
serial.println (result[0]、hex);
serial.println (result[1]、十六进制);
----------------
串行输出会发生变化
通道0
B
96
--抱歉,图像尺寸较大。 我将尝试为您提供一个3帧序列。
混乱的原因是我得到的频道编号是9而不是0。 上面的代码是在 Micro 中运行的代码。 我没有更改任何频道编号。
此致
Joseph
您好!
在手动模式下、如果您连续发送同一帧、则将继续 对同一信道进行采样。 它不会改变。 DI 10至7需要选择通道
例如、对于通道2、它将是0010、因此整个命令将是0001 1001 0100 1111 = x49h;x4Fh
当您提供三个帧时、请告诉我哪条线是信号、现在我假设粉红色线是 SDI、蓝色线是 SDO
SDO 的前四位是转换结果对应的通道、正如您配置的那样、它看起来是通道0。
此致
Cynthia
您的电源是什么?
SDO 上拉至高电压是多少? 在示波器截图中、切断了一侧的电压。 从驱动 SDO 到驱动 SDO 时、信号的电压似乎有所不同。 您使用的是多大尺寸的电阻器、它连接到多大电压? SDO 的拉电流不应高于 VA 电源。
目前、您将输入范围设置为2xVref = 2 x 2.5V = 5V
我无法验证通道3数据对于1.8V 输入是否正确、因为它在您提供的示波器快照中不可用。 示波器屏幕截图中显示 SDO 值0x0F7h 的数据实际上用于通道7、而不是帧 N+1中的通道3
虽然器件看起来工作正常、但您对结果的解释似乎是错误的。
取数据表中的下图。 当您对器件进行编程以对通道进行采样时、该通道的数据将在初始通道之后的2帧后才可用。 这就是我要求三个帧的原因。
SDO 的前四位将指示数据对应的通道、这有助于确保不会混频。
如果您将此应用于范围屏幕截图、则会出现以下情况:
此外、如果您不想更改器件的配置、例如基准/范围、则无需继续将位11编程为高电平。 在更改之前将使用最新的配置。 此外、位11无需设置为高电平即可更改要采样的通道。
此致
Cynthia
您好、Cynthia、
感谢您的详细说明。 这解决了我的问题。
需要进一步澄清和提出建议:
我需要使用 ADS7951芯片上的 GPIO 引脚。 GPIO-0/1必须配置为输出端口、GPIO-2/3必须配置为输入。 上电时、我使用以下值对 GPIO 寄存器进行编程。
0x4003。
我可以使用 SDI 命令的2个位来命令输出 GPIO。 在手动模式下、如何读取输入引脚的状态。 我还在寻找较高位(D15、D14、D13、D12)上输出的通道编号。
在手动模式下是否可以执行此操作?
此致
Joseph
我疯了