usando un ADC bajo Linux para la configuración de monitoreo actual automatizada

0

Soy un estudiante universitario un poco sobrecargado. Estoy trabajando en un proyecto donde se supone que debo construir una configuración automatizada para medir las corrientes del disco duro a lo largo del tiempo.

Quiero usar un Current Shunt Monitor (CSM) conectado a un ADC que está conectado a una máquina Linux.

Ya elegí un CSM (AD8211). Necesito un ADC ahora, pero de alguna manera no consigo encontrar una manera adecuada de conectarlo a Linux. Estaba pensando que EVAL-AD7091R podría hacer. Encontré la forma libiio de dispositivos analógicos pero no estoy seguro de si hace lo que quiero que haga. ¿Puedo controlar el tablero de evaluación por python de alguna manera a través de libiio? Solo dile que comience a muestrear? ¿Hay alguna biblioteca que pueda usar que me permita hacer ciertas cosas con la pizarra?

Lo que se necesita hacer esencialmente es conectar un disco duro a través de SATA y ejecutar ciertas operaciones como iniciar el disco, leer y escribir y medir la corriente simultáneamente. Quiero hacer esto por fio. Como los SDD son muy rápidos, acordamos una tasa de muestreo de 1Msps. 200ksps es el límite inferior absoluto, sin embargo.

Perdón por mi lenguaje vago. Si algo no está claro por favor pregunte. Hago mi mejor esfuerzo para explicar mejor.

Cualquier ayuda es altamente apreciada.

    
pregunta aJazz

3 respuestas

1
  

acordamos una tasa de muestreo de 1Msps. 200ksps es el límite inferior absoluto, sin embargo.

El pequeño detalle que lo cambia todo ...

No puedes hacer eso conectando un ADC a tu computadora directamente. La computadora utiliza un sistema operativo multitarea que no puede interrumpir 1 millón de veces por segundo para desencadenar una conversión.

Necesita un poco de hardware interconectado con su ADC, que se ejecutará a 1 Msps, almacenará los datos y los enviará a la computadora a través de una conexión de ancho de banda adecuado como USB o Ethernet.

Lo más fácil sería utilizar un alcance de almacenamiento digital con una función de grabación, un alcance USB de transmisión o un sistema de adquisición de datos (DAQ).

También puede usar un microcontrolador USB, siempre que tenga suficiente ancho de banda y alimentación, y la interfaz adecuada para su ADC. Sin embargo, esto será un poco de trabajo, pero probablemente puedas encontrar una junta de evaluación ADV con todo esto. Sin embargo, esto también necesita software en la PC.

Si su computadora tiene entradas de audio, también puede usarlas como ADC, pero tendrá que quitar las tapas de acoplamiento de CA, y quizás el filtro de paso alto del software, que depende del chipset. Eso no dará 1Msps aunque.

Otra solución sería pasar por debajo de la señal para reducir la frecuencia de muestreo, pero perderá la resolución del tiempo.

Antes de diseñar (o comprar) un sistema de adquisición, sería aconsejable comprobar cómo se ve la señal . Especialmente su ancho de banda. Por lo tanto, intente un alcance digital primero.

Ahora, sobre el ancho de banda ... AD8211 tiene un ancho de banda bastante bueno (300 kHz), por lo que si usa un resistor shunt de bajo valor podrá explotar el ancho de banda completo. Sin embargo, la resistencia estará en serie con la fuente, lo que hará que la tensión disminuya un poco.

Esto no debería ser un problema, ya que su SSD no será alimentada por las líneas + 5 / + 12 directamente, sino que tendrá algunos reguladores de conmutación integrados para generar voltajes más bajos. Entonces, si el suministro cae en una fracción de voltio debido a la resistencia sensorial, seguirá funcionando bien. Sin embargo, la medición de corriente será un poco más alta que sin la resistencia de detección, ya que un regulador de conmutación alimentado desde un voltaje más bajo consumirá más corriente a una potencia de salida constante. Así que intenta usar un valor de resistencia pequeño.

Si incluye un regulador adicional como lo sugiere Toni, entonces su ancho de banda de medición será el del regulador (es decir, unos pocos kHz a menos que tome algunas medidas desesperadas).

¡Si aún necesita esta enorme cantidad de ancho de banda para ver! ...

    
respondido por el peufeu
1

Con una frecuencia de muestreo de al menos 200 cps, debe dedicar un núcleo de CPU exclusivamente para datos de muestreo. Esto es posible con Linux, incluso dentro de un proceso de usuario, pero necesita una CPU multinúcleo. Un Raspberry Pi 3 puede hacerlo ya que tiene cuatro núcleos disponibles para el usuario. También tiene un SPI expuesto que puede ayudarlo a conectarse.

Pero, sin posibilidad de hacer eso con python, necesita un proceso de C mínimo con prioridad SCHED_FIFO y CPU bloqueada y bloqueada, lo que aporta las señales de control necesarias al ADC, luego recibe los datos y los almacena en una RAM compartida.

Otro proceso con prioridad estándar puede luego leer los datos almacenados en el búfer y almacenarlos en el disco duro.

    
respondido por el Janka
0

(se movió de un comentario a una respuesta a la sugerencia del operador, aunque esto es solo una respuesta parcial)

Necesitará algún tipo de circuito para mantener constante la tensión del disco duro, de lo contrario sus resultados serán imprecisos.

Para hacer esto, necesitará algún tipo de regulador lineal de "diseño antiguo" (no conmutación, lineal) y colocar la resistencia de medición en la entrada del regulador. También deberá medir la corriente que toma el propio regulador, pero eso es bastante fácil de hacer.

    
respondido por el Toni Homedes i Saun

Lea otras preguntas en las etiquetas