Upanuzi wa Programu ya STMicroelectronics UM3469 X-CUBE-ISO1
Utangulizi
Kifurushi cha programu ya upanuzi cha X-CUBE-ISO1 cha STM32Cube kinatumia STM32 na inajumuisha programu dhibiti ya X-NUCLEO-ISO1A1. Programu hutoa suluhisho rahisi kutumia kwa ajili ya maendeleo ya kifaa cha msingi cha PLC kilichotolewa na X-NUCLEO. Upanuzi huu umejengwa kwenye teknolojia ya programu ya STM32Cube ili kurahisisha uwezo wa kubebeka kwenye vidhibiti vidogo vya STM32 tofauti.
Programu inakuja na utekelezaji unaoendeshwa kwenye bodi ya upanuzi ya X-NUCLEO-ISO1A1 iliyounganishwa na bodi ya ukuzaji ya NUCLEO-G071RB (au ama NUCLEO-G0B1RE au NUCLEO-G070RB). Kuanzia sasa, katika hati tu NUCLEO-G071RB itatajwa kwa unyenyekevu.
Bodi ya X-NUCLEO-ISO1A1 imeundwa kusaidia uwekaji wa bodi mbili zilizo na mipangilio inayofaa ya kuruka ili kupanua uwezo wa pembejeo na pato.
Vifupisho na vifupisho
Jedwali 1. Orodha ya vifupisho
Kifupi | Maelezo |
PLC | Kidhibiti cha mantiki kinachoweza kuratibiwa |
API | Kiolesura cha programu ya programu |
PWM | Urekebishaji wa upana wa mapigo |
GPIO | Ingizo/matokeo ya madhumuni ya jumla. |
HAL | Safu ya uondoaji wa vifaa |
PC | Kompyuta ya kibinafsi |
FW | Firmware |
STM32Cube ni nini?
STM32Cube™ inawakilisha mpango wa STMicroelectronics ili kurahisisha maisha ya wasanidi programu kwa kupunguza juhudi za maendeleo, wakati na gharama. STM32Cube inashughulikia kwingineko ya STM32.
Toleo la 32.x la STM1Cube linajumuisha:
- STM32CubeMX, zana ya usanidi wa programu ya picha inayoruhusu uundaji wa msimbo wa uanzishaji wa C kwa kutumia vichawi vya picha.
- Jukwaa la kina la programu iliyopachikwa maalum kwa kila mfululizo (kama vile STM32CubeG0 kwa mfululizo wa STM32G0), unaojumuisha:
- programu ya STM32Cube HAL iliyopachikwa ya safu ya uondoaji, inayohakikisha utumiaji ulioboreshwa katika kwingineko ya STM32.
- seti thabiti ya vifaa vya kati kama vile RTOS, USB, TCP/IP na michoro
- huduma zote za programu zilizopachikwa na seti kamili ya exampchini.
Usanifu wa STM32Cube
Suluhisho la programu dhibiti ya STM32Cube limejengwa karibu na viwango vitatu huru ambavyo vinaweza kuingiliana kwa urahisi, kama ilivyoelezwa kwenye mchoro hapa chini.
Upanuzi wa programu ya X-CUBE-ISO1 kwa STM32Cube
Zaidiview
Firmware ya X-NUCLEO-ISO1A1, bodi ya upanuzi ya pembejeo/pato iliyotengwa na viwanda, iliyotengenezwa karibu na mazingira na maktaba ya STM32, hutumia MCU ya utendaji wa juu ya bodi za STM32 Nucleo ili kudhibiti pembejeo za dijiti, matokeo na uchunguzi jumuishi pamoja na kikomo cha sasa cha nguvu, na kizazi cha ishara cha PWM. Inaangazia usanidi na udhibiti kamili wa bodi, ikijumuisha mifumo ya hali chaguo-msingi na mbadala, makros ya kuweka thamani za vipimo vya awali, na ufafanuzi wa bandari na pini za GPIO.
Inasaidia s mbalimbaliampkesi za matumizi ya programu kama vile uingizaji wa kidijitali kwa uakisi wa pato, mawasiliano ya UART kupitia bodi ya Nucleo, utambuzi wa hitilafu, kesi za majaribio, na kizazi cha PWM ambacho kinaweza kutumika moja kwa moja na kinaweza kubinafsishwa na kupanuliwa kwa urahisi.
API hutoa seti thabiti ya utendakazi kwa udhibiti wa pembejeo/towe za dijiti, ugunduzi wa hitilafu, na masasisho ya hali ya ubao, pamoja na mipangilio ya usanidi ya kuendesha bodi mbili kwa wakati mmoja katika hali tofauti. Vitendaji mahususi vya API vinapatikana kwa ajili ya kuanzisha, kuanzisha, kusimamisha, na kusanidi mawimbi ya PWM kwa chaneli za kutoa matokeo kidijitali.
Kifurushi cha usaidizi wa bodi kinajumuisha vitendaji vya kudhibiti na kufuatilia pini za GPIO zilizounganishwa na IPS1025H-32 na kusoma hali ya pini za GPIO zilizounganishwa na CLT03-2Q3 kupitia kitenga cha dijitali.
Usanidi na uanzishaji unatokana na STM32CubeMX, ikiwa na uundaji na utatuzi unaoungwa mkono na zana za STM32CubeIDE, IAR Systems na Keil®.
Usanifu
Firmware ya X-NUCLEO-ISO1A1 inaweza kugawanywa katika vizuizi kadhaa tofauti vya kazi, kila moja inawajibika kwa nyanja mbali mbali za shughuli za mfumo:
- Usanidi na Udhibiti wa Bodi:
- Bodi_config.h file ina makro ili kusanidi ubao ili kuendeshwa katika hali chaguo-msingi au mbadala, au zote mbili. Pia inajumuisha ufafanuzi wa thamani za vipimo vya awali na bandari na pini za GPIO.
- Kizuizi hiki kinahakikisha kuwa ubao umewekwa kwa usahihi kwa hali inayohitajika ya kufanya kazi na kwamba usanidi wote muhimu wa vifaa umewekwa.
- Kesi za Matumizi ya Maombi:
- The st_iso_app.h na st_iso_app.c files vyenye kesi za matumizi ya programu iliyoundwa kujaribu utendakazi mbalimbali wa bodi.
- Matukio haya ya utumiaji yanajumuisha ingizo la kidijitali kwa uakisi wa matokeo, majaribio ya kugundua hitilafu, na kuzalisha mawimbi ya PWM.
- Exampusanidi wa le hutolewa kwa kuendesha bodi mbili kwa wakati mmoja katika hali tofauti, kuonyesha uhodari na unyumbufu wa firmware.
- Kazi za API:
- The iso1a1.h na iso1a1.c files hutoa seti ya kina ya API ili kusaidia utendakazi mbalimbali.
- API hizi ni pamoja na utendakazi wa udhibiti wa pembejeo/towe dijitali, utambuzi wa hitilafu na masasisho ya hali ya ubao.
- API zimeundwa kuwa rahisi na angavu, na kuifanya iwe rahisi kwa watumiaji kuingiliana na bodi na kufanya shughuli zinazohitajika.
- Udhibiti wa Mawimbi ya PWM:
- Pwm_api.h na pwm_api.c files zina vitendaji maalum vya API vinavyohusiana na utengenezaji wa mawimbi ya PWM.
- Vitendaji hivi huruhusu kuanzisha, kusanidi, kuanzisha na kusimamisha mawimbi ya PWM kwa chaneli za utoaji wa dijitali.
- Utendaji wa PWM sio chaguo-msingi. Mipangilio ya bodi imerekebishwa ili kuwezesha haya. Rejelea Sehemu ya 3.5: API kwa maelezo zaidi.
- Kifurushi cha Usaidizi wa Bodi:
- Kifurushi cha usaidizi wa bodi kinajumuisha files kwa ajili ya kudhibiti na kufuatilia pini za GPIO zilizounganishwa na IPS1025H-32 na kusoma hali ya pini za GPIO zilizounganishwa na CLT03-2Q3.
- IPs1025h_32.h na ips1025h_32.c files hutoa utendakazi ili kuweka, kufuta, na kugundua hitilafu kwenye pini za GPIO zilizounganishwa na IPS1025H-32.
- The clt03_2q3.h na clt03_2q3.c files hutoa vitendaji ili kusoma hali ya pini za GPIO zilizounganishwa na CLT03-2Q3.
Firmware ya maonyesho hutekelezea matukio kadhaa rahisi ya utumiaji ili kuonyesha uwezo wa mfumo. Kesi hizi za utumiaji na API za watumiaji hutekelezwa kwa njia iliyoratibiwa ili kuhakikisha utendakazi mzuri na matokeo sahihi. Usanifu umeundwa ili upanuliwe kwa urahisi, kuruhusu watumiaji kuongeza vipengele vipya na kutumia kesi kama inahitajika. Usanidi chaguo-msingi umetolewa kwa ajili ya kuendesha bodi moja yenye IO za kidijitali za viwanda. Mpangilio wa kirukaji unahitajika pia kuwa katika modi chaguo-msingi kama ilivyofafanuliwa katika Jedwali 2. Ingizo la kidijitali Uakisishaji wa kidijitali (DIDO) ndio utumizi wa programu dhibiti chaguo-msingi.
Muundo wa folda
Folda zifuatazo zimejumuishwa kwenye kifurushi cha programu:
- Hati ina HTML iliyokusanywa file inayotokana na msimbo wa chanzo, inayoelezea vipengele vya programu na API.
- Madereva yana:
- folda ya STM32Cube HAL, iliyoko kwenye folda ndogo za STM32G0xx_HAL_Driver. Haya files hazijaelezewa hapa kwani sio mahususi kwa programu ya X-CUBE-ISO1 lakini huja moja kwa moja kutoka kwa mfumo wa STM32Cube.
- folda ya CMSIS ambayo ina kiwango cha kusano ya programu ya Cortex® microcontroller files kutoka Arm. Haya files ni safu ya uondoaji ya maunzi isiyojitegemea kwa muuzaji kwa mfululizo wa kichakataji cha Cortex®-M. Folda hii pia huja bila kubadilika kutoka kwa mfumo wa STM32Cube.
- folda ya BSP iliyo na misimbo ya vipengele IPS1025H-32 na CLT03-2Q3 na API zinazohusiana na X-NUCLEO-ISO1A1.
- Programu ina folda ya mtumiaji ambayo ina main.c file, kesi ya matumizi ya maombi file, st_iso_app.c na bodi_config.h file, zinazotolewa kwa ajili ya jukwaa la NUCLEO-G071RB.
Folda ya BSP
Programu ya X-CUBE-ISO1 hutumia sehemu mbili tofauti files, ambazo ziko ndani ya BSP/Components:
IPS1025
IPs1025h_32.h na ips1025h_32.c files hutoa utekelezaji wa kina wa kiendeshi kwa pini za GPIO zilizounganishwa na IPS1025H-32, ikijumuisha utendakazi kamili wa kudhibiti pini zote na kugundua hitilafu. Haya files kutekeleza vitendaji vya kuanzisha kifaa, kuweka na kufuta hali ya kituo, kugundua hali ya hitilafu, na kudhibiti utendakazi wa PWM. Dereva huauni vifaa na chaneli nyingi, zenye uwezo kamili kwa chaneli ya mtu binafsi au kama kikundi.
CLT03
The clt03_2q3.h na clt03_2q3.c files kutekeleza kiendeshi kilichoangaziwa kikamilifu kwa pini za GPIO zilizounganishwa na CLT03-2Q3, zenye uwezo kamili wa kusoma hali zote za pini. Dereva hutoa vitendaji ili kuanzisha kifaa, kusoma hali ya kituo mahususi, na kupata taarifa ya hali ya chaneli zote kwa wakati mmoja. Inaauni usanidi wa vifaa vingi na kudumisha hali ya ndani kwa usimamizi mzuri wa kituo.
API za programu za X-CUBE-ISO1 zimegawanywa katika vyanzo viwili vikuu files, ambazo ziko ndani ya folda ndogo ya ISO1A1:
ISO1A1
Mfumo wa ISO1A1 files inajumuisha seti ya kina ya vitendaji vya API iliyoundwa kwa usanidi wa bodi, mwingiliano wa sehemu, na udhibiti wa makosa. Vitendo hivi hurahisisha shughuli za kusoma na kuandika, kugundua kasoro na masasisho, na hujumuisha huduma mbalimbali za usaidizi ili kusaidia vipengele msingi vya API. Kwa kuongeza, filehutoa utendakazi kwa udhibiti wa LED, uanzishaji wa GPIO, ushughulikiaji wa kukatiza, na mawasiliano ya UART.
API ya PWM
API ya PWM hutoa vitendaji vya kuanzisha, kusanidi, kuanzisha na kusimamisha ishara za PWM. Inaruhusu kuweka mzunguko wa PWM na mzunguko wa wajibu kwa pini maalum za kipima muda, kuhakikisha udhibiti sahihi juu ya uendeshaji wa PWM.
Folda ya programu
Folda ya Maombi ina kuu fileinahitajika kwa firmware, pamoja na vichwa na chanzo files. Chini ni maelezo ya kina ya files kwenye folda hii:
- board_config.h: Makro ya usanidi kwa ubao.
- main.c: Programu kuu (msimbo wa example ambayo inategemea maktaba ya ISO1A1).
- st_iso_app.c: Utendakazi wa maombi ya majaribio ya ubao na usanidi.
- stm32g0xx_hal_msp.c: Utaratibu wa uanzishaji wa HAL.
- stm32g0xx_it.c: Kidhibiti cha kukatiza.
- syscalls.c: Utekelezaji wa simu za mfumo.
- sysmem.c: Usimamizi wa kumbukumbu ya mfumo.
- system_stm32g0xx.c: Kuanzisha mfumo.
Rasilimali zinazohitajika za programu
Kifaa cha Nucleo hudhibiti na kuwasiliana na bodi ya X-NUCLEO-ISO1A1 kupitia GPIO. Hii inahitaji matumizi ya GPIO kadhaa kwa pembejeo, pato, na ugunduzi wa hitilafu wa vifaa vya viwanda vya IO vilivyomo kwenye ubao wa X-NUCLEO-ISO1A1. Rejelea mwongozo wa mtumiaji wa maunzi UM3483 kwa maelezo zaidi na usanidi wa jumper.
Usanidi wa bodi (board_config.h)
Bodi_config.h file inafafanua rasilimali zinazotumiwa na macros ya usanidi ili kusanidi programu kulingana na usanidi wa bodi. Inashughulikia hadi bodi mbili (kama vile kuweka kwa bodi mbili).
Usanidi wa programu DEFAULT umeambatanishwa na ubao wa upanuzi wa X-NUCLEO-ISO1A1 na virukaji vyake katika nafasi chaguomsingi. Ili kusanidi programu ya X-NUCLEO-ISO1A1 katika mpangilio wake chaguomsingi, toa maoni yako BOARD_ID_DEFAULT macro katika board_config.h file.
Usanidi wa programu ALTERNATE umewekwa kwa kutoa maoni juu ya BOARD_ID_ALTERNATE makro katika board_config.h file na kubadilisha nafasi za jumper kwenye ubao.
Ili kutumia vibao viwili kwa wakati mmoja katika usanidi wa mrundikano, toa maoni kwenye makro BOARD_ID_DEFAULT na BOARD_ID_ALTERNATE na uhakikishe virukaji vya bodi moja viko katika nafasi chaguomsingi na nyingine katika nafasi mbadala. Kumbuka kuwa kuwa na bodi zote mbili katika usanidi sawa (ama zote kwa chaguo-msingi au zote mbili kwa mbadala) hakupendekezwi na kunaweza kusababisha tabia isiyohitajika.
Unapoendesha bodi moja tu, hakikisha kuwa programu imesanidiwa kwa usanidi mmoja tu na jumla inayolingana na usanidi mwingine inatolewa maoni.
Vipimo vya awali
Tunaweza kusanidi thamani za kiboreshaji awali katika board_config.h ili kufikia masafa tofauti ya masafa ya pato la PWM kwa kuweka makro zinazofaa. Ili kutumia thamani ya awali ya kipimo, toa maoni kwa jumla inayolingana na utoe maoni kwa wengine. Kwa chaguo-msingi, DEFAULT_PRESCALAR inatumika.
- PRESCALER_1
- PRESCALER_2
- DEFAULT_PRESCALER
Thamani za kihesabu mapema hutumika tu wakati vipima muda vinatumika, na hazihitajiki kwa operesheni yoyote ya msingi ya I/O. Thamani za macros za awali na safu zao za mzunguko zinazolingana zinaweza kutazamwa katika hati za msimbo au katika msimbo yenyewe.
Mapigo ya moyo ya LED
Tunaweza kusanidi LED ya mtumiaji wa kijani kibichi, D7 kufumba na kufumbua kwa mtindo wa mpigo wa moyo kama jaribio la muunganisho unaofaa kwenye ubao wa NUCLEO-G071RB. Jumla, HEARTBEAT_LED inapotolewa maoni, huwaka taa ya kijani kibichi kwenye X-NUCLEO-ISO1A1 inapounganishwa kwenye NUCLEO. Inasalia kwa sekunde 1 na kuzima kwa sekunde 2, na muda hutunzwa na vipima muda. Wakati haijatumiwa au kazi yoyote inayohusisha LEDs kuitwa, macro inapaswa kutotolewa maoni.
Ingizo na towe usanidi wa GPIO
Kila bodi ya X-NUCLEO-ISO1A1 ina bandari mbili za pembejeo na bandari mbili za pato. Uwezo wa bodi unaweza kupanuliwa kwa kuweka mbao mbili za X-NUCLEO-ISO1A1 juu ya nyingine, na hivyo kuwezesha matumizi ya bandari nne za pembejeo za kidijitali na bandari nne za matokeo ya kidijitali. Programu iliyotolewa inajumuisha API za kina ambazo hurahisisha usomaji, kuweka na kusafisha milango. Zaidi ya hayo, API huruhusu mpangilio, usomaji au uondoaji wa milango yote kwa wakati mmoja. Maelezo ya kina kuhusu utendakazi wa API yanapatikana katika hati za msimbo na pia katika sehemu ya API ya waraka huu.
Hapa kiambishi awali DI kinaonyesha bandari ya ingizo ya dijiti na DO inaonyesha bandari ya pato la dijiti. Kwa usanidi mbadala, programu hutumia kanuni sawa za kutaja na kiambishi tamati cha _alt.
Jedwali lifuatalo linaelezea macros ya GPIO iliyofafanuliwa katika programu inayolingana na bandari mbalimbali za IO:
Jedwali 2. GPIO zilizotengwa kwa ajili ya usanidi Chaguomsingi na mbadala wa programu
Jina | Kazi | Usanidi chaguo-msingi | Usanidi mbadala |
PIN YA WEKA | Pini ya kuingiza 1 | GPIOC, IA0_IN_1_PIN | GPIOD, IA0_IN_1_PIN |
Pini ya kuingiza 2 | GPIOD, IA1_IN_2_PIN | GPIOC, IA1_IN_1_PIN | |
PIN YA KUTOA | Pini ya pato 1 | GPIOC, QA0_CNTRL_1_PIN | GPIOD, QA0_CNTRL_1_PIN |
Pini ya pato 2 | GPIOC, QA1_CNTRL_2_PIN | GPIOC, QA1_CNTRL_2_PIN | |
PIN YA KOSA | Pini ya makosa 1 | GPIOC, FLT1_QA0_2_OT_PIN | GPIOD, FLT1_QA0_1_OT_PIN |
Pini ya makosa 2 | GPIOC, FLT2_QA0_2_OL_PIN | GPIOD, FLT2_QA0_1_OL_PIN | |
Pini ya makosa 3 | GPIOC, FLT1_QA1_2_OT_PIN | GPIOC, FLT1_QA1_1_OT_PIN | |
Pini ya makosa 4 | GPIOC, FLT2_QA1_1_OL_PIN | GPIOD, FLT2_QA1_2_OL_PIN | |
CONFIGURATION MACRO | BOARD_ID_DEFAULT | BOARD_ID_ALTERNATE |
Vipima muda na PWM
Vipima muda vinaweza kutumika katika programu dhibiti ya X-CUBE-ISO1 kutengeneza mawimbi ya PWM kwa pini mahususi. Kwa chaguo-msingi, vipima muda hazianzishwi isipokuwa TIM3. Vipima muda vinavyohusika vinapaswa kuanzishwa kabla ya kutoa mawimbi ya PWM na milango ya pato husika lazima ianzishwe katika hali ya PWM.
Kwa shughuli za kawaida za pembejeo/towe za GPIO, hakuna haja ya kusanidi kipima saa au mlango wa pato, kwani hutunzwa kwa chaguomsingi. Walakini, ikiwa pini za pato zikiwekwa katika modi ya PWM, tunahitaji kuzisanidi upya katika modi ya GPIO ili zitumike kama pini za GPIO.
Kumbuka: Wakati pini za pato zinatumiwa kwa uzalishaji wa PWM, pato la GPIO limezimwa, utendakazi zote mbili haziwezi kutekelezwa kwa wakati mmoja. Ili kuwezesha tena GPIO baada ya matumizi ya PWM, mtu anaweza kuita API chaguo ST_ISO_BoardConfigureDefault() au ST_ISO_InitGPIO() ili kusanidi milango yote kama GPIO mara moja au ST_ISO_Init_GPIO() na lango na pini fulani ya GPIO.
Kama ilivyoelezwa hapo juu, programu pia hutumia kipima saa kimoja kwa chaguo-msingi, TIM3, ambacho hutumika kwa muda wa matumizi ya LED, saa, na utekelezaji wa muda wa UART. Imesanidiwa kwa muda wa sekunde 1 kwa chaguo-msingi.
Jedwali lifuatalo linaelezea vipima muda vinavyopatikana kwa kila pini kwenye msimbo wetu:
Jedwali 3. Vipima muda vinapatikana kwa kila pini
Bandika jina | Uwakilishi wa programu | Kipima muda | Kituo cha kipima muda | Chaguo mbadala |
QA0_CNTRL_1_PIN | QA_0 | TIM2 | TIM_CHANNEL_4 | GPIO_AF2_TIM2 |
QA1_CNTRL_2_PIN | QA_1 | TIM1 | TIM_CHANNEL_3 | GPIO_AF2_TIM1 |
QA0_CNTRL_2_PIN | QA_0_ALT | TIM1 | TIM_CHANNEL_4 | GPIO_AF2_TIM1 |
QA1_CNTRL_1_PIN | QA_1_ALT | TIM17 | TIM_CHANNEL_1 | GPIO_AF2_TIM17 |
Huduma za ziada za firmware
Firmware inajumuisha huduma za ziada ili kuboresha utendakazi wa bodi ya tathmini ya X-NUCLEO-ISO1A1. Baadhi yao ni ilivyoelezwa hapa chini.
UART
Kipengele cha mawasiliano cha UART huruhusu ufuatiliaji na utatuzi wa wakati halisi wa hali ya bodi kupitia huduma za Kompyuta kama vile TeraTerm, PuTTY na programu zingine zinazofanana. Programu huwezesha utumaji data wa UART kupitia UART iliyopo kwenye ubao wa NUCLEO-G071RB. Chaguo za kukokotoa za `ST_ISO_UART` hutuma maelezo ya kina ya hali ya ubao kupitia UART, ikijumuisha muda wa kusasisha mfumo, usanidi wa programu dhibiti na hali ya hitilafu. Data hii inaweza kuwa viewed kutumia programu yoyote ya serial ya bandari, kama vile TeraTerm. Chaguo za kukokotoa za `ST_ISO_APP_DIDOandUART` huchanganya shughuli za ingizo/towe za dijitali na mawasiliano ya UART, kusambaza hali ya chaneli zote za ingizo na utoaji kwa vipindi maalum. Chini ni mipangilio ya usanidi na kamaample ya jinsi data inavyoonekana katika TeraTerm. Jina la mlango linaweza kutofautiana kulingana na mfumo na mlango wa mfululizo unaotumika.
Usanidi wa modi ya pini ya IO
Huduma ya usanidi wa modi ya pini ya IO inaruhusu watumiaji kuweka milango ya ingizo na pato ya ubao kwa kutumia kitendakazi cha ST_ISO_BoardConfigure(). Chaguo hili la kukokotoa linaauni kusanidi milango miwili ya pato (QA0, QA1) na milango miwili ya ingizo (IA0, IA1) kwa modi ya Ingizo/Inatoa, modi ya pato ya PWM, au modi ya Kukatiza ingizo. Kwa kurekebisha vigezo na kuita chaguo hili, watumiaji wanaweza kubinafsisha kwa urahisi usanidi wa IO wa bodi ili kukidhi mahitaji maalum.
Katika modi ya Kuingiza/Inatoa, huduma huanzisha pini za GPIO kwa shughuli za kidijitali zenye madhumuni ya jumla. Katika hali ya kutoa matokeo ya PWM, huweka vipima muda kwa udhibiti sahihi wa mawimbi ya PWM. Ikiwa katika modi ya Kukatiza ingizo, matumizi husanidi pini ili kushughulikia ukatizaji, kuruhusu uratibu wa matukio unaoendeshwa na matukio.
Kukatiza ushughulikiaji
Kwa kushughulikia mawimbi ya FAULT, programu huwezesha njia zinazohusiana za kukatiza, kuruhusu uratibu wa matukio unaoendeshwa na matukio. Kidhibiti kilichogeuzwa kukufaa kinaweza kuhusishwa na ukatizaji huu kupitia
HAL_GPIO_EXTI_Rising_Callback kazi imefafanuliwa katika API. Programu inajumuisha vipengele vya kuanzisha pini za GPIO katika hali ya kukatiza kupitia ST_ISO_BoardConfigure kazi ya kukokotoa na kusanidi vitendo maalum katika vishikizi vya EXTI IRQ. Hii inaruhusu watumiaji kubinafsisha jinsi bodi inavyojibu matukio ya nje, kuhakikisha kuwa inaweza kudhibiti kwa ufanisi hali mbalimbali za hitilafu na vichochezi.
API
API ya programu ya X-CUBE-ISO1 hutoa seti ya utendakazi wa kina ili kudhibiti na kufuatilia bodi ya X-NUCLEO-ISO1A1, ikijumuisha uzalishaji wa mawimbi ya PWM na uendeshaji wa GPIO. API imeundwa kuwa rahisi kutumia na kuunganishwa katika programu mbalimbali, kutoa kubadilika na kudhibiti utendakazi wa bodi.
API ya programu ya X-CUBE-ISO1 imefafanuliwa kwenye folda ya BSP/ISO1A1. Utendakazi wake hutanguliwa na ST_ISO. API inayoonekana kwa programu kupitia iso1a1.c na pwm_api.c files ni mchanganyiko wa vidhibiti, miundo ya data na vitendaji.
Sample firmware applications hutumia API hizi kuonyesha baadhi ya matumizi yanayowezekana ya vipengele hivi.
Kifurushi cha programu cha X-CUBE-ISO1 hutoa seti mbili za API:
- ISO1A1 API
- API ya PWM
ISO1A1 API
API ya ISO1A1 imefafanuliwa katika iso1a1.h na iso1a1.c files. Inatoa vipengele vya kusanidi na kudhibiti ubao wa ISO1A1, ikijumuisha utendakazi wa pembejeo/towe wa GPIO na ugunduzi wa hitilafu.
Vipengele muhimu
- ST_ISO_BoardConfigureDefault: Inasanidi bandari za IO za bodi na usanidi chaguo-msingi wa GPIO.
- ST_ISO_BoardConfigure: Inasanidi modi ya milango ya kuingiza na kutoa kwa ubao.
- ST_ISO_BoardInit: Huanzisha maunzi ya ubao.
- ST_ISO_BoardMapInit: Huanzisha utendakazi wa bodi kulingana na usanidi wa vishikio vya kituo.
- ST_ISO_GetFWVersion: Hurejesha toleo la sasa la programu dhibiti.
- ST_ISO_GetChannelHandle: Hurejesha kishiko cha kituo kwa jina mahususi la kituo.
- ST_ISO_InitGPIO: Huanzisha pin maalum ya GPIO na kitambulisho cha sehemu uliyopewa.
- ST_ISO_InitInterrupt: Huanzisha pin maalum ya GPIO kama kukatiza kwa kitambulisho cha sehemu uliyopewa.
- ST_ISO_EnableFaultInterrupt: Huanzisha pini zenye hitilafu za GPIO katika hali ya kukatiza.
- ST_ISO_SetChannelStatus: Huweka hali ya kituo maalum.
- ST_ISO_SetOne_DO: Huweka chaneli moja ya utoaji wa dijiti.
- ST_ISO_ClearOne_DO: Hufuta chaneli moja ya utoaji wa dijiti.
- ST_ISO_WriteAllChannels: Huandika data kwa chaneli zote za utoaji wa kidijitali.
- ST_ISO_GetOne_DI: Hupata hadhi ya chaneli moja ya kidijitali ya ingizo.
- ST_ISO_ReadAllChannel: Husoma hali ya vituo vyote vya kuingiza sauti.
- ST_ISO_ReadAllOutputChannel: Husoma hali ya vituo vyote vya kutoa.
- ST_ISO_ReadFaultStatus: Husoma hali ya hitilafu kutoka kwa milango yote ya kugundua hitilafu.
- ST_ISO_ReadFaultStatusPolling: Hujaribu ugunduzi wa makosa ya bodi katika modi ya kupigia kura.
- ST_ISO_DisableOutputChannel: Huzima utoaji wa kituo hicho.
- ST_ISO_UpdateBoardStatusInfo: Inasasisha maelezo ya hali ya bodi.
- ST_ISO_UpdateFaultStatus: Husasisha hali ya hitilafu ya kituo mahususi.
- ST_ISO_BlinkLed: Hupepesa LED iliyobainishwa kwa ucheleweshaji fulani na hesabu ya kurudia.
- ST_ISO_UART: Hutuma maelezo ya hali ya bodi kupitia UART.
- ST_ISO_SwitchInit: Huanzisha vipengele vya kubadili.
- ST_ISO_SwitchDeInit: Huanzisha mfano wa kubadili.
- ST_ISO_DigitalInputInit: Huanzisha vipengele vya ingizo dijitali.
- ST_ISO_DigitalInputDeInit: Huanzisha mfano wa ingizo dijitali.
API ya PWM
API ya PWM imefafanuliwa katika pwm_api.h na pwm_api.c files. Inatoa kazi zifuatazo ili kuanzisha na kudhibiti ishara za PWM kwa pini maalum.
- ST_ISO_Init_PWM_Signal: Huanzisha vipima muda na pini mahususi kwa mawimbi ya PWM.
- ST_ISO_Set_PWM_Frequency: Huweka marudio ya PWM kwa pini mahususi.
- ST_ISO_Set_PWM_Duty_Cycle: Huweka mzunguko wa wajibu wa PWM kwa pini mahususi.
- ST_ISO_Start_PWM_Signal: Huanzisha mawimbi ya PWM kwenye pini mahususi.
- ST_ISO_Stop_PWM_Signal: Husimamisha mawimbi ya PWM kwenye pini mahususi.
Ili kuanzisha mawimbi ya PWM kwenye chaneli husika, kwanza piga simu ST_ISO_Init_PWM_Signal, kisha weka mzunguko unaotaka na mzunguko wa wajibu kwa kupiga ST_ISO_Set_PWM_Frequency na.
ST_ISO_Set_PWM_Duty_Cycle kazi kwa mtiririko huo na kisha unaweza kuanza ishara ya PWM kwa kupiga ST_ISO_Start_PWM_Signal kazi na kuacha kwa kupiga ST_ISO_Stop_PWM_Signal.
Kazi inahitaji kuitwa kwa jina la pini linalofanana na muda unaopatikana, maelezo ambayo yametolewa katika jedwali la 3. Njia tofauti za pato zinaweza kuanzishwa na mzunguko tofauti na mzunguko wa wajibu; kubadilisha mzunguko au mzunguko wa wajibu hauathiri nyingine, inabakia sawa.
Maelezo ya kina ya kiufundi kuhusu API zinazopatikana kwa mtumiaji yanaweza kupatikana katika HTML iliyokusanywa file iko ndani ya folda ya "Nyaraka" ya kifurushi cha programu ambapo kazi zote na vigezo vinaelezwa kikamilifu.
Maelezo ya maombi
Maombi ya onyesho hutekelezea kesi kadhaa rahisi za utumiaji. st_iso_app na board_config files ina jukumu muhimu katika kuanzisha na kutumia bodi na kazi zake za matumizi. Kabla ya kutumia vipengele hivi hakikisha ubao na usanidi wa programu unasawazishwa.
Kazi za Programu (st_iso_app.h na st_iso_app.c)
Vitendaji vya programu vimeainishwa na ST_ISO_APP; ni vitendakazi vya kiwango cha juu vinavyoonekana kwa mtumiaji ambavyo huita vitendaji vya API kwa utekelezaji wake. Vitendaji vya maombi vinaweza kuitwa katika main.c file kwa utendaji kazi wao.
- Tumia Uteuzi wa Kesi: Mtumiaji anaweza kubatilisha maoni ya kesi kubwa ya matumizi katika st_iso_app.c file. Chaguo za kukokotoa ST_ISO_APP_SelectUseCaseMacro(), inayoitwa main.c, huanzisha hali hiyo ya matumizi, na chaguo za kukokotoa ST_ISO_APP_SelectedFunction() huitekeleza katika main.c. Mbinu hii inaruhusu usanidi rahisi wa hali ya kufanya kazi kwa kurekebisha tu ufafanuzi wa jumla, kuhakikisha kuwa utendakazi unaofaa unatekelezwa kulingana na kesi iliyochaguliwa ya utumiaji. Kwa chaguo-msingi, hali ya matumizi ya DIDO imechaguliwa, na si lazima mtumiaji afanye mabadiliko yoyote kwenye msimbo ili kuitekeleza.
- Ingizo la Kidijitali kwa Uakisishaji wa Pato Dijitali (ST_ISO_APP_UsecaseDIDO): Chaguo hili la kukokotoa husoma hali ya vituo vyote vya kuingiza sauti na kuandika hali sawa kwa vituo vyote vya kutoa. Ni muhimu kwa kuakisi pembejeo za dijiti kwa matokeo ya kidijitali.
- Ingizo la Kidijitali kwa Uakisishaji wa Matokeo ya Dijitali kwa kutumia UART (ST_ISO_APP_DIDOandUART): Chaguo hili la kukokotoa linaakisi ingizo za kidijitali kwa matokeo ya dijitali, sawa na chaguo za kukokotoa za ST_ISO_APP_UsecaseDIDO. Zaidi ya hayo, hupitisha hali ya bodi kupitia kiolesura cha UART kwenye kifaa cha Nucleo, kuruhusu hali kuwa. viewed kwenye bandari ya serial kwa kutumia programu kama Tera Term.
- Utendakazi wa Uchunguzi (ST_ISO_APP_TestCase): Chaguo hili la kukokotoa hutekeleza mfululizo wa majaribio na vitendo kulingana na usanidi wa ubao. Hukagua hali ya hitilafu, husoma hali ya njia mbili za kuingiza data za kidijitali, na kufanya vitendo kulingana na thamani zao. Chaguo hili la kukokotoa husaidia katika kutathmini utendakazi na utendakazi wa bodi kwa haraka na kupata maoni ya kuona kupitia ruwaza tofauti za LED. Hakikisha HEARTBEAT_LED makro katika board_config.h file inatolewa maoni ili kuchunguza mifumo sahihi ya LED.
- Kizazi cha PWM (ST_ISO_APP_PWM _OFFSET): Chaguo hili la kukokotoa huanzisha mawimbi ya PWM kwenye chaneli zote mbili za kutoa na mzunguko wa Hz 1 na mzunguko wa wajibu 50%. Huanzisha ishara ya PWM, huweka mzunguko na mzunguko wa wajibu, na kuanza ishara ya PWM kwa kitambulisho cha bodi maalum. Ishara ya PWM inatolewa kwa kukabiliana kati ya chaneli zote mbili na kwa hivyo haziko katika awamu.
- Jaribio la Kugundua Hitilafu (ST_ISO_APP_FaultTest): Chaguo hili la kukokotoa hutathmini ugunduzi wa hitilafu kwa kuendesha pini za utambuzi zilizojengwa ndani za moduli mahiri ya IPS1025. katika hali ya upigaji kura au kukatiza. Husanidi modi ya kugundua hitilafu, huanzisha utambuzi wa hitilafu, na kusasisha muundo wa hali ya hitilafu kulingana na hali iliyochaguliwa. Kazi hii ni muhimu kwa kuhakikisha kutegemewa na usalama wa bodi kwa kugundua na kushughulikia makosa kwa ufanisi. Inapokuwa katika hali ya upigaji kura, hali ya hitilafu inasasishwa kila sekunde kwa usaidizi wa kipima muda na huonyeshwa katika muundo defaultBoardFaultStatus au alternateBoardFaultStatus. Inapokuwa katika hali ya kukatiza, hali ya hitilafu inasasishwa tu wakati kosa linatokea, na inasababisha programu kufuta mlango wa pato unaofanana.
- Jaribio la Kutofautisha la PWM (ST_ISO_APP_PwmVariationTest): Chaguo hili la kukokotoa limeundwa ili kujaribu utofauti wa mawimbi ya PWM (Urekebishaji wa Upana wa Pulse) kwenye chaneli tofauti za kutoa kulingana na usanidi wa ubao. Huanzisha mawimbi ya PWM kwa usanidi chaguo-msingi na mbadala wa bodi, ikiweka masafa ya Hz 100 na mzunguko wa awali wa wajibu hadi 0%. Kisha kipengele cha kukokotoa hubadilisha mzunguko wa wajibu kutoka 0% hadi 100% katika nyongeza za 5%, na kurudi kutoka 100% hadi 0% kwa upungufu wa 5%, na kuchelewa kwa sekunde 2 kati ya kila hatua. Tofauti hii inayodhibitiwa inaruhusu uchunguzi na tathmini ya tabia ya mawimbi ya PWM kwenye chaneli QA_0 na QA_1 kwa ubao chaguomsingi, na QA_0_ALT na QA_1_ALT kwa ubao mbadala.
Kwa kufuata usanidi huu na kutumia vipengele vya programu vilivyotolewa, unaweza kusanidi na kutumia vyema ubao wa X-NUCLEO-ISO1A1 kwa matukio mbalimbali ya matumizi ya maonyesho.
Mwongozo wa kuanzisha mfumo
Maelezo ya vifaa
Jukwaa la nyuklia la STM32
Vibao vya ukuzaji vya Nucleo vya STM32 hutoa njia ya bei nafuu na rahisi kwa watumiaji ya kujaribu suluhu na kuunda prototypes kwa kutumia laini yoyote ya udhibiti mdogo wa STM32.
Usaidizi wa muunganisho wa Arduino® na viunganishi vya ST morpho hurahisisha kupanua utendakazi wa jukwaa la uendelezaji huria la STM32 Nucleo na bodi mbalimbali maalum za upanuzi za kuchagua.
Ubao wa Nucleo wa STM32 hauhitaji uchunguzi tofauti kwani huunganisha kitatuzi/kipanga programu cha ST-LINK/V2-1.
Ubao wa STM32 Nucleo unakuja na maktaba ya kina ya programu ya STM32 HAL pamoja na programu mbalimbali za zamani.ampchini.
Taarifa kuhusu bodi ya STM32 Nucleo inapatikana kwa www.st.com/stm32nucleo
Bodi ya upanuzi ya X-NUCLEO-ISO1A1
X-NUCLEO-ISO1A1 ni bodi ya tathmini iliyo na pembejeo/matokeo ya viwandani yaliyotengwa iliyoundwa ili kupanua bodi ya Nucleo ya STM32 na kutoa utendakazi wa micro-PLC. Mbao mbili za X-NUCLEO-ISO1A1 zinaweza kupangwa pamoja juu ya ubao wa STM32 Nucleo na uteuzi ufaao wa virukaji kwenye ubao wa upanuzi ili kuepusha migongano katika violesura vya GPIO. Vitenganishi vya dijiti vilivyoidhinishwa vya UL1577 STISO620 na STISO621 vinatoa utengano kati ya vipengele vya upande wa mantiki na mchakato. Pembejeo mbili za sasa za upande wa juu kutoka upande wa mchakato hufikiwa kupitia CLT03-2Q3. CLT03-2Q3 hutoa ulinzi, kutengwa, na ashirio la hali ya kutokuwa na nishati kwa hali ya viwanda, iliyoundwa kukidhi viwango kama vile IEC61000-4-2, IEC61000-4-4, na IEC61000-4-5. Kila moja ya swichi za upande wa juu IPS1025H-32/HQ-32 hutoa pato lililolindwa hadi 5.6 A ikiwa na uchunguzi na vipengele mahiri vya kuendesha. Hizi zinaweza kuendesha mizigo ya capacitive, resistive, au inductive. X-NUCLEO-ISO1A1 inaruhusu tathmini ya haraka ya IC za ndani kwa kutumia kifurushi cha programu cha X-CUBE-ISO1.
Mpangilio wa vifaa
Vipengele vifuatavyo vya vifaa vinahitajika:
- Jukwaa moja la ukuzaji la STM32 Nucleo (msimbo wa agizo uliopendekezwa: NUCLEO-GO71RB)
- Bodi moja ya upanuzi wa pato la dijiti viwandani (msimbo wa agizo: X-NUCLEO-ISO1A1)
- Kebo moja ya USB ya aina A hadi Ndogo ya USB ili kuunganisha Nucleo ya STM32 kwenye Kompyuta
- Ugavi wa umeme wa nje (24 V) na nyaya zinazohusiana ili kusambaza bodi ya upanuzi ya X-NUCLEO-ISO1A1.
Mpangilio wa programu
Vipengele vifuatavyo vya programu vinahitajika ili kuweka mazingira ya kufaa ya uendelezaji kwa ajili ya kuunda programu za STM32 Nucleo iliyo na bodi ya upanuzi ya X-NUCLEO-ISO1A1:
- X-CUBE-ISO1: upanuzi wa STM32Cube uliojitolea kwa ukuzaji wa programu ambayo inahitaji matumizi ya bodi ya X-NUCLEO-ISO1A1. Firmware ya X-CUBE-ISO1 na nyaraka zinazohusiana zinapatikana kwenye www.st.com
- Mnyororo wa zana za ukuzaji na Mkusanyaji: programu ya upanuzi ya STM32Cube inasaidia mazingira matatu yafuatayo:
- Benchi Iliyopachikwa ya IAR ya mnyororo wa zana wa ARM® (IAR-EWARM).
- KweliView Mnyororo wa zana za Kidhibiti Kidhibiti Kidogo (MDK-ARM-STM32).
- STM32CubeIDE.
Mpangilio wa bodi
Ubao lazima usanidiwe na mipangilio ifaayo ya kuruka kama ilivyobainishwa katika mwongozo wa mtumiaji wa maunzi (UM3483). Kufuata miongozo hii kwa uangalifu ni muhimu ili kuhakikisha utendakazi unaofaa na kuepuka matatizo yanayoweza kutokea.
Mwongozo wa kuanzisha mfumo
Sehemu hii inaeleza jinsi ya kusanidi sehemu tofauti za maunzi kabla ya kutengeneza na kutekeleza programu kwenye ubao wa STM32 Nucleo , NUCLEO-G071RB kwa ubao wa upanuzi wa X-NUCLEO-ISO1A1.
Sanidi kifurushi cha upanuzi cha X-CUBE-ISO1
X-NUCLEO-ISO1A1 lazima isanidiwe na nafasi maalum za kuruka kulingana na usanidi unaoendesha ubao. Maelezo ambayo tunaweza kuangalia zaidi katika mwongozo wa vifaa.
- Hatua ya 1. Chomeka ubao wa upanuzi wa X-NUCLEO-ISO1A1 juu ya STM32 Nucleo kupitia viunganishi vya morpho.
Ikiwa unatumia mbao mbili juu ya nyingine, ziweke kama kwenye Mchoro 11. - Hatua ya 2. Unganisha bodi ya Nucleo ya STM32 kwenye Kompyuta kwa kutumia kebo ya USB kupitia kiunganishi cha USB CN1 ili kuwasha ubao.
- Hatua ya 3. Washa ubao wa upanuzi wa X-NUCLEO-ISO1A1 kwa kuunganisha J1 kwenye usambazaji wa umeme wa 24V DC. Ikiwa unatumia mbao zilizopangwa, hakikisha kwamba bodi zote mbili zimewashwa.
- Hatua ya 4. Fungua mnyororo wako wa zana unaopendelea (MDK-ARM kutoka Keil, EWARM kutoka IAR, au STM32CubeIDE).
- Hatua ya 5. Fungua mradi wa programu na ufanye mabadiliko muhimu kwenye bodi_config.h file kulingana na usanidi wa bodi zinazotumika.
- Hatua ya 6. Weka ukubwa unaofaa wa kesi katika st_iso_app.c file au piga simu hali ya matumizi inayohitajika kwa kutumia ST_ISO_APP_SelectUseCase chaguo la kukokotoa katika main.c file pamoja na kazi nyingine yoyote inayotakiwa.
- Hatua ya 7. Jenga mradi ili kukusanya yote files na upakie nambari iliyokusanywa kwenye kumbukumbu ya bodi ya STM32 Nucleo.
- Hatua ya 8. Endesha msimbo kwenye ubao wa STM32 Nucleo na uthibitishe tabia inayotarajiwa.
Historia ya marekebisho
Jedwali 4. Historia ya marekebisho ya hati
Tarehe | Marekebisho | Mabadiliko |
14-Mei-2025 | 1 | Kutolewa kwa awali. |
TANGAZO MUHIMU – SOMA KWA UMAKINI
STMicroelectronics NV na kampuni zake tanzu (“ST”) inahifadhi haki ya kufanya mabadiliko, masahihisho, uboreshaji, marekebisho na uboreshaji wa bidhaa za ST na/au kwa hati hii wakati wowote bila taarifa. Wanunuzi wanapaswa kupata taarifa muhimu kuhusu bidhaa za ST kabla ya kuagiza. Bidhaa za ST zinauzwa kwa mujibu wa sheria na masharti ya ST ya mauzo yaliyopo wakati wa uthibitishaji wa agizo.
Wanunuzi wanawajibika kikamilifu kwa uchaguzi, uteuzi na matumizi ya bidhaa za ST na ST haichukui dhima ya usaidizi wa maombi au muundo wa bidhaa za wanunuzi.
Hakuna leseni, iliyoelezwa au iliyodokezwa, kwa haki yoyote ya uvumbuzi inayotolewa na ST humu.
Uuzaji wa bidhaa za ST zenye masharti tofauti na maelezo yaliyoelezwa hapa yatabatilisha udhamini wowote uliotolewa na ST kwa bidhaa hiyo.
ST na nembo ya ST ni alama za biashara za ST. Kwa maelezo zaidi kuhusu alama za biashara za ST, rejelea www.st.com/trademarks. Majina mengine yote ya bidhaa au huduma ni mali ya wamiliki husika.
Maelezo katika waraka huu yanachukua nafasi na kuchukua nafasi ya maelezo yaliyotolewa awali katika matoleo yoyote ya awali ya hati hii.
© 2025 STMicroelectronics - Haki zote zimehifadhiwa
Nyaraka / Rasilimali
![]() |
Upanuzi wa Programu ya STMicroelectronics UM3469 X-CUBE-ISO1 [pdf] Mwongozo wa Mtumiaji X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 X-CUBE-ISO1 Upanuzi wa Programu, UM3469, X-CUBE-ISO1 Upanuzi wa Programu, Upanuzi wa Programu |