STMicroelectronics UM3469 X-CUBE-ISO1 सॉफ्टवेयर विस्तार

परिचय
The X-CUBE-ISO1 expansion software package for STM32Cube runs on the STM32 and includes firmware for the X-NUCLEO-ISO1A1. The software provides an easy-to-use solution for the development of a basic PLC device provided by the X-NUCLEO. The expansion is built on STM32Cube software technology to ease portability across different STM32 microcontrollers.
The software comes with an implementation running on the X-NUCLEO-ISO1A1 expansion board connected to a NUCLEO-G071RB development board (or either a NUCLEO-G0B1RE or a NUCLEO-G070RB). From now on, in the document only the NUCLEO-G071RB will be mentioned for simplicity.
The X-NUCLEO-ISO1A1 board is designed to support the stacking of two boards with appropriate jumper settings to extend the input and output capabilities.
आदिवर्णिक और संक्षिप्त शब्द
तालिका 1. परिवर्णी शब्दों की सूची
| परिवर्णी शब्द | विवरण |
| पीएलसी | प्रोग्रामेबल लॉजिक नियंत्रक |
| एपीआई | अप्लिकेशन प्रोग्रामिंग अंतरफलक |
| पीडब्लूएम | पल्स चौड़ाई उतार - चढ़ाव |
| जीपीआईओ | सामान्य प्रयोजन इनपुट/आउटपुट। |
| एचएएल | हार्डवेयर अमूर्त परत |
| PC | पर्सनल कंप्यूटर |
| FW | फर्मवेयर |
STM32क्यूब क्या है?
STM32Cube™ represents the STMicroelectronics initiative to make developers’ lives easier by reducing development effort, time, and cost. STM32Cube covers the STM32 portfolio.
STM32Cube संस्करण 1.x में शामिल हैं:
- STM32CubeMX, a graphical software configuration tool that allows the generation of C initialization code using graphical wizards.
- A comprehensive embedded software platform specific to each series (such as the STM32CubeG0 for the STM32G0 series), which includes:
- the STM32Cube HAL embedded abstraction-layer software, ensuring maximized portability across the STM32 portfolio
- a consistent set of middleware components such as RTOS, USB, TCP/IP, and graphics
- all embedded software utilities with a full set of exampलेस.
STM32Cube आर्किटेक्चर
STM32Cube फर्मवेयर समाधान तीन स्वतंत्र स्तरों के आसपास बनाया गया है जो आसानी से एक दूसरे के साथ बातचीत कर सकते हैं, जैसा कि नीचे दिए गए चित्र में वर्णित है।

STM1Cube के लिए X-CUBE-ISO32 सॉफ़्टवेयर विस्तार
ऊपरview
STM1 परिवेशों और लाइब्रेरीज़ के आधार पर विकसित, X-NUCLEO-ISO1A32, औद्योगिक पृथक इनपुट/आउटपुट विस्तार बोर्ड का फ़र्मवेयर, डिजिटल इनपुट, एकीकृत डायग्नोस्टिक्स के साथ आउटपुट, डायनेमिक करंट लिमिट और PWM सिग्नल जनरेशन को प्रबंधित करने के लिए STM32 न्यूक्लियो बोर्ड के उच्च-प्रदर्शन MCU का लाभ उठाता है। इसमें व्यापक बोर्ड कॉन्फ़िगरेशन और नियंत्रण की सुविधा है, जिसमें डिफ़ॉल्ट और वैकल्पिक स्थितियों के लिए फ्रेमवर्क, प्री-स्केलर मान सेट करने के लिए मैक्रोज़, और GPIO पोर्ट और पिन की परिभाषाएँ शामिल हैं।
यह विभिन्न प्रकार के सॉफ्टवेयर का समर्थन करता है।ampडिजिटल इनपुट से आउटपुट मिररिंग, न्यूक्लियो बोर्ड के माध्यम से यूएआरटी संचार, दोष का पता लगाना, परीक्षण मामले और पीडब्लूएम पीढ़ी जैसे अनुप्रयोग उपयोग के मामले, जिन्हें सीधे इस्तेमाल किया जा सकता है और आसानी से अनुकूलित और विस्तारित किया जा सकता है।
यह API डिजिटल इनपुट/आउटपुट नियंत्रण, दोष पहचान और बोर्ड स्थिति अद्यतन के लिए कार्यों का एक मज़बूत सेट प्रदान करता है, जिसमें दो बोर्डों को एक साथ अलग-अलग मोड में चलाने के लिए कॉन्फ़िगरेशन सेटिंग्स भी शामिल हैं। डिजिटल आउटपुट चैनलों के लिए PWM सिग्नल को आरंभीकृत करने, शुरू करने, रोकने और कॉन्फ़िगर करने के लिए विशिष्ट API फ़ंक्शन उपलब्ध हैं।
बोर्ड सपोर्ट पैकेज में IPS1025H-32 के साथ इंटरफेस किए गए GPIO पिनों को नियंत्रित और मॉनिटर करने तथा डिजिटल आइसोलेटर के माध्यम से CLT03-2Q3 के साथ इंटरफेस किए गए GPIO पिनों की स्थिति को पढ़ने के कार्य शामिल हैं।
कॉन्फ़िगरेशन और आरंभीकरण STM32CubeMX पर आधारित हैं, तथा विकास और डिबगिंग STM32CubeIDE, IAR सिस्टम्स और Keil® टूल्स द्वारा समर्थित हैं।
वास्तुकला
X-NUCLEO-ISO1A1 के फर्मवेयर को कई अलग-अलग कार्यात्मक ब्लॉकों में विभाजित किया जा सकता है, जिनमें से प्रत्येक सिस्टम के संचालन के विभिन्न पहलुओं के लिए जिम्मेदार है:

- बोर्ड कॉन्फ़िगरेशन और नियंत्रण:
- The board_config.h file इसमें बोर्ड को डिफ़ॉल्ट या वैकल्पिक स्थितियों, या दोनों में चलाने के लिए कॉन्फ़िगर करने हेतु मैक्रोज़ शामिल हैं। इसमें प्री-स्केलर मानों और GPIO पोर्ट और पिन की परिभाषाएँ भी शामिल हैं।
- This block ensures that the board is set up correctly for the desired operating conditions and that all necessary hardware configurations are in place.
- अनुप्रयोग उपयोग के मामले:
- The st_iso_app.h and st_iso_app.c fileइसमें बोर्ड की विभिन्न कार्यात्मकताओं का परीक्षण करने के लिए डिज़ाइन किए गए अनुप्रयोग उपयोग मामले शामिल हैं।
- These use cases include digital input to output mirroring, fault detection tests, and PWM signal generation.
- Exampदो बोर्डों को एक साथ अलग-अलग मोड में चलाने के लिए विन्यास प्रदान किए गए हैं, जो फर्मवेयर की बहुमुखी प्रतिभा और लचीलेपन को प्रदर्शित करते हैं।
- एपीआई कार्य:
- The iso1a1.h and iso1a1.c fileयह विभिन्न कार्यात्मकताओं का समर्थन करने के लिए एपीआई का एक व्यापक सेट प्रदान करता है।
- These APIs include functions for digital input/output control, fault detection, and board status updates.
- The APIs are designed to be simple and intuitive, making it easy for users to interact with the board and perform necessary operations.
- पीडब्लूएम सिग्नल नियंत्रण:
- The pwm_api.h and pwm_api.c fileइसमें PWM सिग्नल उत्पादन से संबंधित विशिष्ट API फ़ंक्शन शामिल हैं।
- These functions allow for initializing, configuring, starting, and stopping PWM signals for digital output channels.
- The PWM functionality is not default choice. Board configuration has be modified to enable these. Refer to Section 3.5: APIs for more details.
- बोर्ड सहायता पैकेज:
- The board support package includes fileIPS1025H-32 के साथ इंटरफेस किए गए GPIO पिनों को नियंत्रित करने और निगरानी करने तथा CLT03-2Q3 के साथ इंटरफेस किए गए GPIO पिनों की स्थिति को पढ़ने के लिए।
- ips1025h_32.h और ips1025h_32.c fileयह IPS1025H-32 के साथ इंटरफेस किए गए GPIO पिनों पर दोषों को सेट करने, साफ़ करने और उनका पता लगाने के लिए फ़ंक्शन प्रदान करता है।
- clt03_2q3.h और clt03_2q3.c fileयह CLT03-2Q3 के साथ इंटरफेस किए गए GPIO पिन की स्थिति को पढ़ने के लिए फ़ंक्शन प्रदान करता है।
प्रदर्शन फ़र्मवेयर सिस्टम की क्षमताओं को प्रदर्शित करने के लिए कई सरल उपयोग-मामलों को लागू करता है। इन उपयोग-मामलों और उपयोगकर्ता API को सुचारू संचालन और सटीक परिणाम सुनिश्चित करने के लिए समन्वित तरीके से निष्पादित किया जाता है। इस आर्किटेक्चर को आसानी से विस्तार योग्य बनाया गया है, जिससे उपयोगकर्ता आवश्यकतानुसार नई कार्यक्षमताएँ और उपयोग-मामले जोड़ सकते हैं। डिजिटल औद्योगिक IO के साथ एक बोर्ड चलाने के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन प्रदान किया गया है। तालिका 2 में वर्णित अनुसार जम्पर सेटिंग को भी डिफ़ॉल्ट मोड में होना आवश्यक है। डिजिटल इनपुट डिजिटल आउट मिररिंग (DIDO) डिफ़ॉल्ट फ़र्मवेयर एप्लिकेशन उपयोग-मामला है।
फ़ोल्डर संरचना

निम्नलिखित फ़ोल्डर सॉफ्टवेयर पैकेज में शामिल हैं:
- दस्तावेज़ीकरण में एक संकलित HTML शामिल है file स्रोत कोड से उत्पन्न, सॉफ्टवेयर घटकों और एपीआई का विवरण।
- ड्राइवरों में शामिल हैं:
- an STM32Cube HAL folder, located in the subfolders STM32G0xx_HAL_Driver. These files are not described here as they are not specific to the X-CUBE-ISO1 software but come directly from the STM32Cube framework.
- एक CMSIS फ़ोल्डर जिसमें Cortex® माइक्रोकंट्रोलर सॉफ़्टवेयर इंटरफ़ेस मानक शामिल है fileहाथ से। इन files are vendor-independent hardware abstraction layer for the Cortex®-M processor series. This folder also comes unchanged from the STM32Cube framework.
- a BSP folder containing the codes for the components IPS1025H-32 and CLT03-2Q3 and APIs related to X-NUCLEO-ISO1A1.
- एप्लिकेशन में उपयोगकर्ता फ़ोल्डर होता है जिसमें main.c होता है file, एप्लिकेशन उपयोग मामला file, st_iso_app.c and the board_config.h file, NUCLEO-G071RB प्लेटफॉर्म के लिए प्रदान किया गया।
बसपा फ़ोल्डर
The X-CUBE-ISO1 software uses two different component files, जो BSP/Components के अंदर हैं:
आईपीएस1025
ips1025h_32.h और ips1025h_32.c fileIPS1025H-32 के साथ इंटरफेस किए गए GPIO पिनों के लिए एक व्यापक ड्राइवर कार्यान्वयन प्रदान करते हैं, जिसमें सभी पिनों को नियंत्रित करने और दोषों का पता लगाने की पूर्ण कार्यक्षमता शामिल है। ये fileयह डिवाइस को इनिशियलाइज़ करने, चैनल की स्थिति निर्धारित करने और साफ़ करने, खराबी की स्थिति का पता लगाने और PWM कार्यक्षमता को प्रबंधित करने के लिए फ़ंक्शन लागू करता है। ड्राइवर कई डिवाइस और चैनलों को सपोर्ट करता है, जिसमें व्यक्तिगत चैनल या समूह दोनों के लिए पूरी क्षमताएँ हैं।
सीएलटी03
clt03_2q3.h और clt03_2q3.c fileCLT03-2Q3 से जुड़े GPIO पिनों के लिए एक पूर्ण-विशेषताओं वाला ड्राइवर लागू करता है, जिसमें सभी पिन स्थितियों को पढ़ने की पूरी क्षमता है। यह ड्राइवर डिवाइस को इनिशियलाइज़ करने, प्रत्येक चैनल की स्थिति पढ़ने और सभी चैनलों की स्थिति की जानकारी एक साथ प्राप्त करने के लिए फ़ंक्शन प्रदान करता है। यह कई डिवाइस कॉन्फ़िगरेशन का समर्थन करता है और प्रभावी चैनल प्रबंधन के लिए आंतरिक स्थिति बनाए रखता है।
X-CUBE-ISO1 सॉफ्टवेयर API को दो प्रमुख स्रोतों में विभाजित किया गया है files, जो ISO1A1 सबफ़ोल्डर के अंदर हैं:
आईएसओ1ए1
ISO1A1 fileइसमें बोर्ड कॉन्फ़िगरेशन, कंपोनेंट इंटरैक्शन और फॉल्ट मैनेजमेंट के लिए डिज़ाइन किए गए API फ़ंक्शनों का एक व्यापक सेट शामिल है। ये फ़ंक्शन पढ़ने और लिखने के कार्यों, फॉल्ट डिटेक्शन और अपडेट की सुविधा प्रदान करते हैं, और प्राथमिक API फ़ंक्शनों का समर्थन करने के लिए विभिन्न सहायक उपयोगिताएँ शामिल करते हैं। इसके अतिरिक्त, fileयह एलईडी नियंत्रण, जीपीआईओ आरंभीकरण, इंटरप्ट हैंडलिंग और यूएआरटी संचार के लिए कार्यक्षमता प्रदान करता है।
पीडब्लूएम एपीआई
PWM API, PWM संकेतों को आरंभीकृत करने, कॉन्फ़िगर करने, प्रारंभ करने और रोकने के लिए फ़ंक्शन प्रदान करता है। यह निर्दिष्ट टाइमर पिनों के लिए PWM आवृत्ति और ड्यूटी साइकिल सेट करने की अनुमति देता है, जिससे PWM संचालन पर सटीक नियंत्रण सुनिश्चित होता है।
एप्लिकेशन फ़ोल्डर
एप्लिकेशन फ़ोल्डर में मुख्य fileफर्मवेयर के लिए आवश्यक हेडर और स्रोत कोड सहित fileनीचे इसका विस्तृत विवरण दिया गया है fileइस फ़ोल्डर में है:
- board_config.h: बोर्ड के लिए कॉन्फ़िगरेशन मैक्रोज़.
- main.c: मुख्य प्रोग्राम (ex का कोड)ample जो ISO1A1 के लिए लाइब्रेरी पर आधारित है)।
- st_iso_app.c: बोर्ड परीक्षण और कॉन्फ़िगरेशन के लिए अनुप्रयोग फ़ंक्शन।
- stm32g0xx_hal_msp.c: HAL आरंभीकरण रूटीन.
- stm32g0xx_it.c: इंटरप्ट हैंडलर.
- syscalls.c: सिस्टम कॉल कार्यान्वयन.
- sysmem.c: सिस्टम मेमोरी प्रबंधन.
- system_stm32g0xx.c: सिस्टम आरंभीकरण.
सॉफ्टवेयर आवश्यक संसाधन
The Nucleo device controls and communicates with the X-NUCLEO-ISO1A1 board via GPIOs. This requires the use of several GPIOs for input, output, and fault detection of the industrial IO devices contained in the X-NUCLEO-ISO1A1 board. Refer to the Hardware user manual UM3483 for more details and the jumper configurations.
Board configuration (board_config.h)
The board_config.h file बोर्ड कॉन्फ़िगरेशन के अनुसार सॉफ़्टवेयर को कॉन्फ़िगर करने के लिए उपयोग किए जाने वाले संसाधनों और कॉन्फ़िगरेशनल मैक्रोज़ को परिभाषित करता है। यह अधिकतम दो बोर्ड (जैसे दो बोर्डों का स्टैकिंग) को संभाल सकता है।
सॉफ़्टवेयर का डिफ़ॉल्ट कॉन्फ़िगरेशन X-NUCLEO-ISO1A1 विस्तार बोर्ड के साथ संरेखित है, जिसके जंपर्स डिफ़ॉल्ट स्थिति में हैं। X-NUCLEO-ISO1A1 के लिए सॉफ़्टवेयर को उसकी डिफ़ॉल्ट सेटिंग में कॉन्फ़िगर करने के लिए, board_config.h में BOARD_ID_DEFAULT मैक्रो को अनकमेंट करें। file.
सॉफ्टवेयर ALTERNATE कॉन्फ़िगरेशन को board_config.h में BOARD_ID_ALTERNATE मैक्रो को अनकमेंट करके सेट किया जाता है file और बोर्ड पर जम्पर की स्थिति बदलना।
स्टैक-अप कॉन्फ़िगरेशन में एक साथ दो बोर्ड इस्तेमाल करने के लिए, BOARD_ID_DEFAULT और BOARD_ID_ALTERNATE मैक्रोज़ दोनों की अनकमेंट हटाएँ और सुनिश्चित करें कि एक बोर्ड के जंपर्स डिफ़ॉल्ट स्थिति में और दूसरे बोर्ड के जंपर्स वैकल्पिक स्थिति में हों। ध्यान दें कि दोनों बोर्ड को एक ही कॉन्फ़िगरेशन में रखना (या तो दोनों डिफ़ॉल्ट या दोनों वैकल्पिक) अनुशंसित नहीं है और इसके परिणामस्वरूप अवांछित व्यवहार हो सकता है।
केवल एक बोर्ड चलाते समय, सुनिश्चित करें कि सॉफ्टवेयर केवल एक कॉन्फ़िगरेशन के लिए कॉन्फ़िगर किया गया है और अन्य कॉन्फ़िगरेशन से संबंधित मैक्रो पर टिप्पणी की गई है।

प्री-स्केलर्स
हम उपयुक्त मैक्रोज़ सेट करके PWM आउटपुट के लिए अलग-अलग फ़्रीक्वेंसी रेंज प्राप्त करने के लिए board_config.h में प्री-स्केलर मानों को कॉन्फ़िगर कर सकते हैं। प्री-स्केलर मान का उपयोग करने के लिए, संबंधित मैक्रो की टिप्पणी हटाएँ और अन्य पर टिप्पणी करें। डिफ़ॉल्ट रूप से, DEFAULT_PRESCALAR का उपयोग किया जाता है।
- प्रीस्केलर_1
- प्रीस्केलर_2
- डिफ़ॉल्ट_प्रीस्केलर
प्रीस्केलर मानों का उपयोग केवल टाइमर के उपयोग के समय ही किया जाता है, और किसी भी बुनियादी I/O ऑपरेशन के लिए इनकी आवश्यकता नहीं होती। प्री-स्केलर मैक्रोज़ के मान और उनकी संगत आवृत्ति श्रेणियाँ कोड दस्तावेज़ में या कोड में ही देखी जा सकती हैं।
दिल की धड़कन एलईडी
We can configure the green user LED, D7 to blink in a heartbeat fashion as a test for proper connection to the NUCLEO-G071RB board. The macro, HEARTBEAT_LED when uncommented, blinks the green LED on X-NUCLEO-ISO1A1 when it is connected to the NUCLEO. It remains on for 1 second and off for 2 seconds, with the timing taken care of by timers. When it is not used or any function involving LEDs being called, the macro should be uncommented.
इनपुट और आउटपुट GPIO कॉन्फ़िगरेशन
प्रत्येक X-NUCLEO-ISO1A1 बोर्ड में दो इनपुट पोर्ट और दो आउटपुट पोर्ट होते हैं। दो X-NUCLEO-ISO1A1 बोर्डों को एक के ऊपर एक रखकर बोर्ड की क्षमताओं को बढ़ाया जा सकता है, जिससे चार डिजिटल इनपुट पोर्ट और चार डिजिटल आउटपुट पोर्ट का उपयोग संभव हो जाता है। प्रदान किए गए सॉफ़्टवेयर में व्यापक API शामिल हैं जो पोर्ट को पढ़ने, सेट करने और साफ़ करने में सुविधा प्रदान करते हैं। इसके अतिरिक्त, API सभी पोर्ट को एक साथ सेट करने, पढ़ने या साफ़ करने की अनुमति देते हैं। API फ़ंक्शन के बारे में विस्तृत जानकारी कोड दस्तावेज़ के साथ-साथ इस दस्तावेज़ के API अनुभाग में भी उपलब्ध है।

यहाँ उपसर्ग DI डिजिटल इनपुट पोर्ट और DO डिजिटल आउटपुट पोर्ट को दर्शाता है। वैकल्पिक कॉन्फ़िगरेशन के लिए, सॉफ़्टवेयर _alt प्रत्यय के साथ समान नामकरण पद्धति का उपयोग करता है।
निम्नलिखित तालिका विभिन्न IO पोर्ट्स के अनुरूप सॉफ्टवेयर में परिभाषित GPIO मैक्रोज़ का विवरण देती है:
तालिका 2. डिफ़ॉल्ट और वैकल्पिक सॉफ़्टवेयर कॉन्फ़िगरेशन के लिए आवंटित GPIO
| नाम | समारोह | डिफ़ॉल्ट कॉन्फ़िगरेशन | वैकल्पिक कॉन्फ़िगरेशन |
| INPUT PIN | Input pin 1 | GPIOC, IA0_IN_1_PIN | GPIOD, IA0_IN_1_PIN |
| Input pin 2 | GPIOD, IA1_IN_2_PIN | GPIOC, IA1_IN_1_PIN | |
| OUTPUT PIN | Output pin 1 | GPIOC, QA0_CNTRL_1_PIN | GPIOD, QA0_CNTRL_1_PIN |
| Output pin 2 | GPIOC, QA1_CNTRL_2_PIN | GPIOC, QA1_CNTRL_2_PIN | |
| FAULT PIN | Fault pin 1 | GPIOC, FLT1_QA0_2_OT_PIN | GPIOD, FLT1_QA0_1_OT_PIN |
| Fault pin 2 | GPIOC, FLT2_QA0_2_OL_PIN | GPIOD, FLT2_QA0_1_OL_PIN | |
| Fault pin 3 | GPIOC, FLT1_QA1_2_OT_PIN | GPIOC, FLT1_QA1_1_OT_PIN | |
| Fault pin 4 | GPIOC, FLT2_QA1_1_OL_PIN | GPIOD, FLT2_QA1_2_OL_PIN | |
| कॉन्फ़िगरेशन मैक्रो | बोर्ड_आईडी_डिफ़ॉल्ट | बोर्ड_आईडी_वैकल्पिक |
Timers and PWM
Timers can be used in the X-CUBE-ISO1 firmware to generate PWM signals for specific pins. By default, timers are not initialized except TIM3. The respective timers should be initialized before generating the PWM signals and the respective output ports must be initialized in the PWM mode.
सामान्य GPIO इनपुट/आउटपुट संचालन के लिए, किसी टाइमर या आउटपुट पोर्ट को कॉन्फ़िगर करने की आवश्यकता नहीं होती है, क्योंकि यह डिफ़ॉल्ट रूप से ही नियंत्रित होता है। हालाँकि, यदि आउटपुट पिन एक बार PWM मोड में सेट हो जाते हैं, तो हमें उन्हें GPIO मोड में पुनः कॉन्फ़िगर करना होगा ताकि वे GPIO पिन के रूप में उपयोग किए जा सकें।
टिप्पणी: जब आउटपुट पिन का उपयोग PWM निर्माण के लिए किया जा रहा हो, तो GPIO आउटपुट अक्षम हो जाता है, और दोनों कार्यक्षमताएँ एक साथ क्रियान्वित नहीं की जा सकतीं। PWM उपयोग के बाद GPIO को पुनः सक्षम करने के लिए, सभी पोर्ट को एक साथ GPIO के रूप में कॉन्फ़िगर करने के लिए API फ़ंक्शन ST_ISO_BoardConfigureDefault() या ST_ISO_InitGPIO() को कॉल किया जा सकता है, या किसी विशिष्ट GPIO पोर्ट और पिन के साथ ST_ISO_Init_GPIO() को कॉल किया जा सकता है।
जैसा कि ऊपर बताया गया है, सॉफ़्टवेयर डिफ़ॉल्ट रूप से एक टाइमर, TIM3, का भी उपयोग करता है, जिसका उपयोग उपयोगकर्ता LED टाइमिंग, घड़ी और UART टाइमिंग कार्यान्वयन के लिए किया जाता है। इसे डिफ़ॉल्ट रूप से 1 सेकंड की अवधि के लिए कॉन्फ़िगर किया गया है।
निम्नलिखित तालिका हमारे कोड में प्रत्येक पिन के लिए उपलब्ध टाइमर का विवरण देती है:
तालिका 3. प्रत्येक पिन के लिए उपलब्ध टाइमर
| पिन नाम | Software representation | घड़ी | Timer channel | वैकल्पिक कार्य |
| QA0_CNTRL_1_PIN | QA_0 | टीआईएम2 | TIM_CHANNEL_4 | GPIO_AF2_TIM2 |
| QA1_CNTRL_2_PIN | QA_1 | टीआईएम1 | TIM_CHANNEL_3 | GPIO_AF2_TIM1 |
| QA0_CNTRL_2_PIN | QA_0_ALT | टीआईएम1 | TIM_CHANNEL_4 | GPIO_AF2_TIM1 |
| QA1_CNTRL_1_PIN | QA_1_ALT | टीआईएम17 | TIM_CHANNEL_1 | GPIO_AF2_TIM17 |
Additional utilities of the firmware
The firmware includes additional utilities to enhance the functionality of the X-NUCLEO-ISO1A1 evaluation board. Some of which are described below.
यूएआरटी
The UART communication feature allows for real-time monitoring and debugging of the board status through PC utilities such as TeraTerm, PuTTY and other similar applications. The software enables the UART data transmission through the UART present in the NUCLEO-G071RB board. The `ST_ISO_UART` function sends detailed board status information over UART, including system uptime, firmware configuration, and fault status. This data can be viewटेराटर्म जैसे किसी भी सीरियल पोर्ट एप्लिकेशन का उपयोग करके। `ST_ISO_APP_DIDOandUART` फ़ंक्शन डिजिटल इनपुट/आउटपुट संचालन को UART संचार के साथ जोड़ता है, और निर्दिष्ट अंतराल पर सभी इनपुट और आउटपुट चैनलों की स्थिति प्रसारित करता है। नीचे कॉन्फ़िगरेशन सेटिंग्स और एएस दिए गए हैं।ampटेराटर्म में डेटा कैसे दिखाई देता है, इसका विवरण। पोर्ट का नाम सिस्टम और इस्तेमाल किए जा रहे सीरियल पोर्ट के आधार पर अलग-अलग हो सकता है।


IO पिन मोड कॉन्फ़िगरेशन
IO पिन मोड कॉन्फ़िगरेशन यूटिलिटी उपयोगकर्ताओं को ST_ISO_BoardConfigure() फ़ंक्शन का उपयोग करके बोर्ड के इनपुट और आउटपुट पोर्ट सेट करने की अनुमति देती है। यह फ़ंक्शन दो आउटपुट पोर्ट (QA0, QA1) और दो इनपुट पोर्ट (IA0, IA1) को इनपुट/आउटपुट मोड, PWM आउटपुट मोड, या इंटरप्ट इनपुट मोड में कॉन्फ़िगर करने का समर्थन करता है। पैरामीटर्स को समायोजित करके और इस फ़ंक्शन को कॉल करके, उपयोगकर्ता बोर्ड के IO कॉन्फ़िगरेशन को विशिष्ट आवश्यकताओं के अनुसार आसानी से अनुकूलित कर सकते हैं।
इनपुट/आउटपुट मोड में, यह उपयोगिता सामान्य प्रयोजन के डिजिटल संचालनों के लिए GPIO पिनों को आरंभीकृत करती है। PWM आउटपुट मोड में, यह सटीक PWM सिग्नल नियंत्रण के लिए टाइमर सेट करती है। इंटरप्ट इनपुट मोड में, यह उपयोगिता इंटरप्ट को संभालने के लिए पिनों को कॉन्फ़िगर करती है, जिससे प्रतिक्रियाशील ईवेंट-संचालित प्रोग्रामिंग संभव हो पाती है।
रुकावट प्रबंधन
For handling FAULT signals, the software enables the associated interrupt lines, allowing for responsive event-driven programming. A customized handler can be associated with these interrupts via the
HAL_GPIO_EXTI_Rising_Callback function defined in the API. The software includes features for initializing GPIO pins in interrupt mode via ST_ISO_BoardConfigure function and configuring specific actions in the EXTI IRQ handlers. This allows users to customize how the board responds to external events, ensuring it can effectively manage various fault conditions and triggers.
शहद की मक्खी
The X-CUBE-ISO1 software API provides a comprehensive set of functions to control and monitor the X-NUCLEO-ISO1A1 board, including PWM signal generation and GPIO operations. The API is designed to be easy to use and integrate into various applications, providing flexibility and control over the board’s functionality.
X-CUBE-ISO1 सॉफ़्टवेयर API BSP/ISO1A1 फ़ोल्डर में परिभाषित है। इसके फ़ंक्शन ST_ISO उपसर्ग के साथ आते हैं। यह API iso1a1.c और pwm_api.c के माध्यम से अनुप्रयोगों के लिए दृश्यमान है। files स्थिरांक, डेटा संरचनाओं और कार्यों का एक संयोजन है।
Sampफर्मवेयर अनुप्रयोग इन कार्यों के कुछ संभावित उपयोगों को दिखाने के लिए इन API का उपयोग करते हैं।
X-CUBE-ISO1 सॉफ्टवेयर पैकेज API के दो सेट प्रदान करता है:
- ISO1A1 एपीआई
- पीडब्लूएम एपीआई
ISO1A1 एपीआई
ISO1A1 API को iso1a1.h और iso1a1.c में परिभाषित किया गया है fileयह ISO1A1 बोर्ड को कॉन्फ़िगर और नियंत्रित करने के लिए फ़ंक्शन प्रदान करता है, जिसमें GPIO इनपुट/आउटपुट ऑपरेशन और दोष का पता लगाना शामिल है।
महत्वपूर्ण कार्यों
- ST_ISO_BoardConfigureDefault: बोर्ड के IO पोर्ट को डिफ़ॉल्ट GPIO कॉन्फ़िगरेशन के साथ कॉन्फ़िगर करता है।
- ST_ISO_BoardConfigure: बोर्ड के लिए इनपुट और आउटपुट पोर्ट के मोड को कॉन्फ़िगर करता है।
- ST_ISO_BoardInit: बोर्ड हार्डवेयर को आरंभ करता है।
- ST_ISO_BoardMapInit: चैनल हैंडल कॉन्फ़िगरेशन के आधार पर बोर्ड कार्यक्षमता को आरंभ करता है।
- ST_ISO_GetFWVersion: वर्तमान फर्मवेयर संस्करण लौटाता है।
- ST_ISO_GetChannelHandle: निर्दिष्ट चैनल नाम के लिए चैनल हैंडल पुनर्प्राप्त करता है।
- ST_ISO_InitGPIO: निर्दिष्ट GPIO पिन को दिए गए मॉड्यूल ID के साथ आरंभ करता है।
- ST_ISO_InitInterrupt: निर्दिष्ट GPIO पिन को दिए गए मॉड्यूल ID के साथ इंटरप्ट के रूप में आरंभ करता है।
- ST_ISO_EnableFaultInterrupt: त्रुटिपूर्ण GPIO पिन को इंटरप्ट मोड में आरंभ करता है।
- ST_ISO_SetChannelStatus: निर्दिष्ट चैनल की स्थिति निर्धारित करता है।
- ST_ISO_SetOne_DO: एकल डिजिटल आउटपुट चैनल सेट करता है।
- ST_ISO_ClearOne_DO: एकल डिजिटल आउटपुट चैनल साफ़ करता है।
- ST_ISO_WriteAllChannels: सभी डिजिटल आउटपुट चैनलों पर डेटा लिखता है।
- ST_ISO_GetOne_DI: एकल डिजिटल इनपुट चैनल की स्थिति प्राप्त करता है।
- ST_ISO_ReadAllChannel: सभी इनपुट चैनलों की स्थिति पढ़ता है।
- ST_ISO_ReadAllOutputChannel: सभी आउटपुट चैनलों की स्थिति पढ़ता है।
- ST_ISO_ReadFaultStatus: सभी दोष पहचान पोर्ट से दोष स्थिति पढ़ता है।
- ST_ISO_ReadFaultStatusPolling: पोलिंग मोड में बोर्डों की गलती का पता लगाने का परीक्षण करता है।
- ST_ISO_DisableOutputChannel: उस चैनल के लिए आउटपुट अक्षम करता है।
- ST_ISO_UpdateBoardStatusInfo: बोर्ड स्थिति जानकारी अद्यतन करता है।
- ST_ISO_UpdateFaultStatus: किसी विशिष्ट चैनल के लिए दोष स्थिति को अद्यतन करता है।
- ST_ISO_BlinkLed: निर्दिष्ट LED को दिए गए विलंब और पुनरावृत्ति गणना के साथ ब्लिंक करता है।
- ST_ISO_UART: UART पर बोर्ड की स्थिति की जानकारी भेजता है।
- ST_ISO_SwitchInit: स्विच घटकों को आरंभ करता है।
- ST_ISO_SwitchDeInit: स्विच इंस्टैंस को डी-इनिशियलाइज़ करता है।
- ST_ISO_DigitalInputInit: डिजिटल इनपुट घटकों को आरंभीकृत करता है।
- ST_ISO_DigitalInputDeInit: डिजिटल इनपुट इंस्टैंस को डी-इनिशियलाइज़ करता है।
पीडब्लूएम एपीआई
PWM API को pwm_api.h और pwm_api.c में परिभाषित किया गया है fileयह विशिष्ट पिनों के लिए PWM संकेतों को आरंभीकृत और नियंत्रित करने के लिए निम्नलिखित कार्य प्रदान करता है।
- ST_ISO_Init_PWM_Signal: PWM सिग्नल के लिए टाइमर और विशिष्ट पिन को आरंभ करता है।
- ST_ISO_Set_PWM_Frequency: विशिष्ट पिन के लिए PWM आवृत्ति सेट करता है।
- ST_ISO_Set_PWM_Duty_Cycle: विशिष्ट पिन के लिए PWM ड्यूटी चक्र सेट करता है।
- ST_ISO_Start_PWM_Signal: विशिष्ट पिन पर PWM सिग्नल प्रारंभ करता है।
- ST_ISO_Stop_PWM_Signal: विशिष्ट पिन पर PWM सिग्नल को रोकता है।
To start a PWM signal on a respective channel, firstly call the ST_ISO_Init_PWM_Signal function, then set the desired frequency and duty cycle by calling the ST_ISO_Set_PWM_Frequency and
ST_ISO_Set_PWM_Duty_Cycle functions respectively and then you can start the PWM signal by calling the ST_ISO_Start_PWM_Signal function and stop by calling ST_ISO_Stop_PWM_Signal.
फ़ंक्शन को संबंधित पिन नाम और उपलब्ध टाइमर के साथ कॉल करने की आवश्यकता होती है, जिसका विवरण तालिका 3 में दिया गया है। विभिन्न आउटपुट चैनलों को विभिन्न आवृत्तियों और ड्यूटी चक्रों के साथ सेट किया जा सकता है; आवृत्ति या ड्यूटी चक्र बदलने से दूसरे पर कोई प्रभाव नहीं पड़ता है, यह समान रहता है।
उपयोगकर्ता के लिए उपलब्ध एपीआई के बारे में विस्तृत तकनीकी जानकारी संकलित एचटीएमएल में पाई जा सकती है file सॉफ्टवेयर पैकेज के "डॉक्यूमेंटेशन" फ़ोल्डर के अंदर स्थित है जहां सभी कार्यों और मापदंडों का पूरी तरह से वर्णन किया गया है।
आवेदन विवरण
प्रदर्शन एप्लिकेशन कई सरल उपयोग मामलों को कार्यान्वित करता है। st_iso_app और board_config fileबोर्ड और उसके अनुप्रयोग कार्यों को स्थापित करने और उपयोग करने में ये महत्वपूर्ण भूमिका निभाते हैं। इन कार्यों का उपयोग करने से पहले सुनिश्चित करें कि बोर्ड और सॉफ़्टवेयर का कॉन्फ़िगरेशन एक-दूसरे के साथ समन्वयित हैं।
अनुप्रयोग फ़ंक्शन (st_iso_app.h और st_iso_app.c)
एप्लिकेशन फ़ंक्शन के आगे ST_ISO_APP लगा होता है; ये उपयोगकर्ता को दिखाई देने वाले शीर्ष-स्तरीय फ़ंक्शन होते हैं जो उनके कार्यान्वयन के लिए API फ़ंक्शन को कॉल करते हैं। एप्लिकेशन फ़ंक्शन को main.c में कॉल किया जा सकता है। file उनके कामकाज के लिए.
- उपयोग केस चयन: उपयोगकर्ता st_iso_app.c में वांछित उपयोग केस मैक्रो की टिप्पणी हटा सकता है file. The function ST_ISO_APP_SelectUseCaseMacro(), called in main.c, initializes that use case, and the function ST_ISO_APP_SelectedFunction() implements it in main.c. This approach allows for easy configuration of the operational mode by simply modifying the macro definitions, ensuring that the appropriate functionality is executed based on the selected use case. By default, the use case DIDO is selected, and the user does not have to make any changes to the code to implement it.
- Digital Input to Digital Output Mirroring (ST_ISO_APP_UsecaseDIDO): This function reads the status of all input channels and writes the same status to all output channels. It is useful for mirroring digital inputs to digital outputs.
- Digital Input to Digital Output Mirroring with UART (ST_ISO_APP_DIDOandUART): This function mirrors the digital inputs to digital outputs, similar to the ST_ISO_APP_UsecaseDIDO function. Additionally, it transmits the board status through the UART interface on the Nucleo device, allowing the status to be viewटेरा टर्म जैसे अनुप्रयोगों का उपयोग करके सीरियल पोर्ट पर एड किया गया।
- Test Case Function (ST_ISO_APP_TestCase): This function performs a series of tests and actions based on the board configuration. It checks the fault status, reads the status of two digital input channels, and performs actions based on their values. This function helps in evaluating the board’s performance and functionality quickly and getting visual feedback through different LED patterns. Ensure the HEARTBEAT_LED macro in the board_config.h file उचित एलईडी पैटर्न का निरीक्षण करने के लिए टिप्पणी की गई है।
- PWM Generation (ST_ISO_APP_PWM _OFFSET): This function starts the PWM signal on both output channels with a frequency of 1 Hz and duty cycle 50%. It initializes the PWM signal, sets the frequency and duty cycle, and starts the PWM signal for the specified board ID. The PWM signal is generated with an offset between both channels and thus they are not in phase.
- Fault Detection Test (ST_ISO_APP_FaultTest): This function evaluates the fault detection by motoring inbuilt diagnostic pins of smart output module IPS1025. in either polling or interrupt mode. It configures the fault detection mode, initializes fault detection, and updates the fault status structure based on the selected mode. This function is crucial for ensuring the reliability and safety of the board by detecting and handling faults effectively. When it is in polling mode, the fault status is updated every second with the help of a timer and is reflected in the structure defaultBoardFaultStatus or alternateBoardFaultStatus. When it is in the interrupt mode, the fault status is updated only when the fault occurs, and it triggers the software to clear the corresponding output port.
- PWM Variation Test (ST_ISO_APP_PwmVariationTest): This function is designed to test the variation of PWM (Pulse Width Modulation) signals on different output channels based on the board configuration. It initializes the PWM signals for both default and alternate board configurations, setting their frequency to 100 Hz and the initial duty cycle to 0%. The function then varies the duty cycle from 0% to 100% in increments of 5%, and back from 100% to 0% in decrements of 5%, with a 2-second delay between each step. This controlled variation allows for the observation and evaluation of the PWM signal behavior on channels QA_0 and QA_1 for the default board, and QA_0_ALT and QA_1_ALT for the alternate board.
इन कॉन्फ़िगरेशन का पालन करके और प्रदान किए गए एप्लिकेशन फ़ंक्शन का उपयोग करके, आप विभिन्न प्रदर्शन उपयोग मामलों के लिए X-NUCLEO-ISO1A1 बोर्ड को प्रभावी ढंग से सेट अप और उपयोग कर सकते हैं।
सिस्टम सेटअप गाइड
हार्डवेयर विवरण
STM32 Nucleo platform
STM32 न्यूक्लियो डेवलपमेंट बोर्ड उपयोगकर्ताओं को समाधानों का परीक्षण करने और किसी भी STM32 माइक्रोकंट्रोलर लाइन के साथ प्रोटोटाइप बनाने के लिए एक किफायती और लचीला तरीका प्रदान करते हैं।
The Arduino® connectivity support and ST morpho connectors make it easy to expand the functionality of the STM32 Nucleo open development platform with a wide range of specialized expansion boards to choose from.
STM32 न्यूक्लियो बोर्ड को अलग जांच की आवश्यकता नहीं होती क्योंकि यह ST-LINK/V2-1 डिबगर/प्रोग्रामर को एकीकृत करता है।
एसटीएम 32 न्यूक्लियो बोर्ड व्यापक एसटीएम 32 सॉफ्टवेयर एचएएल लाइब्रेरी के साथ विभिन्न पैकेज्ड सॉफ्टवेयर के साथ आता हैampलेस.

Information regarding the STM32 Nucleo board is available at www.st.com/stm32nucleo
X-NUCLEO-ISO1A1 expansion board
The X-NUCLEO-ISO1A1 is an evaluation board with isolated industrial input/output designed to expand the STM32 Nucleo board and provide micro-PLC functionality. Two of the X-NUCLEO-ISO1A1 boards can be stacked together on top of an STM32 Nucleo board with the appropriate selection of jumpers on the expansion board to avoid conflict in GPIO interfaces. The UL1577 certified digital isolators STISO620 and STISO621 provide isolation between logic and process side components. Two current limited high-side inputs from the process side are realized through CLT03-2Q3. The CLT03-2Q3 provides protection, isolation, and energy-less status indication for industrial conditions, designed to meet standards such as IEC61000-4-2, IEC61000-4-4, and IEC61000-4-5. One each of the high-side switches IPS1025H-32/HQ-32 provides protected output up to 5.6 A with diagnostics and smart driving features. These can drive capacitive, resistive, or inductive loads. The X-NUCLEO-ISO1A1 allows rapid evaluation of the onboard ICs using the X-CUBE-ISO1 software package.

हार्डवेयर सेटअप
निम्नलिखित हार्डवेयर घटकों की आवश्यकता है:
- One STM32 Nucleo development platform (suggested order code: NUCLEO-GO71RB)
- One industrial digital output expansion board (order code: X-NUCLEO-ISO1A1)
- One USB type A to Micro USB cable to connect the STM32 Nucleo to the PC
- An external power supply (24 V) and the associated wires to supply the X-NUCLEO-ISO1A1 expansion board.
सॉफ्टवेयर सेटअप
X-NUCLEO-ISO32A1 विस्तार बोर्ड से सुसज्जित STM1 न्यूक्लियो के लिए अनुप्रयोग बनाने हेतु उपयुक्त विकास वातावरण स्थापित करने के लिए निम्नलिखित सॉफ्टवेयर घटकों की आवश्यकता होती है:
- X-CUBE-ISO1: an expansion for STM32Cube dedicated to application development which requires the use of the X-NUCLEO-ISO1A1 board. The X-CUBE-ISO1 firmware and related documentation is available on www.st.com
- Development toolchain and Compiler: the STM32Cube expansion software supports the three following environments:
- IAR Embedded Workbench for ARM® (IAR-EWARM) toolchain
- असलीView माइक्रोकंट्रोलर डेवलपमेंट किट (MDK-ARM-STM32) टूलचेन
- STM32CubeIDE.
बोर्ड सेटअप
बोर्ड को हार्डवेयर उपयोगकर्ता पुस्तिका (UM3483) में निर्दिष्ट उपयुक्त जम्पर सेटिंग्स के साथ कॉन्फ़िगर किया जाना चाहिए। उचित कार्यक्षमता सुनिश्चित करने और संभावित समस्याओं से बचने के लिए इन दिशानिर्देशों का सावधानीपूर्वक पालन करना आवश्यक है।
सिस्टम सेटअप गाइड
यह अनुभाग बताता है कि X-NUCLEO-ISO32A071 विस्तार बोर्ड के साथ STM1 Nucleo, NUCLEO-G1RB बोर्ड पर किसी अनुप्रयोग को विकसित करने और निष्पादित करने से पहले विभिन्न हार्डवेयर भागों को कैसे सेट अप किया जाए।


Setup for X-CUBE-ISO1 expansion package
The X-NUCLEO-ISO1A1 mustbe configured with the specific jumper positions based on which configuration you are running the board. The details of which can we further looked in the hardware manual.
- स्टेप 1। Plug the X-NUCLEO-ISO1A1 expansion board on top of the STM32 Nucleo via the morphoconnectors.
यदि आप दो बोर्डों को एक दूसरे के ऊपर रख रहे हैं, तो उन्हें चित्र 11 के अनुसार रखें। - स्टेप 2। Connect the STM32 Nucleo board to a PC with the USB cable through USB connector CN1 to powerthe board.
- स्टेप 3। Power the X-NUCLEO-ISO1A1 expansion board(s) on by connecting J1 to the 24V DC power supply. If using stacked boards, ensure both boards are powered.
- स्टेप 4। Open your preferred toolchain (MDK-ARM from Keil, EWARM from IAR, or STM32CubeIDE).
- स्टेप 5। Open the software project and make the necessary changes to the board_config.h file उपयोग किये जा रहे बोर्ड(बोर्डों) के विन्यास के अनुसार।
- स्टेप 6। Set the appropriate use case macro in st_iso_app.c file या main.c में ST_ISO_APP_SelectUseCase फ़ंक्शन का उपयोग करके आवश्यक उपयोग केस को कॉल करें file किसी भी अन्य वांछित कार्य के साथ.
- स्टेप 7। Build the project to compile all fileऔर संकलित कोड को STM32 न्यूक्लियो बोर्ड की मेमोरी में लोड करें।
- स्टेप 8। Run the code on the STM32 Nucleo board and verify the expected behavior.
संशोधन इतिहास
तालिका 4. दस्तावेज़ संशोधन इतिहास
| तारीख | दोहराव | परिवर्तन |
| 14-मई-2025 | 1 | प्रारंभिक रिहाई। |
महत्वपूर्ण सूचना – ध्यानपूर्वक पढ़ें
एसटीमाइक्रोइलेक्ट्रॉनिक्स एनवी और इसकी सहायक कंपनियां ("एसटी") बिना किसी सूचना के किसी भी समय एसटी उत्पादों और/या इस दस्तावेज़ में परिवर्तन, सुधार, संवर्द्धन, संशोधन और सुधार करने का अधिकार सुरक्षित रखती हैं। खरीदारों को ऑर्डर देने से पहले एसटी उत्पादों पर नवीनतम प्रासंगिक जानकारी प्राप्त करनी चाहिए। एसटी उत्पादों को ऑर्डर पावती के समय लागू एसटी की बिक्री की शर्तों और नियमों के अनुसार बेचा जाता है।
क्रेता एसटी उत्पादों के चयन, चयन और उपयोग के लिए पूरी तरह से जिम्मेदार हैं और एसटी आवेदन सहायता या खरीदारों के उत्पादों के डिजाइन के लिए कोई दायित्व नहीं लेता है।
यहां एसटी द्वारा किसी भी बौद्धिक संपदा अधिकार के लिए कोई लाइसेंस, व्यक्त या निहित, प्रदान नहीं किया गया है।
यहां दी गई जानकारी से भिन्न प्रावधानों के साथ एसटी उत्पादों की पुनर्बिक्री से ऐसे उत्पाद के लिए एसटी द्वारा दी गई किसी भी वारंटी को रद्द कर दिया जाएगा।
एसटी और एसटी लोगो एसटी के ट्रेडमार्क हैं। एसटी ट्रेडमार्क के बारे में अतिरिक्त जानकारी के लिए www.st.com/trademarks देखें। अन्य सभी उत्पाद या सेवा नाम उनके संबंधित स्वामियों की संपत्ति हैं।
इस दस्तावेज़ में दी गई जानकारी इस दस्तावेज़ के किसी भी पूर्ववर्ती संस्करण में दी गई जानकारी का स्थान लेगी।
© 2025 एसटीमाइक्रोइलेक्ट्रॉनिक्स – सभी अधिकार सुरक्षित
दस्तावेज़ / संसाधन
![]() |
STMicroelectronics UM3469 X-CUBE-ISO1 सॉफ्टवेयर विस्तार [पीडीएफ] उपयोगकर्ता पुस्तिका X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 X-CUBE-ISO1 सॉफ़्टवेयर विस्तार, UM3469, X-CUBE-ISO1 सॉफ़्टवेयर विस्तार, सॉफ़्टवेयर विस्तार |

