Estoy desarrollando una PCB para una aplicación de detección analógica. Utiliza el ADC interno en un PSoC3. Como de costumbre, la aplicación tiene un espacio muy limitado (11 mm x 21 mm), por lo que tuve que hacer algunas concesiones en el diseño de la placa de circuito impreso que no habría hecho en una placa de circuito impreso más grande.
La placa se alimenta con 6v regulados, y contiene dos reguladores lineales de 5v. Un MCP1702 para la alimentación digital y un MIC5205 para la alimentación analógica. La placa detecta cinco sensores de efecto Hall A1324 . Cada señal de salida de efecto Hall se filtra con un filtro RC de 100nF + 1k. Un sensor está en la PCB misma (abajo a la derecha). Los otros 4 enchufes en el conector de 6 pines de la derecha.
El chip actúa como un esclavo SPI, pero las muestras de ADC siempre se toman entre transacciones SPI, por lo que el SPI no debería interferir con las señales analógicas.
Lamentablemente, sigo viendo algo de ruido (alrededor de 1,5 LSB a 12 bits) en las señales analógicas y me pregunto si podría haber hecho algo diferente en el diseño para mejorarlo.
Abre la imagen en una nueva pestaña para verla en mayor resolución.
Agregado:
Otros diseños de PCB que hice usando el MCP3208 , y los mismos suministros duales de 5v, los mismos sensores y los mismos filtros RC no lograron ruido perceptible a 12 bits.
El ADC en el PSoC3 es del tipo delta sigma. Esta versión del PSoC está limitada a 12 bits, pero otro número de pieza tiene un ADC de 16 bits (aunque con una frecuencia de muestreo más baja).
Me importa el ruido y realmente me gustaría empujarlo un poco más hacia 12 ENOB. La razón no es la precisión, sino la medición de la velocidad. Actualmente, este nivel de ruido hace que sea imposible realizar un control preciso de la posición y la velocidad en un robot.
Agregado:
Esquemático. Lo siento, es un poco estrecho, pero puedes leer los valores.
Siempre tendrá algo de ruido en un ADC, especialmente los tipos SA (aproximación sucesiva) en la matriz del microcontrolador. Sigma-delta funciona mejor para el ruido gaussiano, ya que lo integran. No espere 12 ENOB de un ADC de 12 bits.
El ruido del controlador es una de las razones por las que la mayoría de los microcontroladores no ofrecen una resolución superior a 10 bits, y el AVR ofrece la posibilidad de detener el microcontrolador durante la adquisición del ADC, lo que debería confirmar que al menos parte del ruido proviene del controlador. .
Pero la pregunta es: ¿te importa? 1,5 bits de ruido en un ADC de 12 bits todavía te dejan más de 10 bits, o mejor que 0,1 %. ¿Qué tan preciso es su sensor Hall? ¿Otros componentes en el circuito?
editar
Parece que usas el oscilador interno del PSoC, ya que no veo ningún cristal en el esquema. Se ve bien: tienes el desacoplamiento adecuado. Aparte del reloj interno, la única parte de alta velocidad en el circuito parece ser el SPI, pero usted dice que permanecerá en silencio durante las mediciones. El resto de la placa es de CC o probablemente de frecuencia relativamente baja como los sensores de efecto Hall. Y es Damn Small™, que también ayuda: las trazas más cortas captarán menos ruido. Claro, podría criticar el MCP1702, que rotaría 90 ° CCW para que el capacitor de salida pueda colocarse aún más cerca de los pines, pero eso no resolverá los problemas.
Solo veo un cambio en el diseño que podría mejorar su relación S/N:
En la hoja de datos, se sugieren planos de tierra analógicos y digitales divididos para "Rendimiento analógico óptimo" (página 10).
Por lo demás: es una placa pequeña como decía, eso significa trazas cortas y desacoplamientos de unos pocos mm. Así que me gustaría echar otro vistazo a la fuente del ruido. El principal sospechoso es el reloj del PSoC. El PSoC puede funcionar con un voltaje de suministro muy bajo, y eso reduciría su ruido. Por supuesto, ayudaría mucho si VDDA también tiene que reducirse, pero no leí en ninguna parte de la hoja de datos que VDDA no debería ser más alto que VDDD.
A continuación, el ADC. En la página 55 de la hoja de datos dice 66 dB SINAD, eso es 11 bits, cerca de lo que obtienes ahora. La hoja de datos del A1324 nos proporciona un ruido de 7 mVpp con un voltaje de reposo de 2,5 V. Eso también es mucho menor que la relación señal/ruido de 72 dB que podría proporcionarle 12 bits. Puede mejorar esto un poco con filtrado adicional.
Usted menciona el mejor rendimiento del MCP3208, pero eso está a un ADC de distancia del microcontrolador, y eso puede explicar cómo un SA ADC puede funcionar mejor que un sigma-delta con la misma resolución.
Entonces, las opciones que veo: reducir el voltaje de la fuente de alimentación digital y dividir los terrenos analógicos y digitales.
Estoy de acuerdo con lo anterior. 1,5 LSB de ruido es bastante razonable. http://www.cypress.com/?docID=39346 muestra un SINAD mínimo de 66 dB en modo de 12 bits, lo que sugiere ENOB = 10,7.
Sé que esta no es una respuesta directa a su pregunta, pero voy a interpretar la pregunta como "¿cómo soluciono mis problemas con el control de velocidad?" y no "¿Cómo obtengo más de 10,5 ENOB?".
¿Cómo estás diferenciando? ¿Tienes suficientes tictacs de reloj de repuesto para hacer algo más suave que una diferencia central de dos puntos? ¿Quizás resolver algo de 5 muestras de ancho, optimizado en Matlab?
Además, esto puede sonar un poco divertido, pero el ruido de la velocidad empeora a medida que muestrea más rápido.
No es por ofender, pero también eche un vistazo rápido para asegurarse de que no ocurra nada tonto en su control de velocidad, como problemas con las conversiones entre enteros con y sin signo, y asegúrese de que sus enteros sean lo suficientemente amplios para evitar errores de desbordamiento cuando diferencia . Mis propias ecuaciones de control a menudo se complican lo suficiente como para lanzar explícitamente cada operación.
Por último, aunque quizás lo más probable, ¿está perdiendo partes efectivas de la parte superior al no amplificar casi a escala completa? Si es así, puede amplificar o tal vez proporcionar un Vref más pequeño.
scott seidman
Rocketmagnet
stevenvh
Rocketmagnet
connor lobo
connor lobo
connor lobo
Rocketmagnet
Rocketmagnet
Rocketmagnet
connor lobo
connor lobo
connor lobo
goto
en forma esquemática. Hacen su trabajo un poco más fácil, pero hacen que cualquier otra persona que tenga que trabajar o leer la vida de su esquema sea mucho más difícil.connor lobo
ctrl
+drag? Mueve partes de componentes mientras mantiene las conexiones (solo editor de esquemas). No siempre funciona, pero es muy útil.el fotón
el fotón
connor lobo
connor lobo
connor lobo
goto
. Puede ahorrarle tiempo, pero si trabaja con otras personas (y yo mismo trabajo muy de cerca con otro ingeniero), son una completa pérdida de tiempo, ya que cada vez que está discutiendo algo, tiene que ir manualmente sobre todo el esquema tratando de encontrar a dónde va.Rocketmagnet
el fotón
connor lobo
connor lobo
connor lobo