EB1048593

Page 1


Programujeme STM32

nízkopříkonové aplikace

Ing. Vojtěch Skřivánek

RCCC->CR |= RCC_CR_HSION; while

RCC->APB1ENR |= RCC_APB1ENR_PWREN;

PWR->CR = (3 << PWR_CR_V

RCC->CR |= RCC_CR_HSIDIVEN;

RCC->CFGR |= RCC_CFGR_SW_HSI; while

RCC->CFGR = (RCC_CFGR_HPRE_DIV4)

RCC->CR &= ~RCC_CR_MSION; Za podpory firem

SIEMENS

Programujeme STM32

nízkopříkonové aplikace

Ing. Vojtěch Skřivánek

Vydání první 2022

© Ing. Vojtěch Skřivánek

© Mgr. Tomáš Zahradníček - TZ-one

ISBN: 978-80-7539-147-6 (PDF verze)

ISBN: 978-80-7539-148-3 (ePub verze)

ISBN: 978-80-7539-149-0 (mobi verze)

Poděkování

Děkujifirmám SIEMENS

zapodporupřipsanítétoknihy.

4.1.2Příklad1-ZměnafrekvenceMSIanepěťovéúrovně

4.1.3Vnitřnívysokorychlostnízdroj

4.1.3.1Příklad2–NastaveníHSI

4.1.3.2Příklad3–Frekvencearychlostprogramu

4.1.4Vnějšívysokorychlostníoscilátor

4.1.4.1Příklad4–Vnějšívysokorychlostníoscilátor

4.1.5Vnitřnínízkorychlostníoscilátor

4.1.5.1Příklad5–Vnitřnínízkorychlostníoscilátorajehokalibrace

4.1.6Vnějšínízkorychlostníoscilátor

4.1.6.1Příklad6-Vnějšínízkorychlostníkrystal

4.1.7Fázovýzávěs

4.1.7.1Příklad7–Využitífázovéhozávěsu

4.2.1Příklad8–Vyrovnávacípaměť

4.3.1Spotřebazapnutéperiferie

4.3.1.1Příklad9–Změnaspotřebyperiferie

4.3.2Distribucehodinovéhosignálu

4.3.2.1Příklad10–Distribucehodinovéhosignálu

5.1Laděníprogramuvúspornýchrežimech

5.2Nízkopříkonovýprovoznírežim

5.2.1Příklad11–Nízkopříkonovýprovoznírežim

5.3.1Příklad12–Principspícíhorežimu

5.4Nízkopříkonovýspícírežim

5.4.1Příklad13–Nízkopříkonovýspícírežim

5.5Odstavenýrežim ............................................

5.5.1Příklad14–Odstavenýrežim .................................

5.5.2Příklad15–ProbuzenípomocíperiferieUART

5.5.3Příklad16–ProbuzenípomocíperiferieLPTIM

5.5.4Příklad17–ProbuzenípomocíRTCAWU

5.5.5Příklad18–Probuzenípomocíbudícíhočasovače

5.5.6Příklad19–Probuzenípřidetekcinarušení

5.5.7Příklad20–ProbuzenípomocíperiferieCOMP

5.5.8Příklad21–ProbuzenípomocíperiferieI2C

5.6Pohotovostnírežim

5.6.1Příklad22–Pohotovostnírežim

6.1Příklad23–NastaveníGPIO .....................................

6.2Příklad24–NastaveníRTC ......................................

6.3Příklad25-Úspornýpřenosdat

6.4Příklad26-Spícírežimmístozpožďovacísmyčky

6.5Příklad27–Spícírežimvpraxi

6.6Příklad28–Programvpamětidat

Kapitola1

Úvod

Tatoknihavolněnavazujenapředchozíknihyzedice„ProgramujemeSTM32“.Proto,pokudještěnemáte zkušenostiskontrolerySTM32,doporučujinejprvepřečístje.

FirmaSTMicroelectronicsmávesvémproduktovémportfoliurůznérodinymikrokontrolerů.Každárodina dominujevjinéoblastipoužití–vysokývýkon,bezdrátovákonektivita,prácesanalogovýmisignály,automotiveanebonízkýenergetickýodběr.Aprávěřada STM32Lxxx,donížpatříikontroler STM32L073RZ , sekterýmvtétoedicipracujeme,patřímezikontrolerynavrženétak,abyjejichpříkonbylcomožnánejmenší.

Knihasetedyjižnevěnujetomu,jakvyužívatperiferiekontroleru,alezkoumájejzjinéhohlediska.V knizesebudemezabývattím,covšechnomávlivnaenergetickounáročnostaplikacekontroleru.

Vkapitoláchbudemezkoumataporovnávat,jakýzdrojakmitočethodinovéhosignálumávlivnaenergetickýodběr.Dálesipopíšeme,jakéexistujíúspornérežimy,čímseliší,jakjevyvolat,jakjeopustitajaká majíomezení.Amimojinésetakédozvíme,jaképeriferiejsouučenyproprácivúspornýchrežimech.

Předpokládáse,žečtenářjižmázkušenostisprogramovánímmikrokontrolerů STM32 ,ví,jaksepracuje sknihovnímifunkcemi HAL ijednotlivýmiregistryaumípoužívat STM32CubeIDE

1.1Motivaceknihy

Vdnešnídobadoslovavoláponízkopříkonovýchaplikacích.Nejenom,žesevposledníchletechobjevila spoustanovýchproduktůzoblastinositelnéelektroniky:

• fitnessnáramky,

• chytréhodinky,

• chytrébrýle(virtuálníarozšířenárealita) aledokonceiprodukty,kteréjsmedřívepoužívalibezbaterií,jsoudnespoháněnéprávějimi:

• bezdrátovásluchátka,

• přenosnébezdrátovéreproduktory,

• bezdrátovémyšiaklávesnice,

• zubníkartáčkya

• samočinnévysavačeasekačky

Samozřejměnesmímezapomenoutnamnožstvíjižklasickýchproduktů,kterésvojíenergiičerpajízbaterie:

• mobilnítelefony,

• tablety,touchpady,elektronickéčtečky

• digitálnífotoaparátyavideokamery

• přenosnéhudebnípřehrávače,

• holicístrojky,

• detektorykouřeaplynu,

• různáměřicízařízení(laserovédálkoměry,osobníváhy),

• dálkovéovladače,

Výdržvšechtěchtoproduktůmalýchrozměrůjeomezenákapacitoubaterie.Nazařízeníjsoukladeny požadavkyjakovysokývýkon,malávelikostanízkáhmotnost.Atovšechnoscomožnánejdelšívýdržíbaterie. Právěto,jakdlouhobudezařízenífunkčnínajednonabití,ječastovyhledávanýmparametremzákazníka. Tentoúdajmůžeovlivnit,jakúspěšnýproduktbude.

Vývojzvyšováníenergetickéhustotybateriíbohuželnenítakrychlý,jakorůstpožadavkůnavýkonmnohých zejmenovanýchzařízení.

Jednímřešenímtohotoproblémujerelativněúspěšnézvyšováníúčinnostielektronickýchsoučástek.Napříkladprocesorovájádra ARM posledníchněkolikletzvyšujísvůjvýpočetnívýkonzasoučasnéhosnížení energetickénáročnosti.

Druhýmřešenímjesprávnáaplikacekontroleru,kterácomožnánejvícešetříenergii.Aplikace,vnížse maximálnívýpočetníkapacitajádravyužívápouze,kdyžjetonezbytněnutné.Vekteréjekaždáperiferie zapnutapouzetehdy,kdyjetřebajivyužít.Kterákontroleruspí,kdyžzařízeníneníprávěvyužíváno.Toto řešeníjeplněvrukouprogramátora.

Aprávěvtétoknizesiukážemenástrojemikrokontroleru STM32L073RZ ,kterénámumožňujíšetřit energii.

1.2Strukturaknihy

Knihaobsahujetřikapitoly.Každáznichsezaměřujenajinýzpůsobúsporyenergie.

Prvníkapitolasezaměřujenanastaveníkontrolerutak,abypodobuběhuprogramuvyžadovalconejmenší množstvíenergie.Nejvícesevníporovnáváspotřebapřirůznýchnastaveníchzdrojesystémovéhohodinového signálu.

Druhákapitolasezabýváúspornýmirežimy.Popisuje,jakérežimyexistují,včemselišízhlediskaspotřeby ajakámajíomezení.Takéukazuje,jakmezirežimypřepínat.

Posledníkapitolapojednáváoperiferiíchkontroleru.Představujeprácisperiferiemispeciálněurčenými proaplikacesnízkouspotřebou.Vpodkapitoláchjeporovnávánaenergetickánáročnostrůznýchperiferií.

Uvětšinykapitolapříkladůbudouvloženéapopsanégrafyproudovéspotřebykontroleru.Znichpatrné, jakseměníodběrnapříkladpřizměněfrekvencehodin,spuštěníperiferienebopřechodudoúspornéhorežimu.

Jetřebamítnapaměti,ženaměřenéhodnotynebylyzískányvlaboratorníchpodmínkách,protojetřebana něnahlížetjakonaorientační,sloužícípředevšímkilustracirelativníchrozdílů.

1.3Fontytextu

Anglickézkratky,názvynabídekapolíčekvývojovéhoprostředíanázvyregistrůjsouvždynapsánytučnou kurzívou-např. AutoReload registr.Ačbybylokonzistentnějšípoužívatvknizebuďpouzečeské,nebopouze anglickénázvosloví,existuje-ličeskýekvivalent(např.názvuregistru),jepoužit,jelikožlépezapadnedověty, kterájepaksrozumitelnější.

Odkazynapoužitézdrojejsouuvedenyčíslemvhranatýchzávorkách–např.[1].

Odkazynabodyvobrázcíchagrafechbudoupopsánytučnýmpísmemvzávorce-např. (3).

Kapitola2

Vývojovénástroje

Kprogramovánímikrokontrolerůjsouzapotřebítřizákladnínástroje.

Prvnímznichjesamozřejměsamotnýmikrokontroler.Nejsnazšímzpůsobem,jakmítkdispozicifunkční mikrokontrolerpřipravenýkprogramováníapoužíváníjehoperiferií,jeopatřitsivývojovoudesku.Firma STMicroelectronicsnabízíširokouškálucenověpříznivýchvývojovýchdesek.Mezinejznámějšípatřířadydesek Nucleo a Discovery.Tyseodsebelišítím,žezatímco Nucleo obsahujepřevážněpouzemikrokontrolera konektory, Discovery dostčastoskýtátakérozličnésenzory,tlačítka,LED,displejeajinéprvky,připojené přímokekontroleruapřipravenékokamžitémupoužití.

Druhýmpotřebnýmnástrojemjeprogramátormikrokontroleru,kterýdokáženahrátbinárníkódzPCdo pamětiprogramučipu.Tentoprogramátorjemožnékoupitsamostatně,alevýhodouvšechvývojovýchdesek firmySTMicroelectronicsje,žekaždáznichmávsoběprogramátoradebugger(používanýkladěníprogramu) jižintegrovaný.

Zbýváposlednínástroj,ačkolivjdevlastněonástrojedva,kteréjevšakmožnoopětzískatvjednom balíčku.Prvnímjevývojovéprostředí,veněmžjemožnésnadnopsátkódaspravovatprojektprogramu.

Druhýmjepřekladačzdrojovéhokódu,psanéhovjazyceC,dostrojovéhobinárníhokódu,kterémurozumí danýkontroler.FirmaSTMicroelectronicsnabízízdarmasvévývojovéprostředí STM32CubeIDE,vekterém jemožnénapsatzdrojovýkód,přeložitjejdostrojovéhokóduapomocíprogramátorujejnahrátdoprogramové pamětimikrokontroleru.

2.1Vývojovádeska

Vývojovádeska,kterájepoužitanavšechnypříkladyvtétoknize,jezřadydesek Nucleo snázvem NUCLEO-L073RZ .

VývojovádeskaNUCLEO-L073RZ[2]

Deskaobsahuje,mimomikrokontroleru STM32L073RZ ,takéjižzmíněnýprogramátoradebuggersloužícíkladěníprogramu (1).Programátorsenacházívhorníčástidesky,kteroujemožnéodspodníodlomit.K programováníkontrolerůmimovývojovoudeskusloužíkonektor CN4 vlevéčásti (2).HorníčásttakéobsahujepřevodníkzUSBkomunikacena UART ,jehožvývodyCN3jsouvpravoodprogramovacíhokonektoru (3).Anijedenztěchtokonektorůnenítřebapoužívat,jelikožprogramátoripřevodníkjsouskontrolerem spojenymůstkymezihorníadolníčástídesky.

Nadolníčástideskysenacházídvětlačítka,jednoznich- B2 -sloužíkresetováníprogramumikrokontroleru (4),druhé- B1 -jeuživatelské (5),kteréjepřipojenénapinmikrokontroleruaježbudečastovyužívané vnašichpříkladech.

KroměLEDsignalizujícífunkciprogramátoruasprávnénapájeníjenadesceumístěnatakéjednauživatelskáLED LD2 (6),kteroulzepinemmikrokontroleruovládat.

Nakrajíchdeskypaknelzepřehlédnoutdvatypykonektorů.Vnitřnítvořenédutinkamijsoukompatibilní sevšemirozšiřujícímideskamiproplatformu Arduino.Vnějšíhřebínkovéjsoupřivedenykevšempinům kontroleru.

POZOR!! Nevšechnykonektoryjsouskutečněpřipojenykpinůmkontroleru.Někdyjenutnénapříslušné místonadescepřipájetnulovýrezistor,abydošlokpropojení.Důvodemje,žedanýpinjejižpoužitnapříklad programátorem.Detailyjemožnénajítvdokumentaci Nucleo desky[3].

Vývojovádeskamánasobětaképropojku JP6 (7),kteroujemožnérozpojitapřipojitmezikonektory ampérmetr.Právětoutocestoujsouprovedenavšechnaměřenívtétoknize.

Kroměvýšezmíněnýchfunkcídeskaještěnabízímožnostpřipájenívlastníhopřesnéhooscilátoru,místona měřeníproudovéspotřebyapřepnutínaexternínapájení.Obojíbudemevnašichpříkladechvyužívat.

Jelikožněkterépříkladyvyžadujíkomunikacidvouzařízení,jevhodnémítdvěvývojovédesky.Prodrtivou většinupříkladůjevšakjednaNucleodeskadostatečná.

ProsnazšíměřeníspotřebymáfirmaSTMicroelectronicsvesvémportfoliurozšiřujícídeskuX-NUCLEOLPM01A,kteráumožňujevelmipřesnéměřenístatickéidynamickéspotřebykontroleru.

2.2Vývojovéprostředí

Jakjižbylozmíněno,výrobcečipuposkytujezdarmavývojovéprostředí STM32CubeIDE,vekterém jsouvytvořenyvšechnypříkladytétoknihy.

Totoprostředívsoběobsahujekonfigurátorperiferiíčipu,programováníasprávuprojektu,nahráníprogramudomikrokontroleruamožnostjeholadění(debuggování).

Sinstalacívývojovéhoprostředníseautomatickynainstalujeiovladačprogramátoru,kterýjeumístěnýna Nucleo desce,apřekladačzezdrojovéhokódunastrojový.

STM32CubeIDE jemožnéporegistracinawebovýchstránkáchfirmySTMicroelectronicsstáhnout zcelazdarma.Nejsnazšímzpůsobemnalezeníodkazukestaženíjezadatdointernetovéhovyhledávačeheslo „STM32CubeIDE“apravděpodobněhnedprvníodkazbudemířitnasprávnoustránku,kdenajdetetaké návodnainstalaciamanuálkpoužití.

Věřím,ženenínutnépopisovatinstalacivývojovéhoprostředí,kterájeplněautomatickáaintuitivnía nainstalujeivšechnynutnéovladače.

2.3Shrnutí

Popřečtenítétokapitolybymělmítčtenářkúspěšnémunaprogramovánípříkladůuvedenýchvtétoknize připravenynásledujícínejnutnějšívěci:

• vývojovoudesku NUCLEO-L073RZ (proněkterépříkladyjsounutnédvě),

• USB kabelkpřipojenídeskykpočítači,

• počítačsnainstalovanýmvývojovýmprostředím STM32CubeIDE,

• a několikpropojovacíchvodičů kvzájemnémupropojenívnějšíchkonektorůvývojovédesky.

Stoutonezbytnouvýbavoujemožnésesmělepustitčtenínásledujícíchkapitol,kteréukazují,jakúsporně využívatkontrolerySTM32.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.