Tecnología > Electricidad y Electrónica

Visualización de datos en tiempo real.

<< < (2/2)

Carlos:
En las pruebas que he hecho, he alimentado el regulador de voltaje de precisión directamente de la batería, la misma que alimenta al Arduino, y no me ha dado problemas.

En todo caso el ruido de ese ADC debe estar en 8uVrms, creo que se parece bastante a lo que te sale:


--- Código: ---0.371 586
0.371 578
0.371 599
0.371 596
0.371 607
0.371 583
0.371 592
0.371 589
0.371 602
0.371 595
0.371 601
0.371 583
0.371 588
0.371 588
0.371 600
0.371 609
0.371 601
0.371 583
0.371 602
0.371 587
0.371 618
0.371 595
0.371 587
0.371 586
0.371 599
0.371 593
0.371 601
0.371 592
0.371 594
0.371 595
0.371 594
0.371 602
0.371 615
0.371 598
0.371 606
0.371 598
0.371 595
0.371 593
0.371 576
0.371 581
0.371 600
0.371 586
0.371 596
0.371 593
0.371 578
0.371 582
0.371 606
0.371 577
0.371 590
0.371 606

--- Fin del código ---


¿Dónde has puesto los condensadores en el ADC? hay que poner 3

No es necesario separar parte analógica y digital porque cada una actúa en diferentes momentos con el "single conversion mode". Primero convierte y luego envía el dato antes de volver a convertir.

Puede que te venga bien sincronizar el ADC con el paso por cero de la frecuencia de red. Lo malo de ese ADC tan rápido es que no elimina bien los ruidos de 50 Hz.

Carlos:
No entiendo bien la imagen.
¿Es la tensión del diodo con el tiempo?
Probablemente estás midiendo temperatura. A 2mV/ºC, ese drift es igual a 0.2ºC.

Un saludo.

Manuel:
[Respuesta al hilo anterior: no, es la medida de un par de resistencias, 10K y 820R, que hacen una division de voltaje. Su sensibilidad a la temperatura es muy baja.]

Hola. No le he soldado los condensadores, porque quería esperar a tener el mínimo de ruido por otros caminos. Al final parece que el drift se debía a una tensión insuficiente en en uA723. Tras corregir el problema, he logrado varios recorridos con un drift despreciable. Por ejemplo:

15000 samples sin drift aparente.

En este recorrido, el ruido total de pico a pico es menor que 90 microvoltios, lo que comparado con los 500uV de pico a pico que tenía antes de todo el montaje no está nada mal.

Mi referencia de voltaje sólo tiene 2.5 voltios, mientras que el MCP3553 necesita como mínimo 2.7V. No puedo usarla para alimentar el ADC. Tengo un par de referencias de precisión de 5V, pero están en SOIC y no las tengo montadas. Además, creo que son menos precisas que mi ADR421.

A la velocidad a la que estoy convirtiendo, no estoy seguro de que el ringing de la comunicación por SPI no meta ruido en el conversor. Creo que he mejorado la estabilidad en casi un factor de 10 al hacer toda la separación. Y he tenido alguna sorpresa desagradable al dejar entrar el ruido de Arduino en la conversión.

En la última pasada, el resultado final ha sido:


--- Código: ---Timestamp: 398902
Checksum ok.
[0.3854405879974365, 0.3854358196258545, 0.38544178009033203,
0.38544654846191406, 0.38543224334716797, 0.38543701171875,
0.38544416427612305, 0.3854525089263916, 0.3854238986968994,
0.385434627532959, 0.3854513168334961, 0.38544654846191406,
0.38544297218322754, 0.3854358196258545, 0.385439395904541,
0.38544654846191406, 0.38544297218322754, 0.3854513168334961,
0.38544654846191406, 0.3854501247406006, 0.385439395904541,
0.3854489326477051, 0.38544654846191406, 0.3854489326477051,
0.38543105125427246, 0.38544774055480957, 0.38543701171875,
0.3854334354400635, 0.38544178009033203, 0.38544654846191406,
0.3854560852050781, 0.3854548931121826, 0.3854548931121826,
0.38544178009033203, 0.3854405879974365, 0.38544297218322754,
0.38544535636901855, 0.38544774055480957, 0.385434627532959,
0.38544416427612305, 0.38543701171875, 0.3854513168334961,
0.38544297218322754, 0.38544297218322754, 0.38544535636901855,
0.3854501247406006, 0.38544535636901855, 0.38544297218322754,
0.3854525089263916, 0.3854548931121826]
Average  = 0.38544385
sigma = 0.00000688
95% confidence bound = 0.00000232

Final mean     : 0.385445586
Final sigma    : 0.000009645
Final 95% bound: 0.000000156

--- Fin del código ---

Los datos finales corresponden a las 15000 muestras, e indican un ruido RMS de unos 9.6uV que, teniendo en cuenta las fluctuaciones térmicas durante el recorrido, tampoco están tan mal. El siguiente paso es el de soldar los condensadores: ahora mismo sólo tengo una remesa que compré en ebay, y que me han traído una enorme mala suerte. Los últimos cinco proyectos que hice con ella, tres osciladores de RF y dos microcontroladores, fallaron miserablemente y no tiraron hasta que no usé componentes radiales. Tengo encargada una colección de condensadores SMD de buena calidad en Mouser, y prefiero esperar a que me lleguen, antes que soldar esta caca de componentes.

Muchas gracias de nuevo. Realmente tengo que poner una buena referencia en la entrada del ADC, porque actualmente sólo vale para medidas diferenciales respect a la fuente de alimentación.


Carlos:
Parece que has conseguido llegar a la precisión máxima del integrado sin utilizar condensadores.
 ((:-))

Un saludo.

Manuel:
Hola, Carlos. Perdona que tardara tanto en responder: esta semana he estado cerrando el proyecto de Arduino en mi centro, y es un montón de papeleo.

He probado el magnífico chip MCP3550-50 que me has mandado (¡gracias!). Es en efecto mucho mejor que el 3553. No me ha costado nada adaptar todo el tinglado para este aparato, y el resultado es:

El circuito con el 3550-50, que he soldado punto a punto: prefiero el método dead-bug a usar pcbs.

Los resultados son brutales: he medido exactamente las mismas resistencias, y en el gráfico se puede apreciar perfectamente la cuantificación de las medidas. Hay que tener en cuenta que python usa doble precisión real, así que la cuantificación no es un artefacto de la precisión en coma flotante.

5000 samples de 3550-50 sobre una division de voltaje.

El ruido RMS típico por cada Segundo es del orden de 3 a 5 uV RMS, y como puede verse en la gráfica, el ruido pico a pico es de 40uV en 7 minutos, y eso con las fluctuaciones añadidas.

Un magnífico aparato.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa