¿Cómo arreglar un error de diseño de PCB después de la fabricación?

19

Novato de 16 años aquí.

Mi proyecto es un mini robot con el pcb como chasis, batería lipo con circuito cargador y sensores infrarrojos. Utilicé LSM6DS33TR para mi acelerómetro y giroscopio I2C con "resistencia pull-up" de 10K según la hoja de datos, y ATMEGA328P como microcontrolador.

Es la primera vez que diseño mi propia placa PCB industrial y la fabricamos. He fabricado los PCB con JLCPCB. Después de enviar los archivos y esperar la entrega, cuando veo un error en mi diseño. Me di cuenta de que no he conectado correctamente las resistencias pull-up para mi bus I2C porque deberían estar conectadas a 3V3.

Mis preguntas son:

  1. ¿Cómo puedo redirigir las conexiones o hacer modificaciones para que el SDA y SCL se levanten para suministrar voltaje con la PCB que ya se está fabricando?
  2. ¿Debo cambiar el diseño y fabricar otra PCB? (Rompió ):)

Aquí está el diagrama esquemático completo para el proyecto que hice: (las líneas i2c están rodeadas) ingrese la descripción de la imagen aquí

CAPA SUPERIOR: (GND Copper Plane) ingrese la descripción de la imagen aquí

CAPA INFERIOR: (Avión de cobre 3V3) ingrese la descripción de la imagen aquí

Dave Benemerito
fuente
3
¡Buen trabajo! Afortunadamente para usted, todos hemos hecho cosas como esta y hemos pasado por el proceso de solucionarlos. Iba a sugerir lo mismo que @Oldfart. La mejor de las suertes para ti.
Elliot Alderson
10
¡Felicidades! ¡Bienvenido a la tierra del bodge! :) (no eres un verdadero diseñador de PCB hasta que hayas roto el carrete de cable azul? XD)
ThreePhaseEel
44
Para proyectos futuros, le recomiendo que agregue almohadillas adicionales en algunas de las trazas más importantes, incluso si no se llenan, para que pueda conectarlos si es necesario, y no tenga que preocuparse por soldar un cable en un pin de un pequeño paquete de CI.
Hogar
66
Lo que dijo @Hearth se puede lograr en la mayoría del software EDA / EDM al hacer un componente de punto de prueba que tenga un "pin", y luego hacer una huella para ese punto de prueba que es solo una pequeña almohadilla de montaje en superficie. Tendrá todos estos puntos en toda su placa, etiquetados, que puede usar para modificaciones o para conectar sondas de alcance. Hay muchas posibilidades de que su herramienta ya tenga algo similar en las bibliotecas.
TimWescott
8
Le sugiero que haga funcionar los tableros que compró, incluso si no se ven tan atractivos. Entonces, si decides volver a hacerlo, es más probable que hayas encontrado el 100% de los problemas.
Spehro Pefhany

Respuestas:

19

Tienes que 'parchar' tu PCB.

Haría lo que he intentado dibujar a continuación: coloque dos resistencias pull-up (10K) en las almohadillas existentes en cortocircuito. Luego, un cable del otro extremo a la conexión 3V3 más cercana.

ingrese la descripción de la imagen aquí

He dibujado la resistencia SMD pero también puedes usar las axiales "anticuadas".

Viejo pedo
fuente
55
Solo quería agregar que me gusta usar alambre de alambre para estas soluciones, pero cualquier cable sólido fino debería funcionar. También me inclinaría a poner una pequeña gota de pegamento debajo de las resistencias para mantenerlas en su lugar.
Elliot Alderson
3
Una resistencia axial THT puede ser más apropiada ya que no hay una segunda almohadilla para la SMD. Agregar algo de pegamento puede ayudar, pero no estoy seguro de si es la mejor solución. Con un poco de suerte, los cables de la resistencia THT serán lo suficientemente largos como para alcanzar la ubicación deseada, evitando el cableado adicional.
Fredled
Utilicé resistencias 0603 ... sí, las resistencias podrían ser buenas para alcanzar las almohadillas. ¡Gracias!
Dave Benemerito
9

Tu tablero tiene más problemas. Por ejemplo, los pines de la fuente de alimentación para U5 tienen un condensador en serie con ellos, que supongo que se suponía que eran las tapas de desacoplamiento entre VCC y GND. Tampoco veo ninguna tapa de desacoplamiento para el AVR.

Al final, podría ser mejor rehacer el tablero correctamente.

Sin importancia
fuente
1
Sin embargo, ese problema en particular no es difícil de solucionar. Esto probablemente debería ser un comentario, no una respuesta.
Hogar
2
El problema de VCC con U5 se puede solucionar más o menos de la misma manera que el problema de la resistencia I2C, particularmente porque el otro extremo debe ir a tierra, y en ese caso el OP puede rascar alguna máscara de soldadura del plano de tierra en el lugar correcto, coloque la tapa en forma transversal y suelde ambos extremos hacia abajo.
TimWescott
2
Vale la pena señalar que reemplazar estas dos tapas con resistencias de 0 ohmios es probablemente lo suficientemente bueno. Además, ese cable de puente no debe usarse para conectar condensadores de desacoplamiento porque su inductancia cancelará la capacitancia: el enfoque de Tim de unir directamente a un plano de tierra funcionará.
Ben Voigt
3
Algunas personas no se preocupan por un montón de trabajo corporal en un tablero y algunos pueden ver múltiples errores como una razón suficiente para rehacer el tablero. Entonces, creo que señalar el hecho de que hay más errores en el tablero, lo que podría influir en la decisión del OP, es una respuesta válida.
importancia el
¡Gracias por eso! Realmente no he notado el error de límite hasta esta respuesta. No sé lo que he estado pensando esa vez XD. Realmente hay mucho que hacer por mi error de pcb. ¡Gracias!
Dave Benemerito
9

El bus I2C puede repararse sin cambios en la PCB (los otros problemas encontrados sin importancia aún requerirán atención).

Simplemente:

  • Sustituya las resistencias en serie (que rara vez no tienen designadores) con un valor bajo adecuado para resistencias en serie, por ejemplo, 22 ohmios.
  • Habilite las resistencias pull-up internas programables en los pines I2C correspondientes de ATMEGA.

Tenga en cuenta que los pullups programables no serán exactamente los valores recomendados para el uso de I2C, por lo que debe volver a calcular la velocidad máxima en función de la nueva fuerza de pullup.

Ben Voigt
fuente
Vale la pena señalar, pero probablemente no funcionará con las velocidades de datos que necesitará una IMU.
Matt Young
44
@MattYoung: Esa "IMU" tiene una velocidad máxima de 1.6ksps, no necesita velocidades de datos sofisticadas (y los sensores que sí necesitan altas velocidades no usarán I2C en primer lugar)
Ben Voigt
Sí consideré las resistencias pullup internas del atmega, y después de bastante investigación, descubrí que no es adecuado para I2C. Al menos para este chip, no necesita tarifas sofisticadas. Gracias por esa información :)
Dave Benemerito