ST-logó

STMicroelectronics UM3469 X-CUBE-ISO1 szoftverbővítés

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés

Bevezetés

Az STM1Cube-hoz készült X-CUBE-ISO32 bővítőszoftvercsomag az STM32-n fut, és tartalmazza az X-NUCLEO-ISO1A1 firmware-jét. A szoftver könnyen használható megoldást kínál az X-NUCLEO által biztosított alapvető PLC-eszköz fejlesztéséhez. A bővítés az STM32Cube szoftvertechnológiára épül, hogy megkönnyítse a hordozhatóságot a különböző STM32 mikrovezérlők között.

A szoftver egy implementációval érkezik, amely az X-NUCLEO-ISO1A1 bővítőkártyán fut, és egy NUCLEO-G071RB fejlesztőkártyához (vagy egy NUCLEO-G0B1RE-hez vagy egy NUCLEO-G070RB-hez) csatlakozik. A dokumentumban a továbbiakban az egyszerűség kedvéért csak a NUCLEO-G071RB-t említjük.
Az X-NUCLEO-ISO1A1 kártya két kártya egymásra helyezésére szolgál megfelelő jumper-beállításokkal, így bővítve a bemeneti és kimeneti képességeket.

Mozaikszavak és rövidítések

1. táblázat A betűszavak listája

Betűszó Leírás
PLC Programozható logikai vezérlő
API Alkalmazás programozási felület
PWM Impulzus szélesség moduláció
GPIO Általános célú bemenet/kimenet.
HAL Hardveres absztrakciós réteg
PC Személyi számítógép
FW Firmware

Mi az az STM32Cube?

Az STM32Cube™ az STMicroelectronics kezdeményezését képviseli, amelynek célja a fejlesztők életének megkönnyítése a fejlesztési erőfeszítések, az idő és a költségek csökkentésével. Az STM32Cube lefedi az STM32 portfólióját.
Az STM32Cube 1.x verziója a következőket tartalmazza:

  • Az STM32CubeMX egy grafikus szoftverkonfiguráló eszköz, amely lehetővé teszi C inicializáló kód generálását grafikus varázslók segítségével.
  • Egy átfogó, az egyes sorozatokra jellemző beágyazott szoftverplatform (például az STM32G0 sorozathoz tartozó STM32CubeG0), amely a következőket tartalmazza:
    • az STM32Cube HAL beágyazott absztrakciós rétegű szoftvere, amely maximális hordozhatóságot biztosít az STM32 portfólió teljes egészében
    • köztes rétegű komponensek konzisztens halmaza, mint például RTOS, USB, TCP/IP és grafika
    • minden beágyazott szoftver segédprogram teljes ex készlettelamples.

STM32Cube architektúra
Az STM32Cube firmware megoldás három független szintre épül, amelyek könnyen kölcsönhatásba léphetnek egymással, az alábbi ábrán látható módon.

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-1

X-CUBE-ISO1 szoftverbővítés STM32Cube-hoz

Felettview
Az X-NUCLEO-ISO1A1 iparilag leválasztott bemeneti/kimeneti bővítőkártya firmware-je, amelyet STM32 környezetek és könyvtárak köré fejlesztettek, az STM32 Nucleo kártyák nagy teljesítményű MCU-ját használja ki a digitális bemenetek, kimenetek integrált diagnosztikával, dinamikus áramkorláttal és PWM jelgenerálással történő kezeléséhez. Átfogó kártyakonfigurációt és -vezérlést kínál, beleértve az alapértelmezett és alternatív feltételek keretrendszereit, az előosztó értékek beállításához szükséges makrókat, valamint a GPIO portok és csatlakozók definícióit.

Különböző s-eket támogatampolyan alkalmazási esetek, mint a digitális bemenet-kimenet tükrözés, UART kommunikáció a Nucleo kártyán keresztül, hibakeresés, tesztesetek és PWM generálás, amelyek közvetlenül használhatók, és könnyen testreszabhatók és bővíthetők.

Az API robusztus függvénykészletet biztosít a digitális bemenet/kimenet vezérléséhez, a hibaészleléshez és a panel állapotfrissítéséhez, konfigurációs beállításokkal két panel egyidejű, különböző módokban történő futtatásához. Speciális API-függvények állnak rendelkezésre a digitális kimeneti csatornák PWM-jeleinek inicializálásához, indításához, leállításához és konfigurálásához.

A kártya támogató csomagja olyan funkciókat tartalmaz, amelyekkel vezérelhetők és felügyelhetők az IPS1025H-32-höz csatlakoztatott GPIO-lábak, valamint digitális leválasztón keresztül kiolvasható a CLT03-2Q3-hoz csatlakoztatott GPIO-lábak állapota.
A konfiguráció és az inicializálás az STM32CubeMX-en alapul, a fejlesztést és a hibakeresést pedig az STM32CubeIDE, az IAR Systems és a Keil® eszközök támogatják.

Építészet
Az X-NUCLEO-ISO1A1 firmware-je több különálló funkcionális blokkra osztható, amelyek mindegyike a rendszer működésének különböző aspektusaiért felelős:

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-2

  • Kártya konfiguráció és vezérlés:
    • A board_config.h fájl file Makrókat tartalmaz a kártya alapértelmezett vagy alternatív, vagy mindkettőben történő futtatásához. Tartalmazza továbbá az előskálázó értékeinek, valamint a GPIO portok és csatlakozók definícióit.
    • Ez a blokk biztosítja, hogy a panel megfelelően legyen beállítva a kívánt működési feltételeknek, és hogy minden szükséges hardverkonfiguráció a helyén legyen.
  • Alkalmazási esetek:
    • Az st_iso_app.h és st_iso_app.c fájlok fileaz alkalmazáshasználati eseteket tartalmazzák, amelyek a kártya különböző funkcióinak tesztelésére szolgálnak.
    • Ezek a felhasználási esetek magukban foglalják a digitális bemenetről kimenetre való tükrözést, a hibakeresési teszteket és a PWM jelgenerálást.
    • ExampA firmware sokoldalúságát és rugalmasságát demonstráló, lekonfigurációk állnak rendelkezésre két kártya egyidejű, különböző módokban történő futtatásához.
  • API-függvények:
    • Az iso1a1.h és iso1a1.c fájlok fileAz API-k átfogó készletet biztosítanak a különféle funkciók támogatásához.
    • Ezek az API-k digitális bemenet/kimenet vezérléshez, hibaészleléshez és kártyaállapot-frissítésekhez szükséges funkciókat tartalmaznak.
    • Az API-kat egyszerűnek és intuitívnak tervezték, megkönnyítve a felhasználók számára a táblával való interakciót és a szükséges műveletek végrehajtását.
  • PWM jelvezérlés:
    • A pwm_api.h és pwm_api.c fájlok fileaz ok a PWM jelgenerálással kapcsolatos specifikus API függvényeket tartalmaznak.
    • Ezek a funkciók lehetővé teszik a digitális kimeneti csatornák PWM jeleinek inicializálását, konfigurálását, indítását és leállítását.
    • A PWM funkció nem alapértelmezett beállítás. A panel konfigurációját módosították ezek engedélyezéséhez. További részletekért lásd a 3.5. szakaszt: API-k.
  • Igazgatótanácsi támogatási csomag:
    • A testület támogatási csomagja tartalmazza files az IPS1025H-32-höz csatlakoztatott GPIO-lábak vezérlésére és monitorozására, valamint a CLT03-2Q3-hoz csatlakoztatott GPIO-lábak állapotának kiolvasására.
    • Az ips1025h_32.h és ips1025h_32.c fájlok fileAz IPS1025H-32-höz csatlakoztatott GPIO-lábakon fellépő hibák beállításához, törléséhez és észleléséhez szükséges funkciókat biztosítanak.
    • A clt03_2q3.h és a clt03_2q3.c fájlok fileAz s funkciókat biztosítanak a CLT03-2Q3-hoz csatlakoztatott GPIO lábak állapotának kiolvasásához.

A demonstrációs firmware számos egyszerű használati esetet valósít meg a rendszer képességeinek bemutatására. Ezeket a használati eseteket és felhasználói API-kat összehangolt módon hajtják végre a zökkenőmentes működés és a pontos eredmények biztosítása érdekében. Az architektúra könnyen bővíthető, lehetővé téve a felhasználók számára új funkciók és használati esetek hozzáadását szükség szerint. Az alapértelmezett konfiguráció egyetlen digitális ipari I/O-kkal rendelkező kártya futtatásához biztosított. A jumperek beállításának is alapértelmezett módban kell lennie, a 2. táblázatban leírtak szerint. A digitális bemenet és a digitális kimenet tükrözése (DIDO) az alapértelmezett firmware alkalmazási használati eset.

Mappa felépítése

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-3

A szoftvercsomag a következő mappákat tartalmazza:

  • A dokumentáció egy lefordított HTML-t tartalmaz file a forráskódból generált, részletezve a szoftverösszetevőket és API-kat.
  • Az illesztőprogramok a következőket tartalmazzák:
    • egy STM32Cube HAL mappa, amely az STM32G0xx_HAL_Driver almappákban található. Ezek fileAz ok itt nem kerülnek leírásra, mivel nem az X-CUBE-ISO1 szoftverre jellemzőek, hanem közvetlenül az STM32Cube keretrendszerből származnak.
    • egy CMSIS mappa, amely tartalmazza a Cortex® mikrokontroller szoftver interfész szabványát files Arm. Ezek fileAz ok a Cortex®-M processzorsorozat gyártófüggetlen hardver absztrakciós rétegei. Ez a mappa változatlanul átkerült az STM32Cube keretrendszerhez.
    • egy BSP mappa, amely az IPS1025H-32 és CLT03-2Q3 komponensek kódjait, valamint az X-NUCLEO-ISO1A1-hez kapcsolódó API-kat tartalmazza.
  • Az alkalmazás tartalmazza a felhasználói mappát, amely a main.c fájlt tartalmazza. file, az alkalmazás használati esete file, az st_iso_app.c és a board_config.h fájlokat. file, a NUCLEO-G071RB platformhoz biztosítva.

BSP mappa
Az X-CUBE-ISO1 szoftver két különböző komponenst használ files, amelyek a BSP/Components mappán belül találhatók:

IPS1025
Az ips1025h_32.h és ips1025h_32.c fájlok fileAz IPS1025H-32-höz csatlakoztatott GPIO lábakhoz átfogó meghajtóprogram-implementációt biztosítanak, beleértve az összes láb vezérlésének és a hibák észlelésének teljes funkcionalitását. Ezek a fileAz illesztőprogramok funkciókat valósítanak meg az eszköz inicializálásához, a csatorna állapotának beállításához és törléséhez, a hibák észleléséhez és a PWM funkciók kezeléséhez. A meghajtó több eszközt és csatornát támogat, teljes körű képességekkel mind az egyes csatornák, mind a csoportos működéshez.

CLT03
A clt03_2q3.h és a clt03_2q3.c fájlok fileEgy teljes funkcionalitású illesztőprogramot valósítanak meg a CLT03-2Q3-hoz csatlakoztatott GPIO lábakhoz, amely teljes mértékben képes kiolvasni az összes lábállapotot. A illesztőprogram olyan funkciókat biztosít, amelyekkel inicializálható az eszköz, kiolvasható az egyes csatornák állapota, és egyidejűleg lekérdezhetők az összes csatorna állapotinformációi. Több eszközkonfigurációt támogat, és a hatékony csatornakezelés érdekében belső állapotot is tárol.

Az X-CUBE-ISO1 szoftver API-k két fő forrásra oszlanak files, amelyek az ISO1A1 almappában találhatók:

ISO1A1
Az ISO1A1 fileAz API-funkciók átfogó készletét foglalják magukban, amelyeket a panel konfigurálására, az alkatrészek interakciójára és a hibakezelésre terveztek. Ezek a funkciók megkönnyítik az olvasási és írási műveleteket, a hibák észlelését és frissítését, valamint különféle segédprogramokat tartalmaznak az elsődleges API-funkciók támogatására. Ezenkívül a filefunkciókat biztosítanak a LED vezérléshez, a GPIO inicializáláshoz, a megszakításkezeléshez és az UART kommunikációhoz.

PWM API
A PWM API funkciókat biztosít a PWM jelek inicializálásához, konfigurálásához, indításához és leállításához. Lehetővé teszi a PWM frekvencia és kitöltési tényező beállítását a megadott időzítő lábakhoz, biztosítva a PWM műveletek precíz vezérlését.

Alkalmazás mappa
Az Alkalmazás mappa tartalmazza a fő filea firmware-hez szükségesek, beleértve a fejléceket és a forrást files. Az alábbiakban részletesen leírjuk a files ebben a mappában:

  • board_config.h: A panel konfigurációs makrói.
  • main.c: Főprogram (az ex kódja)ampfájl, amely az ISO1A1 könyvtárán alapul).
  • st_iso_app.c: Alkalmazásfüggvények a panel teszteléséhez és konfigurálásához.
  • stm32g0xx_hal_msp.c: HAL inicializálási rutinok.
  • stm32g0xx_it.c: Megszakításkezelő.
  • syscalls.c: Rendszerhívások implementációi.
  • sysmem.c: Rendszermemória-kezelés.
  • system_stm32g0xx.c: Rendszer inicializálása.

Szoftver szükséges erőforrások
A Nucleo eszköz GPIO-kon keresztül vezérli és kommunikál az X-NUCLEO-ISO1A1 panellel. Ehhez több GPIO szükséges a bemenethez, kimenethez és az X-NUCLEO-ISO1A1 panelen található ipari I/O eszközök hibajelzéséhez. További részletekért és a jumper konfigurációkért lásd az UM3483 hardver felhasználói kézikönyvet.

Alaplap konfiguráció (board_config.h)
A board_config.h fájl file Meghatározza a felhasznált erőforrásokat és a konfigurációs makrókat a szoftver konfigurálásához a kártya konfigurációjának megfelelően. Legfeljebb két kártyát kezel (például két kártya egymásra rakását).
A szoftver DEFAULT konfigurációja az X-NUCLEO-ISO1A1 bővítőkártyához igazodik, a jumperek az alapértelmezett pozícióban vannak. Az X-NUCLEO-ISO1A1 szoftver alapértelmezett beállításának konfigurálásához vegye ki a BOARD_ID_DEFAULT makró megjegyzését a board_config.h fájlban. file.

A szoftveres ALTERNATE konfiguráció a board_config.h fájlban található BOARD_ID_ALTERNATE makró megjegyzésének eltávolításával állítható be. file és a jumperek pozíciójának megváltoztatása a panelen.
Két panel egyidejű, egymásra helyezett konfigurációban történő használatához vegye ki a BOARD_ID_DEFAULT és a BOARD_ID_ALTERNATE makrók megjegyzését, és győződjön meg arról, hogy az egyik panel jumperei az alapértelmezett, a másik pedig az alternatív helyzetben vannak. Vegye figyelembe, hogy nem ajánlott mindkét panelt ugyanabban a konfigurációban használni (akár mindkettő alapértelmezett, akár mindkettő alternatív konfigurációban), és nem kívánt viselkedést eredményezhet.
Ha csak egy kártyát futtat, ügyeljen arra, hogy a szoftver csak az egyik konfigurációhoz legyen konfigurálva, és a másik konfigurációnak megfelelő makró kommentelve legyen.

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-4

Előskálázók
A board_config.h fájlban található előskalár értékeket konfigurálhatjuk, hogy a megfelelő makrók beállításával különböző frekvenciatartományokat érjünk el a PWM kimeneten. Előskalár érték használatához távolítsuk el a megfelelő makró megjegyzését, és a többit kommenteljük. Alapértelmezés szerint a DEFAULT_PRESCALAR érték van használatban.

  • ELŐSZÁMÍTÓ_1
  • ELŐSZÁMÍTÓ_2
  • ALAPÉRTELMEZETT_ELŐMÉRŐ

Az előosztó értékeit csak időzítők használatakor használják, és semmilyen alapvető I/O művelethez nem szükségesek. Az előosztó makrók értékei és a hozzájuk tartozó frekvenciatartományok a kód dokumentációjában vagy magában a kódban találhatók.

Szívverés LED
A zöld felhasználói LED-et (D7) úgy konfigurálhatjuk, hogy szívverésszerűen villogjon, ezzel tesztelve a NUCLEO-G071RB panelhez való megfelelő csatlakozást. A HEARTBEAT_LED makró, ha nincs kommentálva, villogtatja az X-NUCLEO-ISO1A1 zöld LED-jét, amikor az a NUCLEO-hoz csatlakozik. 1 másodpercig világít, majd 2 másodpercig nem, az időzítők időzítik a folyamatot. Ha nincs használatban, vagy LED-eket tartalmazó funkciót nem hívnak meg, a makrót kommenteletlenül kell hagyni.

Bemeneti és kimeneti GPIO konfiguráció
Minden X-NUCLEO-ISO1A1 panel két bemeneti és két kimeneti porttal van felszerelve. A panel képességei bővíthetők két X-NUCLEO-ISO1A1 panel egymásra helyezésével, ezáltal négy digitális bemeneti és négy digitális kimeneti port használatát teszi lehetővé. A mellékelt szoftver átfogó API-kat tartalmaz, amelyek megkönnyítik a portok olvasását, beállítását és törlését. Ezenkívül az API-k lehetővé teszik az összes port egyidejű beállítását, olvasását vagy törlését. Az API-funkciókról részletes információk a kód dokumentációjában, valamint a dokumentum API-részében találhatók.

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-5

Itt a DI előtag a digitális bemeneti portot, a DO pedig a digitális kimeneti portot jelöli. Alternatív konfiguráció esetén a szoftver ugyanazokat az elnevezési konvenciókat használja, _alt utótaggal kiegészítve.
Az alábbi táblázat részletezi a szoftverben definiált GPIO makrókat a különböző IO portoknak megfelelően:

2. táblázat. Az alapértelmezett és alternatív szoftverkonfigurációkhoz lefoglalt GPIO-k

Név Funkció Alapértelmezett konfiguráció Alternatív konfiguráció
BEVITEL PIN-KÓD 1. bemeneti tű GPIOC, IA0_IN_1_PIN GPIOD, IA0_IN_1_PIN
2. bemeneti tű GPIOD, IA1_IN_2_PIN GPIOC, IA1_IN_1_PIN
KIMENŐ TŰ 1. kimeneti csatlakozó GPIOC, QA0_CNTRL_1_PIN GPIOD, QA0_CNTRL_1_PIN
2. kimeneti csatlakozó GPIOC, QA1_CNTRL_2_PIN GPIOC, QA1_CNTRL_2_PIN
HIBA PIN 1. hibakivezetés GPIOC, FLT1_QA0_2_OT_PIN GPIOD, FLT1_QA0_1_OT_PIN
2. hibakivezetés GPIOC, FLT2_QA0_2_OL_PIN GPIOD, FLT2_QA0_1_OL_PIN
3. hibakivezetés GPIOC, FLT1_QA1_2_OT_PIN GPIOC, FLT1_QA1_1_OT_PIN
4. hibakivezetés GPIOC, FLT2_QA1_1_OL_PIN GPIOD, FLT2_QA1_2_OL_PIN
KONFIGURÁCIÓS MAKRÓ TÁBLA_AZONOSÍTÓ_ALAPÉRTELMEZETT TÁBLA_AZONOSÍTÓ_ALTERNATÍV

Időzítők és PWM
Az X-CUBE-ISO1 firmware-ben időzítők használhatók PWM jelek generálására adott lábakhoz. Alapértelmezés szerint az időzítők nincsenek inicializálva, kivéve a TIM3-at. A megfelelő időzítőket inicializálni kell a PWM jelek generálása előtt, és a megfelelő kimeneti portokat is inicializálni kell PWM módban.
Normál GPIO bemeneti/kimeneti műveletekhez nincs szükség időzítő vagy kimeneti port konfigurálására, mivel ezeket alapértelmezés szerint a rendszer kezeli. Ha azonban a kimeneti lábak PWM módban vannak beállítva, akkor GPIO módban újra kell konfigurálnunk őket, hogy GPIO lábakként használhassuk őket.

Jegyzet: Amikor a kimeneti lábakat PWM generálásra használják, a GPIO kimenet le van tiltva, mindkét funkció nem valósítható meg egyszerre. A GPIO PWM használat utáni újbóli engedélyezéséhez meghívható az ST_ISO_BoardConfigureDefault() vagy az ST_ISO_InitGPIO() API függvény, amely egyszerre konfigurálja az összes portot GPIO-ként, vagy az ST_ISO_Init_GPIO() függvény egy adott GPIO porttal és lábbal.

Amint azt fentebb említettük, a szoftver alapértelmezés szerint egy időzítőt használ, a TIM3-at, amely a felhasználói LED-időzítés, az órajel és az UART-időzítés megvalósítására szolgál. Alapértelmezés szerint 1 másodperces időtartamra van konfigurálva.
Az alábbi táblázat részletezi a kódunkban található egyes lábakhoz elérhető időzítőket:

3. táblázat. Az egyes lábakhoz elérhető időzítők

Pin név Szoftverképviselet Időzítő Időzítő csatorna Alternatív funkció
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

A firmware további segédprogramjai
A firmware további segédprogramokat tartalmaz az X-NUCLEO-ISO1A1 értékelő kártya funkcionalitásának bővítéséhez. Ezek közül néhányat az alábbiakban ismertetünk.

UART
Az UART kommunikációs funkció lehetővé teszi a panel állapotának valós idejű monitorozását és hibakeresését olyan PC-s segédprogramokon keresztül, mint a TeraTerm, a PuTTY és más hasonló alkalmazások. A szoftver lehetővé teszi az UART adatátvitelt a NUCLEO-G071RB panelben található UART-on keresztül. Az `ST_ISO_UART` funkció részletes panel állapotinformációkat küld UART-on keresztül, beleértve a rendszer üzemidejét, a firmware konfigurációját és a hibaállapotot. Ezek az adatok a következők lehetnek: viewbármely soros port alkalmazással, például a TeraTerm-mel. Az `ST_ISO_APP_DIDOandUART` függvény a digitális bemeneti/kimeneti műveleteket az UART kommunikációval kombinálja, és meghatározott időközönként továbbítja az összes bemeneti és kimeneti csatorna állapotát. Az alábbiakban a konfigurációs beállítások és aampA TeraTermben megjelenő adatok leírása. A port neve a használt rendszertől és soros porttól függően változhat.

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-6

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-7

IO pin mód konfiguráció
Az IO lábmód konfigurációs segédprogram lehetővé teszi a felhasználók számára, hogy az ST_ISO_BoardConfigure() függvénnyel beállítsák a panel bemeneti és kimeneti portjait. Ez a függvény két kimeneti port (QA0, QA1) és két bemeneti port (IA0, IA1) konfigurálását támogatja Input/Output módban, PWM kimeneti módban vagy Interrupt bemeneti módban. A paraméterek módosításával és a függvény meghívásával a felhasználók könnyen testreszabhatják a panel IO konfigurációját az adott igényeknek megfelelően.

Bemenet/Kimenet módban a segédprogram inicializálja a GPIO lábakat az általános célú digitális műveletekhez. PWM kimeneti módban beállítja az időzítőket a precíz PWM jelvezérléshez. Megszakítás bemeneti módban a segédprogram konfigurálja a lábakat a megszakítások kezelésére, lehetővé téve a reagálóképes eseményvezérelt programozást.

Megszakításkezelés
A FAULT jelek kezeléséhez a szoftver engedélyezi a kapcsolódó megszakításvonalakat, lehetővé téve a reagáló eseményvezérelt programozást. Egy testreszabott kezelő társítható ezekhez a megszakításokhoz a
A HAL_GPIO_EXTI_Rising_Callback függvény az API-ban van definiálva. A szoftver olyan funkciókat tartalmaz, amelyekkel megszakítás módban inicializálhatók a GPIO lábak az ST_ISO_BoardConfigure függvényen keresztül, valamint konfigurálhatók az EXTI IRQ kezelőkben végrehajtott műveletek. Ez lehetővé teszi a felhasználók számára, hogy testreszabják, hogyan reagál a kártya a külső eseményekre, biztosítva, hogy hatékonyan kezelje a különböző hibákat és triggereket.

API-k
Az X-CUBE-ISO1 szoftver API átfogó funkciókészletet biztosít az X-NUCLEO-ISO1A1 kártya vezérléséhez és monitorozásához, beleértve a PWM jelgenerálást és a GPIO műveleteket. Az API-t úgy tervezték, hogy könnyen használható és integrálható legyen különféle alkalmazásokba, rugalmasságot és a kártya funkcionalitása feletti kontrollt biztosítva.

Az X-CUBE-ISO1 szoftver API a BSP/ISO1A1 mappában van definiálva. A funkcióit az ST_ISO előtaggal látják el. Az API az alkalmazások számára az iso1a1.c és a pwm_api.c fájlokon keresztül látható. fileAz s konstansok, adatszerkezetek és függvények kombinációja.
SampA firmware-alkalmazások ezeket az API-kat használják ezen funkciók néhány lehetséges felhasználásának bemutatására.

Az X-CUBE-ISO1 szoftvercsomag két API-készletet biztosít:

  • ISO1A1 API
  • PWM API

ISO1A1 API
Az ISO1A1 API az iso1a1.h és iso1a1.c fájlokban van definiálva. files. Funkciókat biztosít az ISO1A1 kártya konfigurálásához és vezérléséhez, beleértve a GPIO bemeneti/kimeneti műveleteket és a hibaészlelést.

Kulcsfunkciók

  • ST_ISO_BoardConfigureDefault: A kártya IO portjait konfigurálja az alapértelmezett GPIO konfigurációval.
  • ST_ISO_BoardConfigure: Konfigurálja a bemeneti és kimeneti portok módját a panelhez.
  • ST_ISO_BoardInit: Inicializálja a kártya hardverét.
  • ST_ISO_BoardMapInit: Inicializálja a kártya funkcionalitását a csatornakezelők konfigurációja alapján.
  • ST_ISO_GetFWVersion: Visszaadja az aktuális firmware verziót.
  • ST_ISO_GetChannelHandle: Lekéri a megadott csatornanév csatornaazonosítóját.
  • ST_ISO_InitGPIO: Inicializálja a megadott GPIO lábat a megadott modulazonosítóval.
  • ST_ISO_InitInterrupt: Inicializálja a megadott GPIO lábat megszakításként a megadott modulazonosítóval.
  • ST_ISO_EnableFaultInterrupt: Megszakítás módban inicializálja a hibás GPIO lábakat.
  • ST_ISO_SetChannelStatus: Beállítja egy megadott csatorna állapotát.
  • ST_ISO_SetOne_DO: Egyetlen digitális kimeneti csatornát állít be.
  • ST_ISO_ClearOne_DO: Egyetlen digitális kimeneti csatornát töröl.
  • ST_ISO_WriteAllChannels: Adatokat ír az összes digitális kimeneti csatornára.
  • ST_ISO_GetOne_DI: Egyetlen digitális bemeneti csatorna állapotát kéri le.
  • ST_ISO_ReadAllChannel: Kiolvassa az összes bemeneti csatorna állapotát.
  • ST_ISO_ReadAllOutputChannel: Kiolvassa az összes kimeneti csatorna állapotát.
  • ST_ISO_ReadFaultStatus: Kiolvassa a hibaállapotot az összes hibaészlelő portról.
  • ST_ISO_ReadFaultStatusPolling: Lekérdezési módban teszteli a kártyák hibaészlelését.
  • ST_ISO_DisableOutputChannel: Letiltja az adott csatorna kimenetét.
  • ST_ISO_UpdateBoardStatusInfo: Frissíti a kártya állapotinformációit.
  • ST_ISO_UpdateFaultStatus: Frissíti egy adott csatorna hibaállapotát.
  • ST_ISO_BlinkLed: A megadott késleltetéssel és ismétlési számmal villogtatja a megadott LED-et.
  • ST_ISO_UART: UART-on keresztül küldi a panel állapotinformációit.
  • ST_ISO_SwitchInit: Inicializálja a kapcsoló összetevőit.
  • ST_ISO_SwitchDeInit: Deinicializálja a switch példányt.
  • ST_ISO_DigitalInputInit: Inicializálja a digitális bemeneti komponenseket.
  • ST_ISO_DigitalInputDeInit: Deinicializálja a digitális bemeneti példányt.

PWM API
A PWM API a pwm_api.h és pwm_api.c fájlokban van definiálva. files. A következő funkciókat biztosítja a PWM jelek inicializálásához és vezérléséhez bizonyos lábakhoz.

  • ST_ISO_Init_PWM_Signal: Inicializálja az időzítőket és a PWM jelhez tartozó specifikus lábat.
  • ST_ISO_Set_PWM_Frequency: Beállítja az adott láb PWM frekvenciáját.
  • ST_ISO_Set_PWM_Duty_Cycle: Beállítja a PWM kitöltési tényezőjét az adott lábhoz.
  • ST_ISO_Start_PWM_Signal: Elindítja a PWM jelet az adott lábon.
  • ST_ISO_Stop_PWM_Signal: Leállítja a PWM jelet az adott lábon.

Egy PWM jel elindításához egy adott csatornán először hívjuk meg az ST_ISO_Init_PWM_Signal függvényt, majd állítsuk be a kívánt frekvenciát és kitöltési tényezőt az ST_ISO_Set_PWM_Frequency meghívásával.
ST_ISO_Set_PWM_Duty_Cycle függvényeket, majd a PWM jelet az ST_ISO_Start_PWM_Signal függvény meghívásával indíthatja, és az ST_ISO_Stop_PWM_Signal meghívásával állíthatja le.

A függvényt a megfelelő lábnévvel és a rendelkezésre álló időzítőkkel kell meghívni, amelyek részleteit a 3. táblázat tartalmazza. A különböző kimeneti csatornák különböző frekvenciákkal és kitöltési tényezővel állíthatók be; a frekvencia vagy a kitöltési tényező megváltoztatása nem befolyásolja a másikat, ugyanaz marad.
A felhasználó számára elérhető API-kkal kapcsolatos részletes technikai információk egy összeállított HTML-ben találhatók file a szoftvercsomag „Dokumentáció” mappájában található, ahol az összes funkció és paraméter teljes leírása megtalálható.

Alkalmazás leírása
A demonstrációs alkalmazás számos egyszerű használati esetet valósít meg. Az st_iso_app és a board_config filekulcsszerepet játszanak a kártya és alkalmazásfunkcióinak beállításában és használatában. Használat előtt győződjön meg arról, hogy a kártya és a szoftver konfigurációja szinkronban van egymással.

Alkalmazásfüggvények (st_iso_app.h és st_iso_app.c)
Az alkalmazásfüggvények előtagja az ST_ISO_APP; ezek a legfelső szintű függvények, amelyek láthatók a felhasználó számára, aki meghívja az API-függvényeket a megvalósításukhoz. Az alkalmazásfüggvények a main.c fájlban hívhatók meg. file a működésükért.

  • Használati eset kiválasztása: A felhasználó eltávolíthatja a kívánt használati eset makró megjegyzését az st_iso_app.c fájlban. fileA main.c fájlban meghívott ST_ISO_APP_SelectUseCaseMacro() függvény inicializálja ezt a használati esetet, és az ST_ISO_APP_SelectedFunction() függvény implementálja azt a main.c fájlban. Ez a megközelítés lehetővé teszi a működési mód egyszerű konfigurálását a makródefiníciók egyszerű módosításával, biztosítva, hogy a kiválasztott használati eset alapján a megfelelő funkciók kerüljenek végrehajtásra. Alapértelmezés szerint a DIDO használati eset van kiválasztva, és a felhasználónak nem kell semmilyen módosítást végeznie a kódban a megvalósításához.
  • Digitális bemenetről digitális kimenetre tükrözés (ST_ISO_APP_UsecaseDIDO): Ez a függvény beolvassa az összes bemeneti csatorna állapotát, és ugyanazt az állapotot írja az összes kimeneti csatornára. Hasznos a digitális bemenetek digitális kimenetekre tükrözéséhez.
  • Digitális bemenetről digitális kimenetre tükrözés UART-tal (ST_ISO_APP_DIDOandUART): Ez a funkció a digitális bemeneteket digitális kimenetekre tükrözi, hasonlóan az ST_ISO_APP_UsecaseDIDO függvényhez. Ezenkívül a kártya állapotát az UART interfészen keresztül továbbítja a Nucleo eszközre, lehetővé téve az állapot megjelenítését. viewsoros porton keresztül, olyan alkalmazásokkal, mint a Tera Term.
  • Tesztelési függvény (ST_ISO_APP_TestCase): Ez a függvény tesztek és műveletek sorozatát hajtja végre a panel konfigurációja alapján. Ellenőrzi a hibaállapotot, leolvassa két digitális bemeneti csatorna állapotát, és az értékek alapján műveleteket hajt végre. Ez a függvény segít a panel teljesítményének és működésének gyors kiértékelésében, valamint vizuális visszajelzést ad különböző LED-mintákon keresztül. Győződjön meg arról, hogy a HEARTBEAT_LED makró szerepel a board_config.h fájlban. file a megfelelő LED-mintázatok betartására vonatkozó megjegyzés.
  • PWM generálás (ST_ISO_APP_PWM _OFFSET): Ez a funkció mindkét kimeneti csatornán 1 Hz frekvenciával és 50%-os kitöltési tényezővel indítja a PWM jelet. Inicializálja a PWM jelet, beállítja a frekvenciát és a kitöltési tényezőt, majd elindítja a megadott panelazonosítóhoz tartozó PWM jelet. A PWM jel a két csatorna közötti eltolással generálódik, így nincsenek fázisban.
  • Hibaészlelési teszt (ST_ISO_APP_FaultTest): Ez a funkció kiértékeli az IPS1025 intelligens kimeneti modul beépített diagnosztikai lábai általi hibaészlelést lekérdezési vagy megszakítási módban. Konfigurálja a hibaészlelési módot, inicializálja a hibaészlelést, és frissíti a hibaállapot-struktúrát a kiválasztott mód alapján. Ez a funkció kulcsfontosságú a kártya megbízhatóságának és biztonságának biztosításához azáltal, hogy hatékonyan észleli és kezeli a hibákat. Lekérdezési módban a hibaállapot másodpercenként frissül egy időzítő segítségével, és tükröződik a defaultBoardFaultStatus vagy alternateBoardFaultStatus struktúrában. Megszakítási módban a hibaállapot csak akkor frissül, amikor a hiba bekövetkezik, és ez elindítja a szoftvert a megfelelő kimeneti port törlésére.
  • PWM variáció teszt (ST_ISO_APP_PwmVariationTest): Ez a függvény a PWM (impulzusszélesség-moduláció) jelek variációjának tesztelésére szolgál a különböző kimeneti csatornákon, a kártya konfigurációja alapján. Inicializálja a PWM jeleket mind az alapértelmezett, mind az alternatív kártyakonfigurációk esetén, 100 Hz-re állítva a frekvenciát, a kezdeti kitöltési tényezőt pedig 0%-ra. A funkció ezután 0%-os lépésekben 100%-ról 5%-ra, majd 100%-os lépésekben 0%-ról 5%-ra változtatja a kitöltési tényezőt, minden lépés között 2 másodperces késleltetéssel. Ez a szabályozott változtatás lehetővé teszi a PWM jel viselkedésének megfigyelését és kiértékelését a QA_0 és QA_1 csatornákon az alapértelmezett kártya, valamint a QA_0_ALT és QA_1_ALT csatornákon az alternatív kártya esetében.

A konfigurációk követésével és a biztosított alkalmazásfunkciók használatával hatékonyan beállíthatja és használhatja az X-NUCLEO-ISO1A1 kártyát különféle demonstrációs felhasználási esetekben.

Rendszerbeállítási útmutató

Hardver leírása

STM32 Nucleo platform
Az STM32 Nucleo fejlesztőkártyák megfizethető és rugalmas lehetőséget biztosítanak a felhasználók számára a megoldások tesztelésére és prototípusok készítésére bármely STM32 mikrovezérlő vonalon.
Az Arduino® csatlakozási támogatás és az ST morpho csatlakozók megkönnyítik az STM32 Nucleo nyílt fejlesztőplatform funkcionalitásának bővítését a széles választékú, speciális bővítőkártyákkal.

Az STM32 Nucleo kártya nem igényel külön szondákat, mivel integrálja az ST-LINK/V2-1 hibakeresőt/programozót.
Az STM32 Nucleo kártyához tartozik az átfogó STM32 szoftver HAL könyvtár, valamint különféle csomagolt szoftverek, pl.amples.

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-8

Az STM32 Nucleo panellel kapcsolatos információk a következő címen érhetők el: www.st.com/stm32nucleo

X-NUCLEO-ISO1A1 bővítőkártya
Az X-NUCLEO-ISO1A1 egy leválasztott ipari bemenettel/kimenettel rendelkező kiértékelő panel, amelyet az STM32 Nucleo panel bővítésére és mikro-PLC funkciók biztosítására terveztek. Az X-NUCLEO-ISO1A1 panelek közül kettő egymásra helyezhető egy STM32 Nucleo panel tetején a bővítőpanelen található megfelelő jumperek kiválasztásával, hogy elkerülhető legyen a GPIO interfészek ütközése. Az UL1577 tanúsítvánnyal rendelkező STISO620 és STISO621 digitális leválasztók leválasztást biztosítanak a logikai és a folyamatoldali komponensek között. A folyamatoldalról két áramkorlátozott magas oldali bemenetet a CLT03-2Q3 valósít meg. A CLT03-2Q3 védelmet, leválasztást és energiamentes állapotjelzést biztosít ipari körülmények között, és olyan szabványoknak is megfelel, mint az IEC61000-4-2, IEC61000-4-4 és IEC61000-4-5. Az IPS1025H-32/HQ-32 magas oldali kapcsolók mindegyike védett kimenetet biztosít akár 5.6 A-ig, diagnosztikai és intelligens vezérlési funkciókkal. Ezek kapacitív, ohmos vagy induktív terhelések meghajtására képesek. Az X-NUCLEO-ISO1A1 lehetővé teszi a beépített integrált áramkörök gyors kiértékelését az X-CUBE-ISO1 szoftvercsomag segítségével.

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-9

Hardver beállítása
A következő hardverelemekre van szükség:

  1. Egy STM32 Nucleo fejlesztőplatform (javasolt rendelési kód: NUCLEO-GO71RB)
  2. Egy ipari digitális kimeneti bővítőkártya (rendelési kód: X-NUCLEO-ISO1A1)
  3. Egy USB A típusú - Micro USB kábel az STM32 Nucleo számítógéphez való csatlakoztatásához
  4. Külső tápegység (24 V) és a hozzá tartozó vezetékek az X-NUCLEO-ISO1A1 bővítőkártya táplálásához.

Szoftver beállítása
A következő szoftverkomponensek szükségesek egy megfelelő fejlesztői környezet beállításához az X-NUCLEO-ISO32A1 bővítőkártyával felszerelt STM1 Nucleo alkalmazásainak létrehozásához:

  • X-CUBE-ISO1: az STM32Cube bővítménye, amelyet kifejezetten olyan alkalmazásfejlesztéshez terveztek, amely az X-NUCLEO-ISO1A1 kártya használatát igényli. Az X-CUBE-ISO1 firmware és a kapcsolódó dokumentáció elérhető a következő címen: www.st.com
  • Fejlesztői eszközlánc és fordító: az STM32Cube bővítőszoftver a következő három környezetet támogatja:
    • IAR beágyazott munkapad ARM® (IAR-EWARM) eszközlánchoz
    • IgaziView Mikrokontroller fejlesztőkészlet (MDK-ARM-STM32) eszközlánc
    • STM32CubeIDE.

A tábla beállítása
A panelt a hardver felhasználói kézikönyvében (UM3483) meghatározott megfelelő jumper-beállításokkal kell konfigurálni. Ezen irányelvek gondos betartása elengedhetetlen a megfelelő működés biztosításához és a lehetséges problémák elkerüléséhez.

Rendszerbeállítási útmutató
Ez a szakasz leírja, hogyan kell beállítani a különböző hardveralkatrészeket egy alkalmazás fejlesztése és végrehajtása előtt az STM32 Nucleo, NUCLEO-G071RB kártyán az X-NUCLEO-ISO1A1 bővítőkártyával.

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-10

STMicroelectronics-UM3469-X-CUBE-ISO1-Szoftverbővítés-11

X-CUBE-ISO1 bővítőcsomag beállítása
Az X-NUCLEO-ISO1A1-et a kártya konfigurációjától függően a megfelelő jumperpozíciókkal kell konfigurálni. A részleteket a hardver kézikönyvében találja.

  • 1. lépés Csatlakoztassa az X-NUCLEO-ISO1A1 bővítőkártyát az STM32 Nucleo tetejére a morphocsatlakozókon keresztül.
    Ha két egymásra helyezett táblát használ, akkor a 11. ábrán látható módon rakja egymásra őket.
  • 2. lépés Csatlakoztassa az STM32 Nucleo kártyát a számítógéphez az USB-kábellel a CN1 USB-csatlakozón keresztül a kártya tápellátásához.
  • 3. lépés Kapcsolja be az X-NUCLEO-ISO1A1 bővítőkártyát/kártyákat a J1 24V DC tápegységhez való csatlakoztatásával. Ha egymásra helyezett kártyákat használ, győződjön meg arról, hogy mindkét kártya be van kapcsolva.
  • 4. lépés Nyisd meg a kívánt eszközláncot (MDK-ARM a Keiltől, EWARM az IAR-tól vagy STM32CubeIDE).
  • 5. lépés Nyissa meg a szoftverprojektet, és végezze el a szükséges módosításokat a board_config.h fájlban. file a használt panel(ek) konfigurációjától függően.
  • 6. lépés Állítsa be a megfelelő használati eset makrót az st_iso_app.c fájlban file vagy hívja meg a szükséges használati esetet a main.c ST_ISO_APP_SelectUseCase függvényével file bármely más kívánt funkcióval együtt.
  • 7. lépés Fordítsd le a projektet úgy, hogy az összeset lefordítsd fileés töltse be a lefordított kódot az STM32 Nucleo kártya memóriájába.
  • 8. lépés Futtassa a kódot az STM32 Nucleo kártyán, és ellenőrizze a várt viselkedést.

Revíziótörténet
4. táblázat: Dokumentum felülvizsgálati előzmények

Dátum Felülvizsgálat Változások
május 14-2025 1 Kezdeti kiadás.

FONTOS MEGJEGYZÉS – OLVASSA EL FIGYELMESEN

Az STMicroelectronics NV és leányvállalatai („ST”) fenntartják a jogot, hogy bármikor, előzetes értesítés nélkül módosítsák, javítsák, bővítsék, módosítsák és tökéletesítsék az ST-termékeket és/vagy ezt a dokumentumot. A vásárlóknak meg kell szerezniük a legfrissebb releváns információkat az ST-termékekről a rendelés leadása előtt. Az ST termékek értékesítése a megrendelés visszaigazolásakor érvényes ST értékesítési feltételek szerint történik.

Kizárólag a vásárlók felelősek az ST-termékek kiválasztásáért, kiválasztásáért és használatáért, és az ST nem vállal felelősséget az alkalmazási segítségért vagy a vásárlók termékeinek tervezéséért.
Az ST jelen dokumentumban semmilyen szellemi tulajdonjogra nem ad kifejezett vagy hallgatólagos licencet.
Az ST-termékeknek az itt leírtaktól eltérő rendelkezésekkel történő viszonteladása érvénytelenít minden, az ST által az ilyen termékre adott garanciát.

Az ST és az ST logó az ST védjegyei. Az ST védjegyekkel kapcsolatos további információkért látogasson el a www.st.com/trademarks webhelyre. Az összes többi termék- vagy szolgáltatásnév a megfelelő tulajdonosok tulajdona.
A jelen dokumentumban szereplő információk felülírják és felváltják a jelen dokumentum bármely korábbi verziójában korábban megadott információkat.
© 2025 STMicroelectronics – Minden jog fenntartva

Dokumentumok / Források

STMicroelectronics UM3469 X-CUBE-ISO1 szoftverbővítés [pdf] Felhasználói kézikönyv
X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 X-CUBE-ISO1 szoftverbővítés, UM3469, X-CUBE-ISO1 szoftverbővítés, szoftverbővítés

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *