el circuito funciona en el tablero de pruebas pero no en PCB

9

Tengo un circuito bastante simple que funciona perfectamente en el tablero, pero estoy teniendo muchos problemas para transferirlo a una PCB. Estoy viendo un comportamiento muy extraño que se encuentra fuera de mi experiencia actual, por lo que espero obtener algún consejo.

El circuito implementa un sensor de movimiento wifi, aunque el problema que tengo se produce waaay antes de llegar a la parte de RF, o incluso a la parte de uC del diagrama:

Hemarcadoconuncírculolapartequeestáteniendoproblemas.

R3esunaresistenciadesplegable,queserequiereb/cAMN42121controlalasalidaALTAcuandosedetectamovimiento,perolodejacolgandosinmovimiento,porloqueesnecesariodesplegar.

UtilicéC1parasuavizarlatransiciónentreelmovimientoyningúnmovimiento.C1hacequeelniveldesalidavayaaBAJOlentaysuavemente,porloqueelestado"sin movimiento" se logra después de unos segundos sin movimiento.

El inversor está ahí b / c Las interrupciones externas de attiny se activan a nivel BAJO, por lo que necesito invertir la lógica. Es lamentable que haya tenido que usar un paquete DIP tan grande para un inversor, pero no pude encontrar nada más.

He hecho una PCB de doble cara para este circuito, que se ve así:

Unavezmás,solohemontadoeláreacirculadahastaahora.

DespuésdesoldarS1,R3yC1,obtengolasiguienteseñaldelasalidadelsensor:

Esto es exactamente lo que quiero ver, por lo que todo está bien hasta este punto.

A continuación soldé en un zócalo para IC2 y enchufé el inversor. Aquí es donde comienzan los misterios. Al principio todo estaba bien, pero después de un tiempo de alterar el tablero, el circuito dejó de funcionar repentinamente. Cuando coloco una sonda en la salida del sensor, en lugar de la buena señal que vimos anteriormente, veo variaciones en los siguientes dos ejemplos:

Ejemplo 1:

Ejemplo2:

Tenga en cuenta que, a diferencia del primer ejemplo, la señal en el segundo no es generada por el movimiento, ya que la forma de los dientes simplemente emerge por sí misma sin ninguna acción por mi parte.

Después de muchas pruebas, pude establecer lo siguiente:

  1. Desenchufar el inversor del zócalo hace que el sensor vuelva a funcionar correctamente.
  2. Cortar la alimentación del inversor y dejarlo enchufado hace que el sensor funcione.
  3. El uso de un inversor diferente no tiene ningún efecto.
  4. Rociar la placa con un removedor de flujo o acetona y frotarla con un cepillo a veces hace que el sensor vuelva a funcionar, pero muy brevemente. En un momento pude hacer que la señal se viera así frotando agresivamente con un cepillo de dientes:

Tengaencuentaqueinclusoenestaúltimaimagen,laseñalnoestávolviendoasunivelBAJOhastaelfinal.Elefectodesapareciócasitanprontocomodejédecepillarme.

Hastaahora,estoapuntaaalgúndefectodesoldadura,exceptoquerealmentenopuedoverelproblema.Herevisadocuidadosamenteeltableroconunamagníficaampliaciónyheprobadotodoslospuntosenlosquepodíapensarparalacontinuidad:todoseverifica.AquíhayunprimerplanodeltrabajodesoldaduraenelzócaloICyelsensor:

Ahora estoy sin ideas, por lo que cualquier consejo sería muy apreciado. Gracias.

EDIT:

Acabo de descubrir algo interesante. Un examen más detallado del ejemplo # 2 (la señal de forma de diente de sierra) revela que la pendiente descendente es un segmento de la curva de descarga C1 esperada. Cuando el nivel de voltaje se acerca al umbral del inversor y pasa mucho tiempo allí, ¡parece que el inversor se está confundiendo! Está generando una pequeña ráfaga de ruido y luego hace algo para devolver la entrada a ALTO, o simplemente se queda indefinidamente en ese estado "indeterminado" ruidoso hasta que la salida del sensor vuelva a ALTO otra vez b / c de movimiento (Ejemplo # 1).

Para probar esta teoría, reemplacé C1 con una tapa que es 10 veces más pequeña, lo que hace que la curva de descarga sea mucho más pronunciada y "¡voilá!" - ¡El inversor ya no se confunde y el circuito funciona!

Por supuesto, esto anula el propósito de C1, ya que ahora no está proporcionando tanta demora como yo quiero. No estoy seguro de por qué no tuve este problema con el inversor en el tablero, pero sugiere que podría haber una solución muy fácil que pueda solucionar este problema. Leí que las tablas de pruebas tienen una gran capacitancia "extraviada", ¿entonces tal vez solo necesito agregar estratégicamente más capacitores en algún lugar? ¿Alguna idea?

EDIT 2: Proporcionando una vista superior ya que algunos comentaristas lo pidieron:

    
pregunta Val Blant

3 respuestas

7

EDITAR: debido a mi mala interpretación del circuito, estoy editando la respuesta para enfocar la salida del sensor. ¿Está utilizando la salida analógica para alimentar el inversor? Si es posible que deba probar un disparador Schmitt como un 74HC14

    
respondido por el Andy aka
11

Sin estudiar su circuito con gran detalle, lo obvio es que no tiene condensadores de desacoplamiento.

Suelde uno a través de los pines de alimentación de cada chip.

Además, su comentario de 'fregado lo hace funcionar' sugiere que tiene una conexión seca o intermitente en algún lugar. Inspeccione cuidadosamente todas sus soldaduras.

Con respecto a un chip DIL que es excesivo, podrías haber usado un transistor y poner el retardo en el software.

    
respondido por el Buzby
3

Su principal preocupación parece ser reducir el consumo de energía.

El AMN42121 consume aproximadamente 50uA continuamente. El 74HC04 consume aproximadamente 20uA continuamente. El ATTINY85 consume alrededor de 300uA de forma intermitente, es decir, cuando se despierta. La radio usará miliamperios cuando transmita.

¿Con qué frecuencia se activará el sensor? ¿Ha realizado algún cálculo de potencia para estimar la vida útil de la batería?

Le sugiero que deseche el inversor y el condensador de 'desaceleración', conecte el sensor directamente a la MCU con un pulldown de 10 K según la hoja de datos del sensor y escriba la lógica de retardo en la MCU.

[EDITAR] A pesar de que las cosas están un poco mal, me alegra ver que está probando su circuito una etapa a la vez. Es mucho más fácil que tratar de encontrar un proyecto terminado.

    
respondido por el Buzby

Lea otras preguntas en las etiquetas