STM32F103 ADC Noise

3

Soy nuevo en este foro. He leído las preguntas y respuestas en este foro sobre temas similares, pero esa fue para la CPU STM32F2. Estoy usando STM32F103 y tengo un problema similar.

Similar al último tema, estoy usando un tablero de dos capas. He separado los campos analógico y digital y se unieron a la entrada de la fuente de alimentación. Tengo una fuente de alimentación analógica y digital separada, que utiliza el regulador de voltaje TLV70033. El voltaje de referencia es 3V y es ref por REF3030. Toda la fuente de alimentación digital de la CPU se pasa por alto por los tapones de cerámica 100nF 0805. De manera similar, la fuente analógica y el voltaje de referencia se omiten en las tapas de 100 nF. El suministro analógico y la conexión a tierra de las tapas de derivación de voltaje de referencia se conectan a la conexión a tierra analógica.

Mi CPU está usando cristal de 8MHz y el PLL está configurado en 6, por lo que la CPU está funcionando a 48MHz (porque quiero usar el puerto USB)

Mi problema es que encontré que la señal recolectada por el ADC es ruidosa. Mi reloj de muestreo ADC es 1MHz y el "muestrear y mantener" se establece en 239.5 Ciclo Clk (bastante lento). El muestreo se dispara mediante un temporizador que se establece en 3968Hz y el resultado del ADC es DMA a un búfer. Cuando se recopilan 32 resultados de ADC, se produce una interrupción. En la rutina de interrupción, envío (vía USB) los resultados de ADC que no son cero. Puedo ver los resultados en mi PC. El registro USB muestra que en la mayoría de los ciclos DMA solo 4 o 5 no son cero, y son bastante pequeños. La mayoría son menos de 5 que puedo aceptar. Sin embargo, ocasionalmente (1 o 2 por ciento) el resultado de ADC es mayor que 16 y en algún momento podría ser tan grande como 68cuentas.

¿Puede alguien darme algunos consejos sobre la causa probable del ruido y cómo podría eliminarlos?

Gracias de antemano.

Tommy

Editar > Debería haber explicado en mi publicación inicial que la entrada de la fuente de alimentación de mi placa es de 30 V y que utilizo LM2842 (convertidor buck de 500 KHz) para bajar a 5 V y luego a 5 V se reduce a 3,3 V (para circuito digital y analógico) . Mi CRO analógico muestra que el ruido de conmutación está llegando a mi fuente analógica y VRef. Cuando quito el convertidor Buck y uso un 78M05 en su lugar, puedo obtener lecturas de ADC muy estables (desviación máxima 4LSB por transferencia de 32 DMA), pero el 78M05 se está poniendo muy caliente. Pienso en usar el convertidor Buck para bajar a 8 o 9 voltios, luego usar 78L05 o similar para bajar a 5V. Con suerte, el PSRR de dos etapas del regulador de potencia lineal eliminará la mayor parte del ruido de conmutación. Mi preocupación es si el ruido irradiado seguirá entrando en mi circuito analógico o ¿debo usar un convertidor reductor de frecuencia de conmutación inferior (20 KHz)? (Ahora me doy cuenta de que el PSRR del TLV70033 a 500 KHz es muy bajo). Gracias de antemano.

    
pregunta Tommy

2 respuestas

1

Usamos F1 / 2 para nuestros proyectos, parece que su arquitectura es correcta. F1 requiere calibración, asegúrese de que esté en el código.

En términos de ruido, # 1 es igual a 0.73mV. En este caso, 16 es aproximadamente 11 mV, que es un rango aceptable. 68 es un poco alto.

Haz lo siguiente para ver:

  • Verifique el pin VRef para ver si tiene un problema técnico. REF3030 es una buena parte sólo para el ruido de baja frecuencia. Si tiene ruido de HF, aparecerá en su VREF (PSRR es < 20dB por encima de 10KHz).
  • Acelere su tasa de muestreo de ADC y compare los datos
  • Cambie el tiempo de muestreo de su ADC a 3 ciclos y repita el experimento
  • Haga que su software no haga nada más que esto del ADC y vea si obtiene una mejor respuesta, otros periféricos causan problemas de forma rutinaria

Vuelve con estos y podemos hacer más sugerencias.

    
respondido por el Frank
1

Su ADC no es "ruidoso", que quede claro. El ADC solo está haciendo su trabajo y puede hacerlo con poder de falla.

Primero necesitas instrumentarte bien. Conecte un micro-coaxial o incluso RG-174 directamente a las clavijas analógicas Vcc y VRef y a la tierra DERECHA EN LA CPU. Mantenga las conexiones del blindaje de tierra realmente cortas, ya que no desea que haya ningún gran bucle allí para recoger los campos magnéticos que se describen a continuación. Luego mide los fallos y anota los números.

La conmutación de las fuentes de alimentación puede emitir mucho ruido. Primero revise su inductor, si es una herida de solenoide barata en una barra de ferrita, eso puede ser parte del problema. El campo magnético se arquea fuera de los extremos de la barra. Cualquier cable que se esté ejecutando en ese campo magnético va a ser dañado. Puedes intentar colocar un toroide de la misma inductancia. Costará cuatro veces más que el inductor de varilla, pero casi no tendrá campo magnético. compare las lecturas de voltaje de falla del toroide y la barra y decida si la mejora vale la pena.

A continuación, intente más capacitancia de filtrado. Cuadruplique el filtrado en el Vcc analógico y vea si eso ayuda. Entonces intente lo mismo en el VRef. Compare las lecturas de fallas y decida si la reducción vale el tamaño adicional y el costo de los capacitores.

Si eso no ayuda lo suficiente, puede probar una resistencia o un inductor en serie con las líneas Vcc y ref. La línea VRef es probablemente una impedancia muy alta (¡compruebe!), Por lo que puede colocar una resistencia bastante grande, varias K, en serie antes de la tapa del filtro. Eso seriamente desvincularía esa línea. El consumo de corriente analógico de Vcc es de aproximadamente 2 miliamperios, por lo que no puede poner mucha resistencia en esa línea, pero es probable que pueda lograrlo con 100 o 220 ohmios, antes del condensador del filtro (que es, por supuesto, CORRECTO POR CPU) también le dará un buen factor de 10 o más en el desglitching.

deshacerse de los fallos es un poco un arte, pero persevera y llegarás allí.

    
respondido por el Ancient_Hacker

Lea otras preguntas en las etiquetas