工具与软件:
我想在自动模式下使用 ACD 来转换8个通道、它通过 SPI 与我的微型器件(STM32)通信。 
我首先初始化所有必要的寄存器、首先写入它们、然后读取它们以确保正确写入它们。 
当我启动序列、一切顺利时、我在 SEQ_START 寄存器中写入0x01、但是当我检查是否已正确写入时、我会收到该寄存器位于0的消息。 
这是一个问题,我还不知道如何解决,我需要它工作!!! 
如果您能帮助我、我将不胜感激。 
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.
工具与软件:
我想在自动模式下使用 ACD 来转换8个通道、它通过 SPI 与我的微型器件(STM32)通信。 
我首先初始化所有必要的寄存器、首先写入它们、然后读取它们以确保正确写入它们。 
当我启动序列、一切顺利时、我在 SEQ_START 寄存器中写入0x01、但是当我检查是否已正确写入时、我会收到该寄存器位于0的消息。 
这是一个问题,我还不知道如何解决,我需要它工作!!! 
如果您能帮助我、我将不胜感激。 
尊敬的 Patricia:
感谢您的提问。 SEQ_START 寄存器看起来是一个只写寄存器、在表7-27中用"W"表示、因此可能无法正确读回该值。 当您向寄存器写入1b 以启动时序时、是否看到了合适的转换结果? 这将有助于确认是否正确写入了寄存器。 您也可以选择使用 AUTO_SEQ_CFG2寄存器中的 AUTO_REPEAT 选项、它可以回读并启动无限序列。
此致、
Samiha
Hola、
No Recibo ningún error, sin embassion, la salida SEQSTS no se activa en ningún ó momento. tampoco cambia de canales, se queda en el 0 continuamente (lo compruebo ya que tengo el formato de datos includyendo el id del canal y el status)。 En algún ó n momento funcionó ó n (es decir, conseguí ó n leer los demás ó n canales), pero dejo de funcionar y no he cambiado ninguna configuración ó n de los registros. Si sirve de ayuda, adjunte el Código è re que configura los registros que consideré necesarios:
// Habilite la acción ó n de escritura en el registrro de acceso para la configuración ó n del dispositivo. 
Si (ADS8168IRHBT_writeRegister (PDevice、ADDR_REG_ACCESS、ENABLE_WR_REG)!= ADS81688改正) devuelva ADS8168错误; 
// 2) SDI_CNTL: configuración ó n de reloj de polaridad para datos de lectura SDI/SDO 
// Nota: POR defecto (depu é s del reinicio) el modo de sdo sigue el Protocolo selcionado en SDI 
如果(ADS8168IRHBT_writeRegister (PDdevice、ADDR_SDI_CNTL、0x00)! = ADS8168Correcto)器件 ADS8168Error;//配置总线模式 SPI 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_SDO_CNTL1、0x00)!= ADS8168Correct)返回 ADS8168Error;// EL SDO sigue la configuración SPI en SDI_CNTL 
// 3) DATA_CNTL:Solo 接收器 los datos de la conversión ó n 
Si (ADS8168IRHBT_writeRegister (PDevice、ADDR_DATA_CNTL、0x20)!= ADS8168Correct)返回 ADS8168错误;// Datos = LA μ conversión ADC 的结果 
// 4) AIN_CFG y COM_CFG:configuración ó n de la entrada analógica ó n 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_AIN_CFG、0x00)!= ADS8168Correct)返回 ADS8168错误;// 0x00 (h):禁止个别操作 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_COM_CFG、0x00)!= ADS8168Correct) return ADS8168Error;// 0x00 (h):todos los canales individuales son de entrada única ó n 
// 5) DEVICE_CFG 
Si (ADS8168IRHBT_writeRegister (PDevice、ADDR_DEVICE_CFG、0x02)!= ADS8168Correct) devuelve ADS8168Error;// 0x00 (h):BITS SEQ_MODE[0:1] para el modo de secucencia automática μ s 
// 6) ADDR_SDO_CNTL4:SDO-1 indica la secidencia del Estado activo 
SI (ADS8168IRHBT_writeRegister (PDevice、ADDR_SDO_CNTL4、0x01)!= ADS81688改正)返回 ADS8168错误; 
// 7) AUTO_SEQ_CFG1: habilita los canales para la conversión ó n. 
SI (ADS8168IRHBT_writeRegister (PDevice、ADDR_AUTO_SEQ_CFG1、0xFF)!= ADS81688改正)器件 ADS8168错误; 
// 8) AUTO_SEQ_CFG2:seciita el bucle de habilencia 
SI (ADS8168IRHBT_writeRegister (PDevice、ADDR_AUTO_SEQ_CFG2、0x01)!= ADS81688改正)器件 ADS8168错误; 
尊敬的 Patricia:
感谢您提供的信息。 似乎您已将所有通道正确设置为启用自动定序模式。
此致、
Samiha
Hola、
TE 响应:


Hola、
Hice algunos cambios en mi codigo y ahora mismo me encuento con el siguiente problema(没有 lo soluciona ni apargar y encender ni resetear el dispositivo):
He programado los registros del ADC para trabajar en modo automático con el objetivo de leer los 8 canales.
La forma en la que lo he programmado es la siguiente (He generado una interrupción en el pin ready ):
1. Configuro los registros para el modo auto.
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_REG_ACCESS、0xAA)!= ADS8168Correct)返回 ADS8168错误; 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_SDI_CNTL、0x00)!= ADS8168Correct)返回 ADS8168Error; 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_SDO_CNTL1、0x00)!= ADS81688改正)返回 ADS8168错误; 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_DATA_CNTL、0x10!= ADS8168Correct)返回 ADS8168错误; 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_AIN_CFG、0x00)!= ADS8168Correct)返回 ADS8168错误; 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_COM_CFG、0x00)!= ADS8168Correct)返回 ADS8168错误; 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_DEVICE_CFG、0x02)!= ADS8168Correct)返回 ADS8168Error; 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_SDO_CNTL4、0x01)!= ADS81688改正)返回 ADS8168错误; 
如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_AUTO_SEQ_CFG1、0xFF)!= ADS81688改正)返回 ADS8168错误; 
2. una vez están ó n todos bien configurados escribo 0x01 en ADDR_SEQ_START。
3. cuando se create una interrupción ó n ejectuto los siguientes pasos:
Se supone que cuando SDO-1 =假 es porque ha llegado al último 运河配置。 Sin 禁运, el pin se pone 一个真正的 y 独奏 clos 4 primeros canales(teniendo todos activados) y despues de leer el canal ch3 el pin se pone 一个错误。 He probado con distintas combinaciones de canales y me ocurre lo siguiente:
SI configuro AUTO_SEQ_CFG1 = 0xFF (CH0、CH1、CH2、CH3、CH4、 CH5、CH6 y CH7):Solo obtengo información de los canales 0、1、2 y 3。
Si configuro AUTO_SEQ_CFG1 = 0xF0 (CH4、CH5、CH6 y CH7):Solo obtengo información de los canales 5 y 6.
SI configuro AUTO_SEQ_CFG1 = 0xC0 (CH6 y CH7):Solo obtengo información del canal 6.
He waterado además que nunca Recibo información de los canales 0, 1, 2 y 3 junto con alguno de los 4, 5, 6 y 7.
没有 entiendo porque tengo este problema.
尊敬的 Patricia:
感谢在示波器上共享 SCLK 和 CS 信号。 您是否还可以共享 SDI 和 SDO、以便我了解寄存器写入是否正确与 SCLK 和 CS 对齐? 您能否请回读 AUTO_SEQ_CFG1寄存器并向我展示结果是什么? 也许 ADC 没有正确接收到寄存器写入。
此外、您是否只看到一个器件出现了此问题? 还是在第二个 ADC/器件上是相同的?
此致、
Samiha