MCP3424,如何并行读取通道?
关于这个问题 我没有电子工程背景,这是我通过I2C进行通信以及写寄存器的第一个挑战,因此,请不要在我这方面承担太多的知识。我正在编写Arduino。 在询问特定的电子组件/芯片时,我认为人们无法进行实验/测试以给出正确的答案。我也希望人们甚至不知道这一部分。因此,我将尝试在此问题中添加很多信息。 如果您需要更多信息,请告诉我。 该组件具有四个ADC 我正在使用4通道组件MCP3424(数据表)。它有两个包装。我使用的是MCP3424 E / SL 4通道SOIC版本,而不是MCP3422或MCP3423 2通道版本。 我相信它有四个ADC。在RS-Online上,似乎E / SL版本具有4个ADC(直接链接),而E / ST仅具有1个(直接链接)。 我认为这必须意味着它可以同时在多个通道上进行采样。我看不出有任何其他原因在该组件上放置多个ADC。 我对吗? 通过I2C进行通信 通过发送一个配置字节,然后等待采样结束并读取结果来进行通信。 配置字节格式 有趣的是: 从左数第3位,从1开始计数:连续采样 从1开始,从左数第1位和第2位 有关配置字节的更多信息,请参见数据表第18页,此处也有描述。 读取结果的格式 我的示例仅具有18位分辨率(位5和6设置为1)。读回的结果将是四个字节:前三个包含值,第四个包含配置字节。 但是,最左边的位!RDY指示该值是否为“新”,即自上次读取以来是否为新读数。第一次读取一个结果时,该值为0,随后的结果为1,直到ADC准备好新的采样值为止。 如何在不并行采样的情况下使用它 我完全知道该怎么做。我在网上找到的所有示例,也很简单。只需将配置字节写入组件,然后回读一个值即可。 如何设置每个通道自动连续采样,并并行读取通道 伪代码可能像 setup(): start sampling channel 1, 18bit, 0gain, continuously start sampling channel 2, 18bit, 0gain, continuously start sampling channel …