Zgjerimi i Softuerit STMicroelectronics UM3469 X-CUBE-ISO1

Hyrje
Paketa softuerike e zgjerimit X-CUBE-ISO1 për STM32Cube funksionon në STM32 dhe përfshin firmware për X-NUCLEO-ISO1A1. Softueri ofron një zgjidhje të lehtë për t’u përdorur për zhvillimin e një pajisjeje bazë PLC të ofruar nga X-NUCLEO. Zgjerimi është ndërtuar mbi teknologjinë e softuerit STM32Cube për të lehtësuar transportueshmërinë midis mikrokontrolluesve të ndryshëm STM32.
Softueri vjen me një implementim që funksionon në pllakën e zgjerimit X-NUCLEO-ISO1A1 të lidhur me një pllakë zhvillimi NUCLEO-G071RB (ose një NUCLEO-G0B1RE ose një NUCLEO-G070RB). Që tani e tutje, në dokument vetëm NUCLEO-G071RB do të përmendet për thjeshtësi.
Pllaka X-NUCLEO-ISO1A1 është projektuar për të mbështetur vendosjen e dy pllakave në një vend me cilësime të përshtatshme të lidhësve për të zgjeruar aftësitë e hyrjes dhe daljes.
Shkurtesat dhe shkurtesat
Tabela 1. Lista e shkurtesave
| Akronimi | Përshkrimi |
| PLC | Kontrollues logjik i programueshëm |
| API | Ndërfaqja e programimit të aplikacionit |
| PWM | Modulimi i gjerësisë së pulsit |
| GPIO | Input/output për qëllime të përgjithshme. |
| HAL | Shtresa e abstraksionit të harduerit |
| PC | Kompjuter personal |
| FW | Firmware |
Çfarë është STM32Cube?
STM32Cube™ përfaqëson iniciativën e STMicroelectronics për ta bërë jetën më të lehtë të zhvilluesve duke zvogëluar përpjekjet, kohën dhe koston e zhvillimit. STM32Cube mbulon portofolin STM32.
Versioni 32.x i STM1Cube përfshin:
- STM32CubeMX, një mjet konfigurimi grafik i softuerit që lejon gjenerimin e kodit të inicializimit C duke përdorur magjistarë grafikë.
- Një platformë gjithëpërfshirëse softuerike e integruar specifike për secilën seri (siç është STM32CubeG0 për serinë STM32G0), e cila përfshin:
- softueri i integruar i shtresës së abstraksionit STM32Cube HAL, duke siguruar transportueshmëri maksimale në të gjithë portofolin STM32
- një grup i qëndrueshëm i komponentëve të middleware si RTOS, USB, TCP/IP dhe grafikë
- të gjitha shërbimet e softuerit të integruar me një set të plotë të ish-itamples.
Arkitektura STM32Cube
Zgjidhja e firmware-it STM32Cube është ndërtuar rreth tre niveleve të pavarura që mund të bashkëveprojnë lehtësisht me njëra-tjetrën, siç përshkruhet në diagramin më poshtë.

Zgjerimi i softuerit X-CUBE-ISO1 për STM32Cube
Mbiview
Firmware-i për X-NUCLEO-ISO1A1, pllakë zgjerimi industriale me hyrje/dalje të izoluar, e zhvilluar rreth mjediseve dhe librarive STM32, shfrytëzon MCU-në me performancë të lartë të pllakëve STM32 Nucleo për të menaxhuar hyrjet dixhitale, daljet me diagnostikim të integruar së bashku me limitin dinamik të rrymës dhe gjenerimin e sinjalit PWM. Ai përmban konfigurim dhe kontroll gjithëpërfshirës të pllakës, duke përfshirë korniza për kushtet fillestare dhe alternative, makro për vendosjen e vlerave të para-shkallëzimit dhe përkufizime për portet dhe kunjat GPIO.
Ai mbështet s të ndryshmeampRastet e përdorimit të aplikacioneve të tilla si pasqyrimi i hyrjes dixhitale në dalje, komunikimi UART përmes kartës Nucleo, zbulimi i defekteve, rastet e testimit dhe gjenerimi i PWM të cilat mund të përdoren drejtpërdrejt dhe mund të personalizohen dhe zgjerohen lehtësisht.
API ofron një sërë funksionesh të fuqishme për kontrollin dixhital të hyrjes/daljes, zbulimin e defekteve dhe përditësimet e statusit të pllakës, me cilësime konfigurimi për funksionimin e dy pllakës njëkohësisht në mënyra të ndryshme. Funksione specifike të API-t janë të disponueshme për inicializimin, nisjen, ndalimin dhe konfigurimin e sinjaleve PWM për kanalet dixhitale të daljes.
Paketa mbështetëse e pllakës përfshin funksione për të kontrolluar dhe monitoruar kunjat GPIO të ndërlidhura me IPS1025H-32 dhe për të lexuar gjendjen e kunjave GPIO të ndërlidhura me CLT03-2Q3 nëpërmjet një izolatori dixhital.
Konfigurimi dhe inicializimi bazohen në STM32CubeMX, me zhvillimin dhe debugging-un e mbështetur nga mjetet STM32CubeIDE, IAR Systems dhe Keil®.
Arkitekturë
Firmware-i për X-NUCLEO-ISO1A1 mund të ndahet në disa blloqe funksionale të dallueshme, secili përgjegjës për aspekte të ndryshme të operacioneve të sistemit:

- Konfigurimi dhe Kontrolli i Bordit:
- board_config.h file Përmban makro për të konfiguruar pllakën që të funksionojë në kushte fillestare ose alternative, ose në të dyja. Gjithashtu përfshin përkufizime për vlerat e para-shkallëzimit dhe portat dhe kunjat GPIO.
- Ky bllok siguron që pllaka është konfiguruar saktë për kushtet e dëshiruara të funksionimit dhe që të gjitha konfigurimet e nevojshme të harduerit janë në vend.
- Rastet e përdorimit të aplikacionit:
- st_iso_app.h dhe st_iso_app.c filepërmbajnë raste përdorimi të aplikacioneve të dizajnuara për të testuar funksionalitete të ndryshme të tabelës.
- Këto raste përdorimi përfshijnë pasqyrimin e hyrjes dixhitale në dalje, testet e zbulimit të defekteve dhe gjenerimin e sinjalit PWM.
- ExampKonfigurimet le ofrohen për të ekzekutuar dy pllaka njëkohësisht në mënyra të ndryshme, duke demonstruar shkathtësinë dhe fleksibilitetin e firmware-it.
- Funksionet e API-t:
- iso1a1.h dhe iso1a1.c fileofrojnë një grup gjithëpërfshirës të API-ve për të mbështetur funksionalitete të ndryshme.
- Këto API përfshijnë funksione për kontrollin dixhital të hyrjes/daljes, zbulimin e defekteve dhe përditësimet e statusit të bordit.
- API-të janë projektuar të jenë të thjeshta dhe intuitive, duke ua bërë të lehtë përdoruesve bashkëveprimin me tabelën dhe kryerjen e operacioneve të nevojshme.
- Kontrolli i sinjalit PWM:
- Pwm_api.h dhe pwm_api.c filepërmbajnë funksione specifike API që lidhen me gjenerimin e sinjalit PWM.
- Këto funksione lejojnë inicializimin, konfigurimin, fillimin dhe ndalimin e sinjaleve PWM për kanalet dixhitale të daljes.
- Funksionaliteti PWM nuk është zgjedhja e parazgjedhur. Konfigurimi i bordit është modifikuar për t'i aktivizuar këto. Referojuni Seksionit 3.5: API-të për më shumë detaje.
- Paketa e Mbështetjes së Bordit:
- Paketa e mbështetjes së bordit përfshin files për kontrollin dhe monitorimin e kunjave GPIO të ndërlidhura me IPS1025H-32 dhe leximin e gjendjes së kunjave GPIO të ndërlidhura me CLT03-2Q3.
- ips1025h_32.h dhe ips1025h_32.c fileOfrojnë funksione për të vendosur, pastruar dhe zbuluar defekte në kunjat GPIO të ndërlidhura me IPS1025H-32.
- clt03_2q3.h dhe clt03_2q3.c fileofrojnë funksione për të lexuar gjendjen e kunjave GPIO të ndërlidhura me CLT03-2Q3.
Firmware-i demonstrues zbaton disa raste të thjeshta përdorimi për të shfaqur aftësitë e sistemit. Këto raste përdorimi dhe API-të e përdoruesit ekzekutohen në një mënyrë të koordinuar për të siguruar funksionim të qetë dhe rezultate të sakta. Arkitektura është projektuar të jetë lehtësisht e zgjerueshme, duke u lejuar përdoruesve të shtojnë funksionalitete dhe raste përdorimi të reja sipas nevojës. Konfigurimi i parazgjedhur është dhënë për të ekzekutuar një pllakë me hyrje dixhitale industriale. Cilësimet e jumper-it duhet gjithashtu të jenë në modalitetin e parazgjedhur siç përshkruhet në Tabelën 2. Hyrja dixhitale Pasqyrimi i daljes dixhitale (DIDO) është rasti i përdorimit të aplikacionit të firmware-it të parazgjedhur.
Struktura e dosjes

Dosjet e mëposhtme janë të përfshira në paketën e softuerit:
- Dokumentacioni përmban një HTML të përpiluar file gjeneruar nga kodi burimor, duke detajuar komponentët e softuerit dhe API-të.
- Drejtuesit përmbajnë:
- një dosje STM32Cube HAL, e vendosur në nën-dosjet STM32G0xx_HAL_Driver. Këto fileNuk përshkruhen këtu pasi ato nuk janë specifike për softuerin X-CUBE-ISO1, por vijnë direkt nga kuadri STM32Cube.
- një dosje CMSIS e cila përmban standardin e ndërfaqes së softuerit të mikrokontrolluesit Cortex® files nga Arm. Këto files janë shtresa abstraksioni hardueri e pavarur nga shitësi për serinë e procesorëve Cortex®-M. Kjo dosje vjen gjithashtu e pandryshuar nga kuadri STM32Cube.
- një dosje BSP që përmban kodet për komponentët IPS1025H-32 dhe CLT03-2Q3 dhe API-të që lidhen me X-NUCLEO-ISO1A1.
- Aplikacioni përmban dosjen e përdoruesit e cila përmban skedarin main.c file, rasti i përdorimit të aplikacionit file, st_iso_app.c dhe board_config.h file, të ofruara për platformën NUCLEO-G071RB.
Dosja BSP
Programi X-CUBE-ISO1 përdor dy komponentë të ndryshëm files, të cilat janë brenda BSP/Komponentëve:
IPS1025
ips1025h_32.h dhe ips1025h_32.c fileofrojnë një implementim gjithëpërfshirës të drajverit për kunjat GPIO të ndërlidhura me IPS1025H-32, duke përfshirë funksionalitet të plotë për kontrollin e të gjitha kunjave dhe zbulimin e defekteve. filezbatojnë funksione për inicializimin e pajisjes, caktimin dhe pastrimin e statusit të kanalit, zbulimin e kushteve të defektit dhe menaxhimin e funksionalitetit PWM. Drajveri mbështet pajisje dhe kanale të shumta, me aftësi të plota si për kanal individual ashtu edhe si grup.
CLT03
clt03_2q3.h dhe clt03_2q3.c fileimplementon një drajver me funksione të plota për kunjat GPIO të ndërlidhura me CLT03-2Q3, me aftësi të plota për leximin e të gjitha gjendjeve të kunjave. Drajveri ofron funksione për të inicializuar pajisjen, për të lexuar statusin e kanalit individual dhe për të marrë informacion mbi statusin për të gjitha kanalet njëkohësisht. Ai mbështet konfigurime të shumëfishta të pajisjeve dhe mirëmban gjendjen e brendshme për menaxhim efektiv të kanaleve.
API-të e softuerit X-CUBE-ISO1 ndahen në dy burime kryesore files, të cilat janë brenda nën-dosjes ISO1A1:
ISO1A1
ISO1A1 filepërfshijnë një grup gjithëpërfshirës funksionesh API të dizajnuara për konfigurimin e bordit, bashkëveprimin e komponentëve dhe menaxhimin e defekteve. Këto funksione lehtësojnë operacionet e leximit dhe shkrimit, zbulimin e defekteve dhe përditësimet, dhe përfshijnë shërbime të ndryshme ndihmëse për të mbështetur funksionet kryesore të API-t. Përveç kësaj, fileofrojnë funksionalitet për kontrollin e LED-ve, inicializimin GPIO, trajtimin e ndërprerjeve dhe komunikimin UART.
API-ja e PWM-së
API-ja PWM ofron funksione për inicializimin, konfigurimin, fillimin dhe ndalimin e sinjaleve PWM. Ai lejon caktimin e frekuencës PWM dhe ciklit të punës për kunjat e caktuar të kohëmatësit, duke siguruar kontroll të saktë mbi operacionet PWM.
Dosja e aplikacionit
Dosja e Aplikacionit përmban dosjen kryesore filetë kërkuara për firmware-in, duke përfshirë header-at dhe burimin files. Më poshtë është një përshkrim i detajuar i files në këtë dosje:
- board_config.h: Makrot e konfigurimit për pllakën.
- main.c: Programi kryesor (kodi i ish-it)ample e cila bazohet në bibliotekën për ISO1A1).
- st_iso_app.c: Funksione aplikacioni për testimin dhe konfigurimin e pllakës.
- stm32g0xx_hal_msp.c: Rutinat e inicializimit HAL.
- stm32g0xx_it.c: Trajner i ndërprerjeve.
- syscalls.c: Implementime të thirrjeve të sistemit.
- sysmem.c: Menaxhimi i memories së sistemit.
- system_stm32g0xx.c: Inicializimi i sistemit.
Burimet e nevojshme të softuerit
Pajisja Nucleo kontrollon dhe komunikon me pllakën X-NUCLEO-ISO1A1 nëpërmjet GPIO-ve. Kjo kërkon përdorimin e disa GPIO-ve për hyrjen, daljen dhe zbulimin e defekteve të pajisjeve industriale IO të përfshira në pllakën X-NUCLEO-ISO1A1. Referojuni manualit të përdoruesit të harduerit UM3483 për më shumë detaje dhe konfigurimet e xhumperëve.
Konfigurimi i bordit (board_config.h)
board_config.h file përcakton burimet e përdorura dhe makrot konfiguruese për të konfiguruar softuerin sipas konfigurimit të pllakës. Ai trajton deri në dy pllaka (si p.sh. grumbullimi i dy pllakave).
Konfigurimi i softuerit DEFAULT është i lidhur me pllakën e zgjerimit X-NUCLEO-ISO1A1 me xhumperat e tij në pozicionet e parazgjedhura. Për të konfiguruar softuerin për X-NUCLEO-ISO1A1 në cilësimin e tij të parazgjedhur, çkomentoni makron BOARD_ID_DEFAULT në board_config.h. file.
Konfigurimi i softuerit ALTERNATE vendoset duke çkomentuar makron BOARD_ID_ALTERNATE në board_config.h file dhe ndryshimin e pozicioneve të kërcyesve në tabelë.
Për të përdorur dy borde njëkohësisht në një konfigurim stack-up, çkomentoni makrot BOARD_ID_DEFAULT dhe BOARD_ID_ALTERNATE dhe sigurohuni që xhumperët e njërës borde të jenë në pozicionin fillestar dhe tjetri në pozicionin alternativ. Vini re se nuk rekomandohet të keni të dy bordet në të njëjtin konfigurim (ose të dyja në parazgjedhje ose të dyja në alternativë) dhe mund të rezultojë në sjellje të padëshiruar.
Kur përdorni vetëm një pllakë, sigurohuni që softueri të jetë konfiguruar vetëm për një konfigurim dhe makroja që korrespondon me konfigurimin tjetër të jetë komentuar.

Para-shkallëzues
Ne mund të konfigurojmë vlerat e para-shkallëzuesit në board_config.h për të arritur diapazone të ndryshme frekuencash për daljen PWM duke vendosur makrot e duhura. Për të përdorur një vlerë para-skalare, hiqni komentet nga makroja përkatëse dhe komentoni të tjerat. Si parazgjedhje, përdoret DEFAULT_PRESCALAR.
- PRESCALER_1
- PRESCALER_2
- DEFAULT_PRESCALER
Vlerat e para-shkallëzuesit përdoren vetëm kur përdoren kohëmatës dhe nuk kërkohen për ndonjë operacion bazë I/O. Vlerat e makros para-skalare dhe diapazonet e tyre përkatëse të frekuencave mund të shihen në dokumentacionin e kodit ose në vetë kodin.
LED i rrahjeve të zemrës
Mund ta konfigurojmë LED-in e gjelbër të përdoruesit, D7, që të pulsojë në një mënyrë rrahjeje zemre si një provë për lidhjen e duhur me pllakën NUCLEO-G071RB. Makroja, HEARTBEAT_LED kur nuk është komentuar, pulson LED-in e gjelbër në X-NUCLEO-ISO1A1 kur është e lidhur me NUCLEO-n. Ajo mbetet e ndezur për 1 sekondë dhe e fikur për 2 sekonda, me kohëmatësin që kujdeset për kohën. Kur nuk përdoret ose nuk thirret ndonjë funksion që përfshin LED-e, makroja duhet të mos komentohet.
Konfigurimi i GPIO-së për hyrje dhe dalje
Çdo pllakë X-NUCLEO-ISO1A1 është e pajisur me dy porta hyrëse dhe dy porta dalëse. Aftësitë e pllakës mund të zgjerohen duke vendosur dy pllaka X-NUCLEO-ISO1A1 njëra mbi tjetrën, duke mundësuar kështu përdorimin e katër portave dixhitale hyrëse dhe katër portave dixhitale dalëse. Softueri i ofruar përfshin API gjithëpërfshirëse që lehtësojnë leximin, konfigurimin dhe pastrimin e portave. Përveç kësaj, API-të lejojnë konfigurimin, leximin ose pastrimin e njëkohshëm të të gjitha portave. Informacion i detajuar rreth funksioneve të API-t është i disponueshëm në dokumentacionin e kodit, si dhe në seksionin API të këtij dokumenti.

Këtu parashtesa DI tregon portin dixhital të hyrjes dhe DO tregon portin dixhital të daljes. Për konfigurim alternativ, softueri përdor të njëjtat konventa emërtimi me prapashtesën _alt të bashkangjitur.
Tabela e mëposhtme detajon makrot GPIO të përcaktuara në softuer që korrespondojnë me porta të ndryshme IO:
Tabela 2. GPIO-të e alokuara për konfigurimet e parazgjedhura dhe alternative të softuerit
| Emri | Funksioni | Konfigurimi i parazgjedhur | Konfigurimi alternativ |
| FUTNI PIN-IN | Pini i hyrjes 1 | GPIOC, IA0_IN_1_PIN | GPIOD, IA0_IN_1_PIN |
| Pini i hyrjes 2 | GPIOD, IA1_IN_2_PIN | GPIOC, IA1_IN_1_PIN | |
| PIN DALJE | Pika e daljes 1 | GPIOC, QA0_CNTRL_1_PIN | GPIOD, QA0_CNTRL_1_PIN |
| Pika e daljes 2 | GPIOC, QA1_CNTRL_2_PIN | GPIOC, QA1_CNTRL_2_PIN | |
| PIN i DEFEKTIT | Pin 1 i defektit | GPIOC, FLT1_QA0_2_OT_PIN | GPIOD, FLT1_QA0_1_OT_PIN |
| Pin 2 i defektit | GPIOC, FLT2_QA0_2_OL_PIN | GPIOD, FLT2_QA0_1_OL_PIN | |
| Pin 3 i defektit | GPIOC, FLT1_QA1_2_OT_PIN | GPIOC, FLT1_QA1_1_OT_PIN | |
| Pin 4 i defektit | GPIOC, FLT2_QA1_1_OL_PIN | GPIOD, FLT2_QA1_2_OL_PIN | |
| MAKRO KONFIGURIMI | ID_e_BORDIT_DEFAULT | ID_BORDI_ALTERNATE |
Kohëmatësit dhe PWM
Kohëmatësit mund të përdoren në firmware-in X-CUBE-ISO1 për të gjeneruar sinjale PWM për kunja specifike. Si parazgjedhje, kohëmatësit nuk inicializohen përveç TIM3. Kohëmatësit përkatës duhet të inicializohen përpara se të gjenerohen sinjalet PWM dhe portat përkatëse të daljes duhet të inicializohen në modalitetin PWM.
Për operacionet normale të hyrjes/daljes GPIO, nuk ka nevojë të konfiguroni ndonjë portë kohëmatësi ose daljeje, pasi kjo rregullohet si parazgjedhje. Megjithatë, nëse pasi pin-et e daljes të jenë vendosur në modalitetin PWM, duhet t'i rikonfigurojmë ato në modalitetin GPIO që të përdoren si pin-e GPIO.
Shënim: Kur kunjat e daljes përdoren për gjenerimin e PWM, dalja GPIO çaktivizohet, të dy funksionalitetet nuk mund të zbatohen njëkohësisht. Për të riaktivizuar GPIO pas përdorimit të PWM, mund të thirret funksioni API ST_ISO_BoardConfigureDefault() ose ST_ISO_InitGPIO() për të konfiguruar të gjitha portet si GPIO menjëherë ose ST_ISO_Init_GPIO() me një port dhe kunj të caktuar GPIO.
Siç u përmend më sipër, softueri përdor gjithashtu një kohëmatës si parazgjedhje, TIM3, i cili përdoret për zbatimin e kohëmatjes LED të përdoruesit, orës dhe kohëmatjes UART. Ai është konfiguruar për një periudhë prej 1 sekonde si parazgjedhje.
Tabela e mëposhtme detajon kohëmatësit e disponueshëm për secilën pin në kodin tonë:
Tabela 3. Kohëmatësit e disponueshëm për secilën pin
| Emri i pinit | Përfaqësimi i softuerit | Timer | Kanali i kohëmatësit | Funksioni alternativ |
| 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 |
Shërbime shtesë të firmware-it
Firmware-i përfshin programe shtesë për të përmirësuar funksionalitetin e bordit të vlerësimit X-NUCLEO-ISO1A1. Disa prej të cilave përshkruhen më poshtë.
UART
Funksioni i komunikimit UART lejon monitorimin dhe debuggimin në kohë reale të statusit të pllakës përmes shërbimeve të PC-së si TeraTerm, PuTTY dhe aplikacione të tjera të ngjashme. Softueri mundëson transmetimin e të dhënave UART përmes UART-it të pranishëm në pllakë NUCLEO-G071RB. Funksioni `ST_ISO_UART` dërgon informacion të detajuar mbi statusin e pllakës përmes UART-it, duke përfshirë kohën e funksionimit të sistemit, konfigurimin e firmware-it dhe statusin e defektit. Këto të dhëna mund të jenë viewed duke përdorur çdo aplikacion të portit serial, siç është TeraTerm. Funksioni `ST_ISO_APP_DIDOandUART` kombinon operacionet dixhitale të hyrjes/daljes me komunikimin UART, duke transmetuar statusin e të gjitha kanaleve të hyrjes dhe daljes në intervale të caktuara. Më poshtë janë cilësimet e konfigurimit dhe siampnjë shembull se si shfaqen të dhënat në TeraTerm. Emri i portit mund të ndryshojë në varësi të sistemit dhe portit serial që përdoret.


Konfigurimi i modalitetit të pin-it IO
Programi i konfigurimit të modalitetit të pin-eve IO u lejon përdoruesve të caktojnë portat hyrëse dhe dalëse të pllakës duke përdorur funksionin ST_ISO_BoardConfigure(). Ky funksion mbështet konfigurimin e dy porteve dalëse (QA0, QA1) dhe dy porteve hyrëse (IA0, IA1) në modalitetin Hyrje/Dalje, modalitetin e daljes PWM ose modalitetin e hyrjes së ndërprerjes. Duke rregulluar parametrat dhe duke thirrur këtë funksion, përdoruesit mund ta personalizojnë lehtësisht konfigurimin e IO të pllakës për të përmbushur nevojat specifike.
Në modalitetin Hyrje/Dalje, programi inicializon kunjat GPIO për operacione dixhitale me qëllim të përgjithshëm. Në modalitetin e daljes PWM, ai konfiguron kohëmatësit për kontroll të saktë të sinjalit PWM. Kur është në modalitetin e hyrjes së ndërprerjes, programi konfiguron kunjat për të trajtuar ndërprerjet, duke lejuar programim të përgjegjshëm të drejtuar nga ngjarjet.
Trajtimi i ndërprerjeve
Për trajtimin e sinjaleve FAULT, softueri aktivizon linjat e ndërprerjeve përkatëse, duke lejuar programim të përgjegjshëm të drejtuar nga ngjarjet. Një trajtues i personalizuar mund të shoqërohet me këto ndërprerje nëpërmjet
Funksioni HAL_GPIO_EXTI_Rising_Callback i përcaktuar në API. Softueri përfshin veçori për inicializimin e pin-eve GPIO në modalitetin e ndërprerjes nëpërmjet funksionit ST_ISO_BoardConfigure dhe konfigurimin e veprimeve specifike në trajtuesit IRQ EXTI. Kjo u lejon përdoruesve të personalizojnë mënyrën se si pllaka reagon ndaj ngjarjeve të jashtme, duke siguruar që ajo të mund të menaxhojë në mënyrë efektive gjendje dhe shkaktarë të ndryshëm të defekteve.
API-të
API-ja e softuerit X-CUBE-ISO1 ofron një sërë funksionesh gjithëpërfshirëse për të kontrolluar dhe monitoruar pllakën X-NUCLEO-ISO1A1, duke përfshirë gjenerimin e sinjalit PWM dhe operacionet GPIO. API është projektuar për të qenë e lehtë për t’u përdorur dhe për t’u integruar në aplikacione të ndryshme, duke ofruar fleksibilitet dhe kontroll mbi funksionalitetin e pllakës.
API-ja e softuerit X-CUBE-ISO1 është përcaktuar në dosjen BSP/ISO1A1. Funksionet e saj kanë si parashtesë ST_ISO. API-ja është e dukshme për aplikacionet përmes iso1a1.c dhe pwm_api.c. files është një kombinim i konstanteve, strukturave të të dhënave dhe funksioneve.
SampAplikacionet e firmware-it përdorin këto API për të treguar disa nga përdorimet e mundshme të këtyre funksioneve.
Paketa softuerike X-CUBE-ISO1 ofron dy grupe API-sh:
- API-ja ISO1A1
- API-ja e PWM-së
API-ja ISO1A1
API-ja ISO1A1 është përcaktuar në iso1a1.h dhe iso1a1.c files. Ofron funksione për të konfiguruar dhe kontrolluar tabelën ISO1A1, duke përfshirë operacionet hyrëse/dalëse GPIO dhe zbulimin e defekteve.
Funksionet kryesore
- ST_ISO_BoardConfigureDefault: Konfiguron portat IO të bordit me konfigurimin parazgjedhur GPIO.
- ST_ISO_BoardConfigure: Konfiguron modalitetin e portave të hyrjes dhe daljes për pllakën.
- ST_ISO_BoardInit: Inicializon harduerin e pllakës.
- ST_ISO_BoardMapInit: Inicializon funksionalitetin e bordit bazuar në konfigurimin e trajtuesve të kanalit.
- ST_ISO_GetFWVersion: Kthen versionin aktual të firmware-it.
- ST_ISO_GetChannelHandle: Rimerr trajtuesin e kanalit për një emër të specifikuar kanali.
- ST_ISO_InitGPIO: Inicializon pin-in e specifikuar GPIO me ID-në e modulit të dhënë.
- ST_ISO_InitInterrupt: Inicializon pin-in GPIO të specifikuar si një ndërprerje me ID-në e modulit të dhënë.
- ST_ISO_EnableFaultInterrupt: Inicializon kunjat GPIO të defektit në modalitetin e ndërprerjes.
- ST_ISO_SetChannelStatus: Cakton statusin e një kanali të specifikuar.
- ST_ISO_SetOne_DO: Vendos një kanal të vetëm dalës dixhital.
- ST_ISO_ClearOne_DO: Pastron një kanal të vetëm dalës dixhital.
- ST_ISO_WriteAllChannels: Shkruan të dhëna në të gjitha kanalet dixhitale të daljes.
- ST_ISO_GetOne_DI: Merr statusin e një kanali të vetëm hyrës dixhital.
- ST_ISO_ReadAllChannel: Lexon statusin e të gjitha kanaleve hyrëse.
- ST_ISO_ReadAllOutputChannel: Lexon statusin e të gjitha kanaleve të daljes.
- ST_ISO_ReadFaultStatus: Lexon statusin e defektit nga të gjitha portat e zbulimit të defekteve.
- ST_ISO_ReadFaultStatusPolling: Teston zbulimin e defekteve të bordeve në modalitetin e sondazhit.
- ST_ISO_DisableOutputChannel: Çaktivizon daljen për atë kanal.
- ST_ISO_UpdateBoardStatusInfo: Përditëson informacionin e statusit të bordit.
- ST_ISO_UpdateFaultStatus: Përditëson statusin e defektit për një kanal specifik.
- ST_ISO_BlinkLed: Vezullon LED-in e specifikuar me një vonesë dhe numër përsëritjesh të caktuar.
- ST_ISO_UART: Dërgon informacionin e statusit të bordit përmes UART.
- ST_ISO_SwitchInit: Inicializon komponentët e ndërprerësit.
- ST_ISO_SwitchDeInit: Çinicializon instancën e switch-it.
- ST_ISO_DigitalInputInit: Inicializon komponentët e hyrjes dixhitale.
- ST_ISO_DigitalInputDeInit: Çinicializon instancën e hyrjes dixhitale.
API-ja e PWM-së
API-ja PWM është përcaktuar në pwm_api.h dhe pwm_api.c files. Ofron funksionet e mëposhtme për të inicializuar dhe kontrolluar sinjalet PWM për kunja specifike.
- ST_ISO_Init_PWM_Signal: Inicializon kohëmatësit dhe pinin specifik për sinjalin PWM.
- ST_ISO_Set_PWM_Frequency: Vendos frekuencën PWM për pin-in specifik.
- ST_ISO_Set_PWM_Duty_Cycle: Vendos ciklin e punës PWM për pin-in specifik.
- ST_ISO_Start_PWM_Signal: Fillon sinjalin PWM në pin specifik.
- ST_ISO_Stop_PWM_Signal: Ndalon sinjalin PWM në pin specifik.
Për të nisur një sinjal PWM në një kanal përkatës, së pari thirrni funksionin ST_ISO_Init_PWM_Signal, pastaj vendosni frekuencën dhe ciklin e detyrës së dëshiruar duke thirrur ST_ISO_Set_PWM_Frequency dhe
funksionet ST_ISO_Set_PWM_Duty_Cycle përkatësisht dhe më pas mund të filloni sinjalin PWM duke thirrur funksionin ST_ISO_Start_PWM_Signal dhe ta ndaloni duke thirrur ST_ISO_Stop_PWM_Signal.
Funksioni duhet të thirret me emrin përkatës të pinit dhe kohëmatësit e disponueshëm, detajet e të cilëve janë dhënë në tabelën 3. Kanale të ndryshme dalëse mund të konfigurohen me frekuenca dhe cikle pune të ndryshme; ndryshimi i frekuencës ose ciklit të punës nuk ndikon në tjetrin, mbetet i njëjtë.
Informacioni i detajuar teknik rreth API-ve të disponueshme për përdoruesin mund të gjendet në një HTML të përpiluar file ndodhet brenda dosjes “Documentation” të paketës softuerike ku përshkruhen plotësisht të gjitha funksionet dhe parametrat.
Përshkrimi i aplikacionit
Aplikacioni demonstrues zbaton disa raste të thjeshta përdorimi. st_iso_app dhe board_config fileLuajnë një rol vendimtar në konfigurimin dhe përdorimin e pllakës dhe funksioneve të saj të aplikacionit. Para se të përdorni këto funksione, sigurohuni që konfigurimi i pllakës dhe i softuerit të jenë në sinkron me njëri-tjetrin.
Funksionet e Aplikacionit (st_iso_app.h dhe st_iso_app.c)
Funksionet e aplikacionit kanë parashtesë ST_ISO_APP; ato janë funksionet e nivelit të lartë të dukshme për përdoruesin i cili thërret funksionet API për zbatimin e tyre. Funksionet e aplikacionit mund të thirren në main.c. file për funksionimin e tyre.
- Përzgjedhja e Rastit të Përdorimit: Përdoruesi mund të ç'komentojë makron e dëshiruar të rastit të përdorimit në st_iso_app.c fileFunksioni ST_ISO_APP_SelectUseCaseMacro(), i thirrur në main.c, inicializon atë rast përdorimi dhe funksioni ST_ISO_APP_SelectedFunction() e zbaton atë në main.c. Kjo qasje lejon konfigurim të lehtë të mënyrës operative duke modifikuar thjesht përkufizimet e makrove, duke siguruar që funksionaliteti i duhur të ekzekutohet bazuar në rastin e përdorimit të zgjedhur. Si parazgjedhje, rasti i përdorimit DIDO zgjidhet dhe përdoruesi nuk ka nevojë të bëjë ndonjë ndryshim në kod për ta zbatuar atë.
- Pasqyrimi i Hyrjes Dixhitale në Daljen Dixhitale (ST_ISO_APP_UsecaseDIDO): Ky funksion lexon statusin e të gjitha kanaleve hyrëse dhe shkruan të njëjtin status në të gjitha kanalet dalëse. Është i dobishëm për pasqyrimin e hyrjeve dixhitale në daljet dixhitale.
- Pasqyrimi i Hyrjes Dixhitale në Daljen Dixhitale me UART (ST_ISO_APP_DIDOandUART): Ky funksion pasqyron hyrjet dixhitale në daljet dixhitale, ngjashëm me funksionin ST_ISO_APP_UsecaseDIDO. Për më tepër, ai transmeton statusin e pllakës përmes ndërfaqes UART në pajisjen Nucleo, duke lejuar që statusi të jetë viewed në një port serial duke përdorur aplikacione si Tera Term.
- Funksioni i Rastit të Testimit (ST_ISO_APP_TestCase): Ky funksion kryen një sërë testesh dhe veprimesh bazuar në konfigurimin e pllakës. Kontrollon statusin e defektit, lexon statusin e dy kanaleve dixhitale të hyrjes dhe kryen veprime bazuar në vlerat e tyre. Ky funksion ndihmon në vlerësimin e shpejtë të performancës dhe funksionalitetit të pllakës dhe në marrjen e reagimeve vizuale përmes modeleve të ndryshme LED. Sigurohuni që makroja HEARTBEAT_LED në board_config.h file komentohet për të vëzhguar modelet e duhura të LED-ve.
- Gjenerimi i PWM (ST_ISO_APP_PWM _OFFSET): Ky funksion fillon sinjalin PWM në të dy kanalet e daljes me një frekuencë prej 1 Hz dhe cikël pune 50%. Ai inicializon sinjalin PWM, cakton frekuencën dhe ciklin e punës, dhe fillon sinjalin PWM për ID-në e specifikuar të bordit. Sinjali PWM gjenerohet me një zhvendosje midis të dy kanaleve dhe kështu ato nuk janë në fazë.
- Testi i Zbulimit të Defekteve (ST_ISO_APP_FaultTest): Ky funksion vlerëson zbulimin e defekteve duke aktivizuar kunjat diagnostikuese të integruara të modulit inteligjent të daljes IPS1025, qoftë në modalitetin e sondazhit ose të ndërprerjes. Ai konfiguron modalitetin e zbulimit të defekteve, inicializon zbulimin e defekteve dhe përditëson strukturën e statusit të defekteve bazuar në modalitetin e zgjedhur. Ky funksion është thelbësor për të siguruar besueshmërinë dhe sigurinë e bordit duke zbuluar dhe trajtuar defektet në mënyrë efektive. Kur është në modalitetin e sondazhit, statusi i defektit përditësohet çdo sekondë me ndihmën e një kohëmatësi dhe reflektohet në strukturën defaultBoardFaultStatus ose alternateBoardFaultStatus. Kur është në modalitetin e ndërprerjes, statusi i defektit përditësohet vetëm kur ndodh defekti dhe shkakton softuerin për të pastruar portën përkatëse të daljes.
- Testi i Variacionit PWM (ST_ISO_APP_PwmVariationTest): Ky funksion është projektuar për të testuar ndryshimin e sinjaleve PWM (Modulimi i Gjerësisë së Pulsit) në kanale të ndryshme dalëse bazuar në konfigurimin e pllakës. Ai inicializon sinjalet PWM për konfigurimin e parazgjedhur dhe atë alternativ të pllakës, duke vendosur frekuencën e tyre në 100 Hz dhe ciklin fillestar të punës në 0%. Funksioni më pas ndryshon ciklin e punës nga 0% në 100% në rritje prej 5%, dhe prapa nga 100% në 0% në zbritje prej 5%, me një vonesë 2-sekondëshe midis çdo hapi. Ky ndryshim i kontrolluar lejon vëzhgimin dhe vlerësimin e sjelljes së sinjalit PWM në kanalet QA_0 dhe QA_1 për pllakën e parazgjedhur, dhe QA_0_ALT dhe QA_1_ALT për pllakën alternative.
Duke ndjekur këto konfigurime dhe duke përdorur funksionet e ofruara të aplikacionit, mund ta konfiguroni dhe përdorni në mënyrë efektive pllakën X-NUCLEO-ISO1A1 për raste të ndryshme përdorimi demonstrues.
Udhëzues për konfigurimin e sistemit
Përshkrimi i harduerit
Platforma STM32 Nucleo
Pllakat e zhvillimit STM32 Nucleo ofrojnë një mënyrë të përballueshme dhe fleksibël për përdoruesit për të testuar zgjidhje dhe për të ndërtuar prototipe me çdo linjë mikrokontrollues STM32.
Mbështetja e lidhjes Arduino® dhe lidhësit ST morpho e bëjnë të lehtë zgjerimin e funksionalitetit të platformës së zhvillimit të hapur STM32 Nucleo me një gamë të gjerë pllakash zgjerimi të specializuara për të zgjedhur.
Bordi STM32 Nucleo nuk kërkon sonda të veçanta pasi integron korrigjuesin/programuesin ST-LINK/V2-1.
Pllaka STM32 Nucleo vjen me bibliotekën gjithëpërfshirëse të softuerit STM32 HAL së bashku me softuer të ndryshëm të paketuar examples.

Informacioni në lidhje me pllakën STM32 Nucleo është i disponueshëm në www.st.com/stm32nucleo
Pllakë zgjerimi X-NUCLEO-ISO1A1
X-NUCLEO-ISO1A1 është një pllakë vlerësimi me hyrje/dalje industriale të izoluar e projektuar për të zgjeruar pllakën STM32 Nucleo dhe për të ofruar funksionalitet mikro-PLC. Dy nga pllakëzat X-NUCLEO-ISO1A1 mund të vendosen së bashku sipër një pllake STM32 Nucleo me përzgjedhjen e duhur të xhumperave në pllakën e zgjerimit për të shmangur konfliktin në ndërfaqet GPIO. Izolatorët dixhitalë të çertifikuar UL1577 STISO620 dhe STISO621 ofrojnë izolim midis komponentëve logjikë dhe anës së procesit. Dy hyrje të anës së lartë me rrymë të kufizuar nga ana e procesit realizohen përmes CLT03-2Q3. CLT03-2Q3 ofron mbrojtje, izolim dhe tregues të statusit pa energji për kushtet industriale, të projektuara për të përmbushur standarde të tilla si IEC61000-4-2, IEC61000-4-4 dhe IEC61000-4-5. Secili prej çelësave të anës së lartë IPS1025H-32/HQ-32 ofron dalje të mbrojtur deri në 5.6 A me veçori diagnostikimi dhe drejtimi inteligjent. Këto mund të drejtojnë ngarkesa kapacitive, rezistente ose induktive. X-NUCLEO-ISO1A1 lejon vlerësim të shpejtë të qarkut të integruar duke përdorur paketën e softuerit X-CUBE-ISO1.

Konfigurimi i harduerit
Nevojiten komponentët e mëposhtëm harduerikë:
- Një platformë zhvillimi STM32 Nucleo (kodi i porosisë së sugjeruar: NUCLEO-GO71RB)
- Një pllakë zgjerimi industriale dixhitale me dalje (kodi i porosisë: X-NUCLEO-ISO1A1)
- Një kabllo USB tip A në Micro USB për të lidhur STM32 Nucleo me PC-në
- Një furnizim me energji të jashtme (24 V) dhe telat përkatës për të furnizuar pllakën e zgjerimit X-NUCLEO-ISO1A1.
Konfigurimi i softuerit
Komponentët e mëposhtëm të softuerit janë të nevojshëm për të krijuar një mjedis të përshtatshëm zhvillimi për krijimin e aplikacioneve për STM32 Nucleo të pajisur me pllakën e zgjerimit X-NUCLEO-ISO1A1:
- X-CUBE-ISO1: një zgjerim për STM32Cube i dedikuar për zhvillimin e aplikacioneve që kërkon përdorimin e pllakës X-NUCLEO-ISO1A1. Firmware-i X-CUBE-ISO1 dhe dokumentacioni përkatës janë të disponueshëm në www.st.com
- Zinxhiri i mjeteve të zhvillimit dhe kompiluesi: softueri i zgjerimit STM32Cube mbështet tre mjediset e mëposhtme:
- Tavolinë pune e integruar IAR për zinxhirin e veglave ARM® (IAR-EWARM)
- RealeView Zinxhiri i mjeteve të Kit-it të Zhvillimit të Mikrokontrolluesve (MDK-ARM-STM32)
- STM32CubeIDE.
Vendosja e bordit
Pllaka duhet të konfigurohet me cilësimet e duhura të xhumperit siç specifikohet në manualin e përdoruesit të Hardware-it (UM3483). Ndjekja me kujdes e këtyre udhëzimeve është thelbësore për të siguruar funksionalitetin e duhur dhe për të shmangur problemet e mundshme.
Udhëzues për konfigurimin e sistemit
Ky seksion përshkruan se si të konfiguroni pjesë të ndryshme hardueri përpara se të zhvilloni dhe ekzekutoni një aplikacion në pllakën STM32 Nucleo, NUCLEO-G071RB me pllakën e zgjerimit X-NUCLEO-ISO1A1.


Konfigurimi për paketën e zgjerimit X-CUBE-ISO1
X-NUCLEO-ISO1A1 duhet të konfigurohet me pozicionet specifike të lidhësve bazuar në konfigurimin që po përdorni në pllakë. Detajet e të cilave mund t'i shohim më tej në manualin e harduerit.
- Hapi 1. Lidhni pllakën e zgjerimit X-NUCLEO-ISO1A1 në krye të STM32 Nucleo nëpërmjet morfokonektorëve.
Nëse po përdorni dy dërrasa njëra mbi tjetrën, vendosini ato në një grumbull si në Figurën 11. - Hapi 2. Lidhni pllakën STM32 Nucleo me një PC me kabllon USB nëpërmjet lidhësit USB CN1 për të furnizuar me energji pllakën.
- Hapi 3. Ndizni pllakën(at) e zgjerimit X-NUCLEO-ISO1A1 duke e lidhur J1 me furnizimin me energji 24V DC. Nëse përdorni pllakën(at) e vendosura njëra mbi tjetrën, sigurohuni që të dyja pllakën(at) të kenë energji.
- Hapi 4. Hapni zinxhirin tuaj të preferuar të mjeteve (MDK-ARM nga Keil, EWARM nga IAR ose STM32CubeIDE).
- Hapi 5. Hapni projektin e softuerit dhe bëni ndryshimet e nevojshme në board_config.h file sipas konfigurimit të bordit/pllakave që përdoren.
- Hapi 6. Vendosni makron e rastit të përdorimit të duhur në st_iso_app.c file ose thirrni rastin e përdorimit të kërkuar duke përdorur funksionin ST_ISO_APP_SelectUseCase në main.c file së bashku me çdo funksion tjetër të dëshiruar.
- Hapi 7. Ndërtoni projektin për të kompiluar të gjitha files dhe ngarkoni kodin e kompiluar në kujtesën e pllakës STM32 Nucleo.
- Hapi 8. Ekzekutoni kodin në pllakën STM32 Nucleo dhe verifikoni sjelljen e pritur.
Historia e rishikimit
Tabela 4. Historia e rishikimit të dokumentit
| Data | Rishikim | Ndryshimet |
| 14-maj-2025 | 1 | Lëshimi fillestar. |
NJOFTIM I RËNDËSISHËM – LEXO ME KUJDES
STMicroelectronics NV dhe filialet e saj ("ST") rezervojnë të drejtën për të bërë ndryshime, korrigjime, përmirësime, modifikime dhe përmirësime në produktet ST dhe/ose në këtë dokument në çdo kohë pa paralajmërim. Blerësit duhet të marrin informacionin më të fundit përkatës mbi produktet ST përpara se të bëjnë porosi. Produktet ST shiten në përputhje me termat dhe kushtet e shitjes të ST në fuqi në momentin e njohjes së porosisë.
Blerësit janë vetëm përgjegjës për zgjedhjen, përzgjedhjen dhe përdorimin e produkteve ST dhe ST nuk merr asnjë përgjegjësi për asistencën e aplikimit ose dizajnimin e produkteve të blerësve.
Asnjë licencë, e shprehur apo e nënkuptuar, për ndonjë të drejtë të pronësisë intelektuale nuk jepet nga ST këtu.
Rishitja e produkteve ST me dispozita të ndryshme nga informacioni i përcaktuar këtu do të anulojë çdo garanci të dhënë nga ST për këtë produkt.
ST dhe logoja ST janë marka tregtare të ST. Për informacion shtesë rreth markave ST, referojuni www.st.com/trademarks. Të gjithë emrat e tjerë të produkteve ose shërbimeve janë pronë e pronarëve të tyre përkatës.
Informacioni në këtë dokument zëvendëson dhe zëvendëson informacionin e dhënë më parë në çdo version të mëparshëm të këtij dokumenti.
© 2025 STMicroelectronics – Të gjitha të drejtat e rezervuara
Dokumentet / Burimet
![]() |
Zgjerimi i Softuerit STMicroelectronics UM3469 X-CUBE-ISO1 [pdf] Manuali i Përdoruesit X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 Zgjerimi i Softuerit X-CUBE-ISO1, UM3469, Zgjerimi i Softuerit X-CUBE-ISO1, Zgjerimi i Softuerit |

