Phần mềm mở rộng STMicroelectronics UM3469 X-CUBE-ISO1

Giới thiệu
Gói phần mềm mở rộng X-CUBE-ISO1 cho STM32Cube chạy trên STM32 và bao gồm phần mềm cơ sở cho X-NUCLEO-ISO1A1. Phần mềm này cung cấp giải pháp dễ sử dụng để phát triển thiết bị PLC cơ bản do X-NUCLEO cung cấp. Phần mở rộng này được xây dựng trên công nghệ phần mềm STM32Cube để dễ dàng chuyển đổi giữa các bộ vi điều khiển STM32 khác nhau.
Phần mềm đi kèm với một bản triển khai chạy trên bo mạch mở rộng X-NUCLEO-ISO1A1 được kết nối với bo mạch phát triển NUCLEO-G071RB (hoặc NUCLEO-G0B1RE hoặc NUCLEO-G070RB). Từ nay trở đi, để đơn giản hóa, tài liệu sẽ chỉ đề cập đến NUCLEO-G071RB.
Bo mạch X-NUCLEO-ISO1A1 được thiết kế để hỗ trợ xếp chồng hai bo mạch với cài đặt jumper thích hợp nhằm mở rộng khả năng đầu vào và đầu ra.
Từ viết tắt và chữ viết tắt
Bảng 1. Danh sách các từ viết tắt
| Từ viết tắt | Sự miêu tả |
| Bộ điều khiển PLC | Bộ điều khiển logic có thể lập trình |
| Giao diện lập trình ứng dụng (API) | Giao diện lập trình ứng dụng |
| PWM | Điều chế độ rộng xung |
| GPIO | Đầu vào / đầu ra có mục đích chung. |
| HAL | Lớp trừu tượng phần cứng |
| PC | Máy tính cá nhân |
| FW | Phần mềm |
STM32Cube là gì?
STM32Cube™ đại diện cho sáng kiến của STMicroelectronics nhằm giúp các nhà phát triển dễ dàng hơn bằng cách giảm thiểu công sức, thời gian và chi phí phát triển. STM32Cube bao gồm danh mục sản phẩm STM32.
Phiên bản STM32Cube 1.x bao gồm:
- STM32CubeMX, một công cụ cấu hình phần mềm đồ họa cho phép tạo mã khởi tạo C bằng trình hướng dẫn đồ họa.
- Nền tảng phần mềm nhúng toàn diện dành riêng cho từng dòng sản phẩm (chẳng hạn như STM32CubeG0 dành cho dòng sản phẩm STM32G0), bao gồm:
- phần mềm lớp trừu tượng nhúng STM32Cube HAL, đảm bảo khả năng di động tối đa trên toàn bộ danh mục STM32
- một tập hợp nhất quán các thành phần phần mềm trung gian như RTOS, USB, TCP/IP và đồ họa
- tất cả các tiện ích phần mềm nhúng với một bộ ex đầy đủampđồng nghiệp.
Kiến trúc STM32Cube
Giải pháp phần mềm STM32Cube được xây dựng xung quanh ba cấp độ độc lập có thể dễ dàng tương tác với nhau, như mô tả trong sơ đồ bên dưới.

Phần mềm mở rộng X-CUBE-ISO1 cho STM32Cube
Quaview
Phần mềm cơ sở cho X-NUCLEO-ISO1A1, bo mạch mở rộng đầu vào/đầu ra cách ly công nghiệp, được phát triển dựa trên môi trường và thư viện STM32, tận dụng MCU hiệu suất cao của bo mạch STM32 Nucleo để quản lý đầu vào, đầu ra kỹ thuật số với chức năng chẩn đoán tích hợp cùng với giới hạn dòng điện động và tạo tín hiệu PWM. Phần mềm này cung cấp cấu hình và điều khiển bo mạch toàn diện, bao gồm các khung cho các điều kiện mặc định và thay thế, macro để thiết lập giá trị pre-scaler, và định nghĩa cho các cổng và chân GPIO.
Nó hỗ trợ nhiều sampCác trường hợp sử dụng ứng dụng như phản chiếu đầu vào ra kỹ thuật số, giao tiếp UART thông qua bo mạch Nucleo, phát hiện lỗi, trường hợp thử nghiệm và tạo PWM có thể được sử dụng trực tiếp và có thể dễ dàng tùy chỉnh và mở rộng.
API cung cấp một bộ chức năng mạnh mẽ để điều khiển đầu vào/đầu ra kỹ thuật số, phát hiện lỗi và cập nhật trạng thái bo mạch, với các thiết lập cấu hình để chạy hai bo mạch cùng lúc ở các chế độ khác nhau. Các chức năng API cụ thể có sẵn để khởi tạo, bắt đầu, dừng và cấu hình tín hiệu PWM cho các kênh đầu ra kỹ thuật số.
Gói hỗ trợ bo mạch bao gồm các chức năng kiểm soát và giám sát các chân GPIO được giao tiếp với IPS1025H-32 và đọc trạng thái của các chân GPIO được giao tiếp với CLT03-2Q3 thông qua bộ cách ly kỹ thuật số.
Cấu hình và khởi tạo dựa trên STM32CubeMX, với quá trình phát triển và gỡ lỗi được hỗ trợ bởi các công cụ STM32CubeIDE, IAR Systems và Keil®.
Ngành kiến trúc
Phần mềm cơ sở cho X-NUCLEO-ISO1A1 có thể được chia thành nhiều khối chức năng riêng biệt, mỗi khối chịu trách nhiệm cho các khía cạnh khác nhau của hoạt động hệ thống:

- Cấu hình và điều khiển bo mạch:
- Tệp board_config.h file chứa các macro để cấu hình bo mạch chạy ở điều kiện mặc định hoặc thay thế, hoặc cả hai. Nó cũng bao gồm các định nghĩa cho các giá trị pre-scaler, cổng và chân GPIO.
- Khối này đảm bảo rằng bo mạch được thiết lập chính xác cho các điều kiện hoạt động mong muốn và tất cả các cấu hình phần cứng cần thiết đều đã sẵn sàng.
- Các trường hợp sử dụng ứng dụng:
- st_iso_app.h và st_iso_app.c filechứa các trường hợp sử dụng ứng dụng được thiết kế để kiểm tra nhiều chức năng khác nhau của bo mạch.
- Các trường hợp sử dụng này bao gồm phản chiếu đầu vào và đầu ra kỹ thuật số, thử nghiệm phát hiện lỗi và tạo tín hiệu PWM.
- ExampCác cấu hình được cung cấp để chạy hai bo mạch cùng lúc ở các chế độ khác nhau, chứng minh tính linh hoạt và đa năng của phần sụn.
- Chức năng API:
- iso1a1.h và iso1a1.c filecung cấp một bộ API toàn diện để hỗ trợ nhiều chức năng khác nhau.
- Các API này bao gồm các chức năng điều khiển đầu vào/đầu ra kỹ thuật số, phát hiện lỗi và cập nhật trạng thái bo mạch.
- Các API được thiết kế đơn giản và trực quan, giúp người dùng dễ dàng tương tác với bảng và thực hiện các thao tác cần thiết.
- Điều khiển tín hiệu PWM:
- pwm_api.h và pwm_api.c filechứa các hàm API cụ thể liên quan đến việc tạo tín hiệu PWM.
- Các chức năng này cho phép khởi tạo, cấu hình, bắt đầu và dừng tín hiệu PWM cho các kênh đầu ra kỹ thuật số.
- Chức năng PWM không phải là lựa chọn mặc định. Cấu hình bo mạch đã được điều chỉnh để kích hoạt chức năng này. Tham khảo Phần 3.5: API để biết thêm chi tiết.
- Gói hỗ trợ hội đồng quản trị:
- Gói hỗ trợ hội đồng quản trị bao gồm files để điều khiển và giám sát các chân GPIO được giao tiếp với IPS1025H-32 và đọc trạng thái của các chân GPIO được giao tiếp với CLT03-2Q3.
- ips1025h_32.h và ips1025h_32.c files cung cấp các chức năng để thiết lập, xóa và phát hiện lỗi trên các chân GPIO được giao tiếp với IPS1025H-32.
- clt03_2q3.h và clt03_2q3.c files cung cấp các chức năng để đọc trạng thái của các chân GPIO được giao tiếp với CLT03-2Q3.
Phần mềm trình diễn triển khai một số trường hợp sử dụng đơn giản để minh họa khả năng của hệ thống. Các trường hợp sử dụng này và API người dùng được thực hiện một cách phối hợp để đảm bảo hoạt động trơn tru và kết quả chính xác. Kiến trúc được thiết kế để dễ dàng mở rộng, cho phép người dùng thêm các chức năng và trường hợp sử dụng mới khi cần thiết. Cấu hình mặc định được cung cấp để chạy một bo mạch với các IO công nghiệp kỹ thuật số. Cài đặt jumper cũng cần được đặt ở chế độ mặc định như mô tả trong Bảng 2. Phản chiếu đầu vào kỹ thuật số đầu ra kỹ thuật số (DIDO) là trường hợp sử dụng ứng dụng phần mềm mặc định.
Cấu trúc thư mục

Các thư mục sau được bao gồm trong gói phần mềm:
- Tài liệu chứa một HTML được biên dịch file được tạo từ mã nguồn, nêu chi tiết các thành phần phần mềm và API.
- Trình điều khiển chứa:
- một thư mục STM32Cube HAL, nằm trong các thư mục con STM32G0xx_HAL_Driver. Những filekhông được mô tả ở đây vì chúng không dành riêng cho phần mềm X-CUBE-ISO1 mà đến trực tiếp từ nền tảng STM32Cube.
- một thư mục CMSIS chứa tiêu chuẩn giao diện phần mềm vi điều khiển Cortex® files từ Arm. Những cái này files là lớp trừu tượng hóa phần cứng độc lập với nhà cung cấp dành cho dòng bộ xử lý Cortex®-M. Thư mục này cũng không thay đổi so với nền tảng STM32Cube.
- thư mục BSP chứa mã cho các thành phần IPS1025H-32 và CLT03-2Q3 và các API liên quan đến X-NUCLEO-ISO1A1.
- Ứng dụng chứa thư mục người dùng chứa main.c file, trường hợp sử dụng ứng dụng file, st_iso_app.c và board_config.h file, được cung cấp cho nền tảng NUCLEO-G071RB.
Thư mục BSP
Phần mềm X-CUBE-ISO1 sử dụng hai thành phần khác nhau files, nằm bên trong BSP/Components:
IPS1025
ips1025h_32.h và ips1025h_32.c files cung cấp một triển khai trình điều khiển toàn diện cho các chân GPIO được giao tiếp với IPS1025H-32, bao gồm chức năng hoàn chỉnh để điều khiển tất cả các chân và phát hiện lỗi. Những files triển khai các chức năng khởi tạo thiết bị, thiết lập và xóa trạng thái kênh, phát hiện lỗi và quản lý chức năng PWM. Trình điều khiển hỗ trợ nhiều thiết bị và kênh, với đầy đủ chức năng cho cả kênh riêng lẻ hoặc nhóm.
CLT03
clt03_2q3.h và clt03_2q3.c files triển khai trình điều khiển đầy đủ tính năng cho các chân GPIO được giao tiếp với CLT03-2Q3, với khả năng đọc toàn bộ trạng thái của tất cả các chân. Trình điều khiển cung cấp các chức năng khởi tạo thiết bị, đọc trạng thái từng kênh và thu thập thông tin trạng thái cho tất cả các kênh cùng lúc. Nó hỗ trợ nhiều cấu hình thiết bị và duy trì trạng thái nội bộ để quản lý kênh hiệu quả.
Các API phần mềm X-CUBE-ISO1 được chia thành hai nguồn chính files, nằm bên trong thư mục con ISO1A1:
ISO1A1
Tiêu chuẩn ISO1A1 files bao gồm một bộ hàm API toàn diện được thiết kế cho việc cấu hình bo mạch, tương tác linh kiện và quản lý lỗi. Các hàm này hỗ trợ các thao tác đọc và ghi, phát hiện và cập nhật lỗi, đồng thời bao gồm nhiều tiện ích hỗ trợ khác nhau để hỗ trợ các hàm API chính. Ngoài ra, filecung cấp chức năng điều khiển đèn LED, khởi tạo GPIO, xử lý ngắt và giao tiếp UART.
API PWM
API PWM cung cấp các chức năng khởi tạo, cấu hình, bắt đầu và dừng tín hiệu PWM. API này cho phép thiết lập tần số PWM và chu kỳ làm việc cho các chân hẹn giờ được chỉ định, đảm bảo kiểm soát chính xác các hoạt động PWM.
Thư mục ứng dụng
Thư mục Ứng dụng chứa các mục chính files được yêu cầu cho phần sụn, bao gồm tiêu đề và nguồn files. Dưới đây là mô tả chi tiết về files trong thư mục này:
- board_config.h: Macro cấu hình cho bo mạch.
- main.c: Chương trình chính (mã của example dựa trên thư viện dành cho ISO1A1).
- st_iso_app.c: Các hàm ứng dụng để kiểm tra và cấu hình bo mạch.
- stm32g0xx_hal_msp.c: Các chương trình khởi tạo HAL.
- stm32g0xx_it.c: Trình xử lý ngắt.
- syscalls.c: Triển khai lệnh gọi hệ thống.
- sysmem.c: Quản lý bộ nhớ hệ thống.
- system_stm32g0xx.c: Khởi tạo hệ thống.
Tài nguyên yêu cầu phần mềm
Thiết bị Nucleo điều khiển và giao tiếp với bo mạch X-NUCLEO-ISO1A1 thông qua GPIO. Điều này đòi hỏi phải sử dụng nhiều GPIO để nhập, xuất và phát hiện lỗi các thiết bị IO công nghiệp có trong bo mạch X-NUCLEO-ISO1A1. Tham khảo hướng dẫn sử dụng phần cứng UM3483 để biết thêm chi tiết và cấu hình jumper.
Cấu hình bo mạch (board_config.h)
Tệp board_config.h file Xác định các tài nguyên được sử dụng và các macro cấu hình để cấu hình phần mềm theo cấu hình bo mạch. Nó xử lý tối đa hai bo mạch (chẳng hạn như xếp chồng hai bo mạch).
Cấu hình MẶC ĐỊNH của phần mềm được căn chỉnh với bo mạch mở rộng X-NUCLEO-ISO1A1 với các jumper ở vị trí mặc định. Để cấu hình phần mềm cho X-NUCLEO-ISO1A1 ở cài đặt mặc định, hãy bỏ ghi chú macro BOARD_ID_DEFAULT trong tập tin board_config.h. file.
Cấu hình ALTERNATE của phần mềm được thiết lập bằng cách bỏ chú thích macro BOARD_ID_ALTERNATE trong board_config.h file và thay đổi vị trí nhảy trên bảng.
Để sử dụng đồng thời hai bo mạch trong cấu hình xếp chồng, hãy bỏ chú thích cho cả hai macro BOARD_ID_DEFAULT và BOARD_ID_ALTERNATE và đảm bảo các jumper của một bo mạch ở vị trí mặc định và bo mạch còn lại ở vị trí thay thế. Lưu ý rằng không nên đặt cả hai bo mạch ở cùng một cấu hình (cả hai đều ở vị trí mặc định hoặc cả hai đều ở vị trí thay thế) và có thể dẫn đến những hành vi không mong muốn.
Khi chỉ chạy một bo mạch, hãy đảm bảo rằng phần mềm được cấu hình cho chỉ một cấu hình và macro tương ứng với cấu hình khác được chú thích.

Bộ cân trước
Chúng ta có thể cấu hình các giá trị pre-scaler trong board_config.h để đạt được các dải tần số khác nhau cho đầu ra PWM bằng cách thiết lập các macro phù hợp. Để sử dụng một giá trị pre-scalar, hãy bỏ ghi chú macro tương ứng và ghi chú các macro khác. Theo mặc định, DEFAULT_PRESCALAR được sử dụng.
- PRESCALER_1
- PRESCALER_2
- DEFAULT_PRESCALER
Giá trị prescaler chỉ được sử dụng khi bộ định thời đang được sử dụng, và không bắt buộc đối với bất kỳ thao tác I/O cơ bản nào. Giá trị của các macro prescalar và dải tần số tương ứng của chúng có thể được xem trong tài liệu mã hoặc trong chính mã.
Đèn LED nhịp tim
Chúng ta có thể cấu hình đèn LED người dùng màu xanh lá cây, D7, nhấp nháy theo nhịp tim để kiểm tra kết nối đúng với bo mạch NUCLEO-G071RB. Macro HEARTBEAT_LED khi không được chú thích sẽ nhấp nháy đèn LED màu xanh lá cây trên X-NUCLEO-ISO1A1 khi nó được kết nối với NUCLEO. Đèn sẽ sáng trong 1 giây và tắt trong 2 giây, thời gian được bộ định thời đảm nhiệm. Khi không sử dụng hoặc khi có bất kỳ chức năng nào liên quan đến đèn LED được gọi, macro nên được bỏ chú thích.
Cấu hình GPIO đầu vào và đầu ra
Mỗi bo mạch X-NUCLEO-ISO1A1 được trang bị hai cổng vào và hai cổng ra. Khả năng của bo mạch có thể được mở rộng bằng cách xếp chồng hai bo mạch X-NUCLEO-ISO1A1 lên nhau, cho phép sử dụng bốn cổng vào kỹ thuật số và bốn cổng ra kỹ thuật số. Phần mềm được cung cấp bao gồm các API toàn diện giúp dễ dàng đọc, thiết lập và xóa các cổng. Ngoài ra, các API này cho phép thiết lập, đọc hoặc xóa đồng thời tất cả các cổng. Thông tin chi tiết về các chức năng API có sẵn trong tài liệu mã cũng như trong phần API của tài liệu này.

Ở đây, tiền tố DI biểu thị cổng đầu vào kỹ thuật số và DO biểu thị cổng đầu ra kỹ thuật số. Đối với cấu hình thay thế, phần mềm sử dụng cùng quy ước đặt tên với hậu tố _alt được thêm vào.
Bảng sau đây trình bày chi tiết các macro GPIO được xác định trong phần mềm tương ứng với nhiều cổng IO khác nhau:
Bảng 2. GPIO được phân bổ cho cấu hình phần mềm mặc định và thay thế
| Tên | Chức năng | Cấu hình mặc định | Cấu hình thay thế |
| PIN ĐẦU VÀO | Chân đầu vào 1 | GPIOC, IA0_IN_1_PIN | GPIOD, IA0_IN_1_PIN |
| Chân đầu vào 2 | GPIOD, IA1_IN_2_PIN | GPIOC, IA1_IN_1_PIN | |
| CHÂN ĐẦU RA | Chân ra 1 | GPIOC, QA0_CNTRL_1_PIN | GPIOD, QA0_CNTRL_1_PIN |
| Chân ra 2 | GPIOC, QA1_CNTRL_2_PIN | GPIOC, QA1_CNTRL_2_PIN | |
| PIN LỖI | Chốt lỗi 1 | GPIOC, FLT1_QA0_2_OT_PIN | GPIOD, FLT1_QA0_1_OT_PIN |
| Chốt lỗi 2 | GPIOC, FLT2_QA0_2_OL_PIN | GPIOD, FLT2_QA0_1_OL_PIN | |
| Chốt lỗi 3 | GPIOC, FLT1_QA1_2_OT_PIN | GPIOC, FLT1_QA1_1_OT_PIN | |
| Chốt lỗi 4 | GPIOC, FLT2_QA1_1_OL_PIN | GPIOD, FLT2_QA1_2_OL_PIN | |
| MACRO CẤU HÌNH | BOARD_ID_MẶC ĐỊNH | BOARD_ID_ALTERNATE |
Bộ hẹn giờ và PWM
Bộ định thời có thể được sử dụng trong phần mềm X-CUBE-ISO1 để tạo tín hiệu PWM cho các chân cụ thể. Theo mặc định, bộ định thời không được khởi tạo, ngoại trừ TIM3. Các bộ định thời tương ứng phải được khởi tạo trước khi tạo tín hiệu PWM và các cổng đầu ra tương ứng phải được khởi tạo ở chế độ PWM.
Đối với các hoạt động nhập/xuất GPIO thông thường, không cần cấu hình bất kỳ bộ đếm thời gian hoặc cổng xuất nào vì chúng đã được xử lý theo mặc định. Tuy nhiên, nếu các chân xuất được đặt ở chế độ PWM, chúng ta cần cấu hình lại chúng ở chế độ GPIO để sử dụng làm chân GPIO.
Ghi chú: Khi các chân ra được sử dụng để tạo PWM, ngõ ra GPIO sẽ bị vô hiệu hóa, cả hai chức năng không thể được triển khai đồng thời. Để bật lại GPIO sau khi sử dụng PWM, bạn có thể gọi hàm API ST_ISO_BoardConfigureDefault() hoặc ST_ISO_InitGPIO() để cấu hình tất cả các cổng thành GPIO cùng lúc hoặc ST_ISO_Init_GPIO() với một cổng và chân GPIO cụ thể.
Như đã đề cập ở trên, phần mềm cũng sử dụng một bộ hẹn giờ mặc định, TIM3, được dùng để điều chỉnh thời gian đèn LED, đồng hồ và thời gian UART của người dùng. Theo mặc định, bộ hẹn giờ này được cấu hình trong khoảng thời gian 1 giây.
Bảng sau đây trình bày chi tiết các bộ hẹn giờ có sẵn cho từng chân trong mã của chúng tôi:
Bảng 3. Bộ hẹn giờ có sẵn cho mỗi chân
| Tên ghim | Biểu diễn phần mềm | Bộ đếm thời gian | Kênh hẹn giờ | chức năng thay thế |
| 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 |
Tiện ích bổ sung của phần mềm
Phần mềm bao gồm các tiện ích bổ sung để nâng cao chức năng của bo mạch đánh giá X-NUCLEO-ISO1A1. Một số tiện ích được mô tả dưới đây.
UART
Tính năng giao tiếp UART cho phép giám sát và gỡ lỗi trạng thái bo mạch theo thời gian thực thông qua các tiện ích PC như TeraTerm, PuTTY và các ứng dụng tương tự khác. Phần mềm cho phép truyền dữ liệu UART thông qua UART có trong bo mạch NUCLEO-G071RB. Hàm `ST_ISO_UART` gửi thông tin chi tiết về trạng thái bo mạch qua UART, bao gồm thời gian hoạt động của hệ thống, cấu hình phần mềm và trạng thái lỗi. Dữ liệu này có thể được viewđược sử dụng bằng bất kỳ ứng dụng cổng nối tiếp nào, chẳng hạn như TeraTerm. Hàm `ST_ISO_APP_DIDOandUART` kết hợp các thao tác nhập/xuất kỹ thuật số với giao tiếp UART, truyền trạng thái của tất cả các kênh nhập và xuất theo các khoảng thời gian được chỉ định. Dưới đây là các cài đặt cấu hình vàampCách dữ liệu hiển thị trong TeraTerm. Tên cổng có thể thay đổi tùy theo hệ thống và cổng nối tiếp được sử dụng.


Cấu hình chế độ chân IO
Tiện ích cấu hình chế độ chân IO cho phép người dùng thiết lập các cổng vào và ra của bo mạch bằng hàm ST_ISO_BoardConfigure(). Hàm này hỗ trợ cấu hình hai cổng ra (QA0, QA1) và hai cổng vào (IA0, IA1) ở chế độ I/O, chế độ ngõ ra PWM hoặc chế độ ngõ vào ngắt. Bằng cách điều chỉnh các tham số và gọi hàm này, người dùng có thể dễ dàng tùy chỉnh cấu hình IO của bo mạch để đáp ứng các nhu cầu cụ thể.
Ở chế độ Nhập/Xuất, tiện ích khởi tạo các chân GPIO cho các hoạt động kỹ thuật số đa năng. Ở chế độ xuất PWM, tiện ích thiết lập bộ định thời để điều khiển tín hiệu PWM chính xác. Khi ở chế độ nhập ngắt, tiện ích cấu hình các chân để xử lý ngắt, cho phép lập trình theo sự kiện đáp ứng.
Xử lý ngắt
Để xử lý tín hiệu LỖI, phần mềm kích hoạt các đường ngắt liên quan, cho phép lập trình theo sự kiện đáp ứng. Một trình xử lý tùy chỉnh có thể được liên kết với các ngắt này thông qua
Hàm HAL_GPIO_EXTI_Rising_Callback được định nghĩa trong API. Phần mềm bao gồm các tính năng khởi tạo chân GPIO ở chế độ ngắt thông qua hàm ST_ISO_BoardConfigure và cấu hình các hành động cụ thể trong trình xử lý EXTI IRQ. Điều này cho phép người dùng tùy chỉnh cách bo mạch phản hồi với các sự kiện bên ngoài, đảm bảo bo mạch có thể quản lý hiệu quả các tình trạng lỗi và kích hoạt khác nhau.
API
API phần mềm X-CUBE-ISO1 cung cấp một bộ chức năng toàn diện để điều khiển và giám sát bo mạch X-NUCLEO-ISO1A1, bao gồm tạo tín hiệu PWM và các hoạt động GPIO. API được thiết kế để dễ sử dụng và tích hợp vào nhiều ứng dụng khác nhau, mang lại sự linh hoạt và khả năng kiểm soát chức năng của bo mạch.
API phần mềm X-CUBE-ISO1 được định nghĩa trong thư mục BSP/ISO1A1. Các hàm của nó được đặt tiền tố ST_ISO. API này được các ứng dụng nhìn thấy thông qua iso1a1.c và pwm_api.c. files là sự kết hợp của các hằng số, cấu trúc dữ liệu và hàm.
SampCác ứng dụng phần mềm sử dụng các API này để hiển thị một số cách sử dụng có thể có của các chức năng này.
Gói phần mềm X-CUBE-ISO1 cung cấp hai bộ API:
- API ISO1A1
- API PWM
API ISO1A1
API ISO1A1 được định nghĩa trong iso1a1.h và iso1a1.c files. Nó cung cấp các chức năng để cấu hình và điều khiển bo mạch ISO1A1, bao gồm các hoạt động đầu vào/đầu ra GPIO và phát hiện lỗi.
Chức năng chính
- ST_ISO_BoardConfigureDefault: Cấu hình các cổng IO của bo mạch với cấu hình GPIO mặc định.
- ST_ISO_BoardConfigure: Cấu hình chế độ của cổng đầu vào và đầu ra cho bo mạch.
- ST_ISO_BoardInit: Khởi tạo phần cứng bo mạch.
- ST_ISO_BoardMapInit: Khởi tạo chức năng của bo mạch dựa trên cấu hình xử lý kênh.
- ST_ISO_GetFWVersion: Trả về phiên bản chương trình cơ sở hiện tại.
- ST_ISO_GetChannelHandle: Truy xuất mã xử lý kênh cho tên kênh đã chỉ định.
- ST_ISO_InitGPIO: Khởi tạo chân GPIO được chỉ định với ID mô-đun đã cho.
- ST_ISO_InitInterrupt: Khởi tạo chân GPIO được chỉ định dưới dạng ngắt với ID mô-đun đã cho.
- ST_ISO_EnableFaultInterrupt: Khởi tạo các chân GPIO lỗi ở chế độ ngắt.
- ST_ISO_SetChannelStatus: Đặt trạng thái của một kênh được chỉ định.
- ST_ISO_SetOne_DO: Thiết lập một kênh đầu ra kỹ thuật số duy nhất.
- ST_ISO_ClearOne_DO: Xóa một kênh đầu ra kỹ thuật số duy nhất.
- ST_ISO_WriteAllChannels: Ghi dữ liệu vào tất cả các kênh đầu ra kỹ thuật số.
- ST_ISO_GetOne_DI: Lấy trạng thái của một kênh đầu vào kỹ thuật số duy nhất.
- ST_ISO_ReadAllChannel: Đọc trạng thái của tất cả các kênh đầu vào.
- ST_ISO_ReadAllOutputChannel: Đọc trạng thái của tất cả các kênh đầu ra.
- ST_ISO_ReadFaultStatus: Đọc trạng thái lỗi từ tất cả các cổng phát hiện lỗi.
- ST_ISO_ReadFaultStatusPolling: Kiểm tra khả năng phát hiện lỗi của bo mạch ở chế độ thăm dò.
- ST_ISO_DisableOutputChannel: Vô hiệu hóa đầu ra cho kênh đó.
- ST_ISO_UpdateBoardStatusInfo: Cập nhật thông tin trạng thái của bo mạch.
- ST_ISO_UpdateFaultStatus: Cập nhật trạng thái lỗi cho một kênh cụ thể.
- ST_ISO_BlinkLed: Nhấp nháy đèn LED được chỉ định với độ trễ và số lần lặp lại nhất định.
- ST_ISO_UART: Gửi thông tin trạng thái của bo mạch qua UART.
- ST_ISO_SwitchInit: Khởi tạo các thành phần chuyển mạch.
- ST_ISO_SwitchDeInit: Hủy khởi tạo phiên bản chuyển đổi.
- ST_ISO_DigitalInputInit: Khởi tạo các thành phần đầu vào kỹ thuật số.
- ST_ISO_DigitalInputDeInit: Hủy khởi tạo phiên bản đầu vào kỹ thuật số.
API PWM
API PWM được định nghĩa trong pwm_api.h và pwm_api.c files. Nó cung cấp các chức năng sau để khởi tạo và kiểm soát tín hiệu PWM cho các chân cụ thể.
- ST_ISO_Init_PWM_Signal: Khởi tạo bộ hẹn giờ và chân cụ thể cho tín hiệu PWM.
- ST_ISO_Set_PWM_Frequency: Đặt tần số PWM cho chân cụ thể.
- ST_ISO_Set_PWM_Duty_Cycle: Đặt chu kỳ hoạt động PWM cho chân cụ thể.
- ST_ISO_Start_PWM_Signal: Bắt đầu tín hiệu PWM trên chân cụ thể.
- ST_ISO_Stop_PWM_Signal: Dừng tín hiệu PWM trên chân cụ thể.
Để bắt đầu một tín hiệu PWM trên một kênh tương ứng, trước tiên hãy gọi hàm ST_ISO_Init_PWM_Signal, sau đó đặt tần số và chu kỳ nhiệm vụ mong muốn bằng cách gọi ST_ISO_Set_PWM_Frequency và
Các hàm ST_ISO_Set_PWM_Duty_Cycle tương ứng và sau đó bạn có thể bắt đầu tín hiệu PWM bằng cách gọi hàm ST_ISO_Start_PWM_Signal và dừng bằng cách gọi hàm ST_ISO_Stop_PWM_Signal.
Hàm này cần được gọi với tên chân tương ứng và bộ hẹn giờ khả dụng, thông tin chi tiết được cung cấp trong bảng 3. Có thể thiết lập các kênh đầu ra khác nhau với tần số và chu kỳ hoạt động khác nhau; việc thay đổi tần số hoặc chu kỳ hoạt động không ảnh hưởng đến các kênh khác, chúng vẫn giữ nguyên.
Thông tin kỹ thuật chi tiết về các API có sẵn cho người dùng có thể được tìm thấy trong HTML đã biên dịch file nằm bên trong thư mục "Tài liệu" của gói phần mềm, nơi tất cả các chức năng và thông số được mô tả đầy đủ.
Mô tả ứng dụng
Ứng dụng trình diễn triển khai một số trường hợp sử dụng đơn giản. st_iso_app và board_config files đóng vai trò quan trọng trong việc thiết lập và sử dụng bo mạch cũng như các chức năng ứng dụng của nó. Trước khi sử dụng các chức năng này, hãy đảm bảo bo mạch và cấu hình phần mềm được đồng bộ với nhau.
Các hàm ứng dụng (st_iso_app.h và st_iso_app.c)
Các hàm ứng dụng được thêm tiền tố ST_ISO_APP; chúng là các hàm cấp cao nhất mà người dùng có thể nhìn thấy, gọi các hàm API để triển khai chúng. Các hàm ứng dụng có thể được gọi trong main.c file cho hoạt động của chúng.
- Lựa chọn trường hợp sử dụng: Người dùng có thể bỏ chú thích cho macro trường hợp sử dụng mong muốn trong st_iso_app.c fileHàm ST_ISO_APP_SelectUseCaseMacro(), được gọi trong main.c, khởi tạo use case đó, và hàm ST_ISO_APP_SelectedFunction() sẽ triển khai use case đó trong main.c. Cách tiếp cận này cho phép cấu hình chế độ hoạt động dễ dàng bằng cách chỉ cần sửa đổi các định nghĩa macro, đảm bảo chức năng phù hợp được thực thi dựa trên use case đã chọn. Theo mặc định, use case DIDO được chọn và người dùng không cần phải thực hiện bất kỳ thay đổi nào đối với mã để triển khai use case đó.
- Phản chiếu Đầu vào Kỹ thuật số sang Đầu ra Kỹ thuật số (ST_ISO_APP_UsecaseDIDO): Hàm này đọc trạng thái của tất cả các kênh đầu vào và ghi trạng thái tương tự vào tất cả các kênh đầu ra. Hàm này hữu ích để phản chiếu đầu vào kỹ thuật số sang đầu ra kỹ thuật số.
- Phản chiếu Đầu vào Kỹ thuật số sang Đầu ra Kỹ thuật số với UART (ST_ISO_APP_DIDOandUART): Hàm này phản chiếu đầu vào kỹ thuật số sang đầu ra kỹ thuật số, tương tự như hàm ST_ISO_APP_UsecaseDIDO. Ngoài ra, nó còn truyền trạng thái bo mạch qua giao diện UART trên thiết bị Nucleo, cho phép trạng thái được hiển thị. viewđược thực hiện trên cổng nối tiếp bằng các ứng dụng như Tera Term.
- Hàm Test Case (ST_ISO_APP_TestCase): Hàm này thực hiện một loạt các bài kiểm tra và hành động dựa trên cấu hình bo mạch. Nó kiểm tra trạng thái lỗi, đọc trạng thái của hai kênh đầu vào kỹ thuật số và thực hiện các hành động dựa trên giá trị của chúng. Hàm này giúp đánh giá hiệu suất và chức năng của bo mạch nhanh chóng và nhận phản hồi trực quan thông qua các mẫu đèn LED khác nhau. Đảm bảo macro HEARTBEAT_LED trong tập tin board_config.h file được chú thích để quan sát các mẫu đèn LED thích hợp.
- Tạo PWM (ST_ISO_APP_PWM _OFFSET): Hàm này khởi tạo tín hiệu PWM trên cả hai kênh đầu ra với tần số 1 Hz và chu kỳ làm việc 50%. Hàm này khởi tạo tín hiệu PWM, đặt tần số và chu kỳ làm việc, rồi khởi tạo tín hiệu PWM cho ID bo mạch được chỉ định. Tín hiệu PWM được tạo ra với độ lệch pha giữa hai kênh, do đó chúng không cùng pha.
- Kiểm tra Phát hiện Lỗi (ST_ISO_APP_FaultTest): Chức năng này đánh giá khả năng phát hiện lỗi bằng cách điều khiển các chân chẩn đoán tích hợp của mô-đun đầu ra thông minh IPS1025 ở chế độ thăm dò hoặc ngắt. Chức năng này cấu hình chế độ phát hiện lỗi, khởi tạo phát hiện lỗi và cập nhật cấu trúc trạng thái lỗi dựa trên chế độ đã chọn. Chức năng này rất quan trọng để đảm bảo độ tin cậy và an toàn của bo mạch bằng cách phát hiện và xử lý lỗi hiệu quả. Khi ở chế độ thăm dò, trạng thái lỗi được cập nhật mỗi giây với sự trợ giúp của bộ đếm thời gian và được phản ánh trong cấu trúc defaultBoardFaultStatus hoặc alternateBoardFaultStatus. Khi ở chế độ ngắt, trạng thái lỗi chỉ được cập nhật khi lỗi xảy ra và kích hoạt phần mềm xóa cổng đầu ra tương ứng.
- Kiểm tra Biến thiên PWM (ST_ISO_APP_PwmVariationTest): Hàm này được thiết kế để kiểm tra biến thiên của tín hiệu PWM (Điều chế Độ rộng Xung) trên các kênh đầu ra khác nhau dựa trên cấu hình bo mạch. Hàm này khởi tạo tín hiệu PWM cho cả cấu hình bo mạch mặc định và thay thế, đặt tần số của chúng thành 100 Hz và chu kỳ hoạt động ban đầu thành 0%. Sau đó, hàm này thay đổi chu kỳ hoạt động từ 0% đến 100% theo mức tăng 5%, và từ 100% xuống 0% theo mức giảm 5%, với độ trễ 2 giây giữa mỗi bước. Biến thiên được kiểm soát này cho phép quan sát và đánh giá hành vi của tín hiệu PWM trên các kênh QA_0 và QA_1 đối với bo mạch mặc định, và QA_0_ALT và QA_1_ALT đối với bo mạch thay thế.
Bằng cách làm theo các cấu hình này và sử dụng các chức năng ứng dụng được cung cấp, bạn có thể thiết lập và sử dụng bo mạch X-NUCLEO-ISO1A1 một cách hiệu quả cho nhiều trường hợp sử dụng trình diễn khác nhau.
Hướng dẫn thiết lập hệ thống
Mô tả phần cứng
Nền tảng STM32 Nucleo
Các bo mạch phát triển STM32 Nucleo cung cấp một phương thức linh hoạt và hợp túi tiền để người dùng thử nghiệm các giải pháp và xây dựng nguyên mẫu với bất kỳ dòng vi điều khiển STM32 nào.
Hỗ trợ kết nối Arduino® và đầu nối ST morpho giúp dễ dàng mở rộng chức năng của nền tảng phát triển mở STM32 Nucleo với nhiều loại bo mạch mở rộng chuyên dụng để lựa chọn.
Bo mạch STM32 Nucleo không yêu cầu các đầu dò riêng biệt vì nó tích hợp trình gỡ lỗi / lập trình ST-LINK / V2-1.
Bo mạch STM32 Nucleo đi kèm với thư viện HAL của phần mềm STM32 toàn diện cùng với các phần mềm đóng gói khác nhau, ví dụ:ampđồng nghiệp.

Thông tin liên quan đến bo mạch STM32 Nucleo có sẵn tại www.st.com/stm32nucleo
Bo mạch mở rộng X-NUCLEO-ISO1A1
X-NUCLEO-ISO1A1 là bo mạch đánh giá với đầu vào/đầu ra công nghiệp biệt lập, được thiết kế để mở rộng bo mạch Nucleo STM32 và cung cấp chức năng micro-PLC. Hai bo mạch X-NUCLEO-ISO1A1 có thể được xếp chồng lên nhau trên bo mạch Nucleo STM32 với lựa chọn jumper phù hợp trên bo mạch mở rộng để tránh xung đột trong giao diện GPIO. Các bộ cách ly kỹ thuật số STISO1577 và STISO620 được chứng nhận UL621 cung cấp khả năng cách ly giữa các thành phần phía logic và phía quy trình. Hai đầu vào phía cao giới hạn dòng điện từ phía quy trình được thực hiện thông qua CLT03-2Q3. CLT03-2Q3 cung cấp khả năng bảo vệ, cách ly và chỉ báo trạng thái không có năng lượng trong điều kiện công nghiệp, được thiết kế để đáp ứng các tiêu chuẩn như IEC61000-4-2, IEC61000-4-4 và IEC61000-4-5. Mỗi công tắc phía cao IPS1025H-32/HQ-32 cung cấp đầu ra được bảo vệ lên đến 5.6 A với chức năng chẩn đoán và điều khiển thông minh. Chúng có thể điều khiển tải điện dung, điện trở hoặc cảm ứng. X-NUCLEO-ISO1A1 cho phép đánh giá nhanh các IC tích hợp bằng gói phần mềm X-CUBE-ISO1.

Thiết lập phần cứng
Các thành phần phần cứng sau là cần thiết:
- Một nền tảng phát triển STM32 Nucleo (mã đặt hàng đề xuất: NUCLEO-GO71RB)
- Một bo mạch mở rộng đầu ra kỹ thuật số công nghiệp (mã đặt hàng: X-NUCLEO-ISO1A1)
- Một cáp USB loại A sang Micro USB để kết nối STM32 Nucleo với PC
- Nguồn điện bên ngoài (24 V) và các dây liên quan để cung cấp cho bo mạch mở rộng X-NUCLEO-ISO1A1.
Thiết lập phần mềm
Các thành phần phần mềm sau đây là cần thiết để thiết lập môi trường phát triển phù hợp cho việc tạo ứng dụng cho STM32 Nucleo được trang bị bo mạch mở rộng X-NUCLEO-ISO1A1:
- X-CUBE-ISO1: một bản mở rộng cho STM32Cube dành riêng cho việc phát triển ứng dụng đòi hỏi phải sử dụng bo mạch X-NUCLEO-ISO1A1. Phần mềm X-CUBE-ISO1 và tài liệu liên quan có sẵn tại www.st.com
- Chuỗi công cụ phát triển và trình biên dịch: phần mềm mở rộng STM32Cube hỗ trợ ba môi trường sau:
- Chuỗi công cụ IAR Embedded Workbench cho ARM® (IAR-EWARM)
- Thực tếView Bộ công cụ phát triển vi điều khiển (MDK-ARM-STM32)
- STM32CubeIDE.
Thiết lập bảng
Bo mạch phải được cấu hình với các cài đặt jumper phù hợp như được chỉ định trong hướng dẫn sử dụng phần cứng (UM3483). Việc tuân thủ cẩn thận các hướng dẫn này là rất quan trọng để đảm bảo hoạt động bình thường và tránh các sự cố tiềm ẩn.
Hướng dẫn thiết lập hệ thống
Phần này mô tả cách thiết lập các bộ phận phần cứng khác nhau trước khi phát triển và thực thi ứng dụng trên bo mạch STM32 Nucleo, NUCLEO-G071RB với bo mạch mở rộng X-NUCLEO-ISO1A1.


Thiết lập cho gói mở rộng X-CUBE-ISO1
X-NUCLEO-ISO1A1 phải được cấu hình với các vị trí jumper cụ thể dựa trên cấu hình bạn đang sử dụng trên bo mạch. Chi tiết về điều này có thể được tìm thấy trong hướng dẫn sử dụng phần cứng.
- Bước 1. Cắm bo mạch mở rộng X-NUCLEO-ISO1A1 lên trên STM32 Nucleo thông qua các đầu nối morpho.
Nếu bạn sử dụng hai tấm ván chồng lên nhau, hãy xếp chồng chúng như trong Hình 11. - Bước 2. Kết nối bo mạch STM32 Nucleo với máy tính bằng cáp USB thông qua đầu nối USB CN1 để cấp nguồn cho bo mạch.
- Bước 3. Cấp nguồn cho bo mạch mở rộng X-NUCLEO-ISO1A1 bằng cách kết nối J1 với nguồn điện 24V DC. Nếu sử dụng bo mạch xếp chồng, hãy đảm bảo cả hai bo mạch đều được cấp nguồn.
- Bước 4. Mở chuỗi công cụ ưa thích của bạn (MDK-ARM từ Keil, EWARM từ IAR hoặc STM32CubeIDE).
- Bước 5. Mở dự án phần mềm và thực hiện những thay đổi cần thiết cho board_config.h file theo cấu hình của bo mạch đang được sử dụng.
- Bước 6. Đặt macro trường hợp sử dụng phù hợp trong st_iso_app.c file hoặc gọi trường hợp sử dụng cần thiết bằng cách sử dụng hàm ST_ISO_APP_SelectUseCase trong main.c file cùng với bất kỳ chức năng mong muốn nào khác.
- Bước 7. Xây dựng dự án để biên dịch tất cả filevà tải mã đã biên dịch vào bộ nhớ của bo mạch STM32 Nucleo.
- Bước 8. Chạy mã trên bo mạch STM32 Nucleo và xác minh hành vi mong đợi.
Lịch sử sửa đổi
Bảng 4. Lịch sử sửa đổi tài liệu
| Ngày | Ôn tập | Thay đổi |
| 14-2025-XNUMX | 1 | Phiên bản phát hành đầu tiên. |
THÔNG BÁO QUAN TRỌNG – ĐỌC KỸ
STMicroelectronics NV và các công ty con (“ST”) có quyền thực hiện các thay đổi, chỉnh sửa, cải tiến, sửa đổi và cải thiện đối với các sản phẩm ST và/hoặc tài liệu này bất kỳ lúc nào mà không cần thông báo. Người mua nên tìm hiểu thông tin mới nhất có liên quan về các sản phẩm ST trước khi đặt hàng. Các sản phẩm ST được bán theo các điều khoản và điều kiện bán hàng của ST có hiệu lực tại thời điểm xác nhận đơn hàng.
Người mua chịu toàn bộ trách nhiệm về việc lựa chọn, cân nhắc và sử dụng các sản phẩm ST và ST không chịu trách nhiệm về việc hỗ trợ ứng dụng hoặc thiết kế các sản phẩm của người mua.
ST không cấp bất kỳ giấy phép nào, dù là rõ ràng hay ngụ ý, cho bất kỳ quyền sở hữu trí tuệ nào ở đây.
Việc bán lại các sản phẩm ST với các điều khoản khác với thông tin được nêu ở đây sẽ làm mất hiệu lực bất kỳ bảo hành nào mà ST cấp cho sản phẩm đó.
ST và logo ST là thương hiệu của ST. Để biết thêm thông tin về nhãn hiệu ST, hãy tham khảo www.st.com/trademarks. Tất cả các tên sản phẩm hoặc dịch vụ khác là tài sản của chủ sở hữu tương ứng.
Thông tin trong tài liệu này thay thế và thay thế thông tin đã cung cấp trước đó trong bất kỳ phiên bản nào trước đây của tài liệu này.
© 2025 STMicroelectronics – Bảo lưu mọi quyền
Tài liệu / Tài nguyên
![]() |
Phần mềm mở rộng STMicroelectronics UM3469 X-CUBE-ISO1 [tập tin pdf] Hướng dẫn sử dụng X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 X-CUBE-ISO1 Phần mềm mở rộng, UM3469, X-CUBE-ISO1 Phần mềm mở rộng, Phần mềm mở rộng |

