Revisione layout PCB MCU STM32 (cristallo, disaccoppiamento e ADC)


9

Introduzione:

Sto progettando un hobby elettronico per la prima volta, usando STM32 per controllare una punta di saldatura. Ho letto molti documenti sul layout del PCB e anche molte informazioni da questo forum. E questo è il mio primo risultato, ho intenzione di lasciare che questo design sia prodotto dalla produzione di PCB.

Dato che questo è il mio primo tentativo, vorrei avere qualche consiglio per verificare se sto sbagliando o meno, prima di inviare questo disegno in fabbrica.

Questo PCB sarà un PCB a doppio strato.

I componenti verranno saldati a mano.

Sto progettando il PCB con la versione educativa EAGLE. (Solo 2 strati)

Layout di cristallo:

Da questo documento ho imparato:

  • Avere un'isola GND nello strato inferiore e un anello di protezione sullo strato superiore per proteggere il segnale OSC.
  • L'isola di terra isolata deve essere collegata alla terra MCU più vicina.
  • L'anello di protezione deve essere cucito tramite l'isola di terra.
  • Nessun segnale dovrebbe attraversare l'area del terreno isolata.
  • I percorsi dei segnali dell'OSC dovrebbero essere il più simmetrici possibili.
  • I percorsi dei segnali dell'OSC dovrebbero essere i più brevi possibili.
  • I percorsi di ritorno del carico C attraversano l'isola di terra

Il mio OSC funziona a 8 Mhz; il carico C è 18 pF.

Spero di aver capito bene la regola e di fare anche il layout corretto nel raggio di una tavola per hobby.

Potenza e disaccoppiamento C:

Sto usando 0603 cap. Voglio mantenere il piano di terra il più intero possibile, quindi non voglio che la traccia del segnale vada allo strato inferiore. Ma anche io non riesco a mantenere il disaccoppiamento C sullo strato superiore. Ecco perché ho spostato il disaccoppiamento di C nello strato inferiore. Se si può fornire qualche idea, che può rendere entrambe le tracce e il disaccoppiamento di C sullo strato superiore, sarà molto apprezzato.

Cosa ho ottenuto come regole:

  • Il disaccoppiamento C deve essere posizionato il più vicino possibile alla coppia VDD / VSS.
  • L'alimentazione passa prima attraverso il disaccoppiamento C, quindi ai pin VDD / VSS
  • MCU ha + 3V3 e GND locali. E sono alimentati da un unico punto.
  • Mantenere il piano terra non essere tagliato.
  • Per il VDDA, è necessaria una perla di ferrite.
  • Se sono necessari più C, posizionare la C con un valore inferiore vicino alla coppia VDD / VSS.

Per favore fatemi sapere se il mio layout è ragionevole.

Segnale ADC:

per la mia applicazione è necessario un segnale di termocoppia, che si trova nella punta del saldatore. La punta ha una resistenza di riscaldamento e una termocoppia all'interno e la termocoppia e la resistenza di calore condividono un percorso di ritorno comune. La tensione della termocoppia viene misurata nel periodo in cui la tensione del riscaldatore non viene applicata.

Sto usando un amplificatore operazionale non invertito molto semplice per amplificare il segnale. Quello che mi preoccupa sono:

  • se la corrente di ritorno dell'elemento riscaldante causerà un grande disturbo all'MCU. (Poiché la tensione della termocoppia viene misurata solo quando non scorre corrente del riscaldatore, non importa che la corrente influisca sull'amplificatore operazionale)
  • È meglio collegare direttamente l'amplificatore operazionale VSS al piano di massa o collegarlo alla termocoppia (-) come ho fatto nel progetto? O altre opzioni?

schema:

Sto usando un STM32F103C8T6. Secondo il datasheet, .1uF e 2x 10uF per coppia VDD / VSS. Per un segnale veloce ho inserito una resistenza per la soppressione del fronte di salita. Viene inserito un cappuccio per filtrare la linea di ripristino. Sto usando SWIO per il debug della porta con traccia SDO.

Le seguenti sezioni sono il mio attuale progetto PCB:

-Schematic:

inserisci qui la descrizione dell'immagine

-SUPERIORE:

La linea tratteggiata è il ritaglio 3V3 per separare i pin VDD e il piano + 3V3 Strato superiore MCU vicino in alto

-PARTE INFERIORE:

La linea tratteggiata è il ritaglio GND per la separazione dei pin VSS e del piano GND Strato di fondo MCU vicino in basso

-Parte analogica:

op amp

-Costruzione punta saldante:

inserisci qui la descrizione dell'immagine

Spero che le informazioni fornite siano sufficienti per generare feedback.

Fammi sapere anche se la mia comprensione delle regole di progettazione è corretta.

Grazie mille in anticipo.

I migliori saluti.


Quale STM32 esattamente? Hai bisogno di tempi precisi?
Jan Dorniak,

Anche uno schema sarebbe di aiuto.
Jan Dorniak,

Ciao Jan, grazie per il tuo commento. Ho aggiunto uno schema della parte MCU nel montaggio. L'MCU è un STM32F103C8T6. Non dirò che ha bisogno di un tempismo preciso. Ma mi chiedo, quanto sarà stretta l'applicazione da considerare come "che richiede un tempismo preciso"? precisione di +/- 100 ns? Il PWM a 800kHz controlla il led WS2812B. la tolleranza è di +/- 150 ns. Ho provato questo disegno sul tagliere e misurato con osci. Funziona. Il segnale potrebbe essere peggiore su un PCB che su una breadboard?
MinShu Huang

formulazione errata da parte mia forse. Più in linea con la precisione dell'orologio: non credo che tu abbia bisogno di quel cristallo. L'oscillatore HSI dovrebbe avere qualcosa nell'ordine di +/- 3%. Anche l'aggiunta di NRST al connettore di programmazione, sebbene non strettamente necessario, è molto utile.
Jan Dorniak,

2
Il routing NRST suona bene. Per quanto riguarda il cristallo - IMHO sembra esagerato. Ho visto tavoli da lavoro con un cristallo da 25 MHz che usano una sola terra per tutto, ma non sono uno specialista. Inoltre mi è stato insegnato a mettere tappi tra il cristallo e l'MCU, ma questa è solo la conoscenza tramandata nel mio ufficio.
Jan Dorniak,

Risposte:


2

L'ho appena sfiorato, ma due cose mi danno fastidio:

  • Qual è la linea tratteggiata sul livello superiore attorno all'MCU? Sembra una sorta di contorno da un altro strato che in qualche modo è finito sullo strato di rame. Dovresti rimuoverlo o causerà dei corti.
  • Nella parte analogica, la spaziatura tra alcune tracce e (principalmente) il getto di rame macinato sembra essere molto ridotta. Ciò può causare problemi nella produzione e anche cortocircuiti. Dovrebbe esserci un'impostazione in EAGLE per definire la distanza minima delle reti (tracce) dal getto di rame.

    Ho posizionato cerchi gialli sulle aree interessate:

layout con aree evidenziate


La linea tratteggiata mostra un contorno poligonale. Viene risolto quando Eagle ricalcola versamenti / poligoni.
Jan Dorniak,

Ciao Marco, grazie per il tuo contributo. La linea tratteggiata è il poligono di EAGLE. Non riesco a nascondere la linea poligonale in qualche modo, quindi sono ancora lì. Nella modifica ho aggiunto lo zoom del layout MCU. Puoi vedere i poligoni usati per separare i pin di alimentazione e il piano di potenza. Hai menzionato l'autorizzazione di tracce / rame. la fabbricazione può fare 5 mils di liquidazione, e ho impostato 6 mils nella RDC, dopo aver eseguito la RDC, non ha dato errori. Quindi credo che vada bene. FYI. la griglia è impostata su 25 mil come scalare.
MinShu Huang

2

Il pull-up di 220 ohm su NRST è troppo forte. Di solito non esiste alcun pull-up, poiché il chip contiene un pull-up interno. Ma lascerei il posto per il resistore ma non lo monterò, quindi forse un 10k può essere inserito più tardi, se necessario.

Non posizionare sia il pull-up che il pull-down sul pin BOOT0. Se non hai intenzione di utilizzare il bootloader integrato e programmerai solo tramite JTAG / SWD, puoi semplicemente mettere a terra il pin BOOT0 o lasciare lì i 10k.


Ciao Justme, grazie per aver risposto a questa vecchia discussione. Per il pull-up e il pull-down di BOOT0, sono opzionali e ne verrà inserito solo uno, non intendo posizionarli entrambi. Ma ancora grazie a sottolinearlo. E esaminerò il pull-up interno per il pin NRST, grazie per il tuo consiglio!
MinShu Huang,
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.