Deje de parpadear LD1 en el descubrimiento STM32F4

0

Tengo un sistema que construí utilizando un ADC ADS1263 de 32 bits que mide biopotenciales diminutos sin mucha amplificación (por una variedad de razones que no se discuten): un amplificador de instrumentación de muy bajo ruido con una ganancia de 8 y un amplificador operacional de muy bajo ruido para suministrar un Vref para manejar el sesgo.

En un momento, parecía que todo iba bien, especialmente antes de construir mi pcb de 4 capas, y luego surgió un problema.

En aras de una implementación rápida, se hicieron algunos compromisos, el más importante es que acabo de montar una placa Discovery en mi placa principal.

El sistema escupe uart a una PC a través de un cable USB FTDI montado como un puerto COM virtual (para ahorrar tiempo en la elaboración de mi propia pila USB hasta una versión posterior: ¡ja!). El cable FTDI también trae Vusb a la placa. Pasa a través de un convertidor de 5 V a 6 V de CC a CC (aislado), que luego se regula de nuevo a 5 V y luego a 3 V con LDO. El 5V alimenta a mi Discovery Board, con potencia y tierra pasando por las perlas de ferrita en frente del tablero. El UART pasa a través de un aislador bidireccional y luego vuelve al lado de la alimentación por USB de las cosas.

Bueno, mi lado analógico parece estar funcionando bien, pero no puedo ver los biopotenciales en un alcance, ya que son demasiado pequeños, incluso después de mi ganancia de 8, necesito probarlos con el ADC de 32 bits para poder verlos.

Estoy recibiendo una oscilación funky con un período en los segundos que me ha hecho subir por las paredes hasta muy tarde hoy. La entrada está cortocircuitada para generar esta muestra (la amplitud es de 32 bits con signo int en un rango de 5 V, y el eje y es el número de muestras a 2400 Hz):

Parece dramático y, de hecho, es problemático en mi escenario, pero la magnitud de esa onda cuadrada corresponde a aproximadamente 90uV en la entrada ADC (ganancia PGA = 32), y aproximadamente 11uV en la entrada de mi amplificador. Hasta hoy, he estado buscando problemas de conexión a tierra, etc., y no pude, por mi vida, averiguar qué podría estar sucediendo en esa escala de tiempo que podría estar causando esto. A pesar de que me estoy filtrando, consideré que si estaba pasando algo malo, tal vez estaba haciendo un alias, y este fue el resultado.

En cualquier caso, durante la programación y después, el problema pareció desaparecer. Esto me confundió. Pensé que proporcionar energía a la placa a través de Vusb no aislado podría haber estado eliminando el problema. Resultó que estaba equivocado.

Luego, a última hora de esta tarde, noté que LD1 en mi Discovery Board estaba parpadeando en rojo exactamente en sincronización con mi onda cuadrada. Huzzah. Cuando inserto el cable USB para programarlo, el parpadeo se detuvo y se puso rojo, supongo que cuando el ST-Link incorporado se resolvió y la onda cuadrada desapareció. Cuando quito ese cable USB, la luz permanece fija y no se ve una onda cuadrada.

Entonces, parece que el parpadeo del LED o algo más que ocurre en el ST-Link está causando unos cuantos microvoltios de hundimiento en algún lugar.

Supongo que, a largo plazo, realmente debería hacer que mi esquema de energía sea a prueba de balas, pero a corto plazo realmente me gustaría hacer desaparecer la onda cuadrada al deshacerme del sorteo actual que probablemente lo está causando. Me encantaría recibir algunos consejos sobre cómo desactivar de forma reversible el ST-Link, o forzarlo a que se calle un poco. Tal vez solo engañarlo pensando que ha sido enumerado, manteniendo el LED encendido, está bien. El mejor escenario posible es que puedo hacer esto desde el TOP of the Discovery board, ya que ese es mi acceso sin ningún desmontaje.

Si la acción es irreversible, probablemente pueda vivir con eso. Mataría un tablero para asegurarme de que puedo seguir con esto, y tal vez lo programe con otro ST-Link, o simplemente me convenza de que el problema está resuelto y luego finalice la programación y simplemente continúe reemplazando el tablero.

    
pregunta Scott Seidman

1 respuesta

0

Después de darme cuenta de que había muy pocas esperanzas, más allá de la actualización del ST-link con el código mejorado, saqué R4, deshabilitando la parte roja de LD1 mientras aún tenía la luz verde para confirmar la programación, y el problema desaparece.

El ruido parece dramático, pero eso es aproximadamente 2 uV referido por entrada, simplemente el doble de mi ideal teórico dado mi conjunto de chips analógicos, y ni siquiera me he molestado en tener en cuenta el ruido de Johnson en la resistencia de protección del paciente de 500K en mi impulsado electrodo de referencia. Además, todavía no he realizado ningún filtro de paso alto, que será necesario para las señales de EMG que necesito recolectar, por lo que cualquier 60Hz debería desaparecer.

Algunas lecciones aprendidas.
1- Hay una opacidad al diseño de ADC de alta resolución que no había anticipado. El equipo de banco estándar no está a la altura de la tarea de buscar hundimientos de 100 uV. Ciertamente, comience con una prueba de bala de un diseño de fuente de alimentación que pueda, porque es un oso depurarlo más tarde.

2- Hazlo bien, o hazlo de nuevo. En retrospectiva, la elección de utilizar un DAC a bordo no tenía mucho sentido. Debería haber pensado más en dónde elegí aislar a Vusb. Habría tenido mucho más sentido mantener el Discovery en el lado Vusb de las cosas, y usar un DAC externo en lugar del STM32F407 en el chip DAC. En lugar de aislar la comunicación UART, debería haber aislado las comunicaciones SPI y haber mantenido TODAS las cosas analógicas en mi propio tablero, aisladas. Esto no solo tiene más sentido, sino que habría evitado por completo el problema en cuestión. Caí en algunas opciones de diseño divertidas debido a la necesidad de velocidad y al conocimiento de que esto era solo para ser un prototipo completamente funcional y no una versión final. Tuve suerte, porque ahora tengo ese prototipo de funcionamiento completo, pero eso estaba lejos de ser algo seguro.

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas