大家好!
我在 ADC 转换器 ADS130B04-Q1中设置内部时钟时遇到问题。 当我将时钟寄存器中的 CLK_SEL 位设置为0时、ADC 转换器会复位。 我没有外部时钟、CLKIN 引脚连接到 DGND。 我加入了一个逻辑流程。
在文件中、删除扩展名.CSV。
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.
大家好!
我在 ADC 转换器 ADS130B04-Q1中设置内部时钟时遇到问题。 当我将时钟寄存器中的 CLK_SEL 位设置为0时、ADC 转换器会复位。 我没有外部时钟、CLKIN 引脚连接到 DGND。 我加入了一个逻辑流程。
在文件中、删除扩展名.CSV。
大家好,Dale
我认为 ADC 正在重新启动、因为 DRDY 引脚变为低电平。 在第二种情况下、0x04寄存器的值不会改变。
当我在 CLK_SEL = 1的情况下发送0x03寄存器的设置时、一切都正常。 0x03和0x04寄存器的新值均被成功写入。
"在一帧中发送更多时钟"是什么意思? 您能解释一下吗?
我发送3个 x8位来设置每个命令、然后再各发送3个 x8位来读取命令的结果。"
所有设置:
-重置
-待机
- RREG 0x03
- RREG 0x04
- WREG 0x03
- WREG 0x04
- RREG 0x03
- RREG 0x04
-唤醒
e2e.ti.com/.../Session_5F00_CLK_5F00_SEL_3D00_1.sal.csve2e.ti.com/.../Session_5F00_CLK_5F00_SEL_3D00_0.sal.csv
您好、Filip、
首先、您要在一个帧中发送6个字+ 6个字=12个字、该帧从/CS 的第1个下降沿开始到下一个下降沿、每个字有24个时钟/位。 若要读取转换数据、每帧实际上只需要6个字(状态字+ 4通道数据+ CRC 字)。 要发送包括 RREG 和 WREG 在内的命令、MOSI 上只需要两个字(一个命令字+一个 CRC 字)、如果您愿意、可以发送总共6个字中其余字全为0的字来写入或读取寄存器、 但不需要在一个帧中发送12个字。 这就是我说过 您要在一个帧中发送更多不需要的时钟的原因。
其次、/DRDY 不是用于监控器件是否复位的信号、因为 只要 ADC 运行、您就可能会看到/DRDY 脉冲。 您的两个时序之间的区别是第一次计时中的03h 寄存器(CLK_SEL=0文件)未成功写入0F1F 数据、因此您在读回时钟寄存器时仍然获得默认的0F8Eh 数据、 但是、 第二次计时中的03h 寄存器(CLK_SEL=1文件)成功写入了0F9Fh 数据、因此您在读取时钟寄存器时得到了0F9Fh 数据。 此外、您将发送6181h 命令来写入时钟寄存器、该命令不仅会写入时钟寄存器(03h 地址)、还会写入增益寄存器(04h 地址)。 仅写入时钟寄存器的正确命令为6180h。
下面是读取增益寄存器(0x4地址)的 RREG 命令示例、该寄存器之前写入了1000h 数据、您可以看到10000h 数据在下一帧中在 DOUT 移出:
下面的第二个时序是将 0600h 数据写入06h 地址寄存器的 WREG 命令示例:
请注意、在这些时序示例中已禁用 CRC。 希望这些时间有助于您理解。
谢谢、此致(&R)、
戴尔
大家好,Dale
第一个问题:为什么我不能设置 CLK_SEL=0? 我想在器件中使用内部振荡器、但不能。 我知道我的操作没有成功地在寄存器0x03中写入0FFF、但是为什么呢? 我可以在该寄存器中写入值0F9F 而不会出现问题。 也许我必须做其他事情吗?
第二个问题是、我尝试只对 RREG 和 WREG 命令使用2个字、但它不起作用。 我希望从寄存器0x03和0x04写入和读取数据。
我已添加一个文件。
您好、Filip、
我正在尝试帮助你弄清楚原因、所以我将示例时序与你分享、以便简化你的时序。我希望你可以根据我的示例时序(RREG 和 WREG)重新写入寄存器。 在您尝试推荐的时间安排之前、我不知道您的问题"为什么"的答案。
我检查了您的新时序(4643.Session.Sal)、您可在单帧中为 WREG 命令发送6个字节(2个字)、正确无误。 您正在 以一个帧发送6个字节(2个字)以读取寄存器(RREG 命令)、这不是必需的、但 如果您愿意、可以继续执行、如果未使用 CRC、则需要3个字节(1个字- 24位)。
让我来分析一下您的新时序(字大小为24位、MOSI 是从控制器到 ADC 的数据、MISO 是从 ADC 到控制器的数据):
帧1 :
帧2 :
帧 3 :
帧 4 :
文件中的其余四个帧只是重复你的帧1-4。
根据该时序分析、您成功地对增益寄存器进行了编程、 您可以使用相同的时序将数据写入地址为03h 的时钟寄存器吗?
此致、
戴尔
尊敬的 Dale:
我通过将0x0F8F 连接到0x03寄存器、收到 answare 0x41FF 我认为0x41FF 应该是0x4180? 位"CLK_SEL=1"
我读取2倍 0x03寄存器响应但结果仍然相同 0x41FF
I 写入0x0F0F 至0x03寄存器响应被 设置为相同的0x41FF "CLK_SEL=0"
I 读取2时间 0x03寄存器、响应相同0x41FF
I 将0x0001写入0x04寄存器
我读取了2次0x04寄存器、但看不到值0x0001
您好、Filip、
让我试着帮助一下,而 Dale 不在办公室。
我看了看你的最新文件。 它再次使用了错误的 SCLK 极性。 请确保 SCLK 处于低电平。
此外、我强烈建议始终以24位字进行通信、而 WLENGTH[1]位的默认设置为01b。
您需要在需要的地方对字进行零填充。
在通信运行后、您可以考虑对帧进行短循环。 但我现在至少要坚持24位的措辞。
因此、若要设置 CLK_SEL = 0b、我会尝试在一个帧中发送以下数据:
0x618000 (WREG 命令、地址0x3、1个寄存器、用于写入)
0x0F0E00 (要写入0x3寄存器的寄存器数据)
此致、
约阿希姆·武尔克
你好,约阿希姆
感谢您的帮助、
我准备了帧0x618000 0x0F0E、但它仍然不工作、我向您发送一个包含结果的文件。 当我读取寄存器0x03 Sill A 时、具有0x050000 0x0F8E00
我修复了时钟信号的问题、现在它从低电平开始、并通过引脚添加了复位 ADS130B04。 我还能做什么?