Momwe mungawerengere ma datasheet ngati ma microcontrollers ndizomwe mumakonda

Momwe mungawerengere ma datasheet ngati ma microcontrollers ndizomwe mumakonda

Microelectronics ndimasewera apamwamba m'zaka zaposachedwa chifukwa chamatsenga Arduino. Koma nali vuto: ndi chidwi chokwanira, mutha kukula mwachangu DigitalWrite (), koma choti muchite kenako sichidziwika bwino. Madivelopa a Arduino ayesetsa kwambiri kutsitsa chotchinga kuti alowe mu chilengedwe chawo, koma kunja kwake kuli nkhalango yakuda yozungulira movutikira yomwe amateur samatha kufikako.

Mwachitsanzo, ma data. Zikuwoneka ngati ali ndi zonse, zitengeni ndikuzigwiritsa ntchito. Koma olemba awo momveka bwino sadziika okha ntchito yodziwika ndi ma microcontrollers; Nthawi zina zikuwonekakuti amagwiritsira ntchito mwadala mawu osamvetsetseka ndi mawu achidule pamene akufotokoza zinthu zosavuta kuti asokoneze osadziwa momwe angathere. Koma sikuti zonse ndizoyipa kwambiri; ngati mungafune, bokosi limatsegulidwa.

M'nkhaniyi ndigawana zomwe akatswiri aumunthu amalankhulana ndi ma data pazifukwa zamasewera. Zolembazo zimapangidwira osakonda omwe adakula kuchokera ku mathalauza a Arduino; zimatengera kumvetsetsa kwa mfundo zoyendetsera ma microcontrollers.

Ndiyamba ndi zachikhalidwe

Kuwunikira kwa LED pa Arduino

Ndipo nthawi yomweyo code:

void setup() {
DDRB |= (1<<5);
}

void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}

"Ichi ndi chiyani? - Wowerenga wotsogola adzafunsa. - Chifukwa chiyani mukulembera china chake ku PINB yolembera? Ndi zowerenga basi!” Zowona, Zolemba za Arduino, mofanana ndi nkhani zambiri zophunzitsa pa Intaneti, zimanena kuti kaundulayu ndi wongowerengedwa kokha. Ndinaganiza choncho mpaka ndinawerenganso tsamba lazambiri kupita ku Atmega328p, pokonzekera nkhaniyi. Ndipo pamenepo:

Momwe mungawerengere ma datasheet ngati ma microcontrollers ndizomwe mumakonda

Izi ndi ntchito zatsopano, sizinali pa Atmega8, si aliyense amene akudziwa za izi kapena sanatchulidwe pazifukwa zobwerera m'mbuyo. Koma ndi bwino kusonyeza lingaliro lakuti datasheets ayenera kuwerenga kuti agwiritse ntchito mphamvu zonse za chip, kuphatikizapo osadziwika. Ndipo ichi si chifukwa chokha.

Chifukwa chiyani kuwerenga datasheets?

Kawirikawiri, akatswiri a Arduino, atasewera mokwanira ndi ma LED ndi ma AnalogWrites, amayamba kugwirizanitsa mitundu yonse ya ma modules ndi tchipisi pa bolodi, yomwe ili ndi malaibulale olembedwa kale. Posapita nthawi, laibulale imawonekera yomwe sikugwira ntchito momwe iyenera kukhalira. Kenako amateur akuyamba kuyang'ana pa izo kuti akonze, ndiyeno ...

Ndipo china chake chosamvetsetseka chimachitika pamenepo, chifukwa chake muyenera kupita ku Google, kuwerenga maphunziro angapo, kutulutsa magawo a code yoyenera ya wina ndikukwaniritsa cholinga chanu. Izi zimapereka lingaliro lamphamvu lachipambano, koma kunena zoona, kuchitapo kanthu kuli ngati kuyambitsanso gudumu mwa kukonza njinga yamoto. Komanso, kumvetsetsa momwe njinga iyi imagwirira ntchito sikuwonjezeka. Ndikudziwa, chifukwa ndachita izi ndekha kwa nthawi yayitali.

Ndikadakhala kuti m'malo mwazochita zosangalatsazi ndikadakhala masiku angapo ndikuwerenga zolemba za Atmega328, ndikadasunga nthawi yayitali. Kupatula apo, iyi ndi microcontroller yosavuta.

Chifukwa chake, muyenera kuwerenga ma datasheet osachepera kuti muganizire momwe microcontroller imagwirira ntchito komanso zomwe ingachite. Komanso:

  • kuyang'ana ndi kukhathamiritsa malaibulale a anthu ena. Nthawi zambiri amalembedwa ndi omwe amateurs omwe amayambiranso gudumu; kapena, m'malo mwake, olembawo amawapanga dala kukhala opusa mopambanitsa. Lolani kuti ikhale yayikulu katatu komanso pang'onopang'ono, koma idzagwira ntchito;

  • kutha kugwiritsa ntchito tchipisi mu polojekiti yomwe palibe amene adalembapo laibulale;

  • kuti zikhale zosavuta kwa inu nokha kusamuka kuchokera ku mzere wa MK kupita ku wina;

  • kuti potsiriza mukwaniritse khodi yanu yakale, yomwe siinagwirizane ndi Arduino;

  • kuphunzira kulamulira Chip aliyense mwachindunji kudzera m'kaundula ake, popanda kuvutika ndi kuphunzira dongosolo la malaibulale ake, ngati alipo.

Chifukwa chiyani kulembera ku zolembera mwachindunji pomwe pali HAL ndi LL?

Dictionary
HAL, High Abstraction Layer - laibulale yoyang'anira microcontroller yokhala ndi mawonekedwe apamwamba. Ngati mukufuna kugwiritsa ntchito mawonekedwe a SPI1, mumangosintha ndikuyambitsa SPI1 osaganizira kuti ndi zolembetsa ziti zomwe zimagwira ntchito.
LL, Low Level API - laibulale yokhala ndi ma macros kapena zomanga zomwe zili ndi ma adilesi olembetsa, omwe amakulolani kuti muwapeze ndi dzina. DDRx, PORTx, PINx pa Atmega ndi LL.

Mikangano pamutu wakuti "HAL, LL kapena registry" imachitika pafupipafupi pamawu a HabrΓ©. Popanda kunena kuti ndili ndi chidziwitso cha astral, ndingogawana zomwe ndakumana nazo komanso malingaliro anga.

Nditaganizira mozama za Atmega ndikuwerenga zolemba za kudabwitsa kwa STM32, ndidagula matabwa osiyanasiyana - Discovery, ndi Mapiritsi Abuluu, komanso tchipisi tazinthu zopangira zanga. Onse anasonkhanitsa fumbi m’bokosi kwa zaka ziwiri. Nthawi zina ndimadziuza ndekha kuti: "ndi momwemo, kuyambira kumapeto kwa sabata ino ndikudziwa bwino STM," adayambitsa CubeMX, adapanga makonzedwe a SPI, ndikuyang'ana khoma la malemba, okometsera mowolowa manja ndi zolemba za STM, ndipo ndinaganiza kuti izi zinalinso mwanjira ina. zambiri.

Momwe mungawerengere ma datasheet ngati ma microcontrollers ndizomwe mumakonda

Zachidziwikire, mutha kudziwa zomwe CubeMX adalemba apa. Koma panthaΕ΅i imodzimodziyo n’zachionekere kuti kukumbukira mawu onse ndi kuwalemba pamanja n’kosatheka. Ndipo kuthetsa izi, ngati ndiiwala mwangozi kuyang'ana bokosi mu Cube, zili bwino.

Zaka ziwiri zapita, ndikunyambita milomo yanga Wopeza ST MCU kwa mitundu yonse yokoma, koma kuposa momwe ndingamvetsetse, tchipisi, ndipo mwangozi zidabwera nkhani yabwino, ngakhale za STM8. NDI mwadzidzidzi Ndinazindikira kuti nthawi yonseyi ndakhala ndikugogoda pakhomo lotseguka: zolembera za STM zimakonzedwa mofanana ndi MK ina iliyonse, ndipo Cube sikufunika kugwira nawo ntchito. Zinathekanso?..

HAL makamaka STM32CubeMX ndi chida cha mainjiniya akatswiri omwe amagwira ntchito limodzi ndi tchipisi ta STM32. Chofunikira chachikulu ndikusamuka kwakukulu, kutha kusuntha kuchokera ku MCU kupita ku ina komanso kuchokera pachimake kupita kumtundu wina, ndikukhalabe pamzere wa STM32. Ochita masewera olimbitsa thupi sakumana ndi zovuta zotere - kusankha kwathu ma microcontrollers, monga lamulo, kumangokhala ndi AliExpress assortment, ndipo nthawi zambiri timasamuka pakati pa tchipisi tosiyana kwambiri - timachoka ku Atmega kupita ku STM, kuchokera ku STM kupita ku ESP, kapena china chilichonse chatsopano mabwenzi athu aku China. ponya pa ife. HAL sikuthandiza pano, ndipo kuiphunzira kudzadya nthawi yambiri.

LL imakhalabe - koma kuchokera pamenepo kupita ku zolembera pali theka la sitepe. Payekha, ndimaona kuti kulemba ma macros anga ndi maadiresi olembetsa kumathandiza: Ndimaphunzira mosamala kwambiri, ndikuganiza zomwe ndidzafunika m'tsogolomu ndi zomwe sindidzafuna, ndimapanga mapulogalamu anga bwino, ndipo kawirikawiri, kupambana kumathandiza kuloweza pamtima.

Kuphatikiza apo, pali kachidutswa kakang'ono ndi STM32F103 yotchuka - pali mitundu iwiri yosagwirizana ya LL yake, mkulu wina wochokera ku STM, wachiwiri kuchokera ku Leaf Labs, wogwiritsidwa ntchito mu projekiti ya STM32duino. Ngati mulemba laibulale yotseguka (ndipo ndinali nayo ndendende ntchito yotere), muyenera kupanga mitundu iwiri, kapena kupeza zolembera mwachindunji.

Pomaliza, kuchotsa LL, m'malingaliro mwanga, kumathandizira kusamuka, makamaka ngati mukukonzekera kuyambira pachiyambi cha polojekiti. Chitsanzo chokokomeza: tiyeni tilembe Arduino kuphethira mu Atmel Studio popanda LL:

#include <stdint.h>

#define _REG(addr) (*(volatile uint8_t*)(addr))

#define DDR_B 0x24
#define OUT_B 0x25

int main(void)
{
    volatile uint32_t k;

    _REG(DDR_B) |= (1<<5);

    while(1)
    {
        _REG(OUT_B) |= (1<<5);
        for (k=0; k<50000; k++);
        _REG(OUT_B) &= ~(1<<5);
        for (k=0; k<50000; k++);
    } 
}

Kuti kachidindo kameneka kawonekere pa bolodi yaku China yokhala ndi STM8 (kuchokera ku ST Visual Desktop), ndikokwanira kusintha maadiresi awiri mmenemo:

#define DDR_B 0x5007
#define OUT_B 0x5005

Inde, ndimagwiritsa ntchito mbali yolumikizira LED pa bolodi inayake, idzawombera pang'onopang'ono, koma idzachitika!

Ndi mitundu yanji ya ma datasheet alipo?

M'nkhani ndi pamabwalo, onse achi Russia ndi Chingerezi, "ma datasheets" amatanthauza zolemba zilizonse zaukadaulo za tchipisi, ndipo ndimachita chimodzimodzi m'mawu awa. Mwamwayi, iwo ndi mtundu umodzi chabe wa zolembedwa zotere:

Tsamba lazambiri - Makhalidwe amachitidwe, machitidwe aukadaulo ndiukadaulo. Zovomerezeka pagawo lililonse lamagetsi. Zambiri zakumbuyo ndizothandiza kukhala nazo, koma mulibe zambiri zoti muwerenge moganizira. Komabe, tchipisi chosavuta nthawi zambiri chimakhala ndi database kuti zisatulutse zikalata zosafunikira; pamenepa Buku Lofotokozera ikuphatikizidwa pano.

Buku Lofotokozera - malangizo okha, buku lathanzi lamasamba 1000+. Ntchito ya chirichonse chomwe chadzaza mu chip chikufotokozedwa mwatsatanetsatane. Chikalata chachikulu chothandizira microcontroller. Mosiyana tsamba lazambiri, malangizo amalembedwa pamitundu yambiri ya ma MK; ali ndi zambiri zokhudzana ndi zotumphukira zomwe sizipezeka mumitundu yanu.

Buku Lopanga Mapulogalamu kapena Buku Lopanga Malangizo - malangizo amalamulo apadera a microcontroller. Zapangidwira anthu omwe amaphunzira chinenero cha Msonkhano. Olemba ma compiler amawagwiritsa ntchito mwachangu kukhathamiritsa ma code, ndiye kuti sitingafune. Koma kuyang'ana apa ndi kothandiza pakumvetsetsa bwino, pamalamulo ena enieni monga kutuluka kosokoneza, komanso kugwiritsa ntchito mwachangu debugger.

Chidziwitso cha Ntchito - malangizo othandiza kuthetsa mavuto enaake, nthawi zambiri ndi zitsanzo zama code.

Mapepala a Errata - Kufotokozera zamilandu ya machitidwe osakhazikika a chip okhala ndi njira zogwirira ntchito, ngati zilipo.

Zomwe zili mumasamba

Molunjika ku Tsamba lazambiri tingafunike zigawo zotsatirazi:

Chidule Chachipangizo - tsamba loyamba la datasheet limafotokoza mwachidule chipangizocho. Zothandiza kwambiri mukamapeza chip kwinakwake (ndachiwona m'sitolo, ndikuchigulitsa, ndidakumana nacho) ndipo ndikufuna kumvetsetsa kuti ndi chiyani.

Kufotokozera Kwambiri - kufotokozera mwatsatanetsatane za kuthekera kwa tchipisi kuchokera pamzere.

Pinouts - zojambulajambula zamitundu yonse yotheka (yomwe pini ili ndi mwendo uti).

Pin Kufotokozera - kufotokozera cholinga ndi kuthekera kwa pini iliyonse.

Mapu Oloweza - sitingafune mapu a adilesi kukumbukira, koma nthawi zina zimaphatikizansopo tebulo la ma adilesi olembetsa.

Lembani Mapu - tebulo la ma adilesi a block block, monga lamulo, lili mu datasheet, ndi mu Ref Manual - zosintha zokha (adilesi yochotsera).

Zizindikiro za Magetsi - m'gawo lino tili ndi chidwi kwambiri mtheradi pazipita mavoti, kutchula katundu wambiri pa chip. Mosiyana ndi Atmega328p yosawonongeka, ma MK ambiri samakulolani kulumikiza zolemetsa zazikulu pamapini, zomwe zimakhala zodabwitsa zosasangalatsa kwa Arduinists.

Zambiri za Phukusi - zojambula zamilandu zomwe zilipo, zothandiza popanga matabwa anu.

Buku Lofotokozera mwadongosolo zimakhala ndi zigawo zoperekedwa ku zotumphukira zomwe zasonyezedwa mumutu wawo. Mutu uliwonse ukhoza kugawidwa m'magawo atatu:

mwachidule, Introduction, Mawonekedwe - chidule cha mphamvu zotumphukira;

Kufotokozera Kantchito, Maupangiri Ogwiritsira Ntchito kapena kungoti chipika chachikulu cha gawoli - kufotokoza mwatsatanetsatane malemba a mfundo za chipangizo chozungulira ndi momwe mungagwiritsire ntchito;

Olembetsa - kufotokozera zolembera zowongolera. Muzochitika zosavuta monga GPIO kapena SPI, izi zitha kukhala zokwanira kuti muyambe kugwiritsa ntchito zotumphukira, koma nthawi zambiri muyenera kuwerenga magawo am'mbuyomu.

Momwe mungawerenge ma datasheet

Ma datasheets, mwachizolowezi, amakuwopsezani ndi kuchuluka kwawo komanso kuchuluka kwa mawu osamvetsetseka. M'malo mwake, zonse sizowopsa ngati mukudziwa ma hacks ochepa amoyo.

Khazikitsani wowerenga bwino PDF. Ma datasheets amalembedwa mwaulemerero wamalangizo a pepala; ndiabwino kusindikiza, kuyika ndi ma bookmark apulasitiki ndikusoka. Hypertext mwa iwo imawonedwa mu kuchuluka kwake. Mwamwayi, mawonekedwe a chikalatacho amapangidwa ndi ma bookmarks, kotero wowerenga woyenera ndi kuyenda kosavuta ndikofunikira kwambiri.

Tsambali si buku la Stroustrup; lili palibe chifukwa chowerenga chilichonse. Ngati mudagwiritsa ntchito upangiri wakale, ingopezani gawo lomwe mukufuna mu bar ya ma bookmark.

Datasheets, makamaka Maupangiri Othandizira, akhoza kufotokoza luso osati chip yeniyeni, koma mzere wonse. Izi zikutanthauza kuti theka, kapena magawo awiri mwa atatu a chidziwitso sichikugwirizana ndi chip yanu. Musanaphunzire zolembetsa za TIM7, fufuzani Kufotokozera Kwambiri, muli nayo?

Dziwani Chingerezi zokwanira kwa mlingo woyambira. Ma datasheets ali ndi theka la mawu osadziwika bwino kwa olankhula mbadwa, ndi theka la zolumikizira zosavuta. Palinso mapepala apamwamba achi China mu Chinese English, komwe theka lilinso mawu, ndipo theka lachiwiri ndi mawu osasinthika.

Mukakumana mawu osadziwika, musayese kumasulira pogwiritsa ntchito dikishonale ya Chingerezi-Chirasha. Ngati mwasokonezeka masokota, ndiye kumasulira "hysteresis" sikudzakupangitsani kutentha. Gwiritsani ntchito Google, Stack Overflow, Wikipedia, forums, komwe lingaliro lofunikira lidzakhala kufotokozedwa m’mawu osavuta okhala ndi zitsanzo.

Njira yabwino yomvetsetsa zomwe mukuwerenga ndi fufuzani mukuchita. Chifukwa chake, khalani ndi bolodi lowongolera lomwe mukudzidziwa bwino, kapena bwino ziwiri, ngati simunamvetsebe china chake ndikuwona utsi wamatsenga.

Ndi chizoloΕ΅ezi chabwino kusunga deta yanu yothandiza pamene muli kuwerenga phunziro la wina kapena kuphunzira laibulale ya munthu wina. Ndizotheka kuti mupeza njira yabwino kwambiri yothetsera vuto lanu mmenemo. Ndipo mosemphanitsa - ngati simungamvetse kuchokera ku database momwe kaundula amagwirira ntchito, google: nthawi zambiri, wina wafotokoza kale zonse m'mawu osavuta kapena wasiya kachidindo komveka bwino pa GitHub.

Dictionary

Mawu ena othandiza ndi zizindikiro zokuthandizani kuti muzolowere ma datasheet. Zomwe ndidakumbukira m'masiku angapo apitawa, zowonjezera ndi zowongolera ndizolandiridwa.

Magetsi
VDC, vdd - "kuphatikiza", chakudya
Ndime, Vee - "kuchotsa", dziko lapansi
panopa - panopa
Voteji - Voteji
kumira panopa - gwirani ntchito ngati "nthaka" ya katundu wakunja
ku gwero lapano - mphamvu katundu kunja
pini yakuya / source - pini yokhala ndi "kulolera" kowonjezereka kuti mutsegule

IO
H, Pamwamba - pa Vcc pini
L, Pa - pa Vss pin
Kutsekedwa Kwakukulu, Hi-Z, akuyandama - palibe kanthu pa pini, "kutsutsa kwakukulu", kumakhala kosawoneka ndi dziko lakunja.
ofooka kukokera mmwamba, ofooka kukokera pansi - chopinga chomangirira / chokokera pansi, pafupifupi chofanana ndi 50 kOhm (onani ndandanda). Amagwiritsidwa ntchito, mwachitsanzo, kuteteza pini yolowera kuti isalende mlengalenga, ndikupangitsa ma alarm abodza. Zofooka - chifukwa ndikosavuta "kumusokoneza".
kukankha kukoka - pin linanena bungwe mode, mmene kusintha pakati High ΠΈ Low - KUCHOKERA kwanthawi zonse kuchokera ku Arduino.
kutsegula kukhetsa - Mafotokozedwe a njira yotulutsa momwe pini ingakhale Low, kapena High Impedans / Kuyandama. Komanso, pafupifupi nthawi zonse uku si kukhetsa "weniweni" kotseguka; pali ma diode oteteza, zopinga, ndi zina. Izi ndizomwe zimangonena za ground/none mode.
kwenikweni kutsegula kukhetsa - koma uku ndi kukhetsa kwenikweni kotseguka: pini imatsogolera pansi ngati ili yotseguka, kapena imakhalabe mu limbo ngati yatsekedwa. Izi zikutanthauza kuti, ngati kuli kofunikira, voteji yokulirapo kuposa Vcc imatha kudutsamo, koma kuchuluka kwake kumafotokozedwabe mu datasheet mu gawoli. Mtheradi Maximum Ratings/Voltge.

Kuphatikiza
mu mndandanda - olumikizidwa mu mndandanda
ku unyolo - Sonkhanitsani tchipisi mu unyolo pogwiritsa ntchito cholumikizira cha serial, ndikuwonjezera kuchuluka kwa zotuluka.
kosangalatsa - kusuntha, nthawi zambiri kumatanthauza kusintha pang'ono. Motsatira, kusuntha mu ΠΈ kusintha - kulandira ndi kufalitsa deta pang'onopang'ono.
latch - latch yomwe imaphimba nkhokwe pomwe ma bits amasunthidwa. Kutumiza kukamalizidwa, valavu imatsegulidwa ndipo zitsulo zimayamba kugwira ntchito.
kulowa mkati - sinthani pang'onopang'ono, sinthani ma bits onse kumalo oyenera.
kawiri bafa, kaundula wa mthunzi, kaundula wa preload - mayina a mbiriyakale, pamene kaundula ayenera kuvomereza deta yatsopano, koma igwire mpaka nthawi ina. Mwachitsanzo, kuti PWM igwire ntchito moyenera, magawo ake (kuzungulira kwantchito, pafupipafupi) sayenera kusintha mpaka kuzungulira kwapano kutha, koma magawo atsopano amatha kusamutsidwa. Chifukwa chake, zomwe zaposachedwa zimasungidwa kaundula wa mthunzi, ndipo zatsopano zimagwera kaundula wa preload, kulembedwa ku kaundula wa chip wogwirizana.

Mitundu yonse ya zinthu
prescaler - pafupipafupi prescaler
kukhazikitsa pang'ono - ikani pang'ono ku 1
kuchotsa/kukonzanso pang'ono - bwererani ku 0 (bwezeretsani - Zithunzi za STM)

Chotsatira

Mwambiri, gawo lothandiza lidakonzedwa apa ndi chiwonetsero cha ma projekiti atatu pa STM32 ndi STM8, omwe adapangidwira nkhaniyi pogwiritsa ntchito zidziwitso, zokhala ndi mababu, SPI, zowerengera, PWM ndi zosokoneza:

Momwe mungawerengere ma datasheet ngati ma microcontrollers ndizomwe mumakonda

Koma pali malemba ambiri, kotero kuti ntchitozo zimatumizidwa ku gawo lachiwiri.

Luso la kuwerenga ma data adzakuthandizani pa zomwe mumakonda, koma sizingatheke kuti mulowe m'malo molankhulana ndi anzanu okonda masewera pamabwalo ndi macheza. Pazifukwa izi, mufunikabe kukonza Chingelezi chanu choyamba. Chifukwa chake, omwe adamaliza kuwerenga adzalandira mphotho yapadera: maphunziro awiri aulere ku Skyeng ndi malipiro oyamba pogwiritsa ntchito code. HABR2.

Source: www.habr.com

Kuwonjezera ndemanga