Inhoudsopgave:

Een ontwikkelbord voor microcontrollers ontwerpen: 14 stappen (met afbeeldingen)
Een ontwikkelbord voor microcontrollers ontwerpen: 14 stappen (met afbeeldingen)

Video: Een ontwikkelbord voor microcontrollers ontwerpen: 14 stappen (met afbeeldingen)

Video: Een ontwikkelbord voor microcontrollers ontwerpen: 14 stappen (met afbeeldingen)
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, November
Anonim
Een ontwikkelbord voor microcontrollers ontwerpen
Een ontwikkelbord voor microcontrollers ontwerpen

Ben je een maker, hobbyist of hacker die geïnteresseerd is in het overstappen van perfboard-projecten, DIP-IC's en zelfgemaakte PCB's naar meerlaagse PCB's vervaardigd door boardhouses en SMD-verpakkingen die klaar zijn voor massaproductie? Dan is deze instructable iets voor jou!

In deze handleiding wordt beschreven hoe u een meerlagige PCB kunt ontwerpen, met als voorbeeld een microcontroller-ontwikkelbord.

Ik gebruikte KiCAD 5.0, een gratis en open source EDA-tool, voor het maken van de schema's en PCB-lay-out voor dit ontwikkelbord.

Als je niet bekend bent met KiCAD of de workflow voor PCB-lay-out, zijn de tutorials van Chris Gamell op YouTube een redelijk goede plek om te beginnen.

EDIT: Sommige foto's zoomen te veel in, klik gewoon op de afbeelding om de volledige foto te zien:)

Stap 1: Denk na over de verpakking van componenten

Denk na over de verpakking van componenten
Denk na over de verpakking van componenten

Surface Mount Devices (SMD's) kunnen op een PCB worden geplaatst door een pick-and-place-machine, waardoor het assemblageproces wordt geautomatiseerd. U kunt de PCB vervolgens door een reflow-oven of een golfsoldeermachine laten lopen, als u ook componenten met doorlopende gaten heeft.

Componentkabels voor kleinere SMD's zijn ook verminderd, wat resulteert in aanzienlijk lagere impedantie, inductantie en EMI, een zeer goede zaak, vooral voor RF- en hoogfrequente ontwerpen.

Het volgen van de oppervlaktemontage verbetert ook de mechanische prestaties en robuustheid, wat belangrijk is voor trillingen en mechanische stresstests.

Stap 2: Kies uw microcontroller

Kies uw microcontroller
Kies uw microcontroller

De kern van elk ontwikkelbord voor microcontrollers, zoals de Arduino en zijn derivaten, is een microcontroller. In het geval van de Arduino Uno is dit de ATmega 328P. Voor ons ontwikkelbord zullen we de ESP8266 gebruiken.

Het is spotgoedkoop, draait op 80 MHz (en is overklokbaar tot 160 MHz) EN heeft een ingebouwd WiFi-subsysteem. Bij gebruik als standalone microcontroller kan het bepaalde bewerkingen tot 170x sneller uitvoeren dan een Arduino.

Stap 3: Kies uw USB-naar-serieel-converter

Kies uw USB-naar-serieel-converter
Kies uw USB-naar-serieel-converter

Een microcontroller heeft een manier nodig om met uw computer te communiceren, zodat u uw programma's erop kunt laden. Dit wordt meestal bereikt door een externe chip, die zorgt voor de vertaling tussen de differentiële signalen die worden gebruikt door de USB-poort op uw computer, en de single-ended signalering die beschikbaar is op de meeste microcontrollers via hun seriële communicatie-randapparatuur, zoals UART.

In ons geval gebruiken we een FT230X van FTDI. USB naar seriële chips van FTDI worden over het algemeen goed ondersteund door de meeste besturingssystemen, dus het is een veilige gok voor een ontwikkelbord. Populaire alternatieven (goedkopere opties) zijn de CP2102 van SiLabs en de CH340G.

Stap 4: Kies uw regelaar

Kies uw regelaar
Kies uw regelaar

Het bord zal ergens stroom moeten krijgen - en in de meeste gevallen zul je deze stroom vinden via een lineair regulator-IC. Lineaire regelaars zijn goedkoop, eenvoudig en hoewel niet zo efficiënt als een geschakeld schema, bieden ze schone stroom (minder ruis) en eenvoudige integratie.

De AMS1117 is de meest populaire lineaire regelaar die in de meeste ontwikkelborden wordt gebruikt, en ook een behoorlijk goede keuze voor ons ontwikkelbord.

Stap 5: Kies uw Power OK-schema

Kies uw Power OK-schema
Kies uw Power OK-schema

Als je de gebruiker het ontwikkelbord via USB wilt laten voeden, en ook spanningsinvoer wilt aanbieden via een van de pinnen op het bord, heb je een manier nodig om te kiezen tussen de twee concurrerende spanningen. Dit wordt het eenvoudigst bereikt door het gebruik van diodes, die werken om alleen de hogere ingangsspanning door te laten en de rest van het circuit van stroom te voorzien.

In ons geval hebben we een dubbele schottky-barrière, die voor dit doel twee schottky-diodes op een enkel pakket bevat.

Stap 6: Kies uw perifere chips (indien aanwezig)

Kies uw perifere chips (indien aanwezig)
Kies uw perifere chips (indien aanwezig)
Kies uw perifere chips (indien aanwezig)
Kies uw perifere chips (indien aanwezig)

U kunt chips toevoegen aan de interface met de door u gekozen microcontroller om de bruikbaarheid of functionaliteit die uw ontwikkelbord zijn gebruikers biedt te verbeteren.

In ons geval heeft de ESP8266 slechts één analoog ingangskanaal en zeer weinig bruikbare GPIO's.

Om dit aan te pakken, zullen we een externe analoog-naar-digitaal-omzetter-IC en een GPIO-uitbreidings-IC toevoegen.

Het kiezen van een ADC is meestal een afweging tussen conversieratio of snelheid en resolutie. Hogere resoluties zijn niet per se beter, omdat chips die hogere resoluties hebben omdat ze verschillende bemonsteringstechnieken gebruiken, vaak zeer lage bemonsteringsfrequenties hebben. Typische SAR ADC's hebben bemonsteringsfrequenties van meer dan honderdduizenden monsters per seconde, terwijl Delta Sigma ADC's met een hogere resolutie meestal slechts een handvol monsters per seconde kunnen verwerken - een wereld verwijderd van de snelle SAR ADC's en de razendsnelle pijplijn ADC's.

De MCP3208 is een 12-bits ADC, met 8 analoge kanalen. Het kan overal tussen 2,7 V-5,5 V werken en heeft een maximale bemonsteringssnelheid van 100 ksps.

De toevoeging van een MCP23S17, een populaire GPIO-expander, resulteert in het beschikbaar komen van 16 GPIO-pinnen voor gebruik.

Stap 7: Circuitontwerp

Circuit ontwerp
Circuit ontwerp

Het vermogensafgiftecircuit maakt gebruik van twee schottky-diodes om een eenvoudige OR-functie voor stroominvoer te bieden. Dit zorgt voor een strijd tussen 5V die uit de USB-poort komt en wat je ook aan de VIN-pin wilt geven - de winnaar van de elektronenstrijd komt als beste uit de bus en levert stroom aan de AMS1117-regelaar. Een bescheiden SMD-LED dient als een indicator dat er daadwerkelijk stroom wordt geleverd aan de rest van het bord.

Het USB-interfacecircuit is voorzien van een ferrietkraal om te voorkomen dat verdwaalde EMI en de luidruchtige kloksignalen naar de computer van een gebruiker uitstralen. De serieweerstanden op de datalijnen (D+ en D-) zorgen voor de basisfrequentieregeling van de flanken.

De ESP8266 gebruikt GPIO 0, GPIO 2 en GPIO 15 als speciale invoerpinnen en leest hun status bij het opstarten om te bepalen of u in de programmeermodus moet starten, waarmee u via serieel kunt communiceren om de chip- of flash-opstartmodus te programmeren, die uw programma start. GPIO 2 en GPIO 15 moeten tijdens het opstartproces op respectievelijk logisch hoog en logisch laag blijven. Als GPIO 0 laag is bij het opstarten, geeft de ESP8266 de controle op en kunt u uw programma opslaan in het flashgeheugen dat is aangesloten op de module. Als GPIO 0 hoog is, start de ESP8266 het laatste programma dat in flash is opgeslagen en bent u klaar om te beginnen.

Daartoe biedt ons ontwikkelbord opstart- en resetschakelaars, waarmee gebruikers de status van GPIO 0 kunnen wijzigen en het apparaat kunnen resetten om de chip in de gewenste programmeermodus te zetten. Een pull-up-weerstand zorgt ervoor dat het apparaat standaard in de normale opstartmodus start, waardoor het meest recent opgeslagen programma wordt gestart.

Stap 8: PCB-ontwerp en lay-out

PCB-ontwerp en lay-out
PCB-ontwerp en lay-out

De lay-out van PCB's wordt kritischer als er hogesnelheids- of analoge signalen bij betrokken zijn. Vooral analoge IC's zijn gevoelig voor problemen met grondruis. Grondvlakken hebben de mogelijkheid om een stabielere referentie te bieden voor de signalen van belang, waardoor ruis en interferentie die doorgaans worden veroorzaakt door aardlussen worden verminderd.

Analoge sporen moeten uit de buurt worden gehouden van digitale sporen met hoge snelheid, zoals de differentiële datalijnen die deel uitmaken van de USB-standaard. De differentiële datasignaalsporen moeten zo kort mogelijk worden gemaakt en moeten overeenkomen met de spoorlengte. Vermijd bochten en via's om reflecties en impedantievariaties te verminderen.

Het gebruik van een sterconfiguratie voor het leveren van stroom aan apparaten (ervan uitgaande dat u nog geen powerplane gebruikt) helpt ook om ruis te verminderen door stroomretourpaden te elimineren.

Stap 9: PCB opstapelen

PCB-stapeling
PCB-stapeling

Ons ontwikkelbord is gebouwd op een 4-laags PCB-stack, met een speciaal stroomvlak en een grondvlak.

Je "stack-up" is de volgorde van lagen op je PCB. De rangschikking van lagen beïnvloedt de EMI-conformiteit van uw ontwerp, evenals de signaalintegriteit van uw circuit.

Factoren waarmee u rekening moet houden in uw PCB-stack-up zijn onder meer:

  1. Het aantal lagen
  2. De volgorde van lagen
  3. Ruimte tussen lagen
  4. Het doel van elke laag (signaal, vlak enz.)
  5. Laagdikte
  6. Kosten

Elke stack-up heeft zijn eigen set van voor- en nadelen. Een 4-laags bord zal ongeveer 15dB minder straling produceren dan een 2-laags ontwerp. Meerlaagse platen hebben meer kans om een volledig grondvlak te hebben, waardoor de grondimpedantie en referentieruis afnemen.

Stap 10: Meer overwegingen voor PCB-lagen en signaalintegriteit

Meer overwegingen voor PCB-lagen en signaalintegriteit
Meer overwegingen voor PCB-lagen en signaalintegriteit

Signaallagen zouden idealiter naast een stroom- of grondvlak moeten zijn, met een minimale afstand tussen de signaallaag en hun respectieve nabije vlak. Dit optimaliseert het signaalretourpad, dat door het referentievlak gaat.

Stroom- en grondvlakken kunnen worden gebruikt om afscherming tussen lagen te bieden, of als schilden voor binnenlagen.

Een stroom- en grondvlak, wanneer naast elkaar geplaatst, zal resulteren in een interplane-capaciteit die doorgaans in uw voordeel werkt. Deze capaciteit schaalt met het oppervlak van uw PCB, evenals de diëlektrische constante, en is omgekeerd evenredig met de afstand tussen de vlakken. Deze capaciteit werkt goed om IC's te bedienen met vluchtige voedingsstroomvereisten.

Snelle signalen worden idealiter opgeborgen in de binnenste lagen van meerlaagse PCB's, om de EMI die door de sporen wordt gegenereerd, te bevatten.

Hoe hoger de frequenties die op het bord worden behandeld, hoe strenger deze ideale vereisten moeten worden nageleefd. Ontwerpen met lage snelheid zullen waarschijnlijk wegkomen met minder lagen, of zelfs een enkele laag, terwijl ontwerpen met hoge snelheid en RF een ingewikkelder PCB-ontwerp vereisen met een meer strategische PCB-stack-up.

Hogesnelheidsontwerpen zijn bijvoorbeeld gevoeliger voor het skin-effect - wat de waarneming is dat bij hoge frequenties de stroom niet door het hele lichaam van een geleider dringt, wat op zijn beurt betekent dat er een afnemend marginaal nut is voor toenemende de dikte van koper bij een bepaalde frequentie, omdat het extra volume van de geleider toch niet wordt gebruikt. Bij ongeveer 100 MHz is de huiddiepte (de dikte van de stroom die daadwerkelijk door de geleider vloeit) ongeveer 7 um, wat zelfs standaard 1 oz betekent. dikke signaallagen worden onderbenut.

Stap 11: Een kanttekening bij Vias

Een kanttekening bij Vias
Een kanttekening bij Vias

Via's vormen verbindingen tussen de verschillende lagen van een meerlaagse PCB.

De soorten via's die worden gebruikt, zijn van invloed op de kosten van de productie van PCB's. Blinde/begraven via's kosten meer om te vervaardigen dan via's met doorlopende gaten. Een doorgaand gat via ponsen door de gehele PCB, eindigend op de onderste laag. Begraven via's zijn aan de binnenkant verborgen en verbinden alleen de binnenlagen met elkaar, terwijl blinde via's aan de ene kant van de PCB beginnen maar voor de andere kant eindigen. Through-hole via's zijn de goedkoopste en gemakkelijkst te vervaardigen, dus als het optimaliseren voor kosten-gebruik doorgaande via's.

Stap 12: PCB-fabricage en montage

PCB-fabricage en montage
PCB-fabricage en montage

Nu het bord is ontworpen, wilt u het ontwerp als Gerber-bestanden uitvoeren vanuit uw EDA-tool naar keuze en ze naar een directiehuis sturen voor fabricage.

Ik heb mijn boards laten fabriceren door ALLPCB, maar je kunt elke boardshop gebruiken voor fabricage. Ik zou het ten zeerste aanbevelen om PCB Shopper te gebruiken om prijzen te vergelijken bij het beslissen welk bordhuis te kiezen voor fabricage - zodat u kunt vergelijken in termen van prijzen en mogelijkheden.

Sommige van de bordhuizen bieden ook PCB-assemblage, die je waarschijnlijk nodig hebt als je dit ontwerp wilt implementeren, omdat het voornamelijk SMD- en zelfs QFN-onderdelen gebruikt.

Stap 13: Dat is alles mensen

Dat is alles Mensen!
Dat is alles Mensen!

Dit ontwikkelbord wordt de "Clouduino Stratus" genoemd, een op ESP8266 gebaseerd ontwikkelbord dat ik heb ontworpen om het prototypingproces voor een hardware/IOT-startup te versnellen.

Het is nog steeds een vroege iteratie van het ontwerp, met binnenkort nieuwe revisies.

Ik hoop dat jullie veel hebben geleerd van deze gids!:NS

Stap 14: Bonus: componenten, Gerbers, ontwerpbestanden en dankbetuigingen

[Microcontroller]

1x ESP12F

[randapparatuur]

1 x MCP23S17 GPIO-uitbreiding (QFN)

1 x MCP3208 ADC (SOIC)

[Connectoren en interfaces]

1 x FT231XQ USB naar serieel (QFN)

1 x USB-B mini-connector

2 x 16-pins vrouwelijke/mannelijke headers

[Power] 1 x AMS1117 - 3.3 Regelaar (SOT-223-3)

[anderen]

1 x ECQ10A04-F dubbele Schottky-barrière (TO-252)

2x BC847W (SOT323)

7 x 10K 1% SMD 0603 Weerstanden

2 x 27 ohm 1% SMD 0603 Weerstanden

3 x 270 ohm 1% SMD 0603 Weerstanden

2 x 470 ohm 1% SMD 0603 Weerstanden

3 x 0.1uF 50V SMD 0603 Condensator

2 x 10uF 50V SMD 0603 condensator

1 x 1uF 50V SMD 0603 condensator

2 x 47pF 50V SMD 0603 condensator

1 x SMD-LED 0603 Groen

1 x SMD-LED 0603 Geel

1 x SMD-LED 0603 Blauw

2 x OMRON BF-3 1000 THT toetsschakelaar

1 x ferrietkraal 600/100mhz SMD 0603

[Erkenningen]ADC-grafieken met dank aan TI App Notes

MCU-benchmark:

PCB-illustraties: Fineline

Aanbevolen: