ST 로고

STMicroelectronics UM3469 X-CUBE-ISO1 소프트웨어 확장

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장

소개

STM1Cube용 X-CUBE-ISO32 확장 소프트웨어 패키지는 STM32에서 실행되며 X-NUCLEO-ISO1A1용 펌웨어를 포함합니다. 이 소프트웨어는 X-NUCLEO에서 제공하는 기본 PLC 장치 개발을 위한 사용하기 쉬운 솔루션을 제공합니다. 이 확장 패키지는 STM32Cube 소프트웨어 기술을 기반으로 구축되어 다양한 STM32 마이크로컨트롤러 간 이식성을 용이하게 합니다.

이 소프트웨어는 NUCLEO-G1RB 개발 보드(또는 NUCLEO-G1B071RE 또는 NUCLEO-G0RB)에 연결된 X-NUCLEO-ISO1A070 확장 보드에서 실행되는 구현을 제공합니다. 편의를 위해 본 문서에서는 NUCLEO-G071RB만 언급하겠습니다.
X-NUCLEO-ISO1A1 보드는 적절한 점퍼 설정을 통해 두 개의 보드를 스태킹하여 입력 및 출력 기능을 확장하도록 설계되었습니다.

두문자어 및 약어

표 1. 약어 목록

두문자어 설명
PLC 프로그래밍 가능 논리 컨트롤러
API 애플리케이션 프로그래밍 인터페이스
PWM 펄스 폭 변조
GPIO 범용 입력/출력.
하드웨어 추상화 계층
PC 개인용 컴퓨터
FW 펌웨어

STM32Cube란 무엇인가요?

STM32Cube™는 개발 노력, 시간, 비용을 줄여 개발자의 삶을 더욱 편리하게 만들고자 하는 STMicroelectronics의 이니셔티브를 나타냅니다. STM32Cube는 STM32 포트폴리오를 포괄합니다.
STM32Cube 버전 1.x에는 다음이 포함됩니다.

  • STM32CubeMX는 그래픽 마법사를 사용하여 C 초기화 코드를 생성할 수 있는 그래픽 소프트웨어 구성 도구입니다.
  • 각 시리즈에 특화된 포괄적인 임베디드 소프트웨어 플랫폼(예: STM32G0 시리즈용 STM32CubeG0)에는 다음이 포함됩니다.
    • STM32Cube HAL 내장 추상화 계층 소프트웨어는 STM32 포트폴리오 전반에 걸쳐 최대의 이식성을 보장합니다.
    • RTOS, USB, TCP/IP 및 그래픽과 같은 일관된 미들웨어 구성 요소 세트
    • 전체 ex 세트를 갖춘 모든 임베디드 소프트웨어 유틸리티amp레.

STM32Cube 아키텍처
STM32Cube 펌웨어 솔루션은 아래 다이어그램에 설명된 대로 서로 쉽게 상호 작용할 수 있는 세 개의 독립적인 레벨을 중심으로 구축되었습니다.

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-1

STM1Cube용 X-CUBE-ISO32 소프트웨어 확장

위에view
STM1 환경 및 라이브러리를 기반으로 개발된 산업용 절연 입출력 확장 보드인 X-NUCLEO-ISO1A32용 펌웨어는 STM32 Nucleo 보드의 고성능 MCU를 활용하여 디지털 입력, 출력, 통합 진단 기능, 동적 전류 제한, PWM 신호 생성을 관리합니다. 기본 및 대체 조건 프레임워크, 프리스케일러 값 설정을 위한 매크로, GPIO 포트 및 핀 정의 등 포괄적인 보드 구성 및 제어 기능을 제공합니다.

다양한 s를 지원합니다amp디지털 입력에서 출력으로의 미러링, Nucleo 보드를 통한 UART 통신, 오류 감지, 테스트 사례, PWM 생성 등의 애플리케이션 사용 사례를 직접 사용할 수 있으며 쉽게 사용자 정의하고 확장할 수 있습니다.

이 API는 디지털 입출력 제어, 오류 감지 및 보드 상태 업데이트를 위한 강력한 함수 세트를 제공하며, 두 개의 보드를 서로 다른 모드에서 동시에 실행하기 위한 구성 설정도 제공합니다. 디지털 출력 채널의 PWM 신호를 초기화, 시작, 중지 및 구성하기 위한 특정 API 함수도 제공됩니다.

보드 지원 패키지에는 IPS1025H-32와 인터페이스된 GPIO 핀을 제어하고 모니터링하고 디지털 아이솔레이터를 통해 CLT03-2Q3와 인터페이스된 GPIO 핀의 상태를 읽는 기능이 포함되어 있습니다.
구성 및 초기화는 STM32CubeMX를 기반으로 하며, 개발 및 디버깅은 STM32CubeIDE, IAR Systems, Keil® 도구에서 지원합니다.

건축학
X-NUCLEO-ISO1A1의 펌웨어는 여러 개의 기능 블록으로 나눌 수 있으며, 각 블록은 시스템 작동의 다양한 측면을 담당합니다.

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-2

  • 보드 구성 및 제어:
    • board_config.h file 보드를 기본 또는 대체 조건, 또는 둘 다에서 실행하도록 구성하는 매크로가 포함되어 있습니다. 또한 프리스케일러 값과 GPIO 포트 및 핀에 대한 정의도 포함되어 있습니다.
    • 이 블록은 보드가 원하는 작동 조건에 맞게 올바르게 설정되었는지, 그리고 모든 필수 하드웨어 구성이 제자리에 있는지 확인합니다.
  • 응용 프로그램 사용 사례:
    • st_iso_app.h 및 st_iso_app.c files에는 보드의 다양한 기능을 테스트하도록 설계된 애플리케이션 사용 사례가 포함되어 있습니다.
    • 이러한 사용 사례에는 디지털 입력-출력 미러링, 오류 감지 테스트, PWM 신호 생성 등이 포함됩니다.
    • Examp두 개의 보드를 서로 다른 모드에서 동시에 실행하기 위한 구성이 제공되어 펌웨어의 다재다능함과 유연성을 보여줍니다.
  • API 함수:
    • iso1a1.h 및 iso1a1.c file다양한 기능을 지원하기 위해 포괄적인 API 세트를 제공합니다.
    • 이러한 API에는 디지털 입출력 제어, 오류 감지, 보드 상태 업데이트를 위한 기능이 포함되어 있습니다.
    • API는 간단하고 직관적으로 설계되어 사용자가 보드와 쉽게 상호 작용하고 필요한 작업을 수행할 수 있습니다.
  • PWM 신호 제어:
    • pwm_api.h 및 pwm_api.c files에는 PWM 신호 생성과 관련된 특정 API 함수가 포함되어 있습니다.
    • 이러한 기능을 사용하면 디지털 출력 채널에 대한 PWM 신호를 초기화, 구성, 시작 및 중지할 수 있습니다.
    • PWM 기능은 기본 선택 사항이 아닙니다. 이 기능을 활성화하도록 보드 구성이 수정되었습니다. 자세한 내용은 3.5절: API를 참조하십시오.
  • 보드 지원 패키지:
    • 보드 지원 패키지에는 다음이 포함됩니다. fileIPS1025H-32와 인터페이스된 GPIO 핀을 제어하고 모니터링하고 CLT03-2Q3와 인터페이스된 GPIO 핀의 상태를 읽기 위한 s입니다.
    • ips1025h_32.h 및 ips1025h_32.c files는 IPS1025H-32와 인터페이스된 GPIO 핀의 오류를 설정, 지우고 감지하는 기능을 제공합니다.
    • clt03_2q3.h 및 clt03_2q3.c fileCLT03-2Q3와 인터페이스된 GPIO 핀의 상태를 읽는 기능을 제공합니다.

데모 펌웨어는 시스템의 기능을 보여주기 위해 몇 가지 간단한 사용 사례를 구현합니다. 이러한 사용 사례와 사용자 API는 원활한 작동과 정확한 결과를 보장하기 위해 조율된 방식으로 실행됩니다. 아키텍처는 쉽게 확장 가능하도록 설계되어 사용자가 필요에 따라 새로운 기능과 사용 사례를 추가할 수 있습니다. 디지털 산업용 IO를 사용하는 보드 하나를 실행하기 위한 기본 구성이 제공됩니다. 표 2에 설명된 대로 점퍼 설정도 기본 모드로 설정해야 합니다. 디지털 입력 및 디지털 출력 미러링(DIDO)은 기본 펌웨어 애플리케이션 사용 사례입니다.

폴더 구조

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-3

소프트웨어 패키지에는 다음 폴더가 포함되어 있습니다.

  • 문서에는 컴파일된 HTML이 포함되어 있습니다. file 소스 코드에서 생성되어 소프트웨어 구성 요소와 API를 자세히 설명합니다.
  • 드라이버에는 다음이 포함됩니다.
    • STM32Cube HAL 폴더는 STM32G0xx_HAL_Driver 하위 폴더에 있습니다. file여기서는 X-CUBE-ISO1 소프트웨어에만 국한되지 않고 STM32Cube 프레임워크에서 직접 제공되므로 설명하지 않습니다.
    • Cortex® 마이크로컨트롤러 소프트웨어 인터페이스 표준을 포함하는 CMSIS 폴더 file팔에서 s. 이것들 files는 Cortex®-M 프로세서 시리즈를 위한 벤더 독립적인 하드웨어 추상화 계층입니다. 이 폴더는 STM32Cube 프레임워크와 동일하게 유지됩니다.
    • 구성 요소 IPS1025H-32 및 CLT03-2Q3에 대한 코드와 X-NUCLEO-ISO1A1과 관련된 API를 포함하는 BSP 폴더입니다.
  • 응용 프로그램에는 main.c가 포함된 사용자 폴더가 포함되어 있습니다. file, 응용 프로그램 사용 사례 file, st_iso_app.c 및 board_config.h fileNUCLEO-G071RB 플랫폼에 제공됩니다.

BSP 폴더
X-CUBE-ISO1 소프트웨어는 두 가지 다른 구성 요소를 사용합니다. fileBSP/Components 내부에 있는 s:

IPS1025
ips1025h_32.h 및 ips1025h_32.c files는 IPS1025H-32와 인터페이스되는 GPIO 핀에 대한 포괄적인 드라이버 구현을 제공하며, 모든 핀 제어 및 오류 감지를 위한 완벽한 기능을 포함합니다. file장치 초기화, 채널 상태 설정 및 삭제, 오류 상태 감지, PWM 기능 관리를 위한 기능을 구현합니다. 드라이버는 여러 장치와 채널을 지원하며, 개별 채널 또는 그룹으로 완전한 기능을 제공합니다.

씨엘티03
clt03_2q3.h 및 clt03_2q3.c fileCLT03-2Q3과 인터페이스되는 GPIO 핀에 대한 모든 기능을 갖춘 드라이버를 구현하여 모든 핀 상태를 완벽하게 읽을 수 있습니다. 이 드라이버는 장치 초기화, 개별 채널 상태 읽기, 모든 채널의 상태 정보 동시 수집 기능을 제공합니다. 다양한 장치 구성을 지원하고 효과적인 채널 관리를 위해 내부 상태를 유지합니다.

X-CUBE-ISO1 소프트웨어 API는 두 가지 주요 소스로 구분됩니다. fileISO1A1 하위 폴더 내부에 있는 s:

ISO1A1
ISO1A1 files는 보드 구성, 구성 요소 상호 작용 및 오류 관리를 위해 설계된 포괄적인 API 함수 세트를 포함합니다. 이러한 함수는 읽기 및 쓰기 작업, 오류 감지 및 업데이트를 용이하게 하며, 주요 API 함수를 지원하는 다양한 도우미 유틸리티를 포함합니다. 또한, fileLED 제어, GPIO 초기화, 인터럽트 처리, UART 통신 기능을 제공합니다.

PWM API
PWM API는 PWM 신호를 초기화, 구성, 시작 및 중지하는 함수를 제공합니다. 지정된 타이머 핀에 대한 PWM 주파수와 듀티 사이클을 설정하여 PWM 동작을 정밀하게 제어할 수 있습니다.

응용 프로그램 폴더
응용 프로그램 폴더에는 주요 내용이 포함되어 있습니다. file헤더와 소스를 포함한 펌웨어에 필요한 사항 files. 아래는 자세한 설명입니다. file이 폴더의 s:

  • board_config.h: 보드에 대한 구성 매크로입니다.
  • main.c: 메인 프로그램(예제 코드)ampISO1A1 라이브러리를 기반으로 한 le입니다.
  • st_iso_app.c: 보드 테스트 및 구성을 위한 애플리케이션 함수입니다.
  • stm32g0xx_hal_msp.c: HAL 초기화 루틴.
  • stm32g0xx_it.c: 인터럽트 핸들러.
  • syscalls.c: 시스템 호출 구현.
  • sysmem.c: 시스템 메모리 관리.
  • system_stm32g0xx.c: 시스템 초기화.

소프트웨어에 필요한 리소스
Nucleo 장치는 GPIO를 통해 X-NUCLEO-ISO1A1 보드를 제어하고 통신합니다. 이를 위해 X-NUCLEO-ISO1A1 보드에 내장된 산업용 IO 장치의 입력, 출력 및 오류 감지를 위해 여러 GPIO를 사용해야 합니다. 자세한 내용 및 점퍼 구성은 하드웨어 사용자 설명서 UM3483을 참조하십시오.

보드 구성(board_config.h)
board_config.h file 보드 구성에 따라 소프트웨어를 구성하기 위해 사용되는 리소스와 구성 매크로를 정의합니다. 최대 두 개의 보드(예: 두 개의 보드를 스태킹하는 경우)를 지원합니다.
소프트웨어 DEFAULT 구성은 점퍼가 기본 위치에 있는 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 매크로의 주석 처리를 모두 해제하고 한 보드의 점퍼는 기본 위치에, 다른 보드의 점퍼는 대체 위치에 있는지 확인하십시오. 두 보드를 동일한 구성(둘 다 기본 또는 둘 다 대체)으로 사용하는 것은 권장하지 않으며, 원치 않는 동작이 발생할 수 있습니다.
보드를 하나만 실행하는 경우 소프트웨어가 한 가지 구성에 대해서만 구성되고 다른 구성에 해당하는 매크로에 주석이 달려 있는지 확인하세요.

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-4

프리스케일러
적절한 매크로를 설정하여 board_config.h에서 프리스케일러 값을 구성하여 PWM 출력의 주파수 범위를 다르게 할 수 있습니다. 프리스케일러 값을 사용하려면 해당 매크로의 주석 처리를 해제하고 다른 매크로의 주석 처리를 해제해야 합니다. 기본적으로 DEFAULT_PRESCALAR가 사용됩니다.

  • 프리스케일러_1
  • 프리스케일러_2
  • 기본 프리스케일러

프리스케일러 값은 타이머 사용 시에만 사용되며, 기본적인 I/O 연산에는 필요하지 않습니다. 프리스케일러 매크로 값과 해당 주파수 범위는 코드 설명서 또는 코드 자체에서 확인할 수 있습니다.

하트비트 LED
NUCLEO-G7RB 보드와의 연결 상태를 확인하기 위해 녹색 사용자 LED D071을 하트비트 방식으로 깜빡이도록 설정할 수 있습니다. HEARTBEAT_LED 매크로의 주석 처리를 해제하면 X-NUCLEO-ISO1A1이 NUCLEO에 연결될 때 해당 LED가 깜빡입니다. 1초 동안 켜졌다가 2초 동안 꺼지며, 타이머가 이 시간을 제어합니다. 사용하지 않거나 LED 관련 함수가 호출될 때는 매크로의 주석 처리를 해제해야 합니다.

입력 및 출력 GPIO 구성
각 X-NUCLEO-ISO1A1 보드에는 입력 포트 1개와 출력 포트 1개가 장착되어 있습니다. X-NUCLEO-ISOXNUMXAXNUMX 보드 두 개를 겹쳐서 사용하면 보드의 기능을 확장하여 디지털 입력 포트 XNUMX개와 디지털 출력 포트 XNUMX개를 사용할 수 있습니다. 제공된 소프트웨어에는 포트 읽기, 설정 및 삭제를 지원하는 포괄적인 API가 포함되어 있습니다. 또한, 이 API를 통해 모든 포트를 동시에 설정, 읽기 또는 삭제할 수 있습니다. API 함수에 대한 자세한 내용은 코드 설명서와 이 문서의 API 섹션에서 확인할 수 있습니다.

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-5

여기서 접두사 DI는 디지털 입력 포트를, DO는 디지털 출력 포트를 나타냅니다. 다른 구성의 경우, 소프트웨어는 동일한 명명 규칙에 _alt 접미사를 붙입니다.
다음 표는 다양한 IO 포트에 해당하는 소프트웨어에 정의된 GPIO 매크로를 자세히 보여줍니다.

표 2. 기본 및 대체 소프트웨어 구성에 할당된 GPIO

이름 기능 기본 구성 대체 구성
입력 핀 입력 핀 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
구성 매크로 보드_ID_기본값 보드 ID 대체

타이머와 PWM
타이머는 X-CUBE-ISO1 펌웨어에서 특정 핀에 대한 PWM 신호를 생성하는 데 사용될 수 있습니다. 기본적으로 TIM3을 제외한 타이머는 초기화되지 않습니다. 각 타이머는 PWM 신호를 생성하기 전에 초기화되어야 하며, 각 출력 포트는 PWM 모드에서 초기화되어야 합니다.
일반적인 GPIO 입출력 동작의 경우, 타이머나 출력 포트는 기본적으로 설정되어 있으므로 별도로 설정할 필요가 없습니다. 하지만 출력 핀이 PWM 모드로 설정된 경우, GPIO 핀으로 사용하려면 GPIO 모드에서 해당 핀을 재구성해야 합니다.

메모: 출력 핀이 PWM 생성에 사용될 때는 GPIO 출력이 비활성화되므로 두 기능을 동시에 구현할 수 없습니다. PWM 사용 후 GPIO를 다시 활성화하려면 ST_ISO_BoardConfigureDefault() 또는 ST_ISO_InitGPIO() API 함수를 호출하여 모든 포트를 한 번에 GPIO로 설정하거나, ST_ISO_Init_GPIO() 함수를 사용하여 특정 GPIO 포트와 핀에 대해 설정할 수 있습니다.

위에서 언급했듯이, 소프트웨어는 기본적으로 사용자 LED 타이밍, 클록 및 UART 타이밍 구현에 사용되는 TIM3 타이머 하나를 사용합니다. 기본적으로 1초 간격으로 설정됩니다.
다음 표는 코드에서 각 핀에 사용할 수 있는 타이머를 자세히 보여줍니다.

표 3. 각 핀에 사용 가능한 타이머

핀 이름 소프트웨어 표현 시간제 노동자 타이머 채널 대체 기능
QA0_CNTRL_1_PIN QA_0 티엠2 팀_채널_4 GPIO_AF2_TIM2
QA1_CNTRL_2_PIN QA_1 티엠1 팀_채널_3 GPIO_AF2_TIM1
QA0_CNTRL_2_PIN QA_0_ALT 티엠1 팀_채널_4 GPIO_AF2_TIM1
QA1_CNTRL_1_PIN QA_1_ALT 티엠17 팀_채널_1 GPIO_AF2_TIM17

펌웨어의 추가 유틸리티
펌웨어에는 X-NUCLEO-ISO1A1 평가 보드의 기능을 향상시키는 추가 유틸리티가 포함되어 있습니다. 아래는 그 중 일부에 대한 설명입니다.

유아트
UART 통신 기능을 사용하면 TeraTerm, PuTTY 및 기타 유사 애플리케이션과 같은 PC 유틸리티를 통해 보드 상태를 실시간으로 모니터링하고 디버깅할 수 있습니다. 이 소프트웨어는 NUCLEO-G071RB 보드에 있는 UART를 통해 UART 데이터 전송을 지원합니다. `ST_ISO_UART` 함수는 시스템 가동 시간, 펌웨어 구성, 오류 상태 등 자세한 보드 상태 정보를 UART를 통해 전송합니다. 이 데이터는 viewTeraTerm과 같은 직렬 포트 애플리케이션을 사용하여 편집할 수 있습니다. `ST_ISO_APP_DIDOandUART` 함수는 디지털 입출력 연산과 UART 통신을 결합하여 지정된 간격으로 모든 입출력 채널의 상태를 전송합니다. 구성 설정은 다음과 같습니다.ampTeraTerm에 데이터가 표시되는 방식입니다. 포트 이름은 사용 중인 시스템 및 직렬 포트에 따라 달라질 수 있습니다.

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-6

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-7

IO 핀 모드 구성
IO 핀 모드 구성 유틸리티를 사용하면 ST_ISO_BoardConfigure() 함수를 사용하여 보드의 입력 및 출력 포트를 설정할 수 있습니다. 이 함수는 두 개의 출력 포트(QA0, QA1)와 두 개의 입력 포트(IA0, IA1)를 입출력 모드, PWM 출력 모드 또는 인터럽트 입력 모드로 설정할 수 있도록 지원합니다. 매개변수를 조정하고 이 함수를 호출하면 사용자는 특정 요구 사항에 맞게 보드의 IO 구성을 쉽게 사용자 지정할 수 있습니다.

입출력 모드에서는 유틸리티가 범용 디지털 연산을 위해 GPIO 핀을 초기화합니다. PWM 출력 모드에서는 정밀한 PWM 신호 제어를 위해 타이머를 설정합니다. 인터럽트 입력 모드에서는 유틸리티가 인터럽트를 처리하도록 핀을 구성하여 응답성이 뛰어난 이벤트 기반 프로그래밍을 가능하게 합니다.

인터럽트 처리
FAULT 신호를 처리하기 위해 소프트웨어는 관련 인터럽트 라인을 활성화하여 응답성이 뛰어난 이벤트 기반 프로그래밍을 가능하게 합니다. 사용자 지정 핸들러는 다음을 통해 이러한 인터럽트와 연결될 수 있습니다.
API에 정의된 HAL_GPIO_EXTI_Rising_Callback 함수입니다. 이 소프트웨어에는 ST_ISO_BoardConfigure 함수를 통해 인터럽트 모드에서 GPIO 핀을 초기화하고 EXTI IRQ 핸들러에서 특정 동작을 구성하는 기능이 포함되어 있습니다. 이를 통해 사용자는 보드가 외부 이벤트에 어떻게 반응하는지 사용자 정의하여 다양한 오류 조건 및 트리거를 효과적으로 관리할 수 있습니다.

아피스
X-CUBE-ISO1 소프트웨어 API는 PWM 신호 생성 및 GPIO 동작을 포함하여 X-NUCLEO-ISO1A1 보드를 제어하고 모니터링하는 포괄적인 기능 세트를 제공합니다. 이 API는 다양한 애플리케이션에 쉽게 통합되고 사용할 수 있도록 설계되어 보드 기능에 대한 유연성과 제어력을 제공합니다.

X-CUBE-ISO1 소프트웨어 API는 BSP/ISO1A1 폴더에 정의되어 있습니다. 함수 앞에는 ST_ISO라는 접두사가 붙습니다. 이 API는 iso1a1.c와 pwm_api.c를 통해 애플리케이션에서 확인할 수 있습니다. files는 상수, 자료 구조, 함수의 조합입니다.
Samp펌웨어 애플리케이션은 이러한 API를 활용하여 이러한 기능의 가능한 사용법을 보여줍니다.

X-CUBE-ISO1 소프트웨어 패키지는 두 가지 API 세트를 제공합니다.

  • ISO1A1 API
  • PWM API

ISO1A1 API
ISO1A1 API는 iso1a1.h 및 iso1a1.c에 정의되어 있습니다. files. GPIO 입출력 작업 및 오류 감지를 포함하여 ISO1A1 보드를 구성하고 제어하는 ​​기능을 제공합니다.

주요 기능

  • ST_ISO_BoardConfigureDefault: 기본 GPIO 구성으로 보드의 IO 포트를 구성합니다.
  • ST_ISO_BoardConfigure: 보드의 입력 및 출력 포트 모드를 구성합니다.
  • ST_ISO_BoardInit: 보드 하드웨어를 초기화합니다.
  • ST_ISO_BoardMapInit: 채널 핸들 구성에 따라 보드 기능을 초기화합니다.
  • ST_ISO_GetFWVersion: 현재 펌웨어 버전을 반환합니다.
  • ST_ISO_GetChannelHandle: 지정된 채널 이름에 대한 채널 핸들을 검색합니다.
  • ST_ISO_InitGPIO: 지정된 모듈 ID로 지정된 GPIO 핀을 초기화합니다.
  • 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는 pwm_api.h 및 pwm_api.c에 정의되어 있습니다. files. 특정 핀에 대한 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 함수를 각각 호출한 후 ST_ISO_Start_PWM_Signal 함수를 호출하여 PWM 신호를 시작하고 ST_ISO_Stop_PWM_Signal을 호출하여 중지할 수 있습니다.

이 함수는 해당 핀 이름과 사용 가능한 타이머를 사용하여 호출해야 하며, 자세한 내용은 표 3에 나와 있습니다. 다양한 출력 채널은 서로 다른 주파수와 듀티 사이클로 설정할 수 있습니다. 주파수나 듀티 사이클을 변경해도 다른 채널에는 영향을 미치지 않으며 동일하게 유지됩니다.
사용자가 사용할 수 있는 API에 대한 자세한 기술 정보는 컴파일된 HTML에서 확인할 수 있습니다. file 모든 기능과 매개변수가 완전히 설명되어 있는 소프트웨어 패키지의 "Documentation" 폴더 내에 있습니다.

응용 프로그램 설명
데모 애플리케이션은 몇 가지 간단한 사용 사례를 구현합니다. st_iso_app 및 board_config files는 보드 및 해당 애플리케이션 기능을 설정하고 사용하는 데 중요한 역할을 합니다. 이러한 기능을 사용하기 전에 보드와 소프트웨어 구성이 서로 동기화되어 있는지 확인하십시오.

애플리케이션 함수(st_iso_app.h 및 st_iso_app.c)
애플리케이션 함수는 ST_ISO_APP 접두사로 시작하며, 사용자에게 표시되는 최상위 함수로, 해당 구현을 위해 API 함수를 호출합니다. 애플리케이션 함수는 main.c 파일에서 호출할 수 있습니다. file 그들의 기능을 위해.

  • 사용 사례 선택: 사용자는 st_iso_app.c에서 원하는 사용 사례 매크로의 주석 처리를 제거할 수 있습니다. filemain.c에서 호출되는 ST_ISO_APP_SelectUseCaseMacro() 함수는 해당 유스 케이스를 초기화하고, ST_ISO_APP_SelectedFunction() 함수는 main.c에서 이를 구현합니다. 이 방식을 사용하면 매크로 정의만 수정하여 운영 모드를 쉽게 구성할 수 있으며, 선택된 유스 케이스에 따라 적절한 기능이 실행되도록 할 수 있습니다. 기본적으로 DIDO 유스 케이스가 선택되어 있으므로 사용자는 코드를 변경하지 않고도 구현할 수 있습니다.
  • 디지털 입력에서 디지털 출력으로 미러링(ST_ISO_APP_UsecaseDIDO): 이 함수는 모든 입력 채널의 상태를 읽고 모든 출력 채널에 동일한 상태를 기록합니다. 디지털 입력을 디지털 출력으로 미러링하는 데 유용합니다.
  • UART를 사용한 디지털 입력-디지털 출력 미러링(ST_ISO_APP_DIDOandUART): 이 함수는 ST_ISO_APP_UsecaseDIDO 함수와 유사하게 디지털 입력을 디지털 출력으로 미러링합니다. 또한, Nucleo 장치의 UART 인터페이스를 통해 보드 상태를 전송하여 상태를 확인할 수 있도록 합니다. viewTera Term과 같은 애플리케이션을 사용하여 직렬 포트로 전송했습니다.
  • 테스트 케이스 함수(ST_ISO_APP_TestCase): 이 함수는 보드 구성에 따라 일련의 테스트와 동작을 수행합니다. 오류 상태를 확인하고, 두 개의 디지털 입력 채널 상태를 읽고, 해당 값에 따라 동작을 수행합니다. 이 함수는 보드의 성능과 기능을 빠르게 평가하고 다양한 LED 패턴을 통해 시각적 피드백을 얻는 데 도움이 됩니다. board_config.h 파일에 HEARTBEAT_LED 매크로가 포함되어 있는지 확인하십시오. file 적절한 LED 패턴을 관찰하도록 설명되어 있습니다.
  • PWM 생성(ST_ISO_APP_PWM _OFFSET): 이 함수는 두 출력 채널 모두에서 1Hz 주파수와 50% 듀티 사이클로 PWM 신호를 시작합니다. PWM 신호를 초기화하고, 주파수와 듀티 사이클을 설정한 후, 지정된 보드 ID에 대한 PWM 신호를 시작합니다. PWM 신호는 두 채널 간에 오프셋을 두고 생성되므로 위상이 일치하지 않습니다.
  • 오류 감지 테스트(ST_ISO_APP_FaultTest): 이 함수는 스마트 출력 모듈 IPS1025의 내장 진단 핀을 폴링 또는 인터럽트 모드로 구동하여 오류 감지를 평가합니다. 오류 감지 모드를 설정하고, 오류 감지를 초기화하고, 선택된 모드에 따라 오류 상태 구조를 업데이트합니다. 이 함수는 오류를 효과적으로 감지하고 처리하여 보드의 신뢰성과 안전성을 보장하는 데 필수적입니다. 폴링 모드에서는 타이머를 통해 오류 상태가 매초 업데이트되고 defaultBoardFaultStatus 또는 alternateBoardFaultStatus 구조에 반영됩니다. 인터럽트 모드에서는 오류가 발생할 때만 오류 상태가 업데이트되고, 소프트웨어가 해당 출력 포트를 초기화합니다.
  • PWM 변동 테스트(ST_ISO_APP_PwmVariationTest): 이 기능은 보드 구성에 따라 다양한 출력 채널에서 PWM(펄스 폭 변조) 신호의 변동을 테스트하도록 설계되었습니다. 기본 및 대체 보드 구성 모두에 대해 PWM 신호를 초기화하고 주파수를 100Hz로, 초기 듀티 사이클을 0%로 설정합니다. 그런 다음 듀티 사이클을 0%에서 100%까지 5%씩 변동시키고, 100%에서 0%까지 5%씩 감소시킵니다. 각 단계 사이에는 2초의 지연 시간이 있습니다. 이렇게 제어된 변동을 통해 기본 보드의 경우 QA_0 및 QA_1 채널, 대체 보드의 경우 QA_0_ALT 및 QA_1_ALT 채널에서 PWM 신호 동작을 관찰하고 평가할 수 있습니다.

이러한 구성을 따르고 제공된 애플리케이션 기능을 활용하면 다양한 데모 사용 사례에 맞게 X-NUCLEO-ISO1A1 보드를 효과적으로 설정하고 사용할 수 있습니다.

시스템 설정 가이드

하드웨어 설명

STM32 Nucleo 플랫폼
STM32 Nucleo 개발 보드는 사용자가 STM32 마이크로컨트롤러 라인으로 솔루션을 테스트하고 프로토타입을 구축할 수 있는 저렴하고 유연한 방법을 제공합니다.
Arduino® 연결 지원 및 ST morpho 커넥터를 통해 다양한 전문 확장 보드를 선택하여 STM32 Nucleo 오픈 개발 플랫폼의 기능을 쉽게 확장할 수 있습니다.

STM32 Nucleo 보드는 ST-LINK/V2-1 디버거/프로그래머를 통합하므로 별도의 프로브가 필요하지 않습니다.
STM32 Nucleo 보드는 다양한 패키지 소프트웨어와 함께 포괄적인 STM32 소프트웨어 HAL 라이브러리와 함께 제공됩니다.amp레.

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-8

STM32 Nucleo 보드에 대한 정보는 다음에서 제공됩니다. www.st.com/stm32nucleo

X-NUCLEO-ISO1A1 확장 보드
X-NUCLEO-ISO1A1은 STM32 Nucleo 보드를 확장하고 마이크로 PLC 기능을 제공하도록 설계된 절연형 산업용 입출력을 갖춘 평가 보드입니다. GPIO 인터페이스 충돌을 방지하기 위해 확장 보드에서 적절한 점퍼를 선택하여 X-NUCLEO-ISO1A1 보드 두 개를 STM32 Nucleo 보드 위에 함께 적층할 수 있습니다. UL1577 인증 디지털 아이솔레이터 STISO620과 STISO621은 로직과 프로세스 측 구성 요소 간의 절연을 제공합니다. 프로세스 측의 두 개의 전류 제한형 하이사이드 입력은 CLT03-2Q3을 통해 구현됩니다. CLT03-2Q3은 IEC61000-4-2, IEC61000-4-4, IEC61000-4-5와 같은 표준을 충족하도록 설계된 산업 환경에 대한 보호, 절연 및 무전력 상태 표시 기능을 제공합니다. 하이사이드 스위치 IPS1025H-32/HQ-32는 각각 진단 및 스마트 구동 기능을 통해 최대 5.6A의 보호 출력을 제공합니다. 이 스위치는 용량성, 저항성 또는 유도성 부하를 구동할 수 있습니다. X-NUCLEO-ISO1A1은 X-CUBE-ISO1 소프트웨어 패키지를 사용하여 온보드 IC를 신속하게 평가할 수 있도록 지원합니다.

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-9

하드웨어 설정
다음 하드웨어 구성 요소가 필요합니다.

  1. STM32 Nucleo 개발 플랫폼 71개(제안 주문 코드: NUCLEO-GOXNUMXRB)
  2. 산업용 디지털 출력 확장 보드 1개(주문 코드: X-NUCLEO-ISO1AXNUMX)
  3. STM32 Nucleo를 PC에 연결하기 위한 USB Type A to Micro USB 케이블 XNUMX개
  4. X-NUCLEO-ISO24A1 확장 보드에 전원을 공급하기 위한 외부 전원 공급 장치(1V)와 관련 전선입니다.

소프트웨어 설정
X-NUCLEO-ISO32A1 확장 보드가 장착된 STM1 Nucleo용 애플리케이션을 만드는 데 적합한 개발 환경을 설정하려면 다음 소프트웨어 구성 요소가 필요합니다.

  • X-CUBE-ISO1: X-NUCLEO-ISO32A1 보드를 사용해야 하는 애플리케이션 개발 전용 STM1Cube 확장 보드입니다. X-CUBE-ISO1 펌웨어 및 관련 문서는 다음에서 확인할 수 있습니다. www.st.com
  • 개발 툴체인 및 컴파일러: STM32Cube 확장 소프트웨어는 다음 세 가지 환경을 지원합니다.
    • ARM®용 IAR Embedded Workbench(IAR-EWARM) 툴체인
    • 진짜View 마이크로컨트롤러 개발 키트(MDK-ARM-STM32) 툴체인
    • STM32CubeIDE.

보드 설정
보드는 하드웨어 사용 설명서(UM3483)에 명시된 적절한 점퍼 설정으로 구성되어야 합니다. 본 지침을 주의 깊게 준수하는 것은 정상적인 작동을 보장하고 잠재적인 문제를 방지하는 데 필수적입니다.

시스템 설정 가이드
이 섹션에서는 STM32 Nucleo, NUCLEO-G071RB 보드와 X-NUCLEO-ISO1A1 확장 보드에서 애플리케이션을 개발하고 실행하기 전에 다양한 하드웨어 부분을 설정하는 방법을 설명합니다.

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-10

STMicroelectronics-UM3469-X-CUBE-ISO1-소프트웨어 확장-11

X-CUBE-ISO1 확장 패키지 설정
X-NUCLEO-ISO1A1은 보드 구성에 따라 특정 점퍼 위치로 구성해야 합니다. 자세한 내용은 하드웨어 설명서를 참조하십시오.

  • 1단계. STM1 Nucleo 위에 Morphoconnector를 통해 X-NUCLEO-ISO1A32 확장 보드를 꽂습니다.
    두 개의 보드를 겹쳐서 사용하는 경우 그림 11과 같이 쌓으세요.
  • 2단계. USB 커넥터 CN32을 통해 USB 케이블로 STM1 Nucleo 보드를 PC에 연결하여 보드에 전원을 공급합니다.
  • 3단계. J1을 1V DC 전원 공급 장치에 연결하여 X-NUCLEO-ISO1A24 확장 보드의 전원을 켜세요. 여러 개의 보드를 겹쳐서 사용하는 경우, 두 보드 모두에 전원이 공급되는지 확인하세요.
  • 4단계. 원하는 툴체인(Keil의 MDK-ARM, IAR의 EWARM 또는 STM32CubeIDE)을 엽니다.
  • 5단계. 소프트웨어 프로젝트를 열고 board_config.h에 필요한 변경 사항을 적용합니다. file 사용되는 보드의 구성에 따라.
  • 6단계. st_iso_app.c에 적절한 사용 사례 매크로를 설정합니다. file 또는 main.c에서 ST_ISO_APP_SelectUseCase 함수를 사용하여 필요한 사용 사례를 호출합니다. file 다른 원하는 기능과 함께.
  • 7단계. 모든 것을 컴파일하기 위해 프로젝트를 빌드합니다. file컴파일된 코드를 STM32 Nucleo 보드의 메모리에 로드합니다.
  • 8단계. STM32 Nucleo 보드에서 코드를 실행하고 예상되는 동작을 확인합니다.

개정 내역
표 4. 문서 개정 내역

날짜 개정 변화
14-2025-XNUMX 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 소프트웨어 확장, 소프트웨어 확장

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *