הרחבת תוכנה STMicroelectronics UM3469 X-CUBE-ISO1

מָבוֹא
חבילת תוכנת ההרחבה X-CUBE-ISO1 עבור STM32Cube פועלת על גבי ה-STM32 וכוללת קושחה עבור ה-X-NUCLEO-ISO1A1. התוכנה מספקת פתרון קל לשימוש לפיתוח התקן PLC בסיסי המסופק על ידי ה-X-NUCLEO. ההרחבה בנויה על טכנולוגיית תוכנת STM32Cube כדי להקל על ניידות בין מיקרו-בקרים שונים של STM32.
התוכנה מגיעה עם מימוש הפועל על לוח ההרחבה X-NUCLEO-ISO1A1 המחובר ללוח פיתוח NUCLEO-G071RB (או NUCLEO-G0B1RE או NUCLEO-G070RB). מעתה ואילך, במסמך יוזכר רק ה-NUCLEO-G071RB לשם פשטות.
לוח X-NUCLEO-ISO1A1 נועד לתמוך בערימה של שני לוחות עם הגדרות מגשר מתאימות כדי להרחיב את יכולות הקלט והפלט.
ראשי תיבות וקיצורים
טבלה 1. רשימת ראשי תיבות
| ראשי תיבות | תֵאוּר |
| PLC | בקר לוגי ניתן לתכנות |
| ממשק API | ממשק תכנות יישומים |
| PWM | אפנון רוחב דופק |
| GPIO | קלט/פלט לשימוש כללי. |
| HAL | שכבת הפשטת החומרה |
| PC | מחשב אישי |
| FW | קושחה |
מה זה STM32Cube?
STM32Cube™ מייצג את יוזמת STMicroelectronics להקל על חייהם של מפתחים על ידי צמצום מאמץ הפיתוח, הזמן והעלות. STM32Cube מכסה את תיק המוצרים של STM32.
STM32Cube גרסה 1.x כוללת:
- STM32CubeMX, כלי תצורה גרפי המאפשר יצירת קוד אתחול ב-C באמצעות אשפים גרפיים.
- פלטפורמת תוכנה משובצת מקיפה ספציפית לכל סדרה (כגון STM32CubeG0 עבור סדרת STM32G0), הכוללת:
- תוכנת שכבת ההפשטה המוטמעת HAL של STM32Cube, המבטיחה ניידות מקסימלית בכל תיק מוצרי STM32
- קבוצה עקבית של רכיבי תוכנה ביניים כגון RTOS, USB, TCP/IP וגרפיקה
- כל כלי התוכנה המשובצים עם סט מלא של אקספרסamples.
ארכיטקטורת STM32Cube
פתרון הקושחה STM32Cube בנוי סביב שלוש רמות עצמאיות שיכולות לתקשר בקלות זו עם זו, כמתואר בתרשים שלהלן.

הרחבת תוכנה X-CUBE-ISO1 עבור STM32Cube
מֵעַלview
הקושחה עבור לוח הרחבת קלט/פלט מבודד תעשייתי X-NUCLEO-ISO1A1, שפותח סביב סביבות וספריות STM32, ממנפת את המיקרו-בקר בעל הביצועים הגבוהים של לוחות STM32 Nucleo לניהול כניסות דיגיטליות ויציאות עם אבחון משולב יחד עם מגבלת זרם דינמית ויצירת אותות PWM. היא כוללת תצורה ובקרה מקיפות של הלוח, כולל מסגרות לתנאי ברירת מחדל ותנאי חלופה, פקודות מאקרו לקביעת ערכי קדם-סקיילר והגדרות עבור יציאות ופינים של GPIO.
זה תומך במגוון יישומיםampמקרי שימוש ביישום כגון שיקוף קלט דיגיטלי לפלט, תקשורת UART דרך לוח Nucleo, זיהוי תקלות, מקרי בדיקה ויצירת PWM, אשר ניתנים לשימוש ישיר וניתנים להתאמה אישית והרחבה בקלות.
ממשק ה-API מספק מערך פונקציות חזק לבקרת קלט/פלט דיגיטלי, זיהוי תקלות ועדכוני סטטוס של הלוח, עם הגדרות תצורה להפעלת שני לוחות בו זמנית במצבים שונים. פונקציות API ספציפיות זמינות לאתחול, הפעלה, עצירה וקביעת תצורה של אותות PWM עבור ערוצי פלט דיגיטליים.
חבילת תמיכת הלוח כוללת פונקציות לשליטה וניטור של פיני GPIO המחוברים ל-IPS1025H-32 ולקריאת מצב פיני GPIO המחוברים ל-CLT03-2Q3 באמצעות מבודד דיגיטלי.
קונפיגורציה ואתחול מבוססים על STM32CubeMX, כאשר פיתוח וניפוי שגיאות נתמכים על ידי STM32CubeIDE, IAR Systems וכלי Keil®.
אַדְרִיכָלוּת
ניתן לחלק את הקושחה עבור ה-X-NUCLEO-ISO1A1 למספר בלוקים פונקציונליים נפרדים, שכל אחד מהם אחראי על היבטים שונים של פעולות המערכת:

- תצורת לוח ובקרה:
- הקובץ board_config.h file מכיל פקודות מאקרו כדי להגדיר את הלוח לפעול בתנאי ברירת מחדל או תנאי חלופי, או שניהם. הוא כולל גם הגדרות עבור ערכי טרום-מדרגה ופורטים ופינים של GPIO.
- בלוק זה מבטיח שהלוח מוגדר כהלכה עבור תנאי ההפעלה הרצויים ושכל תצורות החומרה הדרושות קיימות.
- מקרי שימוש ביישום:
- הקבצים st_iso_app.h ו- st_iso_app.c fileמכילים מקרי שימוש ביישום שנועדו לבחון פונקציות שונות של הלוח.
- מקרי שימוש אלה כוללים שיקוף דיגיטלי מקלט לפלט, בדיקות גילוי תקלות ויצירת אות PWM.
- Exampתצורות le מסופקות להפעלת שני לוחות בו זמנית במצבים שונים, מה שמדגים את הרבגוניות והגמישות של הקושחה.
- פונקציות API:
- ה-iso1a1.h וה-iso1a1.c fileמספקים סט מקיף של ממשקי API לתמיכה בפונקציונליות מגוונת.
- ממשקי API אלה כוללים פונקציות לבקרת קלט/פלט דיגיטלי, זיהוי תקלות ועדכוני סטטוס של הלוח.
- ממשקי ה-API נועדו להיות פשוטים ואינטואיטיביים, מה שמקל על המשתמשים לקיים אינטראקציה עם הלוח ולבצע פעולות נחוצות.
- בקרת אות PWM:
- הקבצים pwm_api.h ו- pwm_api.c files מכילים פונקציות API ספציפיות הקשורות ליצירת אותות PWM.
- פונקציות אלו מאפשרות אתחול, הגדרה, הפעלה ועצירה של אותות PWM עבור ערוצי פלט דיגיטליים.
- פונקציונליות PWM אינה בחירת ברירת מחדל. תצורת הלוח שונתה כדי לאפשר זאת. עיין בסעיף 3.5: ממשקי API לפרטים נוספים.
- חבילת תמיכה לדירקטוריון:
- חבילת התמיכה של הדירקטוריון כוללת files לשליטה וניטור פיני GPIO המחוברים ל-IPS1025H-32 ולקריאת מצב פיני GPIO המחוברים ל-CLT03-2Q3.
- הקבצים ips1025h_32.h ו- ips1025h_32.c fileמספקים פונקציות להגדרה, ניקוי וזיהוי תקלות בפיני GPIO המחוברים ל-IPS1025H-32.
- הקבצים clt03_2q3.h ו- clt03_2q3.c fileמספקים פונקציות לקריאת מצב פיני ה-GPIO המחוברים ל-CLT03-2Q3.
קושחת ההדגמה מיישמת מספר מקרי שימוש פשוטים כדי להציג את יכולות המערכת. מקרי שימוש אלה וממשקי API למשתמש מבוצעים באופן מתואם כדי להבטיח פעולה חלקה ותוצאות מדויקות. הארכיטקטורה תוכננה להיות ניתנת להרחבה בקלות, מה שמאפשר למשתמשים להוסיף פונקציונליות ומקרי שימוש חדשים לפי הצורך. תצורת ברירת מחדל מסופקת להפעלת לוח אחד עם IOs תעשייתיים דיגיטליים. הגדרת המגשר צריכה להיות גם במצב ברירת מחדל כמתואר בטבלה 2. שיקוף קלט דיגיטלי (DIDO) הוא מקרה השימוש המוגדר כברירת מחדל ביישום קושחה.
מבנה תיקיות

התיקיות הבאות כלולות בחבילת התוכנה:
- התיעוד מכיל HTML מקופל file נוצר מקוד המקור, תוך פירוט רכיבי התוכנה וממשקי ה-API.
- דרייברים מכילים:
- תיקיית STM32Cube HAL, הממוקמת בתת-התיקיות STM32G0xx_HAL_Driver. אלה fileאינם מתוארים כאן מכיוון שהם אינם ספציפיים לתוכנת X-CUBE-ISO1 אלא מגיעים ישירות ממסגרת STM32Cube.
- תיקיית CMSIS המכילה את תקן ממשק תוכנת המיקרו-בקר Cortex® files מ- Arm. אלה files הן שכבת הפשטת חומרה שאינה תלויה בספק עבור סדרת מעבדי Cortex®-M. תיקייה זו מגיעה גם היא ללא שינוי ממסגרת STM32Cube.
- תיקיית BSP המכילה את הקודים עבור הרכיבים IPS1025H-32 ו-CLT03-2Q3 ו-APIs הקשורים ל-X-NUCLEO-ISO1A1.
- היישום מכיל את תיקיית המשתמש שמכילה את הקובץ main.c. file, מקרה השימוש ביישום file, st_iso_app.c ו- board_config.h file, שסופק עבור פלטפורמת NUCLEO-G071RB.
תיקיית BSP
תוכנת X-CUBE-ISO1 משתמשת בשני רכיבים שונים files, אשר נמצאים בתוך BSP/רכיבים:
IPS1025
הקבצים ips1025h_32.h ו- ips1025h_32.c fileמספקים יישום מקיף של דרייבר עבור פיני GPIO המחוברים ל-IPS1025H-32, כולל פונקציונליות מלאה לשליטה בכל הפינים וגילוי תקלות. אלה fileמיישמים פונקציות לאתחול ההתקן, הגדרה וניקוי סטטוס ערוץ, זיהוי מצבי תקלה וניהול פונקציונליות PWM. הדרייבר תומך במספר התקנים וערוצים, עם יכולות מלאות הן עבור ערוץ בודד והן כקבוצה.
CLT03
הקבצים clt03_2q3.h ו- clt03_2q3.c fileמיישמים דרייבר מלא עבור פיני GPIO המחוברים ל-CLT03-2Q3, עם יכולות מלאות לקריאת כל מצבי הפינים. הדרייבר מספק פונקציות לאתחול ההתקן, קריאת סטטוס ערוצים בודדים וקבלת מידע סטטוס עבור כל הערוצים בו זמנית. הוא תומך בתצורות מרובות של התקנים ושומר על מצב פנימי לניהול יעיל של ערוצים.
ממשקי ה-API של תוכנת X-CUBE-ISO1 מחולקים לשני מקורות עיקריים files, אשר נמצאים בתוך תיקיית המשנה ISO1A1:
ISO1A1
ה-ISO1A1 fileכוללות מערך מקיף של פונקציות API המיועדות לתצורת לוח, אינטראקציה עם רכיבים וניהול תקלות. פונקציות אלו מאפשרות פעולות קריאה וכתיבה, זיהוי תקלות ועדכונים, וכוללות כלי עזר שונים לתמיכה בפונקציות ה-API העיקריות. בנוסף, fileמספקים פונקציונליות לבקרת LED, אתחול GPIO, טיפול בפסיקות ותקשורת UART.
ממשק API של PWM
ממשק ה-API של PWM מספק פונקציות לאתחול, הגדרה, הפעלה ועצירה של אותות PWM. הוא מאפשר הגדרת תדר PWM ומחזור העבודה עבור פיני טיימר ספציפיים, ומבטיח שליטה מדויקת על פעולות PWM.
תיקיית היישומים
תיקיית היישומים מכילה את הפרטים העיקריים fileנדרש עבור הקושחה, כולל כותרות וקוד מקור fileלהלן תיאור מפורט של ה- files בתיקייה זו:
- board_config.h: פקודות מאקרו של תצורה עבור הלוח.
- main.c: תוכנית ראשית (קוד של הקוד הקודם)ampאשר מבוסס על הספרייה עבור ISO1A1).
- st_iso_app.c: פונקציות יישום לבדיקה וקביעת תצורה של הלוח.
- stm32g0xx_hal_msp.c: שגרות אתחול HAL.
- stm32g0xx_it.c: מטפל פסיקות.
- syscalls.c: מימושים של קריאות מערכת.
- sysmem.c: ניהול זיכרון מערכת.
- system_stm32g0xx.c: אתחול מערכת.
משאבים נדרשים לתוכנה
התקן Nucleo שולט ומתקשר עם לוח X-NUCLEO-ISO1A1 דרך GPIOs. זה דורש שימוש במספר GPIOs עבור קלט, פלט וזיהוי תקלות של התקני IO תעשייתיים הכלולים בלוח X-NUCLEO-ISO1A1. עיין במדריך למשתמש החומרה UM3483 לפרטים נוספים ותצורות מגשרים.
תצורת לוח (board_config.h)
הקובץ board_config.h file מגדיר את המשאבים המשמשים ואת פקודות המאקרו התצורה כדי להגדיר את התוכנה בהתאם לתצורת הלוח. הוא מטפל בעד שני לוחות (כגון הערמה של שני לוחות).
תצורת ברירת המחדל של התוכנה מיושרת עם לוח ההרחבה X-NUCLEO-ISO1A1 כאשר המגשרים שלו נמצאים במיקומי ברירת המחדל. כדי להגדיר את התוכנה עבור X-NUCLEO-ISO1A1 בהגדרת ברירת המחדל שלו, בטל את ההערה של המאקרו BOARD_ID_DEFAULT בקובץ board_config.h. file.
תצורת ALTERNATE של התוכנה מוגדרת על ידי ביטול הערות המאקרו BOARD_ID_ALTERNATE בקובץ board_config.h file ושינוי מיקומי הג'אמפר על הלוח.
כדי להשתמש בשני לוחות בו זמנית בתצורת stack-up, בטל את ההערות של שני פקודות המאקרו BOARD_ID_DEFAULT ו-BOARD_ID_ALTERNATE וודא שהמגשרים של לוח אחד נמצאים במיקום ברירת המחדל והשני במיקום חלופי. שים לב שלא מומלץ לשמור את שני הלוחות באותה תצורה (שניהם כברירת מחדל או שניהם לסירוגין) ועלול לגרום להתנהגות לא רצויה.
בעת הפעלת לוח אחד בלבד, יש לוודא שהתוכנה מוגדרת לתצורה אחת בלבד ושהמאקרו המתאים לתצורה השנייה מכיל הערה.

קדם-מדרגים
אנו יכולים להגדיר את ערכי ה-pre-scaler ב-board_config.h כדי להשיג טווחי תדרים שונים עבור פלט ה-PWM על ידי הגדרת פקודות המאקרו המתאימות. כדי להשתמש בערך pre-scalar, יש לבטל את ההערות של המאקרו המתאים ולהערות שאר הפקודות. כברירת מחדל, נעשה שימוש ב-DEFAULT_PRESCALAR.
- PRESCALE_1
- PRESCALE_2
- DEFAULT_PRESCALER
ערכי הפרה-סקלר משמשים רק כאשר משתמשים בטיימרים, ואינם נדרשים עבור כל פעולת קלט/פלט בסיסית. ניתן לעיין בערכי המאקרו הפרה-סקלריים וטווחי התדרים המתאימים להם בתיעוד הקוד או בקוד עצמו.
LED פעימות לב
נוכל להגדיר את נורית המשתמש הירוקה, D7, כך שתהבהב בקצב פעימות לב, כבדיקה לחיבור תקין ללוח ה-NUCLEO-G071RB. המאקרו, HEARTBEAT_LED, כאשר אינו מוצג כ הערה, מהבהב את נורית ה-LED הירוקה על X-NUCLEO-ISO1A1 כאשר הוא מחובר ל-NUCLEO. הוא נשאר דולק למשך שנייה אחת וכבוי למשך 1 שניות, כאשר התזמון מטופל על ידי טיימרים. כאשר הוא אינו בשימוש או כאשר פונקציה כלשהי הכוללת נוריות LED נקראת, המאקרו צריך להיות מבוטל מכל הערה.
תצורת GPIO קלט ופלט
כל לוח X-NUCLEO-ISO1A1 מצויד בשני יציאות קלט ושני יציאות פלט. ניתן להרחיב את יכולות הלוח על ידי הצבת שני לוחות X-NUCLEO-ISO1A1 זה על גבי זה, ובכך לאפשר שימוש בארבע יציאות קלט דיגיטליות וארבע יציאות פלט דיגיטליות. התוכנה המסופקת כוללת ממשקי API מקיפים המאפשרים קריאה, הגדרה וניקוי של היציאות. בנוסף, ממשקי ה-API מאפשרים הגדרה, קריאה או ניקוי בו-זמני של כל היציאות. מידע מפורט על פונקציות ה-API זמין בתיעוד הקוד וכן בסעיף ה-API במסמך זה.

כאן הקידומת DI מציינת יציאת קלט דיגיטלית ו-DO מציינת יציאת פלט דיגיטלית. עבור תצורה חלופית, התוכנה משתמשת באותן מוסכמות מתן שמות עם הסיומת _alt מצורפת.
הטבלה הבאה מפרטת את פקודות המאקרו של GPIO המוגדרות בתוכנה התואמות ליציאות IO שונות:
טבלה 2. GPIOs שהוקצו לתצורות תוכנה ברירת מחדל ותצורות תוכנה חלופיות
| שֵׁם | פוּנקצִיָה | תצורת ברירת מחדל | תצורה חלופית |
| קוד זיהוי אישי (PIN) של הקלט | פין קלט 1 | GPIOC, IA0_IN_1_PIN | GPIOD, IA0_IN_1_PIN |
| פין קלט 2 | GPIOD, IA1_IN_2_PIN | GPIOC, IA1_IN_1_PIN | |
| פין פלט | פין פלט 1 | GPIOC, QA0_CNTRL_1_PIN | GPIOD, QA0_CNTRL_1_PIN |
| פין פלט 2 | GPIOC, QA1_CNTRL_2_PIN | GPIOC, QA1_CNTRL_2_PIN | |
| קוד תקלה | פין תקלה 1 | GPIOC, FLT1_QA0_2_OT_PIN | GPIOD, FLT1_QA0_1_OT_PIN |
| פין תקלה 2 | GPIOC, FLT2_QA0_2_OL_PIN | GPIOD, FLT2_QA0_1_OL_PIN | |
| פין תקלה 3 | GPIOC, FLT1_QA1_2_OT_PIN | GPIOC, FLT1_QA1_1_OT_PIN | |
| פין תקלה 4 | GPIOC, FLT2_QA1_1_OL_PIN | GPIOD, FLT2_QA1_2_OL_PIN | |
| מאקרו תצורה | BOARD_ID_DEFAULT | מזהה_לוח_חלופי |
טיימרים ו-PWM
ניתן להשתמש בטיימרים בקושחת X-CUBE-ISO1 כדי לייצר אותות PWM עבור פינים ספציפיים. כברירת מחדל, טיימרים אינם מאותחלים מלבד TIM3. יש לאתחל את הטיימרים המתאימים לפני יצירת אותות ה-PWM ויש לאתחל את יציאות הפלט המתאימות במצב PWM.
עבור פעולות קלט/פלט רגילות של GPIO, אין צורך להגדיר טיימר או יציאת פלט, מכיוון שהם מטופלים כברירת מחדל. עם זאת, אם לאחר שפיני הפלט מוגדרים למצב PWM, עלינו להגדיר אותם מחדש למצב GPIO כדי שישמשו כפיני GPIO.
פֶּתֶק: כאשר פיני הפלט משמשים ליצירת PWM, פלט ה-GPIO מושבת, ולא ניתן ליישם את שתי הפונקציות בו זמנית. כדי להפעיל מחדש את GPIO לאחר שימוש ב-PWM, ניתן לקרוא לפונקציית ה-API ST_ISO_BoardConfigureDefault() או ST_ISO_InitGPIO() כדי להגדיר את כל הפורטים כ-GPIO בו זמנית או ST_ISO_Init_GPIO() עם פורט ופין GPIO מסוימים.
כפי שצוין לעיל, התוכנה משתמשת גם בטיימר אחד כברירת מחדל, TIM3, המשמש לתזמון LED של המשתמש, שעון ותזמון UART. הוא מוגדר לפרק זמן של שנייה אחת כברירת מחדל.
הטבלה הבאה מפרטת את הטיימרים הזמינים עבור כל פין בקוד שלנו:
טבלה 3. טיימרים זמינים עבור כל פין
| שם סיכה | ייצוג תוכנה | שָׁעוֹן עֶצֶר | ערוץ טיימר | פונקציה חלופית |
| QA0_CNTRL_1_קוד סודי | QA_0 | TIM2 | TIM_CHANNEL_4 | GPIO_AF2_TIM2 |
| QA1_CNTRL_2_קוד סודי | QA_1 | TIM1 | TIM_CHANNEL_3 | GPIO_AF2_TIM1 |
| QA0_CNTRL_2_קוד סודי | QA_0_ALT | TIM1 | TIM_CHANNEL_4 | GPIO_AF2_TIM1 |
| QA1_CNTRL_1_קוד סודי | QA_1_ALT | TIM17 | TIM_CHANNEL_1 | GPIO_AF2_TIM17 |
כלי עזר נוספים של הקושחה
הקושחה כוללת תוכנות נוספות לשיפור הפונקציונליות של לוח ההערכה X-NUCLEO-ISO1A1. חלקן מתוארות להלן.
UART
תכונת התקשורת UART מאפשרת ניטור וניפוי שגיאות בזמן אמת של מצב הלוח באמצעות כלי עבודה למחשב כגון TeraTerm, PuTTY ויישומים דומים אחרים. התוכנה מאפשרת העברת נתונים של UART דרך ה-UART הקיים בלוח NUCLEO-G071RB. הפונקציה `ST_ISO_UART` שולחת מידע מפורט על מצב הלוח דרך UART, כולל זמן פעולה תקין של המערכת, תצורת קושחה ומצב תקלות. ניתן להשתמש בנתונים אלה. viewבאמצעות כל יישום יציאה טורית, כגון TeraTerm. הפונקציה `ST_ISO_APP_DIDOandUART` משלבת פעולות קלט/פלט דיגיטליות עם תקשורת UART, ומשדרת את הסטטוס של כל ערוצי הקלט והפלט במרווחי זמן מוגדרים. להלן הגדרות התצורה וכפיampכיצד הנתונים מופיעים ב-TeraTerm. שם הפורט עשוי להשתנות בהתאם למערכת ולפורט הטורי שבשימוש.


תצורת מצב פיני IO
כלי התצורה של מצב פיני ה-IO מאפשר למשתמשים להגדיר את יציאות הקלט והפלט של הלוח באמצעות הפונקציה ST_ISO_BoardConfigure(). פונקציה זו תומכת בהגדרת שתי יציאות פלט (QA0, QA1) ושתי יציאות קלט (IA0, IA1) למצב קלט/פלט, מצב פלט PWM או מצב קלט פסיקה. על ידי התאמת הפרמטרים וקריאה לפונקציה זו, משתמשים יכולים להתאים אישית בקלות את תצורת ה-IO של הלוח כדי לענות על צרכים ספציפיים.
במצב קלט/פלט, כלי השירות מאתחל את פיני ה-GPIO לפעולות דיגיטליות כלליות. במצב פלט PWM, הוא מגדיר את הטיימרים לבקרת אות PWM מדויקת. במצב קלט פסיקה, כלי השירות מגדיר את הפינים לטפל בפסיקות, מה שמאפשר תכנות מונחה אירועים ותגובתי.
טיפול בפסיקות
לטיפול באותות FAULT, התוכנה מאפשרת את קווי הפסיקה הנלווים, מה שמאפשר תכנות מונחה אירועים מגיב. ניתן לשייך מטפל מותאם אישית לפסיקות אלו דרך
פונקציית HAL_GPIO_EXTI_Rising_Callback מוגדרת ב-API. התוכנה כוללת תכונות לאתחול פיני GPIO במצב פסיקה באמצעות פונקציית ST_ISO_BoardConfigure וקביעת תצורה של פעולות ספציפיות במטפלי IRQ של EXTI. זה מאפשר למשתמשים להתאים אישית את אופן תגובת הלוח לאירועים חיצוניים, מה שמבטיח שהוא יכול לנהל ביעילות מצבי תקלה וטריגרים שונים.
ממשקי API
ממשק ה-API של תוכנת X-CUBE-ISO1 מספק מערך מקיף של פונקציות לשליטה ובקרה על לוח X-NUCLEO-ISO1A1, כולל יצירת אותות PWM ופעולות GPIO. ממשק ה-API נועד להיות קל לשימוש ולשילוב ביישומים שונים, ומספק גמישות ושליטה על פונקציונליות הלוח.
ממשק ה-API של תוכנת X-CUBE-ISO1 מוגדר בתיקייה BSP/ISO1A1. הפונקציות שלו מוגדרות מראש על ידי ST_ISO. ה-API גלוי ליישומים דרך הפקודות iso1a1.c ו-pwm_api.c. files הוא שילוב של קבועים, מבני נתונים ופונקציות.
Sampיישומי קושחה של le משתמשים בממשקי API אלה כדי להראות כמה מהשימושים האפשריים של פונקציות אלה.
חבילת התוכנה X-CUBE-ISO1 מספקת שתי קבוצות של ממשקי API:
- ממשק API של ISO1A1
- ממשק API של PWM
ממשק API של ISO1A1
ממשק ה-API של ISO1A1 מוגדר בקבצים 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 שצוין עם מזהה המודול הנתון.
- ST_ISO_InitInterrupt: מאתחל את פין ה-GPIO שצוין כפסיקה עם מזהה המודול הנתון.
- 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: בודק את זיהוי התקלות של הלוחות במצב polling.
- ST_ISO_DisableOutputChannel: מבטל את הפלט עבור ערוץ זה.
- ST_ISO_UpdateBoardStatusInfo: מעדכן את מידע סטטוס הלוח.
- ST_ISO_UpdateFaultStatus: מעדכן את סטטוס התקלה עבור ערוץ ספציפי.
- ST_ISO_BlinkLed: מהבהב את נורית ה-LED שצוינה עם השהייה וספירת חזרות נתונות.
- ST_ISO_UART: שולח את מידע סטטוס הלוח דרך UART.
- ST_ISO_SwitchInit: מאתחל את רכיבי המתג.
- ST_ISO_SwitchDeInit: ביטול אתחול מופע ה-switch.
- ST_ISO_DigitalInputInit: מאתחל את רכיבי הקלט הדיגיטלי.
- ST_ISO_DigitalInputDeInit: ביטול אתחול מופע הקלט הדיגיטלי.
ממשק API של PWM
ממשק ה-API של PWM מוגדר בקבצים 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 על הפין הספציפי.
כדי להפעיל אות PWM בערוץ מתאים, ראשית קראו לפונקציה ST_ISO_Init_PWM_Signal, לאחר מכן הגדירו את התדר ומחזור העבודה הרצויים על ידי קריאה לפונקציה ST_ISO_Set_PWM_Frequency ו-
פונקציות ST_ISO_Set_PWM_Duty_Cycle בהתאמה ולאחר מכן ניתן להפעיל את אות ה-PWM על ידי קריאה לפונקציה ST_ISO_Start_PWM_Signal ולעצור על ידי קריאה לפונקציה ST_ISO_Stop_PWM_Signal.
יש לקרוא לפונקציה עם שם הפין המתאים והטיימרים הזמינים, שפרטיהם סופקו בטבלה 3. ניתן להגדיר ערוצי פלט שונים עם תדרים ומחזורי עבודה שונים; שינוי תדר או מחזור עבודה אינו משפיע על השני, הוא נשאר זהה.
מידע טכני מפורט על ממשקי ה-API הזמינים למשתמש ניתן למצוא ב-HTML הידור file ממוקמת בתוך תיקיית "מסמכים" של חבילת התוכנה שבה כל הפונקציות והפרמטרים מתוארים במלואם.
תיאור היישום
יישום ההדגמה מיייש מספר מקרי שימוש פשוטים. הפונקציות st_iso_app ו- board_config fileל- s תפקיד מכריע בהגדרה ובשימוש בלוח ובפונקציות היישום שלו. לפני השימוש בפונקציות אלה, יש לוודא שהלוח ותצורת התוכנה מסונכרנים זה עם זה.
פונקציות יישום (st_iso_app.h ו- st_iso_app.c)
פונקציות האפליקציה מקודמות על ידי ST_ISO_APP; אלו הן הפונקציות ברמה העליונה הנראות למשתמש הקורא לפונקציות ה-API לצורך יישומן. ניתן לקרוא לפונקציות האפליקציה בקובץ main.c. file לצורך תפקודם.
- בחירת מקרה שימוש: המשתמש יכול לבטל את ההערה של מאקרו מקרה השימוש הרצוי בקובץ st_iso_app.c fileהפונקציה ST_ISO_APP_SelectUseCaseMacro(), הנקראת ב-main.c, מאתחלת את מקרה השימוש, והפונקציה ST_ISO_APP_SelectedFunction() מיישמת אותה ב-main.c. גישה זו מאפשרת הגדרה קלה של מצב הפעולה על ידי שינוי פשוט של הגדרות המאקרו, תוך הבטחה שהפונקציונליות המתאימה מבוצעת בהתבסס על מקרה השימוש שנבחר. כברירת מחדל, מקרה השימוש DIDO נבחר, והמשתמש אינו צריך לבצע שינויים בקוד כדי ליישם אותו.
- שיקוף קלט דיגיטלי לפלט דיגיטלי (ST_ISO_APP_UsecaseDIDO): פונקציה זו קוראת את הסטטוס של כל ערוצי הקלט וכותבת את אותו הסטטוס לכל ערוצי הפלט. היא שימושית לשיקוף כניסות דיגיטליות ליציאות דיגיטליות.
- שיקוף קלט דיגיטלי לפלט דיגיטלי עם UART (ST_ISO_APP_DIDOandUART): פונקציה זו משקפת את הקלט הדיגיטלי לפלטים דיגיטליים, בדומה לפונקציית ST_ISO_APP_UsecaseDIDO. בנוסף, היא משדרת את סטטוס הלוח דרך ממשק ה-UART בהתקן Nucleo, מה שמאפשר שינוי סטטוס. viewמחובר ליציאה טורית באמצעות יישומים כמו Tera Term.
- פונקציית מקרה בדיקה (ST_ISO_APP_TestCase): פונקציה זו מבצעת סדרה של בדיקות ופעולות המבוססות על תצורת הלוח. היא בודקת את מצב התקלה, קוראת את המצב של שני ערוצי קלט דיגיטליים ומבצעת פעולות המבוססות על הערכים שלהם. פונקציה זו מסייעת בהערכת ביצועי הלוח והפונקציונליות במהירות ובקבלת משוב חזותי באמצעות דפוסי LED שונים. יש לוודא שהמאקרו HEARTBEAT_LED נמצא בקובץ board_config.h. file מתואר כדי לצפות בדפוסי LED תקינים.
- יצירת PWM (ST_ISO_APP_PWM _OFFSET): פונקציה זו מפעילה את אות ה-PWM בשני ערוצי הפלט בתדר של 1 הרץ ומחזור עבודה של 50%. היא מאתחלת את אות ה-PWM, מגדירה את התדר ומחזור העבודה, ומפעילה את אות ה-PWM עבור מזהה הלוח שצוין. אות ה-PWM נוצר עם היסט בין שני הערוצים ולכן הם אינם בפאזה.
- בדיקת גילוי תקלות (ST_ISO_APP_FaultTest): פונקציה זו מעריכה את גילוי התקלות על ידי הפעלה של פיני אבחון מובנים של מודול הפלט החכם IPS1025, במצב פיקוח או במצב פסיקה. היא מגדירה את מצב גילוי התקלות, מאתחלת את גילוי התקלות ומעדכנת את מבנה סטטוס התקלות בהתבסס על המצב שנבחר. פונקציה זו חיונית להבטחת אמינות ובטיחות הלוח על ידי גילוי וטיפול יעיל בתקלות. כאשר הלוח נמצא במצב פיקוח, סטטוס התקלה מתעדכן בכל שנייה בעזרת טיימר ומשתקף במבנה defaultBoardFaultStatus או alternateBoardFaultStatus. כאשר הלוח נמצא במצב פסיקה, סטטוס התקלה מתעדכן רק כאשר התקלה מתרחשת, והיא גורמת לתוכנה לנקות את יציאת הפלט המתאימה.
- בדיקת וריאציה של PWM (ST_ISO_APP_PwmVariationTest): פונקציה זו נועדה לבדוק את הווריאציה של אותות PWM (אפנון רוחב פולס) בערוצי פלט שונים בהתבסס על תצורת הכרטיס. היא מאתחלת את אותות ה-PWM עבור תצורות הכרטיס המוגדרות כברירת מחדל וגם עבור תצורות כרטיס חלופיות, תוך הגדרת התדר שלהם ל-100 הרץ ואת מחזור העבודה ההתחלתי ל-0%. לאחר מכן, הפונקציה משנה את מחזור העבודה מ-0% ל-100% במרווחים של 5%, וחזרה מ-100% ל-0% במרווחים של 5%, עם עיכוב של 2 שניות בין כל שלב. וריאציה מבוקרת זו מאפשרת תצפית והערכה של התנהגות אות ה-PWM בערוצים QA_0 ו-QA_1 עבור הכרטיס המוגדר כברירת מחדל, ו-QA_0_ALT ו-QA_1_ALT עבור הכרטיס החלופי.
על ידי ביצוע תצורות אלה וניצול פונקציות היישום המסופקות, תוכלו להגדיר ולהשתמש ביעילות בלוח X-NUCLEO-ISO1A1 עבור מקרי שימוש שונים להדגמה.
מדריך התקנת מערכת
תיאור חומרה
פלטפורמת STM32 Nucleo
לוחות פיתוח STM32 Nucleo מספקים דרך נוחה וגמישה למשתמשים לבדוק פתרונות ולבנות אבות טיפוס עם כל קו מיקרו-בקר STM32.
תמיכת הקישוריות של Arduino® ומחברי ST morpho מאפשרים להרחיב בקלות את הפונקציונליות של פלטפורמת הפיתוח הפתוחה STM32 Nucleo עם מגוון רחב של לוחות הרחבה ייעודיים לבחירה.
לוח STM32 Nucleo אינו מצריך בדיקות נפרדות מכיוון שהוא משלב את מאתר הבאגים/מתכנת ST-LINK/V2-1.
לוח STM32 Nucleo מגיע עם ספריית תוכנת STM32 המקיפה HAL יחד עם תוכנות שונות ארוזותamples.

מידע בנוגע ללוח STM32 Nucleo זמין בכתובת www.st.com/stm32nucleo
לוח הרחבה X-NUCLEO-ISO1A1
ה-X-NUCLEO-ISO1A1 הוא לוח הערכה עם קלט/פלט תעשייתי מבודד שנועד להרחיב את לוח STM32 Nucleo ולספק פונקציונליות micro-PLC. שניים מלוחות ה-X-NUCLEO-ISO1A1 ניתנים לערום יחד על גבי לוח STM32 Nucleo עם מבחר מגשרים מתאים על לוח ההרחבה כדי למנוע התנגשות בממשקי GPIO. המבודדים הדיגיטליים המאושרים UL1577 STISO620 ו- STISO621 מספקים בידוד בין רכיבי צד לוגיקה ורכיבי צד התהליך. שני כניסות צד גבוה מוגבלות זרם מצד התהליך ממומשות דרך CLT03-2Q3. ה-CLT03-2Q3 מספק הגנה, בידוד ואינדיקציה של מצב ללא אנרגיה לתנאים תעשייתיים, שנועד לעמוד בתקנים כגון IEC61000-4-2, IEC61000-4-4 ו- IEC61000-4-5. אחד מכל אחד ממתגי הצד הגבוה IPS1025H-32/HQ-32 מספק יציאה מוגנת עד 5.6 אמפר עם תכונות אבחון והנעה חכמות. אלה יכולים להניע עומסים קיבוליים, התנגדותיים או אינדוקטיביים. ה-X-NUCLEO-ISO1A1 מאפשר הערכה מהירה של המעגלים המשולבים המובנים באמצעות חבילת התוכנה X-CUBE-ISO1.

הגדרת חומרה
יש צורך ברכיבי החומרה הבאים:
- פלטפורמת פיתוח STM32 Nucleo אחת (קוד הזמנה מומלץ: NUCLEO-GO71RB)
- לוח הרחבה דיגיטלי תעשייתי אחד (קוד הזמנה: X-NUCLEO-ISO1A1)
- כבל USB מסוג A ל-Micro USB לחיבור ה-STM32 Nucleo למחשב
- ספק כוח חיצוני (24 וולט) והחוטים הנלווים לאספקת חשמל ללוח ההרחבה X-NUCLEO-ISO1A1.
הגדרת תוכנה
רכיבי התוכנה הבאים נדרשים כדי להגדיר סביבת פיתוח מתאימה ליצירת יישומים עבור ה-STM32 Nucleo המצויד בלוח ההרחבה X-NUCLEO-ISO1A1:
- X-CUBE-ISO1: הרחבה עבור STM32Cube המיועדת לפיתוח יישומים הדורשת שימוש בלוח X-NUCLEO-ISO1A1. הקושחה של X-CUBE-ISO1 והתיעוד הקשור זמינים ב www.st.com
- שרשרת כלי פיתוח ומהדר: תוכנת ההרחבה STM32Cube תומכת בשלוש הסביבות הבאות:
- שולחן עבודה משובץ IAR עבור שרשרת כלים של ARM® (IAR-EWARM)
- רִיאָלView ערכת פיתוח מיקרו-בקרים (MDK-ARM-STM32) - שרשרת כלים
- STM32CubeIDE.
הגדרת לוח
יש להגדיר את הלוח עם הגדרות הג'מפר המתאימות כפי שצוין במדריך למשתמש של החומרה (UM3483). הקפדה על הנחיות אלה חיונית כדי להבטיח תפקוד תקין ולמנוע בעיות אפשריות.
מדריך התקנת מערכת
סעיף זה מתאר כיצד להגדיר רכיבי חומרה שונים לפני פיתוח והפעלה של יישום על לוח STM32 Nucleo, NUCLEO-G071RB באמצעות לוח ההרחבה X-NUCLEO-ISO1A1.


התקנה עבור חבילת ההרחבה X-CUBE-ISO1
יש להגדיר את ה-X-NUCLEO-ISO1A1 עם מיקומי מגשרים ספציפיים בהתאם לתצורה בה אתם מפעילים את הלוח. פרטים נוספים ניתן למצוא במדריך החומרה.
- שלב 1. חבר את לוח ההרחבה X-NUCLEO-ISO1A1 לראש ה-STM32 Nucleo דרך המורפו-מחברים.
אם אתם משתמשים בשני לוחות זה על גבי זה, ערמו אותם כפי שמוצג באיור 11. - שלב 2. חבר את לוח STM32 Nucleo למחשב באמצעות כבל USB דרך מחבר USB CN1 כדי להפעיל את הלוח.
- שלב 3. הפעל את לוח/י ההרחבה X-NUCLEO-ISO1A1 על ידי חיבור J1 לספק המתח 24V DC. אם משתמשים בלוחות מוערמים, ודא ששני הלוחות מחוברים לחשמל.
- שלב 4. פתחו את שרשרת הכלים המועדפת עליכם (MDK-ARM מ-Keil, EWARM מ-IAR, או STM32CubeIDE).
- שלב 5. פתח את פרויקט התוכנה ובצע את השינויים הדרושים בקובץ board_config.h file בהתאם לתצורת הלוח/ים שבשימוש.
- שלב 6. הגדר את מאקרו מקרה השימוש המתאים ב- st_iso_app.c file או קרא את מקרה השימוש הנדרש באמצעות הפונקציה ST_ISO_APP_SelectUseCase ב- main.c file יחד עם כל פונקציה רצויה אחרת.
- שלב 7. בנה את הפרויקט כדי לאסוף את הכל fileוטען את הקוד שעבר קומפילציה לזיכרון של לוח STM32 Nucleo.
- שלב 8. הרץ את הקוד על לוח STM32 Nucleo וודא את ההתנהגות הצפויה.
היסטוריית גרסאות
טבלה 4. היסטוריית גרסאות של מסמך
| תַאֲרִיך | עדכון | שינויים |
| 14-מאי-2025 | 1 | שחרור ראשוני. |
הודעה חשובה - קרא בעיון
STMicroelectronics NV וחברות הבנות שלה ("ST") שומרות לעצמן את הזכות לבצע שינויים, תיקונים, שיפורים, שינויים ושיפורים במוצרי ST ו/או במסמך זה בכל עת ללא הודעה מוקדמת. על הרוכשים לקבל את המידע הרלוונטי העדכני ביותר על מוצרי ST לפני ביצוע הזמנות. מוצרי ST נמכרים בהתאם לתנאי המכירה של ST הקיימים בזמן אישור ההזמנה.
הרוכשים הם האחראים הבלעדיים לבחירה, לבחירה ולשימוש במוצרי ST ו-ST אינה נושאת באחריות לסיוע ביישום או לעיצוב מוצרי הרוכשים.
שום רישיון, מפורש או משתמע, לכל זכות קניין רוחני לא ניתן על ידי ST בזאת.
מכירה חוזרת של מוצרי ST עם הוראות שונות מהמידע המפורט כאן תבטל כל אחריות שניתנה על ידי ST עבור מוצר זה.
ST והלוגו של ST הם סימנים מסחריים של ST. למידע נוסף על סימני מסחר ST, עיין בכתובת www.st.com/trademarks. כל שאר שמות המוצרים או השירותים הם רכושם של בעליהם בהתאמה.
המידע במסמך זה מחליף ומחליף מידע שסופק בעבר בכל גרסאות קודמות של מסמך זה.
© 2025 STMicroelectronics - כל הזכויות שמורות
מסמכים / משאבים
![]() |
הרחבת תוכנה STMicroelectronics UM3469 X-CUBE-ISO1 [pdfמדריך למשתמש X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 הרחבת תוכנה X-CUBE-ISO1, UM3469, הרחבת תוכנה X-CUBE-ISO1, הרחבת תוכנה |

