STMicroelectronics UM3469 X-CUBE-ISO1 Proširenje softvera

Uvod
Softverski paket za proširenje X-CUBE-ISO1 za STM32Cube radi na STM32 i uključuje firmware za X-NUCLEO-ISO1A1. Softver pruža jednostavno rješenje za razvoj osnovnog PLC uređaja koji nudi X-NUCLEO. Proširenje je izgrađeno na softverskoj tehnologiji STM32Cube kako bi se olakšala prenosivost između različitih STM32 mikrokontrolera.
Softver dolazi s implementacijom koja se izvodi na ploči za proširenje X-NUCLEO-ISO1A1 spojenoj na razvojnu ploču NUCLEO-G071RB (ili NUCLEO-G0B1RE ili NUCLEO-G070RB). Od sada će se u dokumentu radi jednostavnosti spominjati samo NUCLEO-G071RB.
Ploča X-NUCLEO-ISO1A1 dizajnirana je za podršku slaganja dviju ploča s odgovarajućim postavkama kratkospojnika za proširenje ulaznih i izlaznih mogućnosti.
Akronimi i kratice
Tablica 1. Popis akronima
| Akronim | Opis |
| PLC | Programabilni logički kontroler |
| API | Sučelje za programiranje aplikacija |
| PWM | Modulacija širine impulsa |
| GPIO | Ulaz/izlaz opće namjene. |
| HAL | Sloj hardverske apstrakcije |
| PC | Osobno računalo |
| FW | Firmware |
Što je STM32Cube?
STM32Cube™ predstavlja inicijativu tvrtke STMicroelectronics za olakšavanje života programerima smanjenjem napora, vremena i troškova razvoja. STM32Cube pokriva STM32 portfelj.
STM32Cube verzija 1.x uključuje:
- STM32CubeMX, grafički alat za konfiguraciju softvera koji omogućuje generiranje C inicijalizacijskog koda pomoću grafičkih čarobnjaka.
- Sveobuhvatna ugrađena softverska platforma specifična za svaku seriju (kao što je STM32CubeG0 za seriju STM32G0), koja uključuje:
- Ugrađeni softver za apstraktni sloj STM32Cube HAL, osiguravajući maksimalnu prenosivost u cijelom STM32 portfelju
- konzistentan skup middleware komponenti kao što su RTOS, USB, TCP/IP i grafika
- svi ugrađeni softverski uslužni programi s punim skupom examples.
STM32Cube arhitektura
STM32Cube firmversko rješenje izgrađeno je oko tri neovisne razine koje mogu lako međusobno komunicirati, kao što je opisano na donjem dijagramu.

Softversko proširenje X-CUBE-ISO1 za STM32Cube
Nadview
Firmware za X-NUCLEO-ISO1A1, industrijsku izoliranu ulazno/izlaznu ploču za proširenje, razvijenu oko STM32 okruženja i biblioteka, koristi visokoučinkoviti MCU STM32 Nucleo ploča za upravljanje digitalnim ulazima, izlazima s integriranom dijagnostikom, zajedno s dinamičkim ograničenjem struje i generiranjem PWM signala. Sadrži sveobuhvatnu konfiguraciju i kontrolu ploče, uključujući okvire za zadane i alternativne uvjete, makroe za postavljanje vrijednosti predskalera i definicije za GPIO portove i pinove.
Podržava razneampslučajevi upotrebe aplikacija kao što su zrcaljenje digitalnog ulaza u izlaz, UART komunikacija putem Nucleo ploče, otkrivanje grešaka, testni slučajevi i generiranje PWM-a koji se mogu izravno koristiti i lako prilagoditi i proširiti.
API pruža robustan skup funkcija za upravljanje digitalnim ulazima/izlazima, otkrivanje grešaka i ažuriranje statusa ploče, s postavkama konfiguracije za istovremeni rad dvije ploče u različitim načinima rada. Dostupne su specifične API funkcije za inicijalizaciju, pokretanje, zaustavljanje i konfiguriranje PWM signala za digitalne izlazne kanale.
Paket podrške za ploču uključuje funkcije za kontrolu i nadzor GPIO pinova povezanih s IPS1025H-32 i očitavanje stanja GPIO pinova povezanih s CLT03-2Q3 putem digitalnog izolatora.
Konfiguracija i inicijalizacija temelje se na STM32CubeMX-u, a razvoj i otklanjanje pogrešaka podržavaju STM32CubeIDE, IAR Systems i Keil® alati.
Arhitektura
Firmver za X-NUCLEO-ISO1A1 može se podijeliti u nekoliko različitih funkcionalnih blokova, od kojih je svaki odgovoran za različite aspekte rada sustava:

- Konfiguracija i upravljanje pločom:
- Datoteka board_config.h file Sadrži makroe za konfiguriranje ploče za rad u zadanim ili alternativnim uvjetima ili oboje. Također uključuje definicije za vrijednosti predskalera te GPIO portove i pinove.
- Ovaj blok osigurava da je ploča ispravno postavljena za željene radne uvjete i da su sve potrebne hardverske konfiguracije na mjestu.
- Primjeri upotrebe aplikacije:
- Datoteke st_iso_app.h i st_iso_app.c filesadrže primjere upotrebe aplikacija osmišljene za testiranje različitih funkcionalnosti ploče.
- Ovi slučajevi upotrebe uključuju zrcaljenje digitalnog ulaza u izlaz, testove detekcije grešaka i generiranje PWM signala.
- ExampOmogućene su konfiguracije za istovremeni rad dvije ploče u različitim načinima rada, što pokazuje svestranost i fleksibilnost firmvera.
- API funkcije:
- Iso1a1.h i iso1a1.c filepružaju sveobuhvatan skup API-ja za podršku raznim funkcionalnostima.
- Ovi API-ji uključuju funkcije za upravljanje digitalnim ulazima/izlazima, otkrivanje grešaka i ažuriranja statusa ploče.
- API-ji su dizajnirani da budu jednostavni i intuitivni, što korisnicima olakšava interakciju s pločom i izvođenje potrebnih operacija.
- PWM upravljanje signalom:
- Datoteke pwm_api.h i pwm_api.c filesadrže specifične API funkcije vezane uz generiranje PWM signala.
- Ove funkcije omogućuju inicijalizaciju, konfiguriranje, pokretanje i zaustavljanje PWM signala za digitalne izlazne kanale.
- PWM funkcionalnost nije zadani izbor. Konfiguracija ploče mora biti izmijenjena kako bi se omogućila. Za više detalja pogledajte odjeljak 3.5: API-ji.
- Paket podrške Upravnom odboru:
- Paket podrške upravnog odbora uključuje fileza upravljanje i nadzor GPIO pinova povezanih s IPS1025H-32 i čitanje stanja GPIO pinova povezanih s CLT03-2Q3.
- ips1025h_32.h i ips1025h_32.c filePružaju funkcije za postavljanje, brisanje i otkrivanje grešaka na GPIO pinovima povezanim s IPS1025H-32.
- Clt03_2q3.h i clt03_2q3.c filepružaju funkcije za čitanje stanja GPIO pinova povezanih s CLT03-2Q3.
Demonstracijski firmware implementira nekoliko jednostavnih slučajeva upotrebe kako bi prikazao mogućnosti sustava. Ovi slučajevi upotrebe i korisnički API-ji izvršavaju se na koordiniran način kako bi se osigurao nesmetan rad i točni rezultati. Arhitektura je dizajnirana za jednostavno proširivanje, omogućujući korisnicima dodavanje novih funkcionalnosti i slučajeva upotrebe prema potrebi. Zadana konfiguracija je predviđena za pokretanje jedne ploče s digitalnim industrijskim IO-ima. Postavke kratkospojnika također moraju biti u zadanom načinu rada kako je opisano u Tablici 2. Zrcaljenje digitalnog ulaza i digitalnog izlaza (DIDO) je zadani slučaj upotrebe aplikacije firmwarea.
Struktura mape

Sljedeće mape uključene su u softverski paket:
- Dokumentacija sadrži kompajlirani HTML file generiran iz izvornog koda, s detaljima softverskih komponenti i API-ja.
- Driveri sadrže:
- mapa STM32Cube HAL, koja se nalazi u podmapama STM32G0xx_HAL_Driver. Ove filenisu ovdje opisani jer nisu specifični za X-CUBE-ISO1 softver, već dolaze izravno iz STM32Cube okvira.
- mapu CMSIS koja sadrži standard softverskog sučelja Cortex® mikrokontrolera files iz Arm. ove filesu sloj apstrakcije hardvera neovisan o dobavljaču za seriju procesora Cortex®-M. Ova mapa također dolazi nepromijenjena iz okvira STM32Cube.
- BSP mapa koja sadrži kodove za komponente IPS1025H-32 i CLT03-2Q3 te API-je povezane s X-NUCLEO-ISO1A1.
- Aplikacija sadrži korisničku mapu koja sadrži datoteku main.c. file, slučaj upotrebe aplikacije file, st_iso_app.c i board_config.h file, predviđeno za platformu NUCLEO-G071RB.
BSP mapa
Softver X-CUBE-ISO1 koristi dvije različite komponente files, koji se nalaze unutar BSP/komponenti:
IPS1025
ips1025h_32.h i ips1025h_32.c filePružaju sveobuhvatnu implementaciju upravljačkog programa za GPIO pinove povezane s IPS1025H-32, uključujući potpunu funkcionalnost za upravljanje svim pinovima i otkrivanje grešaka. fileimplementira funkcije za inicijalizaciju uređaja, postavljanje i brisanje statusa kanala, otkrivanje kvarova i upravljanje PWM funkcionalnošću. Upravljački program podržava više uređaja i kanala, s potpunim mogućnostima za pojedinačni kanal ili kao grupu.
CLT03
Clt03_2q3.h i clt03_2q3.c fileImplementiraju potpuno opremljen upravljački program za GPIO pinove povezane s CLT03-2Q3, s potpunim mogućnostima za čitanje stanja svih pinova. Upravljački program pruža funkcije za inicijalizaciju uređaja, čitanje statusa pojedinačnih kanala i istovremeno dobivanje informacija o statusu za sve kanale. Podržava više konfiguracija uređaja i održava unutarnje stanje za učinkovito upravljanje kanalima.
API-ji softvera X-CUBE-ISO1 podijeljeni su u dva glavna izvora files, koje se nalaze unutar podmape ISO1A1:
ISO1A1
ISO1A1 fileobuhvaćaju sveobuhvatan skup API funkcija dizajniranih za konfiguraciju ploče, interakciju komponenti i upravljanje greškama. Ove funkcije olakšavaju operacije čitanja i pisanja, otkrivanje grešaka i ažuriranja te uključuju razne pomoćne programe za podršku primarnim API funkcijama. Osim toga, filepružaju funkcionalnost za upravljanje LED diodama, inicijalizaciju GPIO-a, rukovanje prekidima i UART komunikaciju.
PWM API
PWM API pruža funkcije za inicijalizaciju, konfiguriranje, pokretanje i zaustavljanje PWM signala. Omogućuje postavljanje PWM frekvencije i radnog ciklusa za određene pinove timera, osiguravajući preciznu kontrolu nad PWM operacijama.
Mapa aplikacije
Mapa aplikacija sadrži glavnu filepotrebne za firmware, uključujući zaglavlja i izvorni kod files. U nastavku slijedi detaljan opis files u ovoj mapi:
- board_config.h: Makroi za konfiguraciju ploče.
- main.c: Glavni program (kod prethodnogample koji se temelji na biblioteci za ISO1A1).
- st_iso_app.c: Funkcije aplikacije za testiranje i konfiguraciju ploča.
- stm32g0xx_hal_msp.c: Rutine za inicijalizaciju HAL-a.
- stm32g0xx_it.c: Upravljač prekidima.
- syscalls.c: Implementacije sistemskih poziva.
- sysmem.c: Upravljanje memorijom sustava.
- system_stm32g0xx.c: Inicijalizacija sustava.
Softverski potrebni resursi
Nucleo uređaj kontrolira i komunicira s pločom X-NUCLEO-ISO1A1 putem GPIO-a. To zahtijeva korištenje nekoliko GPIO-a za ulaz, izlaz i otkrivanje grešaka industrijskih IO uređaja sadržanih u ploči X-NUCLEO-ISO1A1. Za više detalja i konfiguracije kratkospojnika pogledajte korisnički priručnik za hardver UM3483.
Konfiguracija ploče (board_config.h)
Datoteka board_config.h file definira korištene resurse i konfiguracijske makroe za konfiguriranje softvera prema konfiguraciji ploče. Može upravljati s do dvije ploče (npr. slaganjem dviju ploča).
Konfiguracija softvera DEFAULT usklađena je s pločom za proširenje X-NUCLEO-ISO1A1 s kratkospojnicima u zadanim položajima. Za konfiguraciju softvera za X-NUCLEO-ISO1A1 u zadanim postavkama, uklonite komentar iz makronaredbe BOARD_ID_DEFAULT u board_config.h. file.
Konfiguracija softvera ALTERNATE postavlja se uklanjanjem komentara iz makronaredbe BOARD_ID_ALTERNATE u datoteci board_config.h. file i mijenjanje položaja kratkospojnika na ploči.
Za istovremeno korištenje dvije ploče u konfiguraciji slaganja, uklonite komentare s makronaredbi BOARD_ID_DEFAULT i BOARD_ID_ALTERNATE te provjerite jesu li kratkospojnici jedne ploče u zadanom položaju, a druge u izmjeničnom položaju. Imajte na umu da se ne preporučuje imati obje ploče u istoj konfiguraciji (bilo obje u zadanom položaju ili obje u izmjeničnom položaju) i to može rezultirati neželjenim ponašanjem.
Kada koristite samo jednu ploču, provjerite je li softver konfiguriran za samo jednu konfiguraciju i je li makro koji odgovara drugoj konfiguraciji komentiran.

Predskaleri
Vrijednosti predskalera možemo konfigurirati u board_config.h kako bismo postigli različite frekvencijske raspone za PWM izlaz postavljanjem odgovarajućih makroa. Za korištenje predskalarne vrijednosti, odkomentirajte odgovarajući makro i komentirajte ostale. Prema zadanim postavkama koristi se DEFAULT_PRESCALAR.
- PREDSKALER_1
- PREDSKALER_2
- ZADANI_PREDSKALER
Vrijednosti predskalera koriste se samo kada se koriste timeri i nisu potrebne za osnovne I/O operacije. Vrijednosti predskalarnih makroa i njihovi odgovarajući frekvencijski rasponi mogu se pronaći u dokumentaciji koda ili u samom kodu.
LED za otkucaje srca
Možemo konfigurirati zelenu korisničku LED diodu, D7, da treperi u ritmu otkucaja srca kao test ispravne veze s pločom NUCLEO-G071RB. Makronaredba HEARTBEAT_LED, kada nije komentirana, treperi zelenom LED diodom na X-NUCLEO-ISO1A1 kada je spojena na NUCLEO. Ostaje uključena 1 sekundu i isključena 2 sekunde, a vrijeme određuju timeri. Kada se ne koristi ili se poziva bilo koja funkcija koja uključuje LED diode, makronaredba bi trebala biti bez komentara.
Konfiguracija ulaza i izlaza GPIO
Svaka X-NUCLEO-ISO1A1 ploča opremljena je s dva ulazna i dva izlazna priključka. Mogućnosti ploče mogu se proširiti slaganjem dvije X-NUCLEO-ISO1A1 ploče jednu na drugu, čime se omogućuje korištenje četiri digitalna ulazna i četiri digitalna izlazna priključka. Isporučeni softver uključuje sveobuhvatne API-je koji olakšavaju čitanje, postavljanje i brisanje priključaka. Osim toga, API-ji omogućuju istovremeno postavljanje, čitanje ili brisanje svih priključaka. Detaljne informacije o API funkcijama dostupne su u dokumentaciji koda, kao i u odjeljku API ovog dokumenta.

Ovdje prefiks DI označava digitalni ulazni priključak, a DO označava digitalni izlazni priključak. Za alternativnu konfiguraciju, softver koristi iste konvencije imenovanja s dodanim sufiksom _alt.
Sljedeća tablica detaljno prikazuje GPIO makroe definirane u softveru koji odgovaraju različitim IO portovima:
Tablica 2. GPIO-i dodijeljeni za zadane i alternativne konfiguracije softvera
| Ime | Funkcija | Zadana konfiguracija | Alternativna konfiguracija |
| UNOS PIN-a | Ulazni pin 1 | GPIOC, IA0_IN_1_PIN | GPIOD, IA0_IN_1_PIN |
| Ulazni pin 2 | GPIOD, IA1_IN_2_PIN | GPIOC, IA1_IN_1_PIN | |
| IZLAZNI PIN | Izlazni pin 1 | GPIOC, QA0_CNTRL_1_PIN | GPIOD, QA0_CNTRL_1_PIN |
| Izlazni pin 2 | GPIOC, QA1_CNTRL_2_PIN | GPIOC, QA1_CNTRL_2_PIN | |
| PIN ZA KVAR | Kvar pina 1 | GPIOC, FLT1_QA0_2_OT_PIN | GPIOD, FLT1_QA0_1_OT_PIN |
| Kvar pina 2 | GPIOC, FLT2_QA0_2_OL_PIN | GPIOD, FLT2_QA0_1_OL_PIN | |
| Kvar pina 3 | GPIOC, FLT1_QA1_2_OT_PIN | GPIOC, FLT1_QA1_1_OT_PIN | |
| Kvar pina 4 | GPIOC, FLT2_QA1_1_OL_PIN | GPIOD, FLT2_QA1_2_OL_PIN | |
| MAKRO ZA KONFIGURACIJU | ZADANI ID_PLOČE | ALTERNATIVNI ID_PLOČE |
Tajmeri i PWM
Tajmeri se mogu koristiti u X-CUBE-ISO1 firmwareu za generiranje PWM signala za određene pinove. Prema zadanim postavkama, tajmeri nisu inicijalizirani osim TIM3. Odgovarajući tajmeri trebaju biti inicijalizirani prije generiranja PWM signala, a odgovarajući izlazni portovi moraju biti inicijalizirani u PWM načinu rada.
Za normalne GPIO ulazno/izlazne operacije, nema potrebe za konfiguriranjem bilo kojeg timera ili izlaznog porta, jer se to rješava prema zadanim postavkama. Međutim, ako se izlazni pinovi postave u PWM način rada, moramo ih ponovno konfigurirati u GPIO načinu rada kako bi se koristili kao GPIO pinovi.
Bilješka: Kada se izlazni pinovi koriste za generiranje PWM-a, GPIO izlaz je onemogućen i obje funkcionalnosti se ne mogu istovremeno implementirati. Za ponovno omogućavanje GPIO-a nakon korištenja PWM-a, može se pozvati API funkcija ST_ISO_BoardConfigureDefault() ili ST_ISO_InitGPIO() za konfiguriranje svih portova kao GPIO odjednom ili ST_ISO_Init_GPIO() s određenim GPIO portom i pinom.
Kao što je gore spomenuto, softver također koristi jedan timer prema zadanim postavkama, TIM3, koji se koristi za korisničko podešavanje vremena LED dioda, sata i implementaciju UART vremena. Prema zadanim postavkama konfiguriran je na razdoblje od 1 sekunde.
Sljedeća tablica detaljno prikazuje tajmere dostupne za svaki pin u našem kodu:
Tablica 3. Dostupni tajmeri za svaki pin
| Naziv pribadače | Reprezentacija softvera | Odbrojavanje vremena | Kanal tajmera | Alternativna funkcija |
| 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 |
Dodatni uslužni programi firmvera
Firmver uključuje dodatne uslužne programe za poboljšanje funkcionalnosti evaluacijske ploče X-NUCLEO-ISO1A1. Neki od njih opisani su u nastavku.
UART
Funkcija UART komunikacije omogućuje praćenje i otklanjanje pogrešaka u stvarnom vremenu putem uslužnih programa za računalo kao što su TeraTerm, PuTTY i druge slične aplikacije. Softver omogućuje prijenos UART podataka putem UART-a prisutnog u ploči NUCLEO-G071RB. Funkcija `ST_ISO_UART` šalje detaljne informacije o statusu ploče putem UART-a, uključujući vrijeme rada sustava, konfiguraciju firmvera i status grešaka. Ovi podaci mogu biti viewpomoću bilo koje aplikacije serijskog porta, kao što je TeraTerm. Funkcija `ST_ISO_APP_DIDOandUART` kombinira digitalne ulazno/izlazne operacije s UART komunikacijom, prenoseći status svih ulaznih i izlaznih kanala u određenim intervalima. U nastavku su postavke konfiguracije i kaoampnačin prikaza podataka u TeraTermu. Naziv porta može varirati ovisno o sustavu i korištenom serijskom portu.


Konfiguracija načina rada IO pina
Uslužni program za konfiguraciju IO pinova omogućuje korisnicima postavljanje ulaznih i izlaznih priključaka ploče pomoću funkcije ST_ISO_BoardConfigure(). Ova funkcija podržava konfiguriranje dva izlazna priključka (QA0, QA1) i dva ulazna priključka (IA0, IA1) na način rada ulaz/izlaz, PWM izlaz ili način rada prekidnog ulaza. Podešavanjem parametara i pozivanjem ove funkcije, korisnici mogu jednostavno prilagoditi IO konfiguraciju ploče kako bi zadovoljili specifične potrebe.
U načinu rada za ulaz/izlaz, uslužni program inicijalizira GPIO pinove za opće digitalne operacije. U načinu rada za PWM izlaz, postavlja timere za preciznu kontrolu PWM signala. U načinu rada za ulaz prekida, uslužni program konfigurira pinove za rukovanje prekidima, omogućujući responzivno programiranje vođeno događajima.
Obrada prekida
Za rukovanje signalima GREŠKE, softver omogućuje pridružene prekidne linije, što omogućuje responzivno programiranje vođeno događajima. Prilagođeni rukovatelj može se povezati s tim prekidima putem
Funkcija HAL_GPIO_EXTI_Rising_Callback definirana u API-ju. Softver uključuje značajke za inicijalizaciju GPIO pinova u načinu rada prekida putem funkcije ST_ISO_BoardConfigure i konfiguriranje specifičnih radnji u EXTI IRQ rukovateljima. To korisnicima omogućuje prilagodbu načina na koji ploča reagira na vanjske događaje, osiguravajući da može učinkovito upravljati raznim uvjetima i okidačima grešaka.
Apis
Softverski API X-CUBE-ISO1 pruža sveobuhvatan skup funkcija za kontrolu i nadzor ploče X-NUCLEO-ISO1A1, uključujući generiranje PWM signala i GPIO operacije. API je dizajniran za jednostavno korištenje i integraciju u različite aplikacije, pružajući fleksibilnost i kontrolu nad funkcionalnošću ploče.
Softverski API X-CUBE-ISO1 definiran je u mapi BSP/ISO1A1. Njegove funkcije imaju prefiks ST_ISO. API je vidljiv aplikacijama putem iso1a1.c i pwm_api.c. files je kombinacija konstanti, struktura podataka i funkcija.
SampFirmverske aplikacije koriste ove API-je kako bi prikazale neke od mogućih upotreba ovih funkcija.
Softverski paket X-CUBE-ISO1 nudi dva seta API-ja:
- ISO1A1 API
- PWM API
ISO1A1 API
ISO1A1 API je definiran u iso1a1.h i iso1a1.c files. Pruža funkcije za konfiguriranje i upravljanje ISO1A1 pločom, uključujući GPIO ulazno/izlazne operacije i otkrivanje grešaka.
Ključne funkcije
- ST_ISO_BoardConfigureDefault: Konfigurira IO portove ploče s zadanom GPIO konfiguracijom.
- ST_ISO_BoardConfigure: Konfigurira način rada ulaznih i izlaznih portova za ploču.
- ST_ISO_BoardInit: Inicijalizira hardver ploče.
- ST_ISO_BoardMapInit: Inicijalizira funkcionalnost ploče na temelju konfiguracije ručki kanala.
- ST_ISO_GetFWVersion: Vraća trenutnu verziju firmvera.
- ST_ISO_GetChannelHandle: Dohvaća identifikator kanala za određeni naziv kanala.
- ST_ISO_InitGPIO: Inicijalizira određeni GPIO pin s danim ID-om modula.
- ST_ISO_InitInterrupt: Inicijalizira određeni GPIO pin kao prekid s danim ID-om modula.
- ST_ISO_EnableFaultInterrupt: Inicijalizira GPIO pinove za slučaj greške u načinu rada prekida.
- ST_ISO_SetChannelStatus: Postavlja status određenog kanala.
- ST_ISO_SetOne_DO: Postavlja jedan digitalni izlazni kanal.
- ST_ISO_ClearOne_DO: Briše jedan digitalni izlazni kanal.
- ST_ISO_WriteAllChannels: Zapisuje podatke na sve digitalne izlazne kanale.
- ST_ISO_GetOne_DI: Dobiva status jednog digitalnog ulaznog kanala.
- ST_ISO_ReadAllChannel: Čita status svih ulaznih kanala.
- ST_ISO_ReadAllOutputChannel: Čita status svih izlaznih kanala.
- ST_ISO_ReadFaultStatus: Čita status greške sa svih portova za detekciju greške.
- ST_ISO_ReadFaultStatusPolling: Testira otkrivanje grešaka ploča u načinu ispitivanja.
- ST_ISO_DisableOutputChannel: Onemogućuje izlaz za taj kanal.
- ST_ISO_UpdateBoardStatusInfo: Ažurira informacije o statusu ploče.
- ST_ISO_UpdateFaultStatus: Ažurira status greške za određeni kanal.
- ST_ISO_BlinkLed: Treperi određena LED dioda s određenim kašnjenjem i brojem ponavljanja.
- ST_ISO_UART: Šalje informacije o statusu ploče putem UART-a.
- ST_ISO_SwitchInit: Inicijalizira komponente prekidača.
- ST_ISO_SwitchDeInit: Deinicijalizira instancu prekidača.
- ST_ISO_DigitalInputInit: Inicijalizira digitalne ulazne komponente.
- ST_ISO_DigitalInputDeInit: Deinicijalizira instancu digitalnog ulaza.
PWM API
PWM API je definiran u pwm_api.h i pwm_api.c files. Pruža sljedeće funkcije za inicijalizaciju i kontrolu PWM signala za određene pinove.
- ST_ISO_Init_PWM_Signal: Inicijalizira timere i specifični pin za PWM signal.
- ST_ISO_Set_PWM_Frequency: Postavlja PWM frekvenciju za određeni pin.
- ST_ISO_Set_PWM_Duty_Cycle: Postavlja PWM radni ciklus za određeni pin.
- ST_ISO_Start_PWM_Signal: Pokreće PWM signal na određenom pinu.
- ST_ISO_Stop_PWM_Signal: Zaustavlja PWM signal na određenom pinu.
Za pokretanje PWM signala na odgovarajućem kanalu, prvo pozovite funkciju ST_ISO_Init_PWM_Signal, zatim postavite željenu frekvenciju i radni ciklus pozivom ST_ISO_Set_PWM_Frequency i
funkcije ST_ISO_Set_PWM_Duty_Cycle, a zatim možete pokrenuti PWM signal pozivom funkcije ST_ISO_Start_PWM_Signal i zaustaviti ga pozivom funkcije ST_ISO_Stop_PWM_Signal.
Funkciju je potrebno pozvati s odgovarajućim nazivom pina i dostupnim timerima, čiji su detalji navedeni u tablici 3. Različiti izlazni kanali mogu se postaviti s različitim frekvencijama i radnim ciklusima; promjena frekvencije ili radnog ciklusa ne utječe na druge, ostaje ista.
Detaljne tehničke informacije o API-jima dostupnim korisniku mogu se pronaći u kompajliranom HTML-u file koji se nalazi unutar mape “Documentation” programskog paketa gdje su u potpunosti opisane sve funkcije i parametri.
Opis aplikacije
Demonstracijska aplikacija implementira nekoliko jednostavnih slučajeva upotrebe. st_iso_app i board_config fileIgraju ključnu ulogu u postavljanju i korištenju ploče i njezinih aplikacijskih funkcija. Prije korištenja ovih funkcija provjerite jesu li konfiguracija ploče i softvera međusobno sinkronizirane.
Funkcije aplikacije (st_iso_app.h i st_iso_app.c)
Funkcije aplikacije imaju prefiks ST_ISO_APP; to su funkcije najviše razine vidljive korisniku koji poziva API funkcije za njihovu implementaciju. Funkcije aplikacije mogu se pozvati u main.c file za njihovo funkcioniranje.
- Odabir slučaja upotrebe: Korisnik može ukloniti komentar željenog makroa slučaja upotrebe u st_iso_app.c fileFunkcija ST_ISO_APP_SelectUseCaseMacro(), pozvana u main.c, inicijalizira taj slučaj upotrebe, a funkcija ST_ISO_APP_SelectedFunction() ga implementira u main.c. Ovaj pristup omogućuje jednostavnu konfiguraciju načina rada jednostavnim mijenjanjem definicija makroa, osiguravajući da se odgovarajuća funkcionalnost izvršava na temelju odabranog slučaja upotrebe. Prema zadanim postavkama, odabran je slučaj upotrebe DIDO i korisnik ne mora unositi nikakve promjene u kod da bi ga implementirao.
- Zrcaljenje digitalnog ulaza u digitalni izlaz (ST_ISO_APP_UsecaseDIDO): Ova funkcija čita status svih ulaznih kanala i zapisuje isti status na sve izlazne kanale. Korisna je za zrcaljenje digitalnih ulaza u digitalne izlaze.
- Zrcaljenje digitalnog ulaza u digitalni izlaz s UART-om (ST_ISO_APP_DIDOandUART): Ova funkcija zrcali digitalne ulaze u digitalne izlaze, slično funkciji ST_ISO_APP_UsecaseDIDO. Osim toga, prenosi status ploče putem UART sučelja na Nucleo uređaju, omogućujući praćenje statusa. viewna serijskom portu pomoću aplikacija poput Tera Terma.
- Funkcija testnog slučaja (ST_ISO_APP_TestCase): Ova funkcija izvodi niz testova i radnji na temelju konfiguracije ploče. Provjerava status greške, očitava status dva digitalna ulazna kanala i izvodi radnje na temelju njihovih vrijednosti. Ova funkcija pomaže u brzoj procjeni performansi i funkcionalnosti ploče te dobivanju vizualnih povratnih informacija putem različitih uzoraka LED dioda. Osigurajte makro HEARTBEAT_LED u board_config.h. file komentirano je kako bi se promatrali ispravni uzorci LED dioda.
- Generiranje PWM-a (ST_ISO_APP_PWM _OFFSET): Ova funkcija pokreće PWM signal na oba izlazna kanala s frekvencijom od 1 Hz i radnim ciklusom 50%. Inicijalizira PWM signal, postavlja frekvenciju i radni ciklus te pokreće PWM signal za određeni ID ploče. PWM signal se generira s pomakom između oba kanala i stoga nisu u fazi.
- Test otkrivanja kvara (ST_ISO_APP_FaultTest): Ova funkcija procjenjuje otkrivanje kvara pokretanjem ugrađenih dijagnostičkih pinova pametnog izlaznog modula IPS1025 u načinu ispitivanja ili prekida. Konfigurira način otkrivanja kvara, inicijalizira otkrivanje kvara i ažurira strukturu statusa kvara na temelju odabranog načina. Ova funkcija je ključna za osiguranje pouzdanosti i sigurnosti ploče učinkovitim otkrivanjem i rješavanjem kvarova. Kada je u načinu ispitivanja, status kvara ažurira se svake sekunde uz pomoć timera i odražava se u strukturi defaultBoardFaultStatus ili alternateBoardFaultStatus. Kada je u načinu prekida, status kvara ažurira se samo kada se kvar dogodi i pokreće softver da obriše odgovarajući izlazni port.
- Test varijacije PWM-a (ST_ISO_APP_PwmVariationTest): Ova je funkcija osmišljena za testiranje varijacije PWM (modulacija širine impulsa) signala na različitim izlaznim kanalima na temelju konfiguracije ploče. Inicijalizira PWM signale za zadanu i alternativnu konfiguraciju ploče, postavljajući njihovu frekvenciju na 100 Hz i početni radni ciklus na 0%. Funkcija zatim mijenja radni ciklus od 0% do 100% u koracima od 5% i natrag od 100% do 0% u koracima od 5%, s odgodom od 2 sekunde između svakog koraka. Ova kontrolirana varijacija omogućuje promatranje i procjenu ponašanja PWM signala na kanalima QA_0 i QA_1 za zadanu ploču te QA_0_ALT i QA_1_ALT za alternativnu ploču.
Slijedeći ove konfiguracije i koristeći dostupne funkcije aplikacije, možete učinkovito postaviti i koristiti ploču X-NUCLEO-ISO1A1 za različite demonstracijske slučajeve upotrebe.
Vodič za postavljanje sustava
Opis hardvera
STM32 Nucleo platforma
STM32 Nucleo razvojne ploče pružaju pristupačan i fleksibilan način za korisnike da testiraju rješenja i izgrade prototipe s bilo kojom linijom STM32 mikrokontrolera.
Podrška za Arduino® povezivost i ST morpho konektori olakšavaju proširenje funkcionalnosti otvorene razvojne platforme STM32 Nucleo širokim rasponom specijaliziranih ploča za proširenje koje možete izabrati.
STM32 Nucleo ploča ne zahtijeva zasebne sonde budući da integrira ST-LINK/V2-1 debugger/programer.
STM32 Nucleo ploča dolazi sa opsežnom bibliotekom STM32 softvera HAL zajedno s raznim pakiranim softverom npr.amples.

Informacije o ploči STM32 Nucleo dostupne su na www.st.com/stm32nucleo
Ploča za proširenje X-NUCLEO-ISO1A1
X-NUCLEO-ISO1A1 je evaluacijska ploča s izoliranim industrijskim ulazom/izlazom dizajnirana za proširenje STM32 Nucleo ploče i pružanje funkcionalnosti mikro-PLC-a. Dvije X-NUCLEO-ISO1A1 ploče mogu se složiti zajedno na vrh STM32 Nucleo ploče s odgovarajućim odabirom kratkospojnika na ploči za proširenje kako bi se izbjegao sukob u GPIO sučeljima. UL1577 certificirani digitalni izolatori STISO620 i STISO621 osiguravaju izolaciju između logičkih i procesnih komponenti. Dva strujno ograničena visokonaponska ulaza s procesne strane realiziraju se putem CLT03-2Q3. CLT03-2Q3 pruža zaštitu, izolaciju i indikaciju statusa bez energije za industrijske uvjete, dizajnirana da zadovolji standarde kao što su IEC61000-4-2, IEC61000-4-4 i IEC61000-4-5. Po jedan od visokonaponskih prekidača IPS1025H-32/HQ-32 pruža zaštićeni izlaz do 5.6 A s dijagnostičkim i pametnim značajkama upravljanja. Mogu pokretati kapacitivna, otporna ili induktivna opterećenja. X-NUCLEO-ISO1A1 omogućuje brzu procjenu integriranih krugova na ploči pomoću softverskog paketa X-CUBE-ISO1.

Postavljanje hardvera
Potrebne su sljedeće hardverske komponente:
- Jedna STM32 Nucleo razvojna platforma (preporučeni kod narudžbe: NUCLEO-GO71RB)
- Jedna industrijska ploča za proširenje digitalnih izlaza (šifra narudžbe: X-NUCLEO-ISO1A1)
- Jedan USB kabel tipa A na Micro USB za spajanje STM32 Nucleo uređaja na računalo
- Vanjski izvor napajanja (24 V) i pripadajuće žice za napajanje ploče proširenja X-NUCLEO-ISO1A1.
Postavljanje softvera
Za postavljanje prikladnog razvojnog okruženja za izradu aplikacija za STM32 Nucleo opremljen pločom za proširenje X-NUCLEO-ISO1A1 potrebne su sljedeće softverske komponente:
- X-CUBE-ISO1: proširenje za STM32Cube namijenjeno razvoju aplikacija koje zahtijeva korištenje ploče X-NUCLEO-ISO1A1. Firmware za X-CUBE-ISO1 i povezana dokumentacija dostupni su na www.st.com
- Razvojni alati i kompajler: softver za proširenje STM32Cube podržava sljedeća tri okruženja:
- IAR Embedded Workbench za ARM® (IAR-EWARM) alatni lanac
- StvaranView Alat za razvojni komplet mikrokontrolera (MDK-ARM-STM32)
- STM32CubeIDE.
Postavljanje ploče
Ploča mora biti konfigurirana s odgovarajućim postavkama kratkospojnika kako je navedeno u korisničkom priručniku za hardver (UM3483). Pažljivo pridržavanje ovih smjernica ključno je za osiguranje ispravnog funkcioniranja i izbjegavanje potencijalnih problema.
Vodič za postavljanje sustava
Ovaj odjeljak opisuje kako postaviti različite hardverske dijelove prije razvoja i izvršavanja aplikacije na ploči STM32 Nucleo, NUCLEO-G071RB s pločom za proširenje X-NUCLEO-ISO1A1.


Postavljanje za X-CUBE-ISO1 paket proširenja
X-NUCLEO-ISO1A1 mora biti konfiguriran sa specifičnim položajima kratkospojnika ovisno o konfiguraciji koju koristite na ploči. Detalje o tome možete pronaći u priručniku za hardver.
- Korak 1. Priključite ploču za proširenje X-NUCLEO-ISO1A1 na vrh STM32 Nucleo putem morfokonektora.
Ako koristite dvije ploče jednu na drugu, složite ih kao što je prikazano na slici 11. - Korak 2. Spojite STM32 Nucleo ploču na računalo pomoću USB kabela preko USB konektora CN1 kako biste napajali ploču.
- Korak 3. Uključite ploču(e) za proširenje X-NUCLEO-ISO1A1 spajanjem J1 na 24V DC napajanje. Ako koristite složene ploče, provjerite jesu li obje ploče uključene.
- Korak 4. Otvorite željeni skup alata (MDK-ARM od Keila, EWARM od IAR-a ili STM32CubeIDE).
- Korak 5. Otvorite softverski projekt i napravite potrebne promjene u datoteci board_config.h. file prema konfiguraciji korištene(ih) ploče(a).
- Korak 6. Postavite odgovarajući makro slučaja upotrebe u st_iso_app.c file ili pozovite potreban slučaj upotrebe pomoću funkcije ST_ISO_APP_SelectUseCase u main.c file zajedno s bilo kojom drugom željenom funkcijom.
- Korak 7. Izgradite projekt kako biste sve kompajlirali files i učitajte kompilirani kod u memoriju STM32 Nucleo ploče.
- Korak 8. Pokrenite kod na STM32 Nucleo ploči i provjerite očekivano ponašanje.
Povijest revizija
Tablica 4. Povijest revizija dokumenta
| Datum | Revizija | Promjene |
| 14. svibnja-2025 | 1 | Početno izdanje. |
VAŽNA OBAVIJEST – PAŽLJIVO PROČITAJTE
STMicroelectronics NV i njegove podružnice ("ST") zadržavaju pravo izmjene, ispravke, poboljšanja, preinake i poboljšanja ST proizvoda i/ili ovog dokumenta u bilo koje vrijeme bez prethodne najave. Kupci bi trebali dobiti najnovije relevantne informacije o ST proizvodima prije narudžbe. Proizvodi ST-a prodaju se u skladu s odredbama i uvjetima prodaje ST-a koji su na snazi u trenutku potvrde narudžbe.
Kupci su isključivo odgovorni za izbor, izbor i korištenje ST proizvoda i ST ne preuzima nikakvu odgovornost za pomoć pri primjeni ili dizajn proizvoda kupaca.
ST ovdje ne daje nikakvu licencu, izričitu ili implicitnu, za bilo koje pravo intelektualnog vlasništva.
Preprodaja ST proizvoda s odredbama različitim od ovdje navedenih informacija poništit će svako jamstvo koje je ST dao za takav proizvod.
ST i ST logo su zaštitni znakovi tvrtke ST. Dodatne informacije o zaštitnim znakovima ST potražite na www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika.
Informacije u ovom dokumentu nadziru i zamjenjuju informacije prethodno navedene u bilo kojoj od prethodnih verzija ovog dokumenta.
© 2025 STMicroelectronics – Sva prava pridržana
Dokumenti / Resursi
![]() |
STMicroelectronics UM3469 X-CUBE-ISO1 Proširenje softvera [pdf] Korisnički priručnik X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 X-CUBE-ISO1 Proširenje softvera, UM3469, X-CUBE-ISO1 Proširenje softvera, Proširenje softvera |

