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:
- ¿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?
- ¿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)
pcb
pcb-design
circuit-design
i2c
Dave Benemerito
fuente
fuente
Respuestas:
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.
He dibujado la resistencia SMD pero también puedes usar las axiales "anticuadas".
fuente
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.
fuente
El bus I2C puede repararse sin cambios en la PCB (los otros problemas encontrados sin importancia aún requerirán atención).
Simplemente:
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.
fuente