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.

[参考译文] 报警8168:i can##39;t 写入 SEQ_START 寄存器。

Guru**** 2442090 points
Other Parts Discussed in Thread: ADS8168

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1429343/anuncio8168-i-can-t-write-to-the-seq_start-register

器件型号:ADS8168

工具与软件:

我想在自动模式下使用 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错误;

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

    您好!
    我设法在自动模式下更改了通道、但是、尽管所有通道都已启用、但它只经过0、1、2和3。 此外、它不循环。 我在序列开始时设置了 SEQ_START 位、但不知道在读取所有已启用的通道后是否必须修改任何寄存器。 也就是说、在完成这4个通道的读取后、READY 引脚不会再次更改状态。

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

    尊敬的 Patricia:

    感谢您提供的信息。 似乎您已将所有通道正确设置为启用自动定序模式。

    1. 您能否分享一个示波器的屏幕截图、以显示您的 SPI 事务(请显示全部4条数字线路)。
    2. ADC 是否在通道3之后停止输出数据? 此时您看到了什么?
    3. 您已设置 SEQSTS_CFG。 在转换期间以及之后、您会在 SDO-1上看到什么?
    4. 您能否分享一下您的电路原理图?
    5. 下电上电是否有帮助?

    此致、

    Samiha

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

    Hola、  

    TE 响应:

    1. ¿podría compartir una captura de pantalla de un osciloscopio que muestre su transacción spi (muestre las 4 líneas digitales )? CS y SCLK:   

    1. ¿ó n El ADC deja de emitir datos despu é s del canal 3? ¿Que ves en puneste to? si, pero sigue emitiendo datos durante un tiempo pero del canal 0. Y lo que VEO es que cuando termina de emitir el canal 3 el pin SDO-1 pasa a nivel bajo.  
    2. HA 配置 SEQSTS_CFG。 ¿ó n Que ves en SDO-1 durante las conversiones y despu é s? SI、特性配置 así: 如果(ADS8168IRHBT_writeRegister (PDevice、ADDR_SDO_CNTL4、 0x01)!= ADS8168Correct)返回 ADS8168错误。 Lo que Veo es que en los canales 0, 1, 2 y 3 el pin SDO-1 esta a nivel Alto y cuando debería pasar al canal 4 se desactiva y Recibo canal 0 constantemente pero con el SDO-1 a 0。
    3. ¿Podrías ó n compartir un esquema de tu Circuito?
    4. ¿Ayuda el ciclo de encendido? 没有他 entendido esta pregunta。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Patricia:

    感谢您的耐心、因为我不在办公室。 下电上电是指先接通再关断器件电源是否有助于解决问题?

    此致、

    Samiha

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

    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:

    1. Bajo el CS.
    2. Espero a que cs est é a nivel bajo.
    3. Hago un HAL_SPI_receive donde almaceno en un buffer el Dato convertido y el ID del canal。
    4. SI el 引脚 SDO-1 = true:
      • Guardo el Dato del canal assilendiente en la variable que assilde。
      • Subo el CS.
    5. SI 引脚 SDO-1 = FASE --> Vuelvo a escribir 0x01 en ADDR_SEQ_START。

     

    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