Hvordan man designer en mikrocontroller kredsløb - 💡 Fix My Ideas

Hvordan man designer en mikrocontroller kredsløb

Hvordan man designer en mikrocontroller kredsløb


Forfatter: Ethan Holmes, 2019

Kredsløbet designet til en indlejret mikrocontroller kan være lidt overvældende. Bare datablad og tekniske referencer alene kan køre flere hundrede sider for avancerede mikrocontrollere.

Før du begynder på kredsløbsdesignet, er det en god idé at tegne et blokdiagram, der viser alle de store dele af projektet, herunder alle de eksterne enheder, der vil interface med mikrocontrolleren.

ARM Cortex-M Microcontroller

Denne artikel vil primært fokusere på kredsløbsdesign overvejelser om at inkorporere en ARM Cortex-M mikrocontroller. ARM Cortex-M microcontroller-arkitekturen tilbydes af flere chipproducenter i forskellige versioner.

ARM Cortex-M er en 32-bit arkitektur, der er specielt velegnet til beregningsintensive opgaver i forhold til hvad der er tilgængeligt fra typiske 8 bit mikrocontrollere. En 32-bit microcontroller er også gavnlig, hvis du har en applikation, der kræver et større hukommelsesadresserum eller som kræver en nem migrationssti til fremtidige udvidelser.

Vi diskuterer en række ARM Cortex-M mikrocontrollere fra ST Microelectronics kaldet STM32, eller mere specifikt vil vi fokusere på STM32F4 serien.

STM32-serien er imidlertid enorm og indeholder også STM32L-linjen med ultra-lav effekt samt højere og lavere præstations versioner i forhold til STM32F4. Den højeste præstationsversion er STM32F7, som kan udføre over 1 milliard instruktioner pr. Sekund. I den anden ende af præstationsspektret udfører STM32L0 kun 26 millioner instruktioner pr. Sekund.

Se skematisk kredsløbsdiagrammet nedenfor i figur 1, der viser det STM32F4 kredsløb, vi vil henvise til i hele denne artikel.

Figur 1. Klik for at se større billede.

Strømforsyning Design

Tilslutning af dit kredsløb er et af de vigtigste aspekter af hardware-designet, og du bør ikke vente for sent i designprocessen for at bestemme strøm- og jordforbindelsen.

Den strøm, som mikrocontrolleren bruger, bestemmes af flere faktorer som driftsspænding, urfrekvens og I / O-pinbelastningen.

Hver strømforsyning VDD-pin på MCU'en skal have 1uF og 100nF keramiske kondensatorer (for eksempel se C7 og C8 i Figur 1) placeret så tæt som muligt for at give strømforsyning frakobling. En yderligere 4,7uF keramisk kondensator (C1 i Figur 1) bør placeres i nærheden af ​​IC på hovedkredsløbssporet, der leverer VDD.

Mikrocontrollere med en analog-til-digital-konverter (ADC) har normalt også separat strøm (VDDA) og jordstifter (VSSA) kun til analog. Disse stifter skal være særligt rene af støj.

VDDA-stiften skal have 1uF og 10nF keramiske kondensatorer (C10 og C11 i Figur 1) placeret så tæt på VDDA-stiften som muligt. I de fleste tilfælde finder jeg det en god ide at også inkludere en induktor (L1 i figur 1) på VDDA-stiften for at danne et LC lavpasfilter, der giver en jævn renere analog forsyningsspænding.

Hvis din forsyningsspænding er over den maksimale indgangsspænding for mikrocontrolleren, kræves der normalt en lav-dropout lineær spændingsregulator. For eksempel er TPS795xx fra Texas Instruments særligt støjsvag og kan kilde op til 500mA. Hvis din forsyningsspænding er betydeligt højere end den nødvendige mikrocontroller spænding, så er en buck switch regulator et bedre valg. Lineære regulatorer spilder for meget strøm, når deres indgangsspænding er signifikant højere end deres regulerede udgangsspænding.

Det er dog normalt bedst at underregulere skifte regulatorens udgangsspænding med en lineær regulator. Dette skyldes, at en lineær regulator producerer en meget renere, lavere støjforsyningsspænding.

Ure

STM32F4 kan køres fra et internt eller eksternt systemur. Systemuret på powerup er det interne ur (16 MHz) og efter systeminitialisering kan en anden ekstern urkilde vælges i software.

Urstifterne på STM32F4 kan køre en ekstern 4 til 26 MHz krystal (se X1 i figur 1) eller en uafhængig urkilde på op til 50 MHz kan bruges.

Layoutretningslinjerne i databladet skal nøje overholdes, når det kommer til at lægge krystallen ud. Generelt bør sporene være korte, og belastningskapacitansen på krystallen skal være den samme som hvad krystalfremstillingen anbefaler.

GPIO

GPIO-tappene på mikrocontrollere er programmerbare og kan konfigureres af software som input eller output.

For eksempel er S1 i Figur 1 en push-knap, der er forbundet til en GPIO programmeret som input. STM32 giver indvendige pull-up modstande, så der er ikke behov for en ekstern pull-up modstand for denne knap. Et eksempel på en GPIO-udgang vises med kørsel af en LED.

De fleste af GPIO-stifterne har alternative funktioner, og forskellige eksterne enheder kan få adgang til den eksterne verden gennem disse multifunktionsnåle.

Ikke alle interne funktioner er tilgængelige for alle GPIO-stifter, og der er tilladt specifik kortlægning, så konsulter databladet, når du vælger hvilke specifikke stifter der bruges.

GPIO-stifterne kan bruges til at køre forskellige belastninger, og de fleste stifter kan synke eller kilde op til 25mA. Det er dog generelt en god idé at give en type eksternt drevkredsløb til at aflæse drevets krav. Se for eksempel MN1 at køre en LED i figur 1.

STM32 har den maksimale tilladte strøm, der er specificeret for hver enkelt stift, såvel som grænser for den samlede strøm for alle GPIO-tappe summeret sammen.

Tilslutning af eksterne enheder

STM32 giver seriel tilslutning via forskellige grænseflader, herunder UART, I2C, SPI og USB.

Som et eksempel er en temperaturføler (U2 - LM75BDP) i figur 1 forbundet til mikrocontrolleren via I2C-bussen. Der kræves to pullup-modstande (R2 og R3) på I2C-bussen, da enhederne, der forbinder bussen, har åbne drændrivere.

For lavhastighedsprogrammer, som med de fleste sensorer, er I2C normalt min foretrukne serielle protokol, fordi den kun bruger to linjer til kommunikation. I modsætning til SPI, der kræver en separat chipvalg linje for hver perifer, bruger I2C også unikke adresser. Dette betyder, at kun to linjer kan bruges til at oprette forbindelse til flere eksterne enheder.

SPI-bussen i figur 1 er forbundet til en MPU-9250 9-akse bevægelsesføler (U3) fra Invensense. MPU-9250 omfatter et 3-akset accelerometer, et 3-akse gyroskop og et 3-akse magnetometer.

Programmeringsstik

STM32F4 tilbyder to In-System Programmering (ISP) interfaces: Serial-Wire-Debug (SWD) og JTAG. Nedre omkostningsversioner af STM32 tilbyder kun SWD-grænsefladen. SWD og JTAG er de to mest almindelige programmeringsinterfaces, der anvendes til mikrocontrollere.

Konklusion

I denne artikel har vi diskuteret kredsløbsdesignet til en mikrocontroller. Specielt har vi set et STM32F4 kredsløbsdesign, der kan læse en indgangsknap, drive en LED og kommunikere med en I2C temperatursensor samt en SPI bevægelsesføler. For flere detaljer om oprettelse af et nyt elektronisk produkt, se min ultimative vejledning om, hvordan man udvikler et nyt elektronisk produkt.



Du Kan Være Interesseret

Math mandag: Boxtahedra

Math mandag: Boxtahedra


Sådan kontrolleres balancen for din Gaming Dice

Sådan kontrolleres balancen for din Gaming Dice


Lavet i Japan - Volumen 12

Lavet i Japan - Volumen 12


Eric Pan of Seeed Studios diskuterer fremtidens fabrikker

Eric Pan of Seeed Studios diskuterer fremtidens fabrikker






Seneste Indlæg