Expansão de software STMicroelectronics UM3469 X-CUBE-ISO1

Introdução
O pacote de software de expansão X-CUBE-ISO1 para o STM32Cube roda no STM32 e inclui firmware para o X-NUCLEO-ISO1A1. O software oferece uma solução fácil de usar para o desenvolvimento de um dispositivo PLC básico fornecido pelo X-NUCLEO. A expansão é baseada na tecnologia de software do STM32Cube para facilitar a portabilidade entre diferentes microcontroladores STM32.
O software vem com uma implementação executada na placa de expansão X-NUCLEO-ISO1A1 conectada a uma placa de desenvolvimento NUCLEO-G071RB (ou uma NUCLEO-G0B1RE ou uma NUCLEO-G070RB). A partir de agora, neste documento, apenas a NUCLEO-G071RB será mencionada para simplificar.
A placa X-NUCLEO-ISO1A1 foi projetada para suportar o empilhamento de duas placas com configurações de jumper apropriadas para estender os recursos de entrada e saída.
Acrônimos e abreviações
Tabela 1. Lista de siglas
| Acrônimo | Descrição |
| CLP | Controlador lógico programável |
| API | Interface de programação de aplicativos |
| PWM | Modulação de largura de pulso |
| GPIO | Entrada/saída de uso geral. |
| OBRIGADO | Camada de abstração de hardware |
| PC | Computador pessoal |
| FW | Firmware |
O que é STM32Cube?
O STM32Cube™ representa a iniciativa da STMicroelectronics para facilitar a vida dos desenvolvedores, reduzindo o esforço, o tempo e o custo de desenvolvimento. O STM32Cube abrange o portfólio STM32.
A versão 32.x do STM1Cube inclui:
- STM32CubeMX, uma ferramenta de configuração de software gráfico que permite a geração de código de inicialização C usando assistentes gráficos.
- Uma plataforma de software embarcada abrangente específica para cada série (como o STM32CubeG0 para a série STM32G0), que inclui:
- o software de camada de abstração incorporado STM32Cube HAL, garantindo portabilidade máxima em todo o portfólio STM32
- um conjunto consistente de componentes de middleware, como RTOS, USB, TCP/IP e gráficos
- todos os utilitários de software incorporados com um conjunto completo de examples.
Arquitetura STM32Cube
A solução de firmware STM32Cube é construída em torno de três níveis independentes que podem interagir facilmente entre si, conforme descrito no diagrama abaixo.

Expansão de software X-CUBE-ISO1 para STM32Cube
Sobreview
O firmware para a placa de expansão de entrada/saída industrial isolada X-NUCLEO-ISO1A1, desenvolvida em ambientes e bibliotecas STM32, utiliza o MCU de alto desempenho das placas STM32 Nucleo para gerenciar entradas e saídas digitais com diagnóstico integrado, além de limite de corrente dinâmico e geração de sinais PWM. Oferece configuração e controle abrangentes da placa, incluindo estruturas para condições padrão e alternativas, macros para definir valores pré-scaler e definições para portas e pinos GPIO.
Ele suporta vários sampcasos de uso de aplicação, como espelhamento de entrada para saída digital, comunicação UART por meio da placa Nucleo, detecção de falhas, casos de teste e geração de PWM, que podem ser usados diretamente e podem ser facilmente personalizados e expandidos.
A API fornece um conjunto robusto de funções para controle de entrada/saída digital, detecção de falhas e atualizações de status da placa, com definições de configuração para operar duas placas simultaneamente em modos diferentes. Funções específicas da API estão disponíveis para inicializar, iniciar, parar e configurar sinais PWM para canais de saída digital.
O pacote de suporte da placa inclui funções para controlar e monitorar os pinos GPIO interligados ao IPS1025H-32 e ler o estado dos pinos GPIO interligados ao CLT03-2Q3 por meio de um isolador digital.
A configuração e a inicialização são baseadas no STM32CubeMX, com desenvolvimento e depuração suportados pelas ferramentas STM32CubeIDE, IAR Systems e Keil®.
Arquitetura
O firmware do X-NUCLEO-ISO1A1 pode ser dividido em vários blocos funcionais distintos, cada um responsável por vários aspectos das operações do sistema:

- Configuração e controle da placa:
- O board_config.h file Contém macros para configurar a placa para operar em condições padrão ou alternativas, ou ambas. Também inclui definições para valores pré-scaler e portas e pinos GPIO.
- Este bloco garante que a placa esteja configurada corretamente para as condições operacionais desejadas e que todas as configurações de hardware necessárias estejam em vigor.
- Casos de uso do aplicativo:
- O st_iso_app.h e o st_iso_app.c files contêm casos de uso de aplicativos projetados para testar várias funcionalidades da placa.
- Esses casos de uso incluem espelhamento de entrada digital para saída, testes de detecção de falhas e geração de sinal PWM.
- ExampSão fornecidas configurações para executar duas placas simultaneamente em modos diferentes, demonstrando a versatilidade e a flexibilidade do firmware.
- Funções da API:
- O iso1a1.h e iso1a1.c files fornecem um conjunto abrangente de APIs para dar suporte a diversas funcionalidades.
- Essas APIs incluem funções para controle de entrada/saída digital, detecção de falhas e atualizações de status da placa.
- As APIs são projetadas para serem simples e intuitivas, facilitando a interação dos usuários com o quadro e a execução das operações necessárias.
- Controle de sinal PWM:
- O pwm_api.h e o pwm_api.c files contêm funções de API específicas relacionadas à geração de sinal PWM.
- Essas funções permitem inicializar, configurar, iniciar e parar sinais PWM para canais de saída digital.
- A funcionalidade PWM não é a opção padrão. A configuração da placa foi modificada para habilitá-la. Consulte a Seção 3.5: APIs para obter mais detalhes.
- Pacote de suporte ao conselho:
- O pacote de suporte do conselho inclui files para controlar e monitorar os pinos GPIO interligados ao IPS1025H-32 e ler o estado dos pinos GPIO interligados ao CLT03-2Q3.
- O ips1025h_32.h e ips1025h_32.c files fornecem funções para definir, limpar e detectar falhas nos pinos GPIO interligados ao IPS1025H-32.
- O clt03_2q3.h e clt03_2q3.c files fornecem funções para ler o estado dos pinos GPIO interligados com CLT03-2Q3.
O firmware de demonstração implementa diversos casos de uso simples para demonstrar os recursos do sistema. Esses casos de uso e APIs de usuário são executados de forma coordenada para garantir uma operação tranquila e resultados precisos. A arquitetura foi projetada para ser facilmente expansível, permitindo que os usuários adicionem novas funcionalidades e casos de uso conforme necessário. A configuração padrão é fornecida para executar uma placa com E/S industriais digitais. A configuração do jumper também precisa estar no modo padrão, conforme descrito na Tabela 2. O espelhamento de entrada e saída digital (DIDO) é o caso de uso padrão do aplicativo de firmware.
Estrutura de pastas

As seguintes pastas estão incluídas no pacote de software:
- A documentação contém um HTML compilado file gerado a partir do código-fonte, detalhando os componentes de software e APIs.
- Drivers contém:
- uma pasta STM32Cube HAL, localizada nas subpastas STM32G0xx_HAL_Driver. Estas files não são descritos aqui porque não são específicos do software X-CUBE-ISO1, mas vêm diretamente da estrutura STM32Cube.
- uma pasta CMSIS que contém o padrão de interface de software do microcontrolador Cortex® files de Arm. Esses files são camadas de abstração de hardware independentes de fornecedor para a série de processadores Cortex®-M. Esta pasta também permanece inalterada desde a estrutura STM32Cube.
- uma pasta BSP contendo os códigos para os componentes IPS1025H-32 e CLT03-2Q3 e APIs relacionadas ao X-NUCLEO-ISO1A1.
- O aplicativo contém a pasta do usuário que contém o main.c file, o caso de uso do aplicativo file, st_iso_app.c e board_config.h file, fornecido para a plataforma NUCLEO-G071RB.
Pasta BSP
O software X-CUBE-ISO1 usa dois componentes diferentes files, que estão dentro do BSP/Componentes:
IPS1025
O ips1025h_32.h e ips1025h_32.c fileFornece uma implementação abrangente de driver para os pinos GPIO interligados ao IPS1025H-32, incluindo funcionalidade completa para controlar todos os pinos e detectar falhas. fileImplementa funções para inicializar o dispositivo, definir e limpar o status do canal, detectar condições de falha e gerenciar a funcionalidade PWM. O driver suporta múltiplos dispositivos e canais, com recursos completos para canais individuais ou em grupo.
CLT03
O clt03_2q3.h e clt03_2q3.c fileImplementamos um driver completo para os pinos GPIO interligados ao CLT03-2Q3, com capacidade completa para leitura de todos os estados dos pinos. O driver fornece funções para inicializar o dispositivo, ler o status de cada canal e obter informações de status para todos os canais simultaneamente. Ele suporta múltiplas configurações de dispositivos e mantém o estado interno para um gerenciamento eficaz dos canais.
As APIs do software X-CUBE-ISO1 são divididas em duas fontes principais files, que estão dentro da subpasta ISO1A1:
ISO1A1
A ISO1A1 files abrangem um conjunto abrangente de funções de API projetadas para configuração de placas, interação de componentes e gerenciamento de falhas. Essas funções facilitam as operações de leitura e escrita, detecção e atualização de falhas, e incluem vários utilitários auxiliares para dar suporte às funções principais da API. Além disso, o files fornecem funcionalidade para controle de LED, inicialização de GPIO, tratamento de interrupção e comunicação UART.
API PWM
A API PWM fornece funções para inicializar, configurar, iniciar e interromper sinais PWM. Ela permite definir a frequência PWM e o ciclo de trabalho para pinos de temporizador específicos, garantindo controle preciso sobre as operações PWM.
Pasta de aplicação
A pasta do aplicativo contém o principal files necessários para o firmware, incluindo cabeçalhos e fonte files. Abaixo está uma descrição detalhada do files nesta pasta:
- board_config.h: Macros de configuração para a placa.
- main.c: Programa principal (código do example que é baseado na biblioteca para ISO1A1).
- st_iso_app.c: Funções de aplicação para testes e configuração de placas.
- stm32g0xx_hal_msp.c: rotinas de inicialização HAL.
- stm32g0xx_it.c: Manipulador de interrupção.
- syscalls.c: Implementações de chamadas de sistema.
- sysmem.c: Gerenciamento de memória do sistema.
- system_stm32g0xx.c: Inicialização do sistema.
Recursos necessários de software
O dispositivo Nucleo controla e se comunica com a placa X-NUCLEO-ISO1A1 via GPIOs. Isso requer o uso de vários GPIOs para entrada, saída e detecção de falhas dos dispositivos de E/S industriais contidos na placa X-NUCLEO-ISO1A1. Consulte o manual do usuário de hardware UM3483 para obter mais detalhes e as configurações de jumpers.
Configuração da placa (board_config.h)
O board_config.h file Define os recursos utilizados e as macros de configuração para configurar o software de acordo com a configuração da placa. Ele gerencia até duas placas (como o empilhamento de duas placas).
A configuração PADRÃO do software está alinhada com a placa de expansão X-NUCLEO-ISO1A1, com seus jumpers nas posições padrão. Para configurar o software para X-NUCLEO-ISO1A1 em sua configuração padrão, descomente a macro BOARD_ID_DEFAULT no arquivo board_config.h. file.
A configuração ALTERNATE do software é definida descomentando a macro BOARD_ID_ALTERNATE no board_config.h file e alterando as posições dos jumpers na placa.
Para usar duas placas simultaneamente em uma configuração de empilhamento, descomente as macros BOARD_ID_DEFAULT e BOARD_ID_ALTERNATE e certifique-se de que os jumpers de uma placa estejam na posição padrão e os da outra na posição alternativa. Observe que ter as duas placas na mesma configuração (sejam ambas na configuração padrão ou na alternativa) não é recomendado e pode resultar em comportamento indesejado.
Ao executar apenas uma placa, certifique-se de que o software esteja configurado para apenas uma configuração e que a macro correspondente à outra configuração esteja comentada.

Pré-incrustantes
Podemos configurar os valores do pré-escalador em board_config.h para atingir diferentes faixas de frequência para a saída PWM, definindo as macros apropriadas. Para usar um valor pré-escalador, descomente a macro correspondente e comente as demais. Por padrão, DEFAULT_PRESCALAR é usado.
- PRESCALIZADOR_1
- PRESCALIZADOR_2
- PRESCALIZADOR_PADRÃO
Os valores do pré-escalador são usados apenas quando temporizadores estão em uso e não são necessários para nenhuma operação básica de E/S. Os valores das macros pré-escaladoras e suas faixas de frequência correspondentes podem ser consultados na documentação do código ou no próprio código.
LED de batimentos cardíacos
Podemos configurar o LED verde do usuário, D7, para piscar em modo de pulsação como um teste de conexão correta à placa NUCLEO-G071RB. A macro HEARTBEAT_LED, quando descomentada, pisca o LED verde no X-NUCLEO-ISO1A1 quando conectado à placa NUCLEO. Ele permanece aceso por 1 segundo e apagado por 2 segundos, com a temporização controlada por temporizadores. Quando não estiver em uso ou quando qualquer função envolvendo LEDs estiver sendo chamada, a macro deve ser descomentada.
Configuração de entrada e saída GPIO
Cada placa X-NUCLEO-ISO1A1 é equipada com duas portas de entrada e duas portas de saída. Os recursos da placa podem ser expandidos empilhando duas placas X-NUCLEO-ISO1A1 uma sobre a outra, permitindo o uso de quatro portas de entrada e quatro portas de saída digitais. O software fornecido inclui APIs abrangentes que facilitam a leitura, configuração e limpeza das portas. Além disso, as APIs permitem a configuração, leitura ou limpeza simultânea de todas as portas. Informações detalhadas sobre as funções da API estão disponíveis na documentação do código, bem como na seção API deste documento.

Aqui, o prefixo DI indica a porta de entrada digital e DO indica a porta de saída digital. Para configurações alternativas, o software usa as mesmas convenções de nomenclatura com o sufixo _alt anexado.
A tabela a seguir detalha as macros GPIO definidas no software correspondentes a várias portas de E/S:
Tabela 2. GPIOs alocados para configurações de software padrão e alternativas
| Nome | Função | Configuração padrão | Configuração alternativa |
| PIN DE ENTRADA | Pino de entrada 1 | GPIOC, IA0_IN_1_PIN | GPIOD, IA0_IN_1_PIN |
| Pino de entrada 2 | GPIOD, IA1_IN_2_PIN | GPIOC, IA1_IN_1_PIN | |
| PINO DE SAÍDA | Pino de saída 1 | GPIOC, QA0_CNTRL_1_PIN | GPIOD, QA0_CNTRL_1_PIN |
| Pino de saída 2 | GPIOC, QA1_CNTRL_2_PIN | GPIOC, QA1_CNTRL_2_PIN | |
| PINO DE FALHA | Pino de falha 1 | GPIOC, FLT1_QA0_2_OT_PIN | GPIOD, FLT1_QA0_1_OT_PIN |
| Pino de falha 2 | GPIOC, FLT2_QA0_2_OL_PIN | GPIOD, FLT2_QA0_1_OL_PIN | |
| Pino de falha 3 | GPIOC, FLT1_QA1_2_OT_PIN | GPIOC, FLT1_QA1_1_OT_PIN | |
| Pino de falha 4 | GPIOC, FLT2_QA1_1_OL_PIN | GPIOD, FLT2_QA1_2_OL_PIN | |
| MACRO DE CONFIGURAÇÃO | ID_DA_PLACA_PADRÃO | ID_DA_PLACA_ALTERNATIVA |
Temporizadores e PWM
Temporizadores podem ser usados no firmware X-CUBE-ISO1 para gerar sinais PWM para pinos específicos. Por padrão, os temporizadores não são inicializados, exceto o TIM3. Os respectivos temporizadores devem ser inicializados antes da geração dos sinais PWM, e as respectivas portas de saída devem ser inicializadas no modo PWM.
Para operações normais de entrada/saída GPIO, não há necessidade de configurar nenhum temporizador ou porta de saída, pois isso já é feito por padrão. No entanto, se os pinos de saída estiverem configurados no modo PWM, precisamos reconfigurá-los no modo GPIO para que sejam usados como pinos GPIO.
Observação: Quando os pinos de saída estão sendo usados para geração de PWM, a saída GPIO é desabilitada e ambas as funcionalidades não podem ser implementadas simultaneamente. Para reabilitar a GPIO após o uso de PWM, pode-se chamar a função de API ST_ISO_BoardConfigureDefault() ou ST_ISO_InitGPIO() para configurar todas as portas como GPIO de uma só vez, ou ST_ISO_Init_GPIO() com uma porta e pino GPIO específicos.
Como mencionado acima, o software também utiliza um temporizador por padrão, o TIM3, que é usado para a temporização do LED do usuário, do relógio e da implementação da temporização UART. Ele é configurado para um período de 1 segundo por padrão.
A tabela a seguir detalha os temporizadores disponíveis para cada pino em nosso código:
Tabela 3. Temporizadores disponíveis para cada pino
| Nome do pino | Representação de software | Temporizador | Canal do temporizador | função alternativa |
| 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 |
Utilitários adicionais do firmware
O firmware inclui utilitários adicionais para aprimorar a funcionalidade da placa de avaliação X-NUCLEO-ISO1A1. Alguns deles são descritos abaixo.
UART
O recurso de comunicação UART permite o monitoramento e a depuração em tempo real do status da placa por meio de utilitários de PC, como TeraTerm, PuTTY e outros aplicativos semelhantes. O software permite a transmissão de dados UART através da UART presente na placa NUCLEO-G071RB. A função `ST_ISO_UART` envia informações detalhadas sobre o status da placa via UART, incluindo tempo de atividade do sistema, configuração de firmware e status de falhas. Esses dados podem ser viewed usando qualquer aplicativo de porta serial, como o TeraTerm. A função `ST_ISO_APP_DIDOandUART` combina operações de entrada/saída digital com comunicação UART, transmitindo o status de todos os canais de entrada e saída em intervalos especificados. Abaixo estão as configurações e comoampde como os dados aparecem no TeraTerm. O nome da porta pode variar dependendo do sistema e da porta serial utilizados.


Configuração do modo de pino IO
O utilitário de configuração do modo de pinos de E/S permite que os usuários definam as portas de entrada e saída da placa usando a função ST_ISO_BoardConfigure(). Esta função permite a configuração de duas portas de saída (QA0, QA1) e duas portas de entrada (IA0, IA1) para o modo de Entrada/Saída, modo de saída PWM ou modo de entrada de interrupção. Ajustando os parâmetros e chamando esta função, os usuários podem personalizar facilmente a configuração de E/S da placa para atender a necessidades específicas.
No modo Entrada/Saída, o utilitário inicializa os pinos GPIO para operações digitais de uso geral. No modo de saída PWM, ele configura os temporizadores para um controle preciso do sinal PWM. No modo de entrada de interrupção, o utilitário configura os pinos para lidar com interrupções, permitindo uma programação responsiva orientada a eventos.
Tratamento de interrupções
Para lidar com sinais de FALHA, o software habilita as linhas de interrupção associadas, permitindo uma programação responsiva orientada a eventos. Um manipulador personalizado pode ser associado a essas interrupções por meio do
Função HAL_GPIO_EXTI_Rising_Callback definida na API. O software inclui recursos para inicializar pinos GPIO em modo de interrupção por meio da função ST_ISO_BoardConfigure e configurar ações específicas nos manipuladores de IRQ EXTI. Isso permite que os usuários personalizem a forma como a placa responde a eventos externos, garantindo que ela possa gerenciar com eficácia diversas condições de falha e gatilhos.
APIs
A API do software X-CUBE-ISO1 fornece um conjunto abrangente de funções para controlar e monitorar a placa X-NUCLEO-ISO1A1, incluindo geração de sinais PWM e operações GPIO. A API foi projetada para ser fácil de usar e integrar em diversas aplicações, proporcionando flexibilidade e controle sobre a funcionalidade da placa.
A API do software X-CUBE-ISO1 é definida na pasta BSP/ISO1A1. Suas funções são prefixadas por ST_ISO. A API é visível para os aplicativos por meio de iso1a1.c e pwm_api.c. files é uma combinação de constantes, estruturas de dados e funções.
SampOs aplicativos de firmware utilizam essas APIs para mostrar alguns dos possíveis usos dessas funções.
O pacote de software X-CUBE-ISO1 fornece dois conjuntos de APIs:
- API ISO1A1
- API PWM
API ISO1A1
A API ISO1A1 é definida em iso1a1.h e iso1a1.c files. Ele fornece funções para configurar e controlar a placa ISO1A1, incluindo operações de entrada/saída GPIO e detecção de falhas.
Principais funções
- ST_ISO_BoardConfigureDefault: Configura as portas de E/S da placa com a configuração GPIO padrão.
- ST_ISO_BoardConfigure: Configura o modo das portas de entrada e saída da placa.
- ST_ISO_BoardInit: Inicializa o hardware da placa.
- ST_ISO_BoardMapInit: Inicializa a funcionalidade da placa com base na configuração dos identificadores do canal.
- ST_ISO_GetFWVersion: Retorna a versão atual do firmware.
- ST_ISO_GetChannelHandle: recupera o identificador de canal para um nome de canal especificado.
- ST_ISO_InitGPIO: Inicializa o pino GPIO especificado com o ID do módulo fornecido.
- ST_ISO_InitInterrupt: Inicializa o pino GPIO especificado como uma interrupção com o ID do módulo fornecido.
- ST_ISO_EnableFaultInterrupt: Inicializa os pinos GPIO de falha no modo de interrupção.
- ST_ISO_SetChannelStatus: define o status de um canal especificado.
- ST_ISO_SetOne_DO: Define um único canal de saída digital.
- ST_ISO_ClearOne_DO: Limpa um único canal de saída digital.
- ST_ISO_WriteAllChannels: Grava dados em todos os canais de saída digital.
- ST_ISO_GetOne_DI: Obtém o status de um único canal de entrada digital.
- ST_ISO_ReadAllChannel: Lê o status de todos os canais de entrada.
- ST_ISO_ReadAllOutputChannel: Lê o status de todos os canais de saída.
- ST_ISO_ReadFaultStatus: Lê o status da falha de todas as portas de detecção de falhas.
- ST_ISO_ReadFaultStatusPolling: testa a detecção de falhas das placas no modo de pesquisa.
- ST_ISO_DisableOutputChannel: Desativa a saída para esse canal.
- ST_ISO_UpdateBoardStatusInfo: Atualiza as informações de status da placa.
- ST_ISO_UpdateFaultStatus: atualiza o status de falha de um canal específico.
- ST_ISO_BlinkLed: pisca o LED especificado com um atraso e contagem de repetições determinados.
- ST_ISO_UART: Envia informações de status da placa via UART.
- ST_ISO_SwitchInit: Inicializa os componentes do switch.
- ST_ISO_SwitchDeInit: Desinicializa a instância do switch.
- ST_ISO_DigitalInputInit: Inicializa os componentes de entrada digital.
- ST_ISO_DigitalInputDeInit: Desinicializa a instância de entrada digital.
API PWM
A API PWM é definida em pwm_api.h e pwm_api.c files. Ele fornece as seguintes funções para inicializar e controlar sinais PWM para pinos específicos.
- ST_ISO_Init_PWM_Signal: Inicializa os temporizadores e o pino específico para o sinal PWM.
- ST_ISO_Set_PWM_Frequency: define a frequência PWM para o pino específico.
- ST_ISO_Set_PWM_Duty_Cycle: define o ciclo de trabalho PWM para o pino específico.
- ST_ISO_Start_PWM_Signal: Inicia o sinal PWM no pino específico.
- ST_ISO_Stop_PWM_Signal: Interrompe o sinal PWM no pino específico.
Para iniciar um sinal PWM em um canal respectivo, primeiro chame a função ST_ISO_Init_PWM_Signal e, em seguida, defina a frequência e o ciclo de trabalho desejados chamando ST_ISO_Set_PWM_Frequency e
Funções ST_ISO_Set_PWM_Duty_Cycle respectivamente e então você pode iniciar o sinal PWM chamando a função ST_ISO_Start_PWM_Signal e parar chamando ST_ISO_Stop_PWM_Signal.
A função precisa ser chamada com o nome do pino correspondente e os temporizadores disponíveis, cujos detalhes foram fornecidos na tabela 3. Diferentes canais de saída podem ser configurados com diferentes frequências e ciclos de trabalho; alterar a frequência ou o ciclo de trabalho não afeta o outro, eles permanecem os mesmos.
Informações técnicas detalhadas sobre as APIs disponíveis para o usuário podem ser encontradas em um HTML compilado file localizado dentro da pasta “Documentação” do pacote de software onde todas as funções e parâmetros estão descritos detalhadamente.
Descrição da aplicação
O aplicativo de demonstração implementa vários casos de uso simples. O st_iso_app e o board_config fileOs componentes desempenham um papel crucial na configuração e utilização da placa e de suas funções de aplicação. Antes de usar essas funções, certifique-se de que a placa e a configuração do software estejam sincronizadas.
Funções de aplicação (st_iso_app.h e st_iso_app.c)
As funções do aplicativo são prefixadas por ST_ISO_APP; são as funções de nível superior visíveis ao usuário, que chamam as funções da API para sua implementação. As funções do aplicativo podem ser chamadas em main.c. file para seu funcionamento.
- Seleção de caso de uso: o usuário pode descomentar a macro do caso de uso desejado no st_iso_app.c fileA função ST_ISO_APP_SelectUseCaseMacro(), chamada em main.c, inicializa esse caso de uso, e a função ST_ISO_APP_SelectedFunction() o implementa em main.c. Essa abordagem permite uma configuração fácil do modo operacional, simplesmente modificando as definições de macro, garantindo que a funcionalidade apropriada seja executada com base no caso de uso selecionado. Por padrão, o caso de uso DIDO é selecionado e o usuário não precisa fazer nenhuma alteração no código para implementá-lo.
- Espelhamento de Entrada Digital para Saída Digital (ST_ISO_APP_UsecaseDIDO): Esta função lê o status de todos os canais de entrada e grava o mesmo status em todos os canais de saída. É útil para espelhar entradas digitais em saídas digitais.
- Espelhamento de Entrada Digital para Saída Digital com UART (ST_ISO_APP_DIDOandUART): Esta função espelha as entradas digitais para as saídas digitais, semelhante à função ST_ISO_APP_UsecaseDIDO. Além disso, transmite o status da placa através da interface UART no dispositivo Nucleo, permitindo que o status seja viewed em uma porta serial usando aplicativos como o Tera Term.
- Função de Caso de Teste (ST_ISO_APP_TestCase): Esta função executa uma série de testes e ações com base na configuração da placa. Ela verifica o status da falha, lê o status de dois canais de entrada digitais e executa ações com base em seus valores. Esta função ajuda a avaliar rapidamente o desempenho e a funcionalidade da placa e a obter feedback visual por meio de diferentes padrões de LED. Certifique-se da macro HEARTBEAT_LED em board_config.h. file é comentado para observar padrões de LED adequados.
- Geração PWM (ST_ISO_APP_PWM_OFFSET): Esta função inicia o sinal PWM em ambos os canais de saída com frequência de 1 Hz e ciclo de trabalho de 50%. Ela inicializa o sinal PWM, define a frequência e o ciclo de trabalho e inicia o sinal PWM para o ID de placa especificado. O sinal PWM é gerado com um deslocamento entre os dois canais e, portanto, eles não estão em fase.
- Teste de Detecção de Falhas (ST_ISO_APP_FaultTest): Esta função avalia a detecção de falhas acionando os pinos de diagnóstico integrados do módulo de saída inteligente IPS1025, tanto no modo de polling quanto no modo de interrupção. Ela configura o modo de detecção de falhas, inicializa a detecção de falhas e atualiza a estrutura de status de falhas com base no modo selecionado. Esta função é crucial para garantir a confiabilidade e a segurança da placa, detectando e tratando falhas de forma eficaz. No modo de polling, o status da falha é atualizado a cada segundo com a ajuda de um temporizador e é refletido na estrutura defaultBoardFaultStatus ou alternateBoardFaultStatus. No modo de interrupção, o status da falha é atualizado somente quando a falha ocorre, acionando o software para limpar a porta de saída correspondente.
- Teste de Variação PWM (ST_ISO_APP_PwmVariationTest): Esta função foi projetada para testar a variação dos sinais PWM (Modulação por Largura de Pulso) em diferentes canais de saída, com base na configuração da placa. Ela inicializa os sinais PWM para as configurações de placa padrão e alternativa, definindo sua frequência para 100 Hz e o ciclo de trabalho inicial para 0%. A função então varia o ciclo de trabalho de 0% a 100% em incrementos de 5% e de volta de 100% a 0% em decrementos de 5%, com um atraso de 2 segundos entre cada etapa. Essa variação controlada permite a observação e a avaliação do comportamento do sinal PWM nos canais QA_0 e QA_1 para a placa padrão e QA_0_ALT e QA_1_ALT para a placa alternativa.
Seguindo essas configurações e utilizando as funções do aplicativo fornecidas, você pode configurar e usar efetivamente a placa X-NUCLEO-ISO1A1 para vários casos de uso de demonstração.
Guia de configuração do sistema
Descrição do hardware
Plataforma STM32 Nucleo
As placas de desenvolvimento STM32 Nucleo fornecem uma maneira acessível e flexível para os usuários testarem soluções e construirem protótipos com qualquer linha de microcontroladores STM32.
O suporte de conectividade Arduino® e os conectores ST Morpho facilitam a expansão da funcionalidade da plataforma de desenvolvimento aberto STM32 Nucleo com uma ampla gama de placas de expansão especializadas para escolher.
A placa STM32 Nucleo não requer sondas separadas, pois integra o depurador/programador ST-LINK/V2-1.
A placa STM32 Nucleo vem com a biblioteca HAL do software STM32 abrangente, juntamente com vários pacotes de software ex.amples.

Informações sobre a placa STM32 Nucleo estão disponíveis em www.st.com/stm32nucleo
Placa de expansão X-NUCLEO-ISO1A1
A X-NUCLEO-ISO1A1 é uma placa de avaliação com entrada/saída industrial isolada, projetada para expandir a placa STM32 Nucleo e fornecer funcionalidade de micro-PLC. Duas das placas X-NUCLEO-ISO1A1 podem ser empilhadas sobre uma placa STM32 Nucleo com a seleção adequada de jumpers na placa de expansão para evitar conflitos nas interfaces GPIO. Os isoladores digitais STISO1577 e STISO620, com certificação UL621, fornecem isolamento entre os componentes lógicos e de processo. Duas entradas de alta corrente limitadas do lado do processo são realizadas através do CLT03-2Q3. O CLT03-2Q3 fornece proteção, isolamento e indicação de status sem energia para condições industriais, projetado para atender a normas como IEC61000-4-2, IEC61000-4-4 e IEC61000-4-5. Cada um dos interruptores de alta tensão IPS1025H-32/HQ-32 oferece saída protegida de até 5.6 A com recursos de diagnóstico e acionamento inteligente. Eles podem acionar cargas capacitivas, resistivas ou indutivas. O X-NUCLEO-ISO1A1 permite uma avaliação rápida dos circuitos integrados integrados usando o pacote de software X-CUBE-ISO1.

Configuração de hardware
Os seguintes componentes de hardware são necessários:
- Uma plataforma de desenvolvimento STM32 Nucleo (código de pedido sugerido: NUCLEO-GO71RB)
- Uma placa de expansão de saída digital industrial (código do pedido: X-NUCLEO-ISO1A1)
- Um cabo USB tipo A para Micro USB para conectar o STM32 Nucleo ao PC
- Uma fonte de alimentação externa (24 V) e os fios associados para alimentar a placa de expansão X-NUCLEO-ISO1A1.
Configuração do software
Os seguintes componentes de software são necessários para configurar um ambiente de desenvolvimento adequado para a criação de aplicativos para o STM32 Nucleo equipado com a placa de expansão X-NUCLEO-ISO1A1:
- X-CUBE-ISO1: uma expansão para o STM32Cube dedicada ao desenvolvimento de aplicações que requer o uso da placa X-NUCLEO-ISO1A1. O firmware X-CUBE-ISO1 e a documentação relacionada estão disponíveis em www.st.com
- Cadeia de ferramentas de desenvolvimento e compilador: o software de expansão STM32Cube suporta os três ambientes a seguir:
- Cadeia de ferramentas IAR Embedded Workbench para ARM® (IAR-EWARM)
- RealView Conjunto de ferramentas do kit de desenvolvimento de microcontrolador (MDK-ARM-STM32)
- STM32CubeIDE.
Configuração da placa
A placa deve ser configurada com os jumpers apropriados, conforme especificado no manual do usuário do hardware (UM3483). Seguir essas diretrizes cuidadosamente é essencial para garantir o funcionamento adequado e evitar possíveis problemas.
Guia de configuração do sistema
Esta seção descreve como configurar diferentes peças de hardware antes de desenvolver e executar um aplicativo na placa STM32 Nucleo, NUCLEO-G071RB com a placa de expansão X-NUCLEO-ISO1A1.


Configuração do pacote de expansão X-CUBE-ISO1
O X-NUCLEO-ISO1A1 deve ser configurado com as posições de jumper específicas, de acordo com a configuração da placa. Detalhes sobre isso podem ser encontrados no manual do hardware.
- Passo 1. Conecte a placa de expansão X-NUCLEO-ISO1A1 na parte superior do STM32 Nucleo por meio dos morfoconectores.
Se você estiver usando duas placas uma sobre a outra, empilhe-as como na Figura 11. - Passo 2. Conecte a placa STM32 Nucleo a um PC com o cabo USB através do conector USB CN1 para alimentar a placa.
- Passo 3. Ligue a(s) placa(s) de expansão X-NUCLEO-ISO1A1 conectando J1 à fonte de alimentação de 24 VCC. Se usar placas empilhadas, certifique-se de que ambas estejam energizadas.
- Passo 4. Abra sua cadeia de ferramentas preferida (MDK-ARM da Keil, EWARM da IAR ou STM32CubeIDE).
- Passo 5. Abra o projeto de software e faça as alterações necessárias no board_config.h file de acordo com a configuração da(s) placa(s) utilizada(s).
- Passo 6. Defina a macro de caso de uso apropriada em st_iso_app.c file ou chame o caso de uso necessário usando a função ST_ISO_APP_SelectUseCase em main.c file juntamente com qualquer outra função desejada.
- Passo 7. Crie o projeto para compilar tudo files e carregue o código compilado na memória da placa STM32 Nucleo.
- Passo 8. Execute o código na placa STM32 Nucleo e verifique o comportamento esperado.
Histórico de revisão
Tabela 4. Histórico de revisão do documento
| Data | Revisão | Mudanças |
| 14-Maio-2025 | 1 | Lançamento inicial. |
AVISO IMPORTANTE – LEIA COM ATENÇÃO
A STMicroelectronics NV e suas subsidiárias (“ST”) reservam-se o direito de fazer alterações, correções, aprimoramentos, modificações e melhorias nos produtos ST e/ou neste documento a qualquer momento, sem aviso prévio. Os compradores devem obter as informações relevantes mais recentes sobre os produtos ST antes de fazer pedidos. Os produtos ST são vendidos de acordo com os termos e condições de venda da ST em vigor no momento do reconhecimento do pedido.
Os compradores são os únicos responsáveis pela escolha, seleção e uso dos produtos ST e a ST não assume nenhuma responsabilidade pela assistência na aplicação ou pelo design dos produtos dos compradores.
Nenhuma licença, expressa ou implícita, para qualquer direito de propriedade intelectual é concedida pela ST aqui.
A revenda de produtos ST com disposições diferentes das informações aqui estabelecidas anulará qualquer garantia concedida pela ST para tal produto.
ST e o logotipo ST são marcas registradas da ST. Para obter informações adicionais sobre as marcas registradas da ST, consulte www.st.com/trademarks. Todos os outros nomes de produtos ou serviços são de propriedade de seus respectivos proprietários.
As informações neste documento substituem e substituem informações fornecidas anteriormente em quaisquer versões anteriores deste documento.
© 2025 STMicroelectronics – Todos os direitos reservados
Documentos / Recursos
![]() |
Expansão de software STMicroelectronics UM3469 X-CUBE-ISO1 [pdf] Manual do Usuário Expansão de software X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 X-CUBE-ISO1, UM3469, Expansão de software X-CUBE-ISO1, Expansão de software |

