¿Cómo usar el módulo HX711 con microcontrolador PIC?

1

Estoy intentando usar el HX711 para capturar el peso de una celda de carga usando el microcontrolador PIC18F4520.

Según la hoja de datos ( enlace ) si coloco el pin del reloj (PD_SCK) GND, el módulo activará su reloj interno, así que simplemente lea lo que deja el pin DOUT. ¿Es esto correcto?

Si esto es correcto, ¿tengo que conectar esta salida a un puerto analógico?

(Lo siento mi inglés)

    

1 respuesta

1

La hoja de datos pg.1 dice On-chip oscillator requiring no external component with optional external crystal . Así que aparentemente puede funcionar en función del reloj PIC, o con su propio reloj.

En la página 2, dice que PD_SCK es para Power down control (high active) and serial clock input. Así que esto es incorrecto, como XI es para Crystal I/O or external clock input, 0: use on-chip oscillator. Así que XI LOW lo obliga a usar su propio oscilador; PD_SCK HIGH lo fuerza en modo de apagado.

La página 4 explica cómo usar el reloj interno o externo, y el tiempo y las velocidades disponibles. Si elige dejar que el HX711 use su propio reloj interno, entonces escupirá 10 u 80 muestras por segundo, dependiendo de si el pin RATE es bajo o alto. Si está felizmente escupiendo 80 muestras por segundo, y el PIC comienza a ver esos datos en algún punto intermedio, será difícil determinar qué bit se está mirando y dónde comienza la siguiente muestra. Se puede hacer, pero requeriría un análisis detallado de los bits de datos entrantes.

Probablemente sería ventajoso ejecutar un pin de salida PIC a PD_SCK y un pin de entrada PIC a DOUT , olvidar las respuestas de reloj automático y "bit bang" cada vez que se ejecuta el código PIC. Por "bit-bang" me refiero a escribir un código PIC que obtiene cada bit, uno a la vez. Aquí hay un pseudo-código:

is DOUT low? If so, continue, else exit.
    (send 1 clock pulse to the HX711: LOW, HIGH, LOW,
    read the single data bit output into a 24-bit PIC integer,
    rotate the integer one bit, either direction, doesn't matter)
    do this exactly 24 times.
send 1 clock pulse.
DOUT should now be high. If it is not, an error occurred.
(If you want to keep the gain at 128 for the next sample, do nothing.
 If you want to switch the HX711 to Channel B input with gain of 32, send 1 clock.
 If you want to switch to Channel A input with gain of 64, send 1 more clock.)

Los requisitos de tiempo todavía se aplicarían; lo que significa que si el HX711 está configurado para emitir 80 muestras por segundo, no podrá leerlas a tiempo desde un PIC que se ejecute a 32 kHz. El PIC debe ser lo suficientemente rápido para leer una muestra antes de que llegue la siguiente. Eso no debería ser un problema si se usa un PIC rápido y la configuración de 10 muestras / seg.

    
respondido por el rdtsc

Lea otras preguntas en las etiquetas