Jeffrey Cross
Jeffrey Cross

Miten suunnitella mikrokontrolleripiiri

Sulautetun mikrokontrollerin tarvittava piirisuunnittelu voi olla hieman ylivoimainen. Ainoastaan ​​tietolomakkeella ja teknisillä viitteillä voi olla useita satoja sivuja edistyksellisiin mikrokontrollereihin.

Ennen piirisuunnittelun aloittamista on hyvä piirtää lohkokaavio, joka esittää kaikki projektin tärkeimmät osat, mukaan lukien kaikki oheislaitteet, jotka liitetään mikrokontrolleriin.

ARM Cortex-M mikrokontrolleri

Tässä artikkelissa keskitytään ensisijaisesti piirin suunnitteluun, joka koskee ARM Cortex-M-mikrokontrollerin sisällyttämistä. ARM Cortex-M-mikrokontrollerin arkkitehtuuria tarjoavat useat eri pelimerkkien valmistajat.

ARM Cortex-M on 32-bittinen arkkitehtuuri, joka soveltuu erityisesti laskennallisesti intensiivisiin tehtäviin verrattuna tyypillisiin 8-bittisiin mikrokontrollereihin. 32-bittinen mikrokontrolleri on myös hyödyllinen, jos sinulla on sovellus, joka vaatii suuremman muistin osoiteavaruuden tai joka tarvitsee helpon siirtymispolun tulevia laajennuksia varten.

Aiomme keskustella STM32: n STM32F4-sarjan ARM Cortex-M-mikrokontrollereista tai tarkemmin STM32F4-sarjasta.

STM32-sarja on kuitenkin valtava ja sisältää myös erittäin pienitehoisen STM32L-linjan sekä korkeammat ja pienemmät suorituskyvyn versiot verrattuna STM32F4: ään. Korkein suorituskykyversio on STM32F7, joka voi suorittaa yli 1 miljardia ohjetta sekunnissa. Suorituskyvyn spektrin toisessa päässä STM32L0 suorittaa vain 26 miljoonaa ohjetta sekunnissa.

Katso kaavamainen piirikaavio alla olevassa kuvassa 1, jossa on esitetty STM32F4-piiri, johon viitataan tässä artikkelissa.

Kuva 1. Napsauta nähdäksesi suuremman kuvan.

Virtalähteen suunnittelu

Piirin virransyöttö on yksi laitteiston suunnittelun tärkeimmistä näkökohdista, eikä sinun pitäisi odottaa liian myöhään suunnitteluprosessissa voima- ja maadoitusjärjestelmän määrittämiseksi.

Mikrokontrollerin käyttämä virta määräytyy useiden tekijöiden, kuten käyttöjännitteen, kellotaajuuden ja I / O-pin-kuormien perusteella.

Jokaisessa MCU: n virtalähteen VDD-pinassa tulisi olla 1uF- ja 100nF-keraamiset kondensaattorit (esimerkiksi katso C7 ja C8 kuvassa 1), jotka on sijoitettu mahdollisimman lähelle virtalähteen irrotuksen aikaansaamiseksi. Toinen 4.7 uF: n keraaminen kondensaattori (C1 kuviossa 1) tulisi sijoittaa lähelle IC: tä päävirtapiirin jälkeessä, joka syöttää VDD: tä.

Mikrokontrollereilla, joissa on analoginen digitaalimuunnin (ADC), on yleensä myös erillinen teho (VDDA) ja maadoitustapit (VSSA) vain analogisille. Näiden nastojen on oltava erityisen puhtaita meluista.

VDDA-pinassa tulisi olla 1uF ja 10nF keraamiset kondensaattorit (C10 ja C11 kuviossa 1), jotka on sijoitettu mahdollisimman lähelle VDDA-pintaa. Useimmissa tapauksissa minusta on hyvä ajatus sisällyttää myös induktori (L1 kuvassa 1) VDDA-nastalle, jolloin muodostuu LC-alipäästösuodatin, joka antaa tasaisemman analogisen syöttöjännitteen.

Jos syöttöjännitteesi on mikrokontrollerin maksimitulojännitteen yläpuolella, on yleensä vaadittava pienen putoavan lineaarisen jännitteen säädintä. Esimerkiksi Texas Instrumentsin TPS795xx on erityisen hiljainen ja voi jopa 500 mA: n lähdettä. Jos syöttöjännitteesi on huomattavasti suurempi kuin vaadittu mikrokontrollerin jännite, niin buck-kytkentäsäädin on parempi valinta. Lineaariset säätimet tuhlaavat liikaa tehoa, kun niiden tulojännite on huomattavasti suurempi kuin niiden säädetty lähtöjännite.

Yleensä on kuitenkin parasta säätää kytkinsäätimen lähtöjännitettä edelleen lineaarisella säätimellä. Tämä johtuu siitä, että lineaarinen säätölaite tuottaa paljon puhtaampaa, pienempää melun syöttöjännitettä.

kellot

STM32F4 voidaan ajaa sisäisestä tai ulkoisesta järjestelmäkellosta. Järjestelmän kello käynnistyksessä on sisäinen kello (16 MHz) ja järjestelmän alustuksen jälkeen ohjelmistossa voidaan valita toinen ulkoinen kellolähde.

STM32F4: n kellotapit voivat ajaa ulkoista 4 - 26 MHz: n kiteitä (katso X1 kuviossa 1) tai itsenäistä kellolähdettä, joka on korkeintaan 50 MHz, voidaan käyttää.

Kristallin asettamisessa tulee noudattaa tiukasti tietosivun asetteluohjeita. Yleensä jälkien tulisi olla lyhyitä ja kiteiden kapasitanssin tulisi olla sama kuin kiteiden valmistus suosittelee.

GPIO

Mikrokontrollerien yleiset käyttötarkoitukset (GPIO) ovat ohjelmoitavissa ja ne voidaan konfiguroida ohjelmistolla tulona tai lähdönä.

Esimerkiksi S1 kuvassa 1 on painonappi, joka on kytketty tuloina ohjelmoituun GPIO: han. STM32 tarjoaa sisäisiä vetovastuksia, joten tässä painikkeessa ei tarvita ulkoista vastusvastusta. Esimerkki GPIO-ulostulosta näkyy LED-valolla.

Suurimmalla osalla GPIO-nastoista on vaihtoehtoisia toimintoja ja erilaiset sirun oheislaitteet pääsevät ulkoiseen maailmaan näiden monitoimitapien avulla.

Kaikkia sisäisiä toimintoja ei ole käytettävissä kaikissa GPIO-pinoissa, ja on olemassa erityinen kartoitus, joten tutustu lomakkeeseen valitessasi, mitä tiettyjä nastoja käytetään.

GPIO-nastoja voidaan käyttää eri kuormien ohjaamiseen, ja useimmat nastat voivat upota tai lähde jopa 25 mA: n verran. Yleensä on kuitenkin hyvä antaa jonkinlaista ulkoista asemapiiriä taajuusmuuttajan vaatimuksiin. Katso esimerkiksi MN1, joka ajaa LEDiä kuvassa 1.

STM32: llä on suurin sallittu virta jokaiselle tapille yksilöllisesti sekä kaikkien GPIO-nastojen yhteenlaskettu kokonaisvirta.

Oheislaitteiden liittäminen

STM32 tarjoaa sarjaliitännän eri liitäntöjen kautta, kuten UART, I2C, SPI ja USB.

Esimerkiksi kuviossa 1 lämpötila-anturi (U2 - LM75BDP) on liitetty mikrokontrolleriin I2C-väylän kautta. I2C-väylässä tarvitaan kaksi vetovastusta (R2 ja R3), koska väylään liitettävillä laitteilla on avoimet tyhjennysajurit.

Pienenopeuksisissa sovelluksissa, kuten useimmissa antureissa, I2C on tavallisesti suosituin sarjaprotokolla, koska se käyttää vain kahta linjaa viestintään. Toisin kuin SPI, joka vaatii erillisen sirunvalintalinjan kullekin oheislaitteelle, I2C käyttää yksilöllisiä osoitteita. Tämä tarkoittaa, että vain kaksi riviä voidaan käyttää useisiin oheislaitteisiin.

Kuvion 1 SPI-väylä on kytketty Invensensen 9-akseliseen MPU-9250-liiketunnistimeen (U3). MPU-9250 sisältää 3-akselisen kiihtyvyysmittarin, 3-akselisen gyroskoopin ja 3-akselisen magnetometrin.

Liittimen ohjelmointi

STM32F4: ssä on kaksi ISP-järjestelmäkäyttöliittymää: Serial-Wire-Debug (SWD) ja JTAG. STM32: n alhaisempien kustannusten versiot tarjoavat vain SWD-liitännän. SWD ja JTAG ovat kaksi yleisintä ohjelmointirajapintaa, joita käytetään mikrokontrollereihin.

johtopäätös

Tässä artikkelissa on keskusteltu mikrokontrollerin piirisuunnittelusta. Tarkemmin ottaen olemme tarkastelleet STM32F4-piirisuunnittelua, joka pystyy lukemaan tulopainikkeen, ajamaan LEDiä ja kommunikoimaan I2C-lämpötila-anturin sekä SPI-liiketunnistimen kanssa. Lisätietoja uuden sähköisen tuotteen luomisesta on Ultimate-oppaassani uuden sähköisen tuotteen kehittämisestä.

Osake

Jättänyt Kommenttia