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.

[参考译文] ADS8686S:如何在软件转换模式下切换 ADS8686S 通道

Guru**** 1860360 points
Other Parts Discussed in Thread: ADS8686S
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/951993/ads8686s-how-to-switch-ads8686s-channels-in-software-conversion-mode

器件型号:ADS8686S

大家好、

我们的客户有以下查询:  

请帮助了解如何在软件转换模式下切换 ADS8686S 通道(我使用一条串行 SDIOA 线作为输出数据)。

在数据表中、不清楚要写入的确切"相关渠道注册"寄存器(第47页)是什么?
在该寄存器中设置通道编号的格式是什么?
是否具有寄存器地址 CH_SEL? 在调整通道时、是否需要将第15位设置为1?
如果可能、提供带位说明的时序交换图。

代码片段:

void start_conv (char ch_a、char ch_b)

//输入 args ch_a 和 ch_b 可以为0到7

int tempshort;
静态状态;
字符 txdata[8];

if (ch_a > 8)
CH_A = 7;
如果(ch_b > 8)
ch_b = 8;

CS_ENABLE;
CONVST_ENABLE;
while (BUSY_PIN);
CONVST_DISABLE;
CS_ENABLE;

tempshort = 0;
tempshort |= 0b1000000000000000;// rw
tempshort |= channel_SEL << 9;
//tempshort |=(ch_b << 4)|(ch_a))& 0x00FF;
tempshort |=((5 << 4)|(5))& 0x00FF;
txdata[0]=(tempshort >> 8);
txdata[1]=(tempshort & 0xFF);

txdata[2]=(tempshort >> 8);
txdata[3]=(tempshort & 0xFF);

HAL_SPI_TransmitReceive (&hspi2、&txdata、&SPI_Rx_data、4、100);
cs_disable;

ADC_A[ch_A]=(((short) SPI_Rx_DATA[0]<< 8)+((short) SPI_Rx_DATA[1]);
ADC_b[ch_b]=((short) SPI_Rx_data[2]<< 8)+((short) SPI_Rx_data[3]);

cs_disable;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Christian:

    第47页第7.4.2.4.2节中提到的"相关渠道寄存器"意味着第65页中显示的 CHANNEL SEL 寄存器。

    图78和表16显示 了 CHANNEL SEL 寄存器的详细信息、bit [3:0]用于选择 ADC A 的输入通道、bit [4:7]用于选择 ADC B 的输入通道

    表11. 在第61页中、显示了可用于对寄存 器进行编程的命令格式、包括 CHANNEL SEL 寄存器。 此格式的 REGADDR 是要编程的寄存器地址。 第61页的图75是寄存器写入/编程的时序。

    在软件模式下选择通道的另一种方法是使用序列发生器或序列发生器突发模式。 请参阅第7.4.2.5.2节和第7.4.2.6.2节中的详细信息。

    此致、

    戴尔