Come correggere un errore di progettazione PCB dopo la produzione?


19

Newbie 16 anni qui.

Il mio progetto è un mini robot con il pcb come telaio, batteria lipo con circuito caricatore e sensori a infrarossi. Ho usato LSM6DS33TR per il mio accelerometro I2C e giroscopio con "resistenza di pull-up 10K" secondo la scheda tecnica e ATMEGA328P come microcontrollore.

È la mia prima volta a progettare e fabbricare la mia scheda PCB industriale. Ho prodotto i PCB con JLCPCB. Dopo aver inviato i file e aspettato la consegna, quando rilevo un errore dal mio design. Ho notato che non ho collegato correttamente le resistenze pull-up per il mio bus I2C perché dovrebbero essere caricate su 3V3.

Le mie domande sono:

  1. Come posso reindirizzare i collegamenti o apportare modifiche per fare in modo che SDA e SCL si alzino per fornire tensione con il PCB già in produzione?
  2. Devo cambiare il design e produrre un altro PCB? (Rotto ):)

Ecco l'intero diagramma schematico per il progetto che ho realizzato: (le linee i2c sono cerchiate) inserisci qui la descrizione dell'immagine

STRATO SUPERIORE: (GND Copper Plane) inserisci qui la descrizione dell'immagine

STRATO INFERIORE: (aereo di rame 3V3) inserisci qui la descrizione dell'immagine


3
Bel lavoro! Fortunatamente per te abbiamo fatto tutti cose del genere e abbiamo affrontato il processo di riparazione. Stavo per suggerire la stessa cosa di @Oldfart. Buona fortuna a te.
Elliot Alderson,

10
Congratulazioni! Benvenuti nella terra del bodge! :) (non sei un vero progettista di PCB fino a quando non hai rotto la bobina di filo blu? XD)
ThreePhaseEel

4
Per i progetti futuri, ti consiglio di aggiungere ulteriori pad su alcune delle tracce più importanti, anche se non vengono popolate, quindi puoi collegare i cavi a loro, se necessario, e non devi preoccuparti di saldare un cavo su un perno di un piccolo pacchetto IC.
Focolare il

6
Ciò che @Hearth ha detto può essere realizzato nella maggior parte dei software EDA / EDM creando un componente del punto di prova che ha un "pin", e quindi creando un footprint per quel punto di prova che è solo un piccolo pad di montaggio superficiale. Avrai tutti questi punti su tutta la scheda, etichettati, che puoi usare per le mod o per collegare le sonde dell'oscilloscopio. È molto probabile che il tuo strumento abbia già qualcosa di simile nelle librerie.
TimWescott,

8
Ti suggerisco di far funzionare le schede che hai acquistato, anche se non sembrano così attraenti. Quindi, se decidi di rifarlo, avrai maggiori probabilità di aver riscontrato il 100% dei problemi.
Spehro Pefhany,

Risposte:


19

Devi 'patchare' il tuo PCB.

Vorrei fare come ho tentato di disegnare di seguito: posizionare due resistori pull-up (10K) sui pad esistenti cortocircuitandoli. Quindi un filo dall'altra estremità alla connessione 3V3 più vicina.

inserisci qui la descrizione dell'immagine

Ho disegnato un resistore SMD ma puoi usare anche quelli assiali "vecchio stile".


5
Volevo solo aggiungere che mi piace usare il filo per avvolgere i fili per queste correzioni, ma qualsiasi filo solido fine dovrebbe fare. Sarei anche propenso a mettere una piccola goccia di colla sotto i resistori per tenerli in posizione.
Elliot Alderson,

3
Un resistore THT assiale può essere più appropriato poiché non esiste un secondo pad per quello SMD. L'aggiunta di un po 'di colla può aiutare ma non è sicuro se è la soluzione migliore. Con un po 'di fortuna i cavi del resistore THT saranno abbastanza lunghi da raggiungere la posizione desiderata, evitando cavi extra.
Fredled, il

Ho usato resistori 0603 .. sì, i resistori potrebbero essere buoni per raggiungere i pad. Grazie!
Dave Benemerito,

9

La tua scheda ha più problemi. Ad esempio, i pin di alimentazione per U5 hanno un condensatore in serie con loro che suppongo dovessero essere i cappucci di disaccoppiamento tra VCC e GND. Inoltre non vedo alcun tappo di disaccoppiamento per l'AVR.

Alla fine potrebbe essere meglio rifare la scheda correttamente.


1
Tuttavia, quel particolare problema non è difficile da risolvere. Questo dovrebbe probabilmente essere un commento, non una risposta.
Focolare il

2
Il problema VCC con U5 può essere risolto più o meno allo stesso modo del problema della resistenza I2C, in particolare perché l'altra estremità deve andare a terra, e in tal caso l'OP può semplicemente graffiare una maschera di saldatura dal piano di massa nel punto giusto, adagia il cappuccio trasversalmente e entrambe le estremità si saldano.
TimWescott,

2
Vale la pena notare che sostituire questi due tappi con resistori da 0 ohm è probabilmente abbastanza buono. Inoltre, il cavo jumper non deve essere utilizzato per collegare i condensatori di disaccoppiamento poiché la loro induttanza annullerà la capacità - l'approccio di Tim di collegarsi direttamente a un piano di massa funzionerà.
Ben Voigt,

3
Ad alcune persone non interessa molto del lavoro di bodge su una scheda e alcuni potrebbero vedere più errori come una ragione sufficiente per rifare la scheda. Quindi penso che sottolineare il fatto che ci sono più errori nel board, che potrebbero influenzare la decisione del PO, è una risposta valida.
importante il

Grazie per quello! Non ho notato l'errore del tappo fino a questa risposta. Non so cosa stavo pensando quella volta XD. C'è davvero molto da fare per l'errore del mio pcb. Grazie!
Dave Benemerito,

9

Il bus I2C può essere riparato senza cambi PCB (gli altri problemi rilevati da @Unimportant richiederanno comunque attenzione).

Semplicemente:

  • Sostituire i resistori in serie (che stranamente non hanno designatori?) Con un valore basso adatto per resistori in serie, ad es. 22 ohm.
  • Abilitare le resistenze pull-up interne programmabili sui corrispondenti pin I2C di ATMEGA.

Si noti che i pullup programmabili non saranno esattamente i valori consigliati per l'utilizzo di I2C, quindi è necessario ricalcolare la velocità massima in base alla nuova forza di pullup.


Vale la pena notare, ma probabilmente non funzionerà con le velocità dati di cui un IMU avrà bisogno.
Matt Young,

4
@MattYoung: Quel "IMU" ha una velocità massima di 1,6ksps, non ha bisogno di alcuna velocità dati (e i sensori che richiedono alte velocità non useranno I2C in primo luogo)
Ben Voigt

Ho preso in considerazione i resistori pullup interni dell'atmega e, dopo un bel po 'di ricerche, ho scoperto che non era adatto per I2C. In ogni caso per questo chip, non ha bisogno di alcun tasso di fantasia. Grazie per queste informazioni :)
Dave Benemerito,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.