Comment corriger une erreur de conception de PCB après la fabrication?

19

Débutant de 16 ans ici.

Mon projet est un mini robot avec le pcb comme châssis, une batterie lipo avec circuit de chargeur et des capteurs infrarouges. J'ai utilisé le LSM6DS33TR pour mon accéléromètre I2C et mon gyroscope avec une "résistance de traction" 10K selon la fiche technique et l'ATMEGA328P comme microcontrôleur.

C'est la première fois que je conçois et fabrique mon propre circuit imprimé industriel. J'ai fabriqué les PCB avec JLCPCB. Après l'envoi des fichiers et l'attente de la livraison, lorsque je repère une erreur dans ma conception. J'ai remarqué que je n'avais pas câblé correctement les résistances de pull-up de mon bus I2C car elles devraient être tirées jusqu'à 3V3.

Mes questions sont:

  1. Comment puis-je rediriger les connexions ou apporter des modifications pour que le SDA et le SCL soient alimentés en tension avec des PCB déjà fabriqués?
  2. Dois-je changer la conception et fabriquer un autre PCB? (Cassé ):)

Voici le diagramme schématique complet du projet que j'ai réalisé: (les lignes i2c sont encerclées) entrez la description de l'image ici

COUCHE SUPÉRIEURE: (Plan de cuivre GND) entrez la description de l'image ici

COUCHE INFÉRIEURE: (Avion en cuivre 3V3) entrez la description de l'image ici

Dave Benemerito
la source
3
Bon travail! Heureusement pour vous, nous avons tous fait des choses comme ça et nous avons été en train de les réparer. J'allais suggérer la même chose que @Oldfart. Bonne chance à vous.
Elliot Alderson
10
Toutes nos félicitations! Bienvenue au pays du bodge! :) (vous n'êtes pas un vrai concepteur de PCB jusqu'à ce que vous ayez cassé la bobine de fil bleu? XD)
ThreePhaseEel
4
Pour les projets futurs, je vous recommande d'ajouter des tampons supplémentaires sur certaines des traces les plus importantes, même si elles ne sont pas remplies, afin de pouvoir y attacher des fils si nécessaire, et vous n'avez pas à vous soucier de souder un fil sur une broche d'un minuscule boîtier IC.
Hearth
6
Ce que @Hearth a dit peut être accompli dans la plupart des logiciels EDA / EDM en créant un composant de point de test qui a une "broche", puis en créant une empreinte pour ce point de test qui est juste un petit plot de montage en surface. Vous aurez tous ces points sur votre carte, étiquetés, que vous pouvez utiliser pour les mods ou pour connecter des sondes de portée. Il y a de fortes chances que votre outil ait déjà quelque chose de similaire dans les bibliothèques.
TimWescott
8
Je vous suggère de faire fonctionner les planches que vous avez achetées, même si elles ne sont pas si attrayantes. Ensuite, si vous décidez de le refaire, vous serez plus susceptible d'avoir trouvé 100% des problèmes.
Spehro Pefhany

Réponses:

19

Vous devez «patcher» votre PCB.

Je ferais comme j'ai essayé de dessiner ci-dessous: placez deux résistances de traction (10K) sur les pads existants en les court-circuitant. Ensuite, un fil des autres extrémités à la connexion 3V3 la plus proche.

entrez la description de l'image ici

J'ai dessiné une résistance SMD mais vous pouvez également utiliser les résistances axiales "à l'ancienne".

Oldfart
la source
5
Je voulais juste ajouter que j'aime utiliser du fil enroulé pour ces corrections, mais tout fil solide fin devrait faire l'affaire. Je serais également enclin à mettre une petite goutte de colle sous les résistances pour les maintenir en place.
Elliot Alderson
3
Une résistance THT axiale peut être plus appropriée car il n'y a pas de deuxième plot pour le SMD. Ajouter de la colle peut aider, mais vous ne savez pas si c'est la meilleure solution. Avec un peu de chance, les fils de la résistance THT seront suffisamment longs pour atteindre l'emplacement souhaité, en évitant un câblage supplémentaire.
Fredled
J'ai utilisé des résistances 0603 .. ouais les résistances pourraient être bonnes pour atteindre les pads. Merci!
Dave Benemerito
9

Votre planche a plus de problèmes. Par exemple, les broches d'alimentation pour U5 ont un condensateur en série avec elles qui, je suppose, était censé être les bouchons de découplage entre VCC et GND. Je ne vois pas non plus de capuchons de découplage pour l'AVR.

Au final, il serait peut-être préférable de refaire la carte correctement.

Sans importance
la source
1
Ce problème particulier n'est cependant pas difficile à résoudre. Cela devrait probablement être un commentaire, pas une réponse.
Hearth
2
Le problème VCC avec U5 peut être résolu plus ou moins de la même manière que le problème de la résistance I2C - en particulier parce que l'autre extrémité doit aller à la terre, et dans ce cas, l'OP peut simplement rayer un masque de soudure du plan de masse au bon endroit, posez le capuchon en travers et soudez les deux extrémités vers le bas.
TimWescott
2
Il convient de noter que le remplacement de ces deux bouchons par des résistances de 0 ohm est probablement suffisant. De plus, ce cavalier ne doit pas être utilisé pour raccorder des condensateurs de découplage car leur inductance annulera la capacité - l'approche de Tim consistant à se fixer directement à un plan de masse fonctionnera.
Ben Voigt
3
Certaines personnes ne se soucient pas de beaucoup de travail sur une planche et certains pourraient voir plusieurs erreurs comme une raison suffisante pour refaire la planche. Je pense donc que souligner le fait qu'il y a plus d'erreurs sur le tableau, ce qui pourrait influencer la décision du PO, est une réponse valable.
sans importance
Merci pour ça! Je n'ai pas vraiment remarqué l'erreur de plafond jusqu'à cette réponse. Je ne sais pas ce que je pensais cette fois XD. Il y a vraiment beaucoup à faire pour mon erreur de carte PCB. Merci!
Dave Benemerito
9

Le bus I2C peut être corrigé sans changement de PCB (les autres problèmes détectés @Unimportant nécessiteront toujours une attention).

Simplement:

  • Remplacez les résistances série (qui n'ont étrangement pas de désignateurs?) Par une valeur faible adaptée aux résistances série, par exemple 22 ohms.
  • Activez les résistances de rappel internes programmables sur les broches I2C correspondantes de l'ATMEGA.

Notez que les pullups programmables ne seront pas exactement les valeurs recommandées pour l'utilisation I2C, vous devez donc recalculer la vitesse maximale en fonction de la nouvelle force de pullup.

Ben Voigt
la source
Il convient de noter, mais ne fonctionnera probablement pas avec les débits de données dont une IMU aura besoin.
Matt Young
4
@MattYoung: Ce "IMU" a un taux maximum de 1,6 kps, il n'a pas besoin de débits de données fantaisistes (et les capteurs qui ont besoin de vitesses élevées n'utiliseront pas I2C en premier lieu)
Ben Voigt
J'ai pris en compte les résistances de pullup internes de l'atmega, et après de nombreuses recherches, j'ai découvert qu'il ne convient pas pour I2C. Au moins pour cette puce, elle n'a pas besoin de tarifs fantaisistes. Merci pour cette info :)
Dave Benemerito