若要读取转换结果,用户需要写入通信寄存器,指示下一操作为读取数据寄存器。从数据寄存器中读取数据字后,DOUT/RDY将变为高电平。如需要,用户可以多次读取该寄存器。但是,用户必须确保在下一次转换完成时,对数据寄存器的访问已经结束,否则新转换字将丢失。
如果使能了多个通道,ADC将连续循环选择各使能通道,每次循环均会在每个通道上执行一次转换。一旦获得转换结果,就会立即更新数据寄存器。每次转换结果可用时,DOUT/RDY将变为低电平。然后,用户可以读取转换结果,同时ADC在下一个使能通道上执行转换。
将0x5C(01011100)写入通信寄存器后,用户只需要提供适当的SCLK周期数,这样当转换完成时,转换字便会自动置于DOUT/RDY线路上。ADC应配置为连续转换模式。
若要退出连续读取模式,必须在RDY引脚为低电平时将指令0x58(01011000)写入通信寄存器。在连续读取模式下,ADC会监控DIN线路上的活动,以便能接收到指令以后以退出连续读取模式。
如果使能了多个通道,ADC将连续依次选择各使能通道,并在所选择通道上执行一次转换。当一个转换结果可用时,DOUT/RDY便会变为低电平。当用户施加足够多的SCLK脉冲时,数据便会自动置于DOUT/RDY引脚上。
1、What is the sequence of events when switching between channels for the AD719x when the sequencer is disabled and continuous conversion mode is selected?
(对于AD719x来说,当序列不是使能时,并且选择了连续转换模式,如何切换通道?)
转换器开头写入通信寄存器的每个序列的事件将会指定下一个操作。
例如使用 AD7190/AD7192,通道切换操作的顺序如下是 (通道 AIN1_AIN2 和 AIN3_AIN4 )。
进行通道切换的条件是:两个通道的工作条件都是 50 赫兹输出数据速率;内部的主时钟;增益 = 1;缓冲区对双极模式;应用 REFIN1(+) 和 REFIN1(–) 之间的外部引用是 ADC 的参考源;AD719x 是 24 位部分。
每个序列的事件与此转换器开头写入通信寄存器来指定要执行下一个操作。完成指定的操作时,界面默认为等待下一个指令。
1、Write 0x8 to communications register: This specifies that the next operation is a write to the mode register.
2、Write 0x080060 to mode register: This configures the AD719x for an output data rate of 50 Hz and the internal clock is used.
3、Write 0x10 to communications register: This specifies that the next operation is a write to the configuration register.
4、Write 0x000110 to configuration register: This configures the AD719x for the above gain, polarity, and reference source and selects Channels AIN1–AIN.
5、Write 0x58 to the communications register: This specifies that the next operation is a write of the data register.
6、Poll DOUT/RDY: Poll the DOUT/RDY pin to determine if valid data is available in the data register. When DOUT/RDY goes low, apply 24 serial clocks to clock the data from the ADC. A read should not be initiated when DOUT/RDY is high.
7、Write 0x10 to communications register: This specifies that the next operation is a write to the configuration register
8、Write 0x000210 to configuration register: This configures the AD719x for the above gain, polarity, and reference source and selects Channels AIN3–AIN4.
9、Write 0x58 to the communications register: This specifies that the next operation is a write of the data register.
10、Poll DOUT/RDY: Poll the DOUT/RDY pin to determine if valid data is available in the data register. When DOUT/RDY goes low, apply 24 serial clocks to clock the data from the ADC. A read should not be initiated when DOUT/RDY is high
11、Continually running through this loop will allow data to be read from each of the channels continuously.
2、What is the sequence of events when converting on several channels for the AD719x when the sequencer is enabled and continuous conversion mode is selected?
When the sequencer is enabled, the ADC automatically sequences through the enabled channels. When several channels are enabled, the bit DAT_STA in the mode register should be set to 1. When DAT_STA equals 1, the contents of the status register are output with each conversion. The LSBs of the status register indicate the channel to which the conversion corresponds.
The sequence of events using the AD7190/AD7192, for example, is as follows (Channels AIN1–AIN2 and AIN3–AIN4 being used). The operating conditions for both channels are 50 Hz output data rate, internal master clock, gain = 1, buffer on, bipolar mode; external reference applied between REFIN1(+) and REFIN1(–) is reference source for the ADC.
1、Write 0x8 to communications register: This specifies that the next operation is a write to the mode register.
2、Write 0x180060 to mode register: This configures the AD719x for an output data rate of 50 Hz; the internal clock is used and DAT_STA is set to 1.
3、Write 0x10 to communications register: This specifies that the next operation is a write to the configuration register.
4、Write 0x000310 to configuration register: This configures the AD719x for the above gain, polarity, and reference source and selects Channels AIN1–AIN2 and AIN3–AIN4.
5、Continuously running the following loop allows conversions to be read back from the two channels continuously.
6、Write 0x58 to the communications register: This specifies that the next operation is a write of the data register.
7、Poll DOUT/RDY: Poll the DOUT/RDY pin to determine if valid data is available in the data register. When DOUT/RDY goes low, apply 32 serial clocks to clock the data from the ADC. A read should not be initiated when DOUT/RDY is high
3、What is the sequence of events when switching between channels for the AD719x when the sequencer is enabled and continuous read mode is selected?
When the sequencer is enabled, the ADC automatically sequences through the enabled channels. When several channels are enabled, the bit
DAT_STA in the mode register should be set to 1. When DAT_STA equals 1, the contents of the status register are output with each conversion. The LSBs of the status register indicate the channel to which the conversion corresponds. With continuous read mode enabled, the user only needs to apply the SCLK pulses when a conversion is available (RDY goes low)— a write to the communications register for each read of the data register is not required.
The sequence of events using the AD7190/AD7192, for example, is as follows (Channels AIN1–AIN2 and AIN3–AIN4 being used). The operating conditions for both channels are 50 Hz output data rate, internal master clock, gain = 1, buffer on, bipolar mode; external reference applied between REFIN1(+) and REFIN1(–) is reference source for the ADC.
1、Write 0x8 to communications register: This specifies that the next operation is a write to the mode register.
2、Write 0x180060 to mode register: This configures the AD719x for an output data rate of 50 Hz, the internal clock is used and DAT_STA is set to 1.
3、Write 0x10 to communications register: This specifies that the next operation is a write to the configuration register.
4、Write 0x000310 to configuration register: This configures the AD719x for the above gain, polarity, and reference source and selects Channels AIN1–AIN2 and AIN3–AIN4.
5、Write 0x5C to the communications register: This specifies that the serial interface is dedicated to continuously read the data register until this function is disabled.
6、Continuously running the following loop allows conversions to be read back from the two channels continuously.
7、Poll DOUT/RDY: Poll the DOUT/RDY pin to determine if valid data is available in the data register. When DOUT/RDY goes low, apply 32 serial clocks to clock the data from the ADC. A read should not be initiated when DOUT/RDY is high.
8、To disable continuous read mode, the command 0x58 is written to the communications register when is low
4、If a conversion is not read and the next conversion is complete, for how long does DOUT/RDY go high?
The DOUT/RDY pin goes high for approximately 100 µs when the master clock is 4.9 MHz. During this time, the data register is updated with the new conversion data so the user should not attempt to read the data register.
5、When single conversion mode is used, can CS be taken high after the single conversion is initiated?
The serial interface is independent of the sampling process. So, once the single conversion is initiated, the AD719x will power up and perform the single conversion irrespective of the CS polarity. So, the user can take CS low, initiate the single conversion and then take CS high again. When the conversion is complete, CS can be taken low to read the conversion and another single conversion can be started if required.
When CS is taken high, the DOUT/RDY pin is tristated. Therefore, the DOUT/RDY pin will not indicate the end of the conversion. The user can determine the end of the conversion by reading the status register. Alternatively, the conversion time could be timed out by the microcontroller clock.
6、Is the serial interface reset when CS is taken high?
No. CS does not reset the serial interface. To reset the serial interface, 40 1s must be written to the ADC. This will reset the on-chip registers
to their default values also.
This architecture was used as it allows the user to read or write to the AD719x in “batches.” For example, when reading the configuration register,the contents can be read as a continuous 24-bit word or the data can be split into three 8-bit bytes. When writing to the configuration register, the information can be sent as a continuous 24-bit word; alternatively, the data can be sent as three 8-bit bytes. CS can be held low when the information is being transferred. Alternatively, CS can be used to frame each of the 8-bit bytes without affecting the data transfer process.
7、When information (conversion data or information from the on-chip registers) is read from the ADC, the LSB readback is always 1. Why?
The DOUT and RDY functions share a pin on the AD719x. So, the DOUT/RDY pin functions are a ready pin when CS is low. Every time a conversion is completed, the pin goes low, indicating to the microprocessor that a valid conversion is available. When the user requests a read of the data register, the DOUT/RDY pin functions are a DOUT pin. When pulses are applied to the SCLK pin, the data is placed on the DOUT pin. The data is output from the AD719x following the SCLK falling edge and is valid on the SCLK rising edge.
When the LSB of the data is placed on the DOUT/RDY pin, the DOUT/RDY pin changes its functionality so that it operates as a RDY pin. The change from the DOUT to RDY the function occurs a few nanoseconds after the SCLK rising edge. The microprocessor is latching the bits on the SCLK rising edge. So, if the microprocessor is slow, then the DOUT/RDY pin is functioning as a RDY pin when the LSB is latched into the microprocessor. So, the microprocessor reads the value of the RDY pin rather than the LSB, causing the LSB to be a 1. To prevent this, a faster microprocessor must be used.
Alternatively, general-purpose input/output pins of the microprocessor can be used to represent a serial interface. By bit-banging, the user has more control over the read instant. By reading the values on the DOUT pin when SCLK is low rather than latching in the data on the SCLK rising edge, all bits of the data read will be valid。