Innholdsfortegnelse:

Design av et mikrokontrollerutviklingskort: 14 trinn (med bilder)
Design av et mikrokontrollerutviklingskort: 14 trinn (med bilder)

Video: Design av et mikrokontrollerutviklingskort: 14 trinn (med bilder)

Video: Design av et mikrokontrollerutviklingskort: 14 trinn (med bilder)
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, November
Anonim
Designe et Microcontroller Development Board
Designe et Microcontroller Development Board

Er du en produsent, hobbyist eller hacker som er interessert i å gå opp fra perfboardprosjekter, DIP ICer og hjemmelagde PCB til flerlags PCB produsert av bretthus og SMD -emballasje klar for masseproduksjon? Da er denne instruksen noe for deg!

Denne guiden vil beskrive hvordan du designer en flerlags PCB, ved å bruke et mikrokontrollerutviklingskort som eksempel.

Jeg brukte KiCAD 5.0, som er et gratis og åpen kildekode EDA -verktøy, for å lage skjemaene og PCB -oppsettet for dette dev -kortet.

Hvis du ikke er kjent med KiCAD eller arbeidsflyten for PCB -layout, er Chris Gamells opplæringsprogrammer på YouTube et ganske bra sted å starte.

EDIT: Noen av bildene zoomer inn for mye, bare klikk på bildet for å se hele bildet:)

Trinn 1: Tenk på komponentemballasje

Tenk på komponentemballasje
Tenk på komponentemballasje

Surface Mount Devices (SMD) kan plasseres på en PCB av en pick and place -maskin, og automatiserer monteringsprosessen. Du kan deretter kjøre kretskortet gjennom en refowovn eller en bølgeloddemaskin hvis du også har gjennomgående hullkomponenter.

Komponentledninger for mindre SMD -er reduseres også, noe som resulterer i vesentlig lavere impedans, induktans og EMI, en veldig god ting, spesielt for RF- og høyfrekvente design.

Å gå på overflatemonteringsruten forbedrer også mekanisk ytelse og robusthet, noe som er viktig for vibrasjon og mekanisk belastningstesting.

Trinn 2: Velg din mikrokontroller

Velg din mikrokontroller
Velg din mikrokontroller

I hjertet av hvert mikrokontrollerutviklingsbord, som Arduino og dets derivater, er en mikrokontroller. Når det gjelder Arduino Uno, er dette ATmega 328P. For vårt dev -brett bruker vi ESP8266.

Den er skitten billig, kjører på 80MHz (og kan overklokkes til 160MHz) OG har et innebygd WiFi-undersystem. Når den brukes som en frittstående mikrokontroller, kan den utføre visse operasjoner opptil 170x raskere enn en Arduino.

Trinn 3: Velg din USB til seriell omformer

Velg USB til seriell omformer
Velg USB til seriell omformer

En mikrokontroller trenger en måte å koble til datamaskinen på, slik at du kan laste programmene på den. Dette oppnås vanligvis med en ekstern brikke, som tar seg av å oversette mellom differensialsignalene som brukes av USB -porten på datamaskinen din, og den endeløse signalen som er tilgjengelig på de fleste mikrokontrollere gjennom deres serielle kommunikasjonsutstyr, som UART.

I vårt tilfelle bruker vi en FT230X, fra FTDI. USB til seriell sjetonger fra FTDI har en tendens til å bli godt støttet på tvers av de fleste operativsystemer, så det er en trygg innsats for et dev -brett. Populære alternativer (billigere alternativer) inkluderer CP2102 fra SiLabs og CH340G.

Trinn 4: Velg din regulator

Velg din regulator
Velg din regulator

Brettet må få strøm gjennom et sted - og i de fleste tilfeller finner du denne kraften via en lineær regulator IC. Lineære regulatorer er billige, enkle, og selv om de ikke er like effektive som et byttet modus, vil de tilby ren strøm (mindre støy) og enkel integrering.

AMS1117 den mest populære lineære regulatoren som brukes på de fleste dev -brett, og et ganske anstendig valg også for vårt dev -bord.

Trinn 5: Velg din strøm-ELLER-ordning

Velg din Power ELLER-ordning
Velg din Power ELLER-ordning

Hvis du skal la brukeren drive dev -kortet gjennom USB, og også tilby spenningsinngang gjennom en av pinnene på kortet, trenger du en måte å velge mellom de to konkurrerende spenningene. Dette oppnås enklest ved bruk av dioder, som fungerer for å bare la den høyere inngangsspenningen passere og drive resten av kretsen.

I vårt tilfelle har vi en dobbel schottky -barriere, som inkluderer to schottky -dioder på en enkelt pakke for nettopp dette formålet.

Trinn 6: Velg dine eksterne chips (hvis noen)

Velg dine eksterne chips (hvis noen)
Velg dine eksterne chips (hvis noen)
Velg dine eksterne chips (hvis noen)
Velg dine eksterne chips (hvis noen)

Du kan legge til sjetonger i grensesnittet med din valgte mikrokontroller for å forbedre brukervennligheten eller funksjonaliteten som dev -kortet tilbyr sine brukere.

I vårt tilfelle har ESP8266 bare en enkelt analog inngangskanal, og svært få brukbare GPIO -er.

For å løse dette, vil vi legge til en ekstern Analog til Digital Converter IC og en GPIO Expander IC.

Å velge en ADC er vanligvis en avveining mellom konverteringsfrekvens eller hastighet og oppløsning. Høyere oppløsninger er ikke nødvendigvis bedre, fordi sjetonger som har høyere oppløsninger fordi de bruker forskjellige prøveteknikksteknikker ofte vil ha svært langsomme samplingshastigheter. Typiske SAR ADC-er har samplingshastigheter på over hundretusenvis av prøver per sekund, mens Delta Sigma ADC-er med høyere oppløsning vanligvis bare er i stand til en håndfull prøver per sekund-en verden borte fra de raske SAR-ADC-ene og de lynrask ADC-ene med pipeline.

MCP3208 er en 12-biters ADC, med 8 analoge kanaler. Den kan fungere hvor som helst mellom 2,7V-5,5V og har en maksimal samplingshastighet på 100 hk.

Tillegg av en MCP23S17, en populær GPIO -ekspander, resulterer i at 16 GPIO -pinner blir tilgjengelige for bruk.

Trinn 7: Kretsdesign

Kretsdesign
Kretsdesign

Strømforsyningskretsen bruker to schottky-dioder for å gi en enkel OR-ing-funksjon for strøminngang. Dette setter i gang en kamp mellom 5V som kommer fra USB -porten, og det du ønsker å gi til VIN -pinnen - vinneren av elektronstriden kommer på topp og gir strøm til AMS1117 -regulatoren. En ydmyk SMD LED fungerer som en indikator på at strøm faktisk blir levert til resten av brettet.

USB -grensesnittkretsen har en ferrittperle for å forhindre at EMI og de bråkete klokkesignalene stråler ned mot en brukers datamaskin. Seriemotstandene på datalinjene (D+ og D-) gir grunnleggende kanthastighetskontroll.

ESP8266 bruker GPIO 0, GPIO 2 og GPIO 15 som spesielle inngangspinner, og leser tilstanden ved oppstart for å avgjøre om du skal starte i programmeringsmodus, som lar deg kommunisere over serie for å programmere chip-eller flash-oppstartsmodus, som starter programmet. GPIO 2 og GPIO 15 må forbli på henholdsvis høy logikk og lav logikk under oppstartsprosessen. Hvis GPIO 0 er lav ved oppstart, gir ESP8266 opp kontrollen og lar deg lagre programmet i flashminnet som er koblet til modulen. Hvis GPIO 0 er høy, starter ESP8266 det siste programmet som er lagret i flash, og du er klar til å rulle.

For dette formål tilbyr vårt dev -kort oppstarts- og tilbakestillingsbrytere, slik at brukerne kan veksle tilstanden til GPIO 0 og tilbakestille enheten for å sette brikken i ønsket programmeringsmodus. En opptrekksmotstand sikrer at enheten starter i normal oppstartsmodus som standard og starter det sist lagrede programmet.

Trinn 8: PCB -design og layout

PCB Design og layout
PCB Design og layout

PCB -layout blir mer kritisk når høy hastighet eller analoge signaler er involvert. Spesielt analoge ICer er følsomme for problemer med grunnstøy. Jordfly har muligheten til å gi en mer stabil referanse for signalene av interesse, noe som reduserer støy og forstyrrelser som vanligvis skyldes jordsløyfer.

Analoge spor må holdes borte fra høyhastighets digitale spor, for eksempel differensial datalinjer som er en del av USB -standarden. Sporene for differensielle datasignaler bør gjøres så korte som mulig, og bør være sporlengde tilpasset. Unngå svinger og vias for å redusere refleksjoner og impedansvariasjoner.

Å bruke en stjernekonfigurasjon for å levere strøm til enheter (forutsatt at du ikke allerede bruker et strømplan) bidrar også til å redusere støy ved å eliminere gjeldende returveier.

Trinn 9: PCB Stack-Up

PCB Stack-Up
PCB Stack-Up

Vårt dev -bord er bygget på en 4 -lags PCB -stabel, med et dedikert kraftplan og bakkeplan.

Din "stack-up" er rekkefølgen av lag på PCB. Arrangementet av lag påvirker EMI -samsvaret til designet ditt, så vel som signalintegriteten til kretsen din.

Faktorer du bør vurdere i PCB-stablingen, inkluderer:

  1. Antall lag
  2. Lagrekkefølgen
  3. Mellomrom mellom lagene
  4. Formålet med hvert lag (signal, fly osv.)
  5. Lag tykkelse
  6. Koste

Hver stack-up har sine egne fordeler og ulemper. Et 4 -lags brett vil produsere omtrent 15 dB mindre stråling enn et 2 -lags design. Det er mer sannsynlig at flerlagsplater har et komplett bakkeplan, redusert bakkeimpedans og referansestøy.

Trinn 10: Flere hensyn til PCB -lag og signalintegritet

Flere hensyn til PCB -lag og signalintegritet
Flere hensyn til PCB -lag og signalintegritet

Signallag bør ideelt sett være ved siden av enten et kraft- eller bakkeplan, med minimal avstand mellom signallaget og det respektive planet i nærheten. Dette optimaliserer signalreturbanen, som går gjennom referanseplanet.

Kraft- og bakkeplan kan brukes til å gi skjerming mellom lag, eller som skjold for indre lag.

Et kraft- og bakkeplan, når det plasseres ved siden av hverandre, vil resultere i en mellomplanskapasitans som vanligvis fungerer i din favør. Denne kapasitansen skaleres med PCB -området, så vel som dens dielektriske konstant, og er omvendt proporsjonal med avstanden mellom flyene. Denne kapasitansen fungerer godt for å betjene IC -er som har flyktige krav til strømforsyning.

Raske signaler er ideelt lagret i de indre lagene av flerlags -PCB for å inneholde EMI generert av sporene.

Jo høyere frekvenser som behandles på tavlen, jo strengere må disse ideelle kravene følges. Lavhastighetsdesigner kommer sannsynligvis unna med færre lag, eller til og med et enkelt lag, mens høyhastighets- og RF-design krever mer intrikat PCB-design med en mer strategisk PCB-oppstapling.

Høyhastighetsdesign, for eksempel, er mer utsatt for hudeffekten-det er observasjonen at ved høye frekvenser trenger ikke strømmen gjennom hele lederen, noe som igjen betyr at det er en avtagende marginal nytteverdi for å øke tykkelsen på kobber ved en bestemt frekvens, siden det ekstra volumet av leder ikke vil bli utnyttet uansett. Ved omtrent 100MHz er huddybden (tykkelsen på strømmen som faktisk strømmer gjennom lederen) ca 7um, noe som betyr til og med standard 1oz. tykke signallag er underutnyttet.

Trinn 11: Et sidebemerkning på Vias

En sidebemerkning på Vias
En sidebemerkning på Vias

Vias danner forbindelser mellom de forskjellige lagene i en flerlags PCB.

Typer vias som brukes, vil påvirke kostnadene ved PCB -produksjon. Blind/burried vias koster mer å produsere enn gjennom hulls vias. Et gjennomgående hull via slag gjennom hele kretskortet, som avsluttes på det laveste laget. Burried vias er skjult inne og forbinder bare indre lag, mens Blind vias starter på den ene siden av PCB, men avsluttes før den andre siden. Gjennomgående huller er de billigste og enkleste å produsere, så hvis du optimaliserer for kostnadsbruk gjennom huller.

Trinn 12: Fremstilling og montering av kretskort

PCB -produksjon og montering
PCB -produksjon og montering

Nå som brettet er designet, vil du sende ut designet som Gerber -filer fra ditt valgte EDA -verktøy, og sende dem til et styrehus for fabrikasjon.

Jeg hadde brettene mine produsert av ALLPCB, men du kan bruke hvilken som helst brettbutikk for fabrikasjon. Jeg vil på det sterkeste anbefale å bruke PCB Shopper for å sammenligne priser når du skal bestemme hvilket styringshus du skal velge for fabrikasjon - slik at du kan sammenligne når det gjelder priser og evner.

Noen av tavlehusene tilbyr også PCB -montering, som du sannsynligvis vil trenge hvis du vil implementere dette designet, ettersom det hovedsakelig bruker SMD- og til og med QFN -deler.

Trinn 13: Det er alle folkens

Det var alt folkens!
Det var alt folkens!

Dette utviklingsbordet kalles "Clouduino Stratus", et ESP8266 -basert dev -kort som jeg designet for å fremskynde prototypeprosessen for en maskinvare/IOT -oppstart.

Det er fortsatt veldig tidlig en iterasjon av designet, med nye revisjoner som kommer snart.

Jeg håper dere har lært mye av denne guiden!: D

Trinn 14: Bonus: Komponenter, Gerbers, designfiler og anerkjennelser

[Mikrokontroller]

1x ESP12F

[Tilbehør]

1 x MCP23S17 GPIO Expander (QFN)

1 x MCP3208 ADC (SOIC)

[Koblinger og grensesnitt]

1 x FT231XQ USB til seriell (QFN)

1 x USB-B Mini-kontakt

2 x 16-pinners kvinnelige/mannlige overskrifter

[Strøm] 1 x AMS1117-3.3 regulator (SOT-223-3)

[Andre]

1 x ECQ10A04-F Dual Schottky Barrier (TO-252)

2 x BC847W (SOT323)

7 x 10K 1% SMD 0603 motstander

2 x 27 ohm 1% SMD 0603 motstander

3 x 270 ohm 1% SMD 0603 motstander

2 x 470 ohm 1% SMD 0603 motstander

3 x 0.1uF 50V SMD 0603 kondensator

2 x 10uF 50V SMD 0603 kondensator

1 x 1uF 50V SMD 0603 kondensator

2 x 47pF 50V SMD 0603 kondensator

1 x SMD LED 0603 grønn

1 x SMD LED 0603 gul

1 x SMD LED 0603 Blå

2 x OMRON BF-3 1000 THT taktbryter

1 x ferrittperle 600/100mhz SMD 0603

[Bekreftelser] ADC -grafer med tillatelse fra TI App Notes

Benchmark for MCU:

PCB -illustrasjoner: Fineline

Anbefalt: