Un problema extraño en el temporizador de uP

3

Usamos STM32F2 en el trabajo, recientemente enfrenté un problema extraño. No espero una respuesta directa de la multitud, pero espero algunos consejos sobre dónde buscar la causa raíz.

Tengo un reloj que tiene una frecuencia de 1 MHz, el reloj funciona bien, excepto una frecuencia de sombra detrás. 40KHz (algo entre 40 a 42KHz para ser exactos, no pude determinar el punto). Parece que un reloj se está desviando en alguna dirección, estos temporizadores se implementan como contadores y no puedo pensar en un escenario por el que vería algo en el fondo.

(Noté un problema en la lectura de ADC primero, así que sé que no es un problema de alcance)

ACTUALIZACIÓN No estoy en la oficina ahora, verificaré con un alcance analógico hoy, pero básicamente, muestro una entrada constante con este reloj (el ADC se activa como el flanco ascendente de este reloj). Cuando estaba analizando datos, noté un ruido de 40 KHz y esto es cuando comencé a buscar lo que me llevó a la siguiente imagen.

También, uso el filtro digital de Rigol para hacer un filtro LP hasta 100KHz y veo claramente una señal en esa frecuencia, pequeña en amplitud, pero está ahí. Añadiré una captura de esa señal aquí también.

La captura de alcance adjunta.

ACTUALIZACIÓN2Máscapturasdepantalla:

Eldelaizquierdaenunaescaladetiempodiferente.Eldeladerecha,ambasescalasdetiempoconfuncióndezoom.LaparteinferiorizquierdaestáconelfiltroLPde750KHz.Eldeabajoaladerechaesuntirodetrajedebaño.

ACTUALIZACIÓN y CONCLUSIÓN Resulta que esto es realmente un problema de alcance, es más que un alias, ya que el alcance muestra claramente un ruido de fondo de 40MHz. Nos fijamos en el problema potencial con un alcance de gama alta y no está allí. (Sin embargo, el problema de la causa raíz de ADC todavía está allí, solo necesitamos depurarlo)

    
pregunta Ktc

2 respuestas

4

Eso me parece un alias en la visualización del alcance. ¿Cuántas muestras hay en la pantalla? ¿Cuál es la tasa de muestreo?

Cierre la base de tiempo para mostrar solo un par de ciclos de reloj y ver si se ve mejor ...

    
respondido por el Martin Thompson
1

¿De dónde viene el reloj? ¿El temporizador sale luego del pin uC?

Lo primero que buscaría es algo en tu tablero que pueda generar ruido a esa frecuencia.
¿Tienes un conmutador en el tablero?

¿Desaparece la "frecuencia de sombra" si la maneja desde una fuente de alimentación diferente?

¿Está ejecutando desde el oscilador interno o el cristal?

EDITAR - se menciona el aliasing, esto también suena bastante probable. Supuse que habrías intentado varias escalas de tiempo diferentes y obtendrías el mismo resultado. Si no lo has hecho, intenta disminuir un poco la escala de tiempo y ver qué aspecto tiene. Si no tienes el límite de ancho de banda para aplicar esto.
Si tiene un alcance analógico a mano, verifique la señal en esto: si la "frecuencia de sombra" no está presente, sabrá que es un alias de algún tipo.

EDIT 2 - ¿cómo ha implementado la alternancia de pin con el temporizador? ¿Está en una rutina de interrupción o se hace en el código principal? (es decir, simplemente leyendo el temporizador o mirando el indicador de interrupción) Si es el código principal, entonces es posible que se dispare otra interrupción regular durante la actualización del contador / rutina de cambio de pin y se desactive la sincronización.
La forma más fácil de probar esto (si es posible) sería desactivar todas las demás interrupciones y / o alternar el pin en la rutina de interrupción del temporizador 2.

    
respondido por el Oli Glaser

Lea otras preguntas en las etiquetas