Diseño de PCB de señal mixta para PSoC

15

Estoy desarrollando un PCB para una aplicación de detección analógica. Utiliza el ADC interno en un PSoC3. Como de costumbre, la aplicación tiene muy espacio restringido (11 mm x 21 mm), así que tuve que hacer algunos compromisos en el diseño de PCB que no habría hecho en una PCB más grande.

Laplacaessuministradapor6vregulados,ycontienedosreguladoreslinealesde5v.Un MCP1702 para el suministro digital, y un MIC5205 para el suministro analógico. La placa detecta cinco A1324 Sensores de efecto Hall. Cada señal de salida del efecto Hall se filtra con un filtro de 100nF + 1k RC. Un sensor está en el PCB (abajo a la derecha). Los otros 4 se enchufan en el conector de 6 clavijas de la derecha.

El chip está actuando como esclavo SPI, pero las muestras de ADC siempre se toman entre transacciones SPI, por lo que el SPI no debe interferir con las señales analógicas.

Lamentablemente, todavía estoy 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.

Abralaimagenenunanuevapestañaparaverlaenmayorresolución.

Añadido:

OtrosdiseñosdePCBquehehechousando MCP3208 , y los mismos suministros dobles de 5v, Los mismos sensores y los mismos filtros RC no han logrado ningún ruido notable a 12 bits.

El ADC en el PSoC3 es un 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 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 imposible realizar un control preciso de posición y velocidad en un robot.

Añadido:

Esquema. Lo siento, es un poco estrecho, pero puedes leer los valores.

    
pregunta Rocketmagnet

2 respuestas

13

Siempre tendrás algo de ruido en un ADC, especialmente los tipos SA (aproximación sucesiva) en el dado 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 razón por la cual la mayoría de los microcontroladores no le dan 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 desde el controlador.

Pero la pregunta es: ¿te importa? 1.5 bits de ruido en un ADC de 12 bits aún te deja 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 esto permanecerá en silencio durante las mediciones. El resto de la placa es CC o, probablemente, relativamente baja, como los sensores de efecto Hall. Y es un Damn Small ™, que también ayuda: los rastros más cortos captarán menos ruido. Claro que podría no saber más sobre el MCP1702, que giraría 90 ° CCW para que el capacitor de salida se pueda colocar 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:

Enlahojadedatos,losplanosdetierraanalógicosydigitalesdivididossesugierenpara"Rendimiento analógico óptimo" (página 10).

Por lo demás: es una tabla pequeña como dije, eso significa trazas cortas y desacoplamiento dentro de unos pocos mm. Así que me gustaría echar otro vistazo a la fuente del ruido. El primer 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 que ayudaría mucho si también se tuviera que bajar el VDDA, pero no leí en ninguna parte de la hoja de datos que el VDDA no debería ser más alto que el 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 A1324 nos da un ruido de 7 mVpp en un voltaje inactivo de 2,5 V. Eso también es lejos menos que la relación S / N de 72 dB que 12 bits podría proporcionarle. Puedes mejorar esto un poco con un filtro adicional.

Mencionas el mejor rendimiento del MCP3208, pero es un ADC alejado del microcontrolador, y eso puede explicar cómo un ADC de SA puede funcionar mejor que un sigma-delta con la misma resolución.

Por lo tanto, las opciones que veo: disminuyen el voltaje de la fuente de alimentación digital y dividen las conexiones analógicas y digitales.

    
respondido por el stevenvh
2

Estoy de acuerdo con lo anterior. 1.5LSB de ruido es bastante razonable. enlace 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 tu pregunta, pero la interpretaré como "¿Cómo soluciono mis problemas con el control de velocidad?" y no "¿Cómo obtengo más de 10.5 ENOB?".

¿Cómo te estás diferenciando? ¿Tiene suficientes marcas de reloj de repuesto para hacer algo más suave que una diferencia central de dos puntos? ¿Tal vez trabajar algo 5 muestras de ancho, optimizado en Matlab?

Además, esto puede sonar un poco raro, pero el ruido de la velocidad empeora a medida que se muestra más rápido

$$ \ frac {1LSB} {\ Delta t} $$ obtiene  más grande a medida que el delta se hace más pequeño). Intente muestrear tan rápido como sea necesario, no tan rápido como pueda.

No para ser insultante, pero también eche un vistazo rápido para asegurarse de que no haya nada estúpido en su control de velocidad, como los problemas con las conversiones entre enteros con signo y sin signo, y asegúrese de que los enteros sean lo suficientemente amplios para evitar errores de desbordamiento cuando se diferencian Mis propias ecuaciones de control a menudo se complican tanto que a veces emito explícitamente cada operación.

Por último, aunque quizás lo más probable, ¿estás perdiendo bits efectivos de la parte superior al no amplificar a casi la escala completa? Si es así, puede ampliar o quizás proporcionar un Vref más pequeño.

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas