Somo la 1Kulinganisha familia za microcontroller: AVR, PIC, ARM Cortex-M (M0/M3/M4) — utendaji, peripherals, na mfumo ikolojiaSehemu hii inalinganisha familia kuu za microcontroller. Uta chunguza vifaa vya AVR, PIC, na ARM Cortex-M kwa utendaji, peripherals, zana, ikolojia, gharama, na usahihi kwa miundo iliyowekwa ndani inayolenga mawasiliano.
Muundo wa AVR, nguvu, na matumiziFamilia za PIC na vikoa vya matumizi vya kawaidaCores za ARM Cortex-M: sifa za M0, M3, na M4Ikolojia, zana, na msaada wa jamiiPeripherals, kumbukumbu, na upimaji wa utendajiGharama, upatikanaji, na maisha ya muda mrefuSomo la 2Usalama wa msingi wa firmware: matumizi ya timer ya watchdog, ripoti ya makosa, na mikakati imara ya resetSehemu hii inazingatia taratibu za usalama wa msingi wa firmware. Utaweka timer za watchdog, kubuni mtiririko salama wa reset na urejeshaji, kutekeleza ripoti ya makosa, na kuhakikisha hang au hali zilizoharibika zisigundwe na zishughulikiwe.
Weka na kulisha timer ya watchdogKugundua na kushughulikia lockups na vitanzi vya kufaBrown-out, POR, na kushughulikia reset ya njeKuhifadhi sababu ya reset na muktadha wa makosaKuhifadhi nonvolatile ya kushindwa muhimuKurudisha salama na hali za uendeshaji zilizodhoofikaSomo la 3Bajeti ya GPIO na peripherals: njia za ADC, bandari za UART/SPI/I2C, timer, interrupts na kupanga DMASehemu hii inashughulikia kupanga GPIO na peripherals za ndani-chip kwa mahitaji ya mfumo. Utapanga njia za ADC, bandari za serial, timer, interrupts, na matumizi ya DMA ili kuepuka migogoro, kusaidia upanuzi wa baadaye, na kufikia vikwazo vya wakati halisi.
Kuunda orodha kamili ya ishara na piniKupanga njia za ADC kwa sensor na marejeoKugawa UART, SPI, na I2C kwa peripheralsKugawa timer kwa PWM, capture, na timebaseKuzingatia kipaumbele cha interrupt na nestingKupanga njia za DMA kwa kupitia data nyingiSomo la 4Chaguo za vifaa vya MCU muhimu: voltage ya usambazaji, chanzo cha saa (RC ya ndani, kristali, oscillator ya nje), na vikoa vya nguvuSehemu hii inaongoza chaguo kuu za vifaa vya MCU. Utaangalia anuwai za voltage ya usambazaji, chaguo za chanzo cha saa, na vikoa vya nguvu, ukizingatia utendaji, kelele, usahihi wa analog, na uwezo na sensor, redio, na mantiki ya nje.
Kuchagua voltage ya msingi ya usambazaji na regulatorsViwango vya voltage ya I/O na mahitaji ya kubadilisha viwangoFaida na hasara za oscillator ya RC ya ndaniChaguo la kristali na oscillator ya njeKutenganisha vikoa vya nguvu za analog na dijitaliAthari za kutenganisha na mpangilio wa kutia chiniSomo la 5Saa na wakati: kuchagua chanzo cha saa, kuweka tick ya mfumo, hali za nguvu ndogo na vyanzo vya kuamshaSehemu hii inaelezea muundo wa mti wa saa na wakati. Uta chagua vyanzo vya saa, weka PLLs, weka tick ya mfumo, na ubuni hali za nguvu ndogo na vyanzo vya kuamsha huku ukikidhi mahitaji ya wakati, jitter, na matumizi ya nguvu.
Muhtasari wa mti wa saa na hatua za kuwekaPLL, prescalers, na ushindani wa mzungukoWeka tick ya mfumo na uhifadhi wa wakatiMatumizi ya timer kwa kuchelewesha na kupangaChaguo la hali za kulala na kusimamisha nguvu ndogoVyanzo vya kuamsha na udhibiti wa latencySomo la 6Ubuni wa dereva wa ADC: mfululizo wa sampuli, oversampling, wastani, na wakati wa ubadilishajiSehemu hii inaelezea kwa undani ubuni wa dereva wa ADC kwa vipimo sahihi. Utapanga mifuatano ya sampuli, weka vichochezi, tumia oversampling na wastani, simamia wakati wa ubadilishaji, na kupunguza kelele kupitia mbinu za vifaa na firmware.
Chaguo na kalibrisho la marejeo ya ADCMfuatano wa njia na kuweka skanaKuchagua wakati wa sampuli na chanzo cha kichocheziOversampling, wastani, na kuchujaUpataji wa data ya ADC unaotumia DMAKupunguza kelele na crosstalk katika masomoSomo la 7Usimamizi wa nguvu iliyowekwa ndani: hali za kulala, ugunduzi wa brown-out, RTC kwa kuamsha, na mazingatio ya betriSehemu hii inashughulikia mikakati ya usimamizi wa nguvu iliyowekwa ndani. Uta tumia hali za kulala, ugunduzi wa brown-out, na kuamsha kulingana na RTC, na kuzingatia kemistri ya betri, uwezo, na maisha kwa mifumo ya mawasiliano yenye nguvu ndogo inayoaminika.
Chaguo la hali ya kulala na vigezo vya kuingiaWeka RTC kwa matukio ya kuamsha ya wakatiVipindi vya ugunduzi wa brown-out na vitendoKupima na kupanga mkondo wastani wa sasaKemistri ya betri na tabia ya kutoleaKubuni kwa maisha marefu ya betri na usalamaSomo la 8Muundo wa firmware na mtiririko: boot, init ya peripheral, taratibu ya kusoma sensor, kushughulikia makosa, umbizo la data, kupanga mawasilianoSehemu hii inawasilisha muundo wa jumla wa firmware kutoka reset hadi uendeshaji wa kawaida. Utabuni mtiririko wa boot, initialization ya peripheral, vitanzi vya kusoma sensor, njia za kushughulikia makosa, umbizo la data, na kupanga mawasiliano kwa tabia inayotabirika.
Mfululizo wa boot na muhtasari wa code ya kuanzaMpangilio wa initialization ya peripheral na middlewareKubuni kazi za kusoma sensor za mara kwa maraKushughulikia makosa ya kati na njia za kuhifadhiUmbizo la data, scaling, na kushughulikia vitengoKupanga ushirikiano na ubuni wa kitanzi kuuSomo la 9Ubuni wa dereva wa mawasiliano: stacks za UART, SPI, I2C; polling dhidi ya interrupt dhidi ya mbinu za DMASehemu hii inaelezea jinsi ya kubuni dereva za UART, SPI, na I2C zinazoweza kutumika tena. Utalinanisha mbinu za polling, interrupt, na DMA, ufafanue API za dereva, shughulikia makosa na timeouts, na kuunganisha dereva kwenye stacks za itifaki za ngazi ya juu.
Muundo wa tabaka kwa dereva za serialDereva wa UART: framing, buffering, na udhibiti wa mtiririkoDereva wa SPI: hali, chip select, na throughputDereva wa I2C: anwani, usuluhishi, na retriesUhamisho wa polling dhidi ya interrupt-drivenUhamisho unaotumia DMA na ubuni wa buffer ya pete