DEENESPTFRRUARHIKOZHNL

PWM Driver (Pwm)

ModulPwm (PWM Driver)
BSW-Modul-ID121
Standard-Header#include "Pwm.h"
SWS-SpezifikationAUTOSAR_SWS_PWMDriver.pdf
ClusterMicrocontroller Abstraction (MCAL)

Guia do móduloGERADO POR IA

Controla saídas moduladas por largura de pulso do hardware do microcontrolador canal por canal através de período e ciclo de trabalho.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 346ede702b24 Procedência Perguntas em aberto (1)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Controla saídas moduladas por largura de pulso do hardware do microcontrolador canal por canal através de período e ciclo de trabalho.

Como módulo MCAL, o driver PWM controla as saídas moduladas por largura de pulso do microcontrolador canal por canal, acessando diretamente os seus registradores para essa finalidade. De acordo com Pwm_Init, Pwm User definem o ciclo de trabalho e, em canais com período variável, também o período. Eles podem comutar saídas para o estado inativo (idle) e ativar ou desativar notificações de borda [SWS_Pwm_91000]. Opcionalmente, o driver gerencia mudanças de estado de potência em duas fases através de preparação e definição. Erros como falta de inicialização ou canais inválidos são reportados por ele com a deteção de erros ativa, não executando nenhuma operação nesses casos [SWS_Pwm_00201].

O driver PWM é um módulo MCAL e controla as saídas moduladas por largura de pulso do microcontrolador através dos registradores deste. Por esse motivo, ele não necessita de interfaces de módulos inferiores (SWS PWM Driver p. 44). Ele é inicializado sincronamente com Pwm_Init e um ponteiro para o conjunto de configuração [SWS_Pwm_00095], o qual o ECU State Manager chama como interface opcional de inicialização (SWS EcuM p. 152). Ele é tipicamente utilizado pela IoHwAb, por exemplo, através de um driver de estágio de potência (SWS IoHwAb p. 37).

kontext EcuM EcuM (Startup) Pwm Pwm (MCAL-Treiber) EcuM->Pwm Pwm_Init User Pwm User (z. B. IoHwAb / Power-Stage-Treiber) User->Pwm Pwm_SetDutyCycle, Pwm_SetPeriodAndDuty, Pwm_SetOutputToIdle, Pwm_GetOutputState, Pwm_EnableNotification / Pwm_DisableNotification, Power-State-APIs SchM SchM (BSW-Scheduler) SchM->Pwm Pwm_Main_PowerTransitionManager (zyklisch) Pwm->User Pwm_Notification_<#Channel> IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> Det Det Pwm->Det Det_ReportError (optional) HW PWM-Einheit (Mikrocontroller) Pwm->HW direkter Registerzugriff Port Port-Logik / PWM-Pin HW->Port Sinal PWM (ponto de leitura de Pwm_GetOutputState antes da lógica da porta)

Diagrama de contexto: EcuM inicializa o driver, o Pwm User opera-o, e o driver reporta notificações e erros de volta. Fontes: [SWS_Pwm_00105], [SWS_Pwm_00198], [SWS_Pwm_00104]

O controle é feito por meio de um ciclo de trabalho de 16 bits, no qual 0x8000 representa 100% (SWS PWM Driver p. 18). Os serviços mais importantes:

  • Pwm_SetDutyCycle altera o ciclo de trabalho [SWS_Pwm_91000]. A 0% e 100%, ele define um nível estático dependendo da polaridade.
  • Pwm_SetPeriodAndDuty altera adicionalmente o período, mas apenas em canais da classe PWM_VARIABLE_PERIOD [SWS_Pwm_00110].
  • Pwm_SetOutputToIdle comuta imediatamente para o nível inativo (idle) [SWS_Pwm_91002].
  • Pwm_GetOutputState lê o nível interno [SWS_Pwm_00100].
kanal init após Pwm_Init (estado inicial configurado) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat nível estático (0%: inverso à polaridade, 100%: igual à polaridade) init->stat Configuração: Low ou High mod->mod Pwm_SetPeriodAndDuty (apenas PWM_VARIABLE_PERIOD) mod->stat Pwm_SetDutyCycle(0x0000 | 0x8000) idle Idle-Zustand (konfigurierter Idle-Pegel) mod->idle Pwm_SetOutputToIdle / Pwm_DeInit stat->mod Pwm_SetDutyCycle(> 0 %, < 100 %) stat->idle Pwm_SetOutputToIdle / Pwm_DeInit idle->mod Pwm_SetPeriodAndDuty (reativação com período variável)

Diagrama de estados: Um canal transita via API entre modulação, nível estático e estado inativo (idle). Fontes: [SWS_Pwm_91000], [SWS_Pwm_91001], SWS PWM Driver p. 31

Notificações de borda são ativadas por canal com Pwm_EnableNotification [SWS_Pwm_91004] e chegam como Pwm_Notification_<#Channel> ao Pwm User [SWS_Pwm_00105]. Opcionalmente, o driver também gerencia estados de potência em duas fases. Pwm_PreparePowerState inicia a preparação [SWS_Pwm_00183], que o Pwm_Main_PowerTransitionManager cíclico conclui [SWS_Pwm_00189]. Depois disso, Pwm_SetPowerState define o estado [SWS_Pwm_00166].

Com a deteção de erros ativa, as funções reportam erros como PWM_E_UNINIT, PWM_E_PARAM_CHANNEL ou PWM_E_PERIOD_UNCHANGEABLE [SWS_Pwm_00201] e retornam sem efeito (SWS PWM Driver p. 44). Pwm_GetOutputState retorna PWM_LOW nesses casos [SWS_Pwm_30051]. Se Pwm_SetPowerState for chamado enquanto o driver ainda estiver em uso, ocorre o erro de tempo de execução PWM_E_NOT_DISENGAGED [SWS_Pwm_00202].

Papel no MCAL: driver entre a unidade PWM e o Pwm User

O driver PWM encapsula as saídas moduladas por largura de pulso do microcontrolador. Como módulo da camada MCAL, ele acessa diretamente os registradores do microcontrolador e, portanto, não necessita de interfaces de módulos inferiores (SWS PWM Driver p. 44). Pelo mesmo motivo, ele não disponibiliza callbacks para camadas inferiores (SWS PWM Driver p. 40) e também não oferece interfaces de serviço (SWS PWM Driver p. 44). Seus serviços estão disponíveis através de Pwm.h, tais como Pwm_Init [SWS_Pwm_00095], Pwm_SetDutyCycle [SWS_Pwm_91000] e Pwm_GetOutputState [SWS_Pwm_00100]. Ele importa os tipos padrão Std_ReturnType e Std_VersionInfoType de Std_Types.h [SWS_Pwm_00094].

O ECU State Manager lista Pwm_Init entre suas interfaces opcionais de inicialização (SWS EcuM p. 152). No caso de uso de um estágio final de potência, um driver de estágio de potência da IoHwAb chama serviços de PWM, DIO e SPI, ajustando assim, entre outros, tensões e frequências (SWS IoHwAb p. 37). Na direção oposta, o driver chama dois tipos de funções: as notificações específicas de canal Pwm_Notification_<#Channel> [SWS_Pwm_00105] e, no gerenciamento de energia, IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198]. Ele reporta erros de desenvolvimento opcionalmente via Det_ReportError [SWS_Pwm_00104]. Se o hardware oferecer mecanismos diferentes para canais distintos, isso não é abstraído via infixos de API específicos do fabricante, mas sim através do número do canal (TPS BSWMDT p. 122).

kontext EcuM EcuM (Startup) Pwm Pwm (MCAL-Treiber) EcuM->Pwm Pwm_Init User Pwm User (z. B. IoHwAb / Power-Stage-Treiber) User->Pwm Pwm_SetDutyCycle, Pwm_SetPeriodAndDuty, Pwm_SetOutputToIdle, Pwm_GetOutputState, Pwm_EnableNotification / Pwm_DisableNotification, Power-State-APIs SchM SchM (BSW-Scheduler) SchM->Pwm Pwm_Main_PowerTransitionManager (zyklisch) Pwm->User Pwm_Notification_<#Channel> IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> Det Det Pwm->Det Det_ReportError (optional) HW PWM-Einheit (Mikrocontroller) Pwm->HW direkter Registerzugriff Port Port-Logik / PWM-Pin HW->Port Sinal PWM (ponto de leitura de Pwm_GetOutputState antes da lógica da porta)

Diagrama de contexto: O driver Pwm é inicializado pelo EcuM e operado pelo Pwm User. Ele é chamado ciclicamente pelo escalonador, reporta notificações ao Pwm User e erros ao DET, e controla a unidade PWM através de seus registradores. Fontes: [SWS_Pwm_00104], [SWS_Pwm_00105], [SWS_Pwm_00189], [SWS_Pwm_00198], SWS EcuM p. 152, SWS IoHwAb p. 37, RS PWM Driver p. 14

Modelo de sinal: período, ciclo de trabalho, polaridade e classes de canais

Um canal é endereçado pelo identificador numérico Pwm_ChannelType [SWS_Pwm_00106]. O período é do tipo Pwm_PeriodType, um tipo específico de implementação com 8 a 32 bits [SWS_Pwm_00107]. Três conceitos determinam o sinal (SWS PWM Driver p. 9):

  • A polaridade define o nível inicial de cada período.
  • O ciclo de trabalho indica a proporção desse nível inicial no período.
  • O estado inativo (idle) é o estado de saída após Pwm_SetOutputToIdle ou Pwm_DeInit.

O diagrama para descrição do sinal compara ambas as polaridades PWM_HIGH e PWM_LOW (SWS PWM Driver p. 7).

O ciclo de trabalho é um valor de 16 bits. 0x0000 representa 0% e 0x8000 representa 100%. Como auxílio de implementação, a especificação cita AbsoluteDutyCycle = ((uint32)AbsolutePeriodTime * RelativeDutyCycle) >> 15; (SWS PWM Driver p. 18). De acordo com isso, Pwm_SetDutyCycle e Pwm_SetPeriodAndDuty limitam o parâmetro DutyCycle a Min=0x0000 e Max=0x8000 [SWS_Pwm_91000] [SWS_Pwm_91001].

A classe de canal Pwm_ChannelClassType define o que um canal tem permissão para alterar em tempo de execução [SWS_Pwm_00110]:

  • PWM_VARIABLE_PERIOD: Período e ciclo de trabalho são alteráveis.
  • PWM_FIXED_PERIOD: Apenas o ciclo de trabalho é alterável.
  • PWM_FIXED_PERIOD_SHIFTED: Período fixo deslocado, que não pode ser alterado; disponível apenas se o hardware suportar.

O diagrama para o período deslocado mostra canais com o mesmo período, cujo início de período é defasado em um tempo fixo (SWS PWM Driver p. 23).

Ciclo de vida e controle de sinal: de Pwm_Init até o estado inativo (idle)

Pwm_Init é síncrono e não reentrante. A função recebe com ConfigPtr um ponteiro para o conjunto de configuração [SWS_Pwm_00095]. O tipo deste, Pwm_ConfigType, possui conteúdo específico de hardware [SWS_Pwm_00111]. De acordo com o diagrama de inicialização, as saídas ficam depois, dependendo da configuração, em Low, em High ou no estado de modulação. Notificações ocorrem apenas após a primeira chamada de Pwm_EnableNotification (SWS PWM Driver p. 46). Se Pwm_Init for chamado novamente em um driver já inicializado, deve ser reportado o erro de desenvolvimento PWM_E_ALREADY_INITIALIZED [SWS_Pwm_50002].

Pwm_DeInit também é síncrono e não reentrante [SWS_Pwm_00096]. A função desinicializa o módulo, coloca as saídas no estado inativo (idle) e desativa as interrupções de PWM bem como as notificações de borda. Ela pode ser ativada e desativada via PwmDeInitApi (SWS PWM Driver p. 27). Interpretação: Depois disso, o módulo deve ser considerado novamente como não inicializado, de modo que uma nova chamada de Pwm_Init seja admissível. Pergunta Q-a892974ddbe644e0 (aberta)

lebenszyklus start Start uninit não inicializado start->uninit uninit->uninit outra API → PWM_E_UNINIT (Pwm_GetOutputState fornece PWM_LOW) init inicializado (canais de acordo com a configuração: Low, High ou modulação) uninit->init Pwm_Init(ConfigPtr) init->uninit Pwm_DeInit (saídas em Idle, interrupções e notificações desativadas) Interpretação: estado seguinte init->init Pwm_Init → PWM_E_ALREADY_INITIALIZED

Diagrama de estados: Ciclo de vida do módulo com inicialização, desinicialização e os erros em caso de ordem incorreta de chamadas. O retorno ao estado «não inicializado» após Pwm_DeInit é uma interpretação. Fontes: [SWS_Pwm_00095], [SWS_Pwm_00096], [SWS_Pwm_50002], [SWS_Pwm_20002], [SWS_Pwm_30051], SWS PWM Driver p. 27

Em operação, Pwm_SetDutyCycle define o ciclo de trabalho de um canal [SWS_Pwm_91000]. A 0% e 100%, a saída é definida estaticamente (SWS PWM Driver p. 28):

  • A 0%, o nível é inverso à polaridade configurada.
  • A 100%, o nível corresponde à polaridade.
  • Em valores intermediários, a modulação ocorre de acordo com o período, o ciclo de trabalho e a polaridade.

De acordo com o diagrama, o driver assume o novo ciclo de trabalho no final do período em curso, desde que a implementação suporte isso; caso contrário, imediatamente (SWS PWM Driver p. 37).

Pwm_SetPeriodAndDuty define o período e o ciclo de trabalho em conjunto [SWS_Pwm_91001]. Nesse caso, aplicam-se três regras (SWS PWM Driver p. 30):

  • O período é atualizado no final do período, se a implementação suportar isso e estiver configurado via PwmPeriodUpdatedEndperiod.
  • Picos espúrios (glitches) na saída devem ser suprimidos.
  • O ciclo de trabalho é fornecido conjuntamente para que a frequência e o ciclo de trabalho sejam compatíveis entre si.
tastgrad a Chamada Pwm_SetDutyCycle ou Pwm_SetPeriodAndDuty (verificações gerais aprovadas) k Pwm_SetPeriodAndDuty? a->k c Kanalklasse = PWM_VARIABLE_PERIOD? k->c sim d angeforderter Tastgrad? k->d nein (Pwm_SetDutyCycle) e Reportar PWM_E_PERIOD_UNCHANGEABLE, sair da função sem ação c->e não (com detecção de falhas ativa) p Definir período e ciclo de trabalho (período no final do período se PwmPeriodUpdatedEndperiod; suprimir picos espúrios) c->p sim z Saída estática: inversa à polaridade d->z 0x0000 (0 %) h Saída estática: igual à polaridade d->h 0x8000 (100 %) m Modulação de acordo com o período, ciclo de trabalho e polaridade d->m dazwischen

Diagrama de atividades: Processamento de Pwm_SetDutyCycle e Pwm_SetPeriodAndDuty com verificação da classe de canal e tratamento especial de 0% e 100%. Fontes: [SWS_Pwm_40002], SWS PWM Driver p. 28, SWS PWM Driver p. 30, SWS PWM Driver p. 44

Pwm_SetOutputToIdle define imediatamente a saída para o estado inativo (idle) configurado [SWS_Pwm_91002]. Canais com período variável são posteriormente reativados via Pwm_SetPeriodAndDuty (SWS PWM Driver p. 31). O diagrama «Setting Pwm output to idle» mostra exatamente essa sequência (SWS PWM Driver p. 50). Pwm_GetOutputState lê o estado de saída interno sincronamente como PWM_HIGH ou PWM_LOW [SWS_Pwm_00100] [SWS_Pwm_00108]. Um diagrama da especificação de requisitos localiza o valor lido na saída da unidade PWM, ou seja, antes da lógica de portas e não no pino físico (RS PWM Driver p. 14).

kanal init após Pwm_Init (estado inicial configurado) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat nível estático (0%: inverso à polaridade, 100%: igual à polaridade) init->stat Configuração: Low ou High mod->mod Pwm_SetPeriodAndDuty (apenas PWM_VARIABLE_PERIOD) mod->stat Pwm_SetDutyCycle(0x0000 | 0x8000) idle Idle-Zustand (konfigurierter Idle-Pegel) mod->idle Pwm_SetOutputToIdle / Pwm_DeInit stat->mod Pwm_SetDutyCycle(> 0 %, < 100 %) stat->idle Pwm_SetOutputToIdle / Pwm_DeInit idle->mod Pwm_SetPeriodAndDuty (reativação com período variável)

Diagrama de estados: Estados de saída de um canal (modulação, nível estático, idle) e as APIs que alternam entre eles. Fontes: [SWS_Pwm_91000], [SWS_Pwm_91001], [SWS_Pwm_91002], SWS PWM Driver p. 28, SWS PWM Driver p. 31, SWS PWM Driver p. 46

Notificações de flanco por canal

Com Pwm_EnableNotification, o Pwm User ativa a notificação para um canal. O parâmetro do tipo Pwm_EdgeNotificationType seleciona PWM_RISING_EDGE, PWM_FALLING_EDGE ou PWM_BOTH_EDGES [SWS_Pwm_91004] [SWS_Pwm_00109]. A função descarta interrupções pendentes (SWS PWM Driver p. 35). Ela, assim como Pwm_DisableNotification [SWS_Pwm_91003], existe apenas se PwmNotificationSupported estiver ativado (SWS PWM Driver p. 34).

O driver chama a função configurada Pwm_Notification_<#Channel> de acordo com a última chamada de Pwm_EnableNotification ou Pwm_DisableNotification. Ao fazer isso, ele redefine o flag de interrupção correspondente (SWS PWM Driver p. 42). O callback não possui parâmetros e é divulgado via Pwm_Externals.h. Se ele é reentrante depende da implementação do Pwm User [SWS_Pwm_00105].

Notificação de borda de um canal PWMPwm UserPwmPwm_Init(const Pwm_ConfigType*)Pwm_Init()Nenhuma notificação até aersten Pwm_EnableNotificationPwm_EnableNotification(ChannelNumber,PWM_RISING_EDGE | PWM_FALLING_EDGE | PWM_BOTH_EDGES)anstehende Interrupts verwerfenPwm_EnableNotification()loopa cada borda selecionadaRedefinir flag de interrupçãoPwm_Notification_<#Channel>()Pwm_DisableNotification(ChannelNumber)Pwm_DisableNotification()Nenhuma outra notificação

Diagrama de sequência: fluxo desde a inicialização, passando pela ativação e desativação da notificação de borda, até a ausência de novos callbacks. Fontes: [SWS_Pwm_91004], [SWS_Pwm_91003], [SWS_Pwm_00105], SWS PWM Driver p. 52, SWS PWM Driver p. 42

Estados de energia dos periféricos PWM

O controle dos estados de energia é uma funcionalidade opcional. Ele se restringe aos periféricos PWM e pressupõe que a aplicação, o gerenciamento de modo e o IoHwAb já atendam às condições de contorno de nível superior (SWS PWM Driver p. 17). Se PwmLowPowerStatesSupport estiver ativo, as quatro APIs de estado de energia serão geradas (SWS PWM Driver p. 16). Pwm_PowerStateType conhece PWM_FULL_POWER (0x00) bem como a faixa de 1..255 para estados com consumo decrescente. Na R20-11, o tipo é definido como enumeração [SWS_Pwm_00197]. Uma versão posterior, por outro lado, apresenta-o como um tipo derivado de uint8 (SWS PWM Driver p. 25).

A transição do estado de energia ocorre em duas fases:

  1. Pwm_PreparePowerState inicia a preparação e fornece no parâmetro de resultado PWM_SERVICE_ACCEPTED ou um motivo de rejeição [SWS_Pwm_00183] [SWS_Pwm_00165]. O que não puder ser concluído imediatamente é executado pela Pwm_Main_PowerTransitionManager [SWS_Pwm_00189] [SWS_Pwm_00190], chamada ciclicamente. A sua taxa de chamada é variável, e ela só envia callbacks no modo assíncrono (SWS PWM Driver p. 41). O driver sinaliza a conclusão da preparação com IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198].
  2. Pwm_SetPowerState coloca o hardware no estado preparado [SWS_Pwm_00166]. As ações prévias, como a colocação de todos os canais em IDLE e o cancelamento do registro de todas as notificações, já devem ter sido executadas pelos SWCs responsáveis, como o IoHwAb. A função não executa estados intermediários implícitos (SWS PWM Driver p. 36).
powerzustand uninit não inicializado (resultado PWM_NOT_INIT) stabil stabil (aktueller = Zielzustand) uninit->stabil Pwm_Init stabil->stabil Pwm_SetPowerState sem preparação ou Prepare com estado atual → PWM_SEQUENCE_ERROR stabil->stabil não suportado / não alcançável diretamente → PWM_POWER_STATE_NOT_SUPP / PWM_TRANS_NOT_POSSIBLE vorb Preparação em andamento (destino ≠ estado atual) stabil->vorb Pwm_PreparePowerState(PowerState) E_OK / PWM_SERVICE_ACCEPTED (asynchroner Modus) bereit Vorbereitung abgeschlossen stabil->bereit Pwm_PreparePowerState (synchroner Modus) vorb->bereit Pwm_Main_PowerTransitionManager → IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> bereit->stabil Pwm_SetPowerState E_OK (neuer Zustand aktiv)

Diagrama de estados: transição bifásica do estado de energia com preparação, conclusão e definição, bem como os erros de sequência. Fontes: [SWS_Pwm_00183], [SWS_Pwm_00166], [SWS_Pwm_00165], [SWS_Pwm_00190], SWS PWM Driver p. 39, SWS IoHwAb p. 61

Pwm_GetCurrentPowerState [SWS_Pwm_00177] fornece o estado atual, Pwm_GetTargetPowerState [SWS_Pwm_00180] o solicitado. Enquanto nenhuma transição estiver em andamento, ambos coincidem (SWS PWM Driver p. 38). A especificação do IoHwAb mostra a interação entre BswM, RTE/SchM, IoHwAb, ADC e PWM para o caso assíncrono (SWS IoHwAb p. 60). No caso síncrono, a preparação já está concluída quando a API de preparação retorna (SWS IoHwAb p. 61).

Asynchroner Wechsel in einen Niedrigenergiezustand (vereinfacht)BswMRte / SchMIoHwAbPwmUse Case: Phase 1: VorbereitungRTE/SchMSwitch(...)OnEntryRunnable_LowPowerModeA()IoHwAb_PreparePowerState_LowPowerModeA()Pwm_PreparePowerState(PwrSts_3)E_OK / PWM_SERVICE_ACCEPTEDPreparação continua em segundo planoUse Case: Phase 2: Hintergrundverarbeitungloopbis Vorbereitung abgeschlossenPwm_Main_PowerTransitionManager()IoHwAb_Pwm_NotifyReadyForPowerStateLowPowerModeA()IoHwAb_PollForResults()UpdateModePorts()Use Case: Phase 3: Zustand setzenRTE/SchMSwitch(LowPowerModeA_Transition_End)IoHwAb_EnterPowerStateLP1()Pré-requisito: todos os canais IDLE,Benachrichtigungen abgemeldetPwm_SetPowerState(&Result)E_OK / PWM_SERVICE_ACCEPTEDPwm_GetCurrentPowerState(...)E_OK, CurrentPowerState

Diagrama de sequência: transição assíncrona para um estado de baixa energia, controlada pelo IoHwAb. O fluxo está simplificado e o ADC foi omitido. Fontes: [SWS_Pwm_00183], [SWS_Pwm_00189], [SWS_Pwm_00198], [SWS_Pwm_00166], SWS IoHwAb p. 57, SWS IoHwAb p. 60

Configuração, contêineres de canal e simultaneidade

Os parâmetros obrigatórios de um canal são o canal de hardware atribuído, os valores padrão para período e ciclo de trabalho, polaridade, nível ocioso e classe do canal. O deslocamento de fase, o canal de referência e as propriedades específicas do microcontrolador são opcionais, desde que o hardware os suporte (SWS PWM Driver p. 25). No modelo de configuração, PwmChannelConfigSet contém pelo menos um PwmChannel, e PwmDutycycleDefault é limitado a 0 até 0x8000 (ECUC-Parameter p. 545). PwmChannelClass é mapeado para Pwm_ChannelClassType. PwmChannelId é atribuído ao nome simbólico do contêiner do canal (SWS PWM Driver p. 57).

Os serviços opcionais são habilitados e desabilitados por meio da configuração: PwmSetOutputToIdle (SWS PWM Driver p. 31), PwmGetOutputState (SWS PWM Driver p. 33), bem como os PwmDeInitApi e PwmNotificationSupported mencionados acima.

Para a concorrência, aplica-se o seguinte:

  • Serviços de canal como Pwm_SetDutyCycle são reentrantes para números de canal diferentes [SWS_Pwm_91000].
  • As APIs de estado de energia não são reentrantes [SWS_Pwm_00183].
  • O módulo deve rejeitar configurações com mapeamentos de partição que não sejam suportados pela implementação [SWS_Pwm_00203].

Os níveis de reentrância até “multi-core reentrant” são explicados pelo BSW-Distribution-Guide (BSW Distribution Guide p. 18).

Comportamento em caso de erro

Se a detecção de erros de desenvolvimento estiver ativa, as funções reportarão os erros detectados ao Default Error Tracer. Em seguida, elas ignorarão a função solicitada para que nem os dados nem os registradores de hardware sejam corrompidos (SWS PWM Driver p. 44). Os códigos de erro são [SWS_Pwm_00201]:

  • PWM_E_INIT_FAILED (0x10)
  • PWM_E_UNINIT (0x11) para chamadas antes da inicialização [SWS_Pwm_20002]
  • PWM_E_PARAM_CHANNEL (0x12) para canais inválidos [SWS_Pwm_30002]
  • PWM_E_PERIOD_UNCHANGEABLE (0x13) para alterações de período em canais com período fixo [SWS_Pwm_40002]
  • PWM_E_ALREADY_INITIALIZED (0x14)
  • PWM_E_PARAM_POINTER (0x15) para um parâmetro NULL para Pwm_GetVersionInfo

Pwm_GetOutputState deve sempre retornar um valor. Antes da inicialização ou no caso de um canal inválido, este será PWM_LOW [SWS_Pwm_30051].

pruefung a Chamada de uma API de canal det Entwicklungsfehlererkennung aktiv? a->det ini Modul initialisiert? det->ini sim ok Executar serviço det->ok não ch ChannelNumber válido? ini->ch sim u PWM_E_UNINIT an Det melden ini->u não pc PWM_E_PARAM_CHANNEL an Det melden ch->pc não ch->ok sim skip Sair da função sem ação (Pwm_GetOutputState fornece PWM_LOW) u->skip pc->skip

Diagrama de atividades: verificações gerais das APIs de canal com a detecção de erros de desenvolvimento ativa, com cancelamento sem efeito. Fontes: [SWS_Pwm_20002], [SWS_Pwm_30002], [SWS_Pwm_30051], SWS PWM Driver p. 44

As APIs de estado de energia também reportam erros por meio de Std_ReturnType e do tipo de resultado Pwm_PowerStateRequestResultType. Os valores possíveis são PWM_NOT_INIT, PWM_SEQUENCE_ERROR, PWM_HW_FAILURE, PWM_POWER_STATE_NOT_SUPP e PWM_TRANS_NOT_POSSIBLE [SWS_Pwm_00165]. Para um estado não suportado, também é definido PWM_E_POWER_STATE_NOT_SUPPORTED [SWS_Pwm_00174], e para um estado não alcançável diretamente, PWM_E_TRANSITION_NOT_POSSIBLE [SWS_Pwm_00175].

Se Pwm_SetPowerState for chamada enquanto ainda houver canais fora de IDLE ou notificações registradas, ocorrerá o erro de tempo de execução PWM_E_NOT_DISENGAGED (0x16) [SWS_Pwm_00202] (SWS PWM Driver p. 20). Pwm_Main_PowerTransitionManager simplesmente retorna sem inicialização e deliberadamente não reporta nenhum erro de desenvolvimento. O motivo: tarefas cíclicas já podem estar em execução antes do fim da inicialização (SWS PWM Driver p. 41).

Evidências mais detalhadas

Guia gerado por IA com base nos Requirements e passagens de documentos fornecidos no payload para o AUTOSAR Classic R20-11. Apenas a especificação é vinculativa.

PWM Driver (Pwm)

Generates pulse-width-modulated signals with configurable duty cycle and period.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função Pwm_Init [SWS_Pwm_00095] 📄 PDF

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Service for PWM initialization.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0770524664d2 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Pwm_Init serve como serviço central para a inicialização de todo o driver PWM ([SWS_Pwm_00095]). É disponibilizada através do ficheiro de cabeçalho Pwm.h e possui o ID de serviço hexadecimal 0x00 ([SWS_Pwm_00095]). Como único parâmetro de entrada, é passado ConfigPtr, que atua como ponteiro para o conjunto de configurações específico do driver do tipo Pwm_ConfigType ([SWS_Pwm_00095]). A interface não possui valor de retorno e não utiliza parâmetros de saída nem parâmetros de entrada/saída ([SWS_Pwm_00095]).

Em relação ao comportamento de tempo de execução, Pwm_Init é síncrona e especificada como não reentrante (Non Reentrant) ([SWS_Pwm_00095]). Uma chamada simultânea ou de interrupção a esta função a partir de múltiplas threads, tarefas ou rotinas de interrupção é, portanto, estritamente inadmissível. A execução deverá ocorrer tipicamente uma única vez durante o arranque do sistema, na fase de inicialização da ECU, antes de qualquer utilização posterior dos canais PWM. Pergunta Q-ff3f1cf769dfed70 (aberta)

Para garantir a ordem de chamada admissível, o módulo monitoriza o seu estado: se o serviço Pwm_Init for chamado quando o driver PWM já se encontra inicializado, o módulo reporta o erro de desenvolvimento PWM_E_ALREADY_INITIALIZED com o identificador 0x14 ([SWS_Pwm_50002]). Uma inicialização repetida é, assim, considerada um erro.

Este texto foi criado por uma IA. As especificações AUTOSAR são determinantes.

Guia do implementador em breve (complexidade I1)

função Pwm_DeInit [SWS_Pwm_00096] 📄 PDF

void Pwm_DeInit (void);

Service for PWM De - Initialization.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e8e4048754f1 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Uso e assinatura

A função Pwm_DeInit serve como serviço para a desinicialização do driver PWM ([SWS_Pwm_00096]). Ela é disponibilizada por meio do arquivo de cabeçalho Pwm.h e possui o ID de serviço 0x01 ([SWS_Pwm_00096]). A interface tem a assinatura void Pwm_DeInit(void), não recebe parâmetros de entrada nem de saída e não fornece valor de retorno ao chamador ([SWS_Pwm_00096]).

A chamada de Pwm_DeInit é executada de forma síncrona ([SWS_Pwm_00096]). O fluxo de controle chamador permanece, portanto, na função até que as etapas de desinicialização do módulo PWM sejam concluídas.

Simultaneidade e restrições

Para a execução, aplicam-se as seguintes condições de contorno relativas à concorrência:

  • Não reentrante: o serviço é especificado como não reentrante ([SWS_Pwm_00096]). Uma chamada simultânea ou de interrupção a partir de múltiplas threads, tasks ou ISRs é inadmissível.
  • Contexto de chamada: devido à semântica síncrona e à ausência de reentrância, a chamada tipicamente deve ocorrer no âmbito de uma fase controlada de shutdown no nível de task. Pergunta Q-f1afc58637cba5cf (aberta)

Tratamento de erros

Na especificação de Pwm_DeInit, não estão definidos valores de retorno nem códigos de erro específicos ([SWS_Pwm_00096]). Eventuais erros de tempo de execução ou de estado provavelmente devem ser registrados ou interceptados por meio de mecanismos internos de monitoramento do módulo, como a interface de desenvolvimento (DET), uma vez que não está previsto um feedback direto de erro através da interface da função. Pergunta (aberta)

Este texto foi gerado automaticamente com base na especificação AUTOSAR Classic R20-11.

função Pwm_DisableNotification [SWS_Pwm_91003] 📄 PDF

void Pwm_DisableNotification (Pwm_ChannelType ChannelNumber);

Service to disable the PWM signal edge notification.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 2d97fc6435bd Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Pwm_DisableNotification serve para desativar a notificação de borda (Signal Edge Notification) de um determinado canal PWM [SWS_Pwm_91003]. A declaração da função e as definições de tipo correspondentes são disponibilizadas através do arquivo de cabeçalho Pwm.h [SWS_Pwm_91003].

Parâmetros e valor de retorno

A interface possui o ID de serviço 0x06 e apresenta as seguintes características de assinatura [SWS_Pwm_91003]:

  • ChannelNumber (in): identificador numérico do canal PWM a ser configurado, do tipo Pwm_ChannelType [SWS_Pwm_91003].

Não existem parâmetros de entrada/saída (inout) nem parâmetros puramente de saída (out) [SWS_Pwm_91003]. A função não fornece valor de retorno (void) ao chamador [SWS_Pwm_91003].

Comportamento de sincronização e concorrência

A chamada de Pwm_DisableNotification opera de forma assíncrona [SWS_Pwm_91003]. Em relação ao comportamento multithreading, o serviço é reentrante desde que números de canais diferentes sejam acessados [SWS_Pwm_91003].

Interpretação: como a reentrância é explicitamente limitada a canais diferentes, a função presumivelmente não é reentrante para o mesmo canal PWM [SWS_Pwm_91003]. Pergunta Q-005e97fd25679da7 (aberta) Chamadas simultâneas para o canal idêntico provavelmente precisam, portanto, ser sincronizadas no lado do chamador.

Notas de uso selecionadas com base na especificação AUTOSAR Classic R20-11.

função Pwm_EnableNotification [SWS_Pwm_91004] 📄 PDF

void Pwm_EnableNotification (Pwm_ChannelType ChannelNumber, Pwm_EdgeNotificationType Notification);

Service to enable the PWM signal edge notification according to notification pa rameter.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0c9ffc1eca13 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função Pwm_EnableNotification serve para a ativação de notificações de borda de sinal para um determinado canal PWM de acordo com o parâmetro de notificação passado [SWS_Pwm_91004]. O serviço é disponibilizado por meio do arquivo de cabeçalho Pwm.h, possui o Service-ID 0x07 e não retorna nenhum valor de retorno (void) ao chamador [SWS_Pwm_91004].

Ao chamar a interface, devem ser passados dois parâmetros de entrada obrigatórios [SWS_Pwm_91004]:

  • ChannelNumber (do tipo Pwm_ChannelType): identificador numérico do canal PWM a ser acessado [SWS_Pwm_91004].
  • Notification (do tipo Pwm_EdgeNotificationType): define o tipo da notificação de borda com os valores permitidos PWM_RISING_EDGE, PWM_FALLING_EDGE ou PWM_BOTH_EDGES [SWS_Pwm_91004].

Semântica e concorrência

A execução do serviço é especificada como assíncrona [SWS_Pwm_91004]. Em relação à concorrência, Pwm_EnableNotification é projetada como reentrante para números de canais diferentes [SWS_Pwm_91004]. No caso de um acesso simultâneo ou interruptivo ao mesmo canal PWM, o serviço presumivelmente não é reentrante; tal chamada deve, portanto, ser protegida pelo chamador. Pergunta Q-73309ed8589161a3 (aberta)

Tratamento de erros e condições de contorno

O excerto da especificação não define para esta função nem valores de retorno específicos nem mensagens de erro para o Development Error Tracer (DET) ou o Diagnostic Event Manager (DEM) [SWS_Pwm_91004]. Da mesma forma, faltam especificações sobre contextos de chamada permitidos ou ordens relacionadas a tarefas. Como nenhuma pré-condição é mencionada, presume-se que a chamada da função seja permitida apenas após uma inicialização bem-sucedida do driver PWM. Pergunta Q-7f428f59a20175c2 (aberta)

Esta nota de uso foi criada de forma automatizada com base no excerto de especificação do AUTOSAR Classic R20-11.

função Pwm_SetPowerState [SWS_Pwm_00166] 📄 PDF

Std_ReturnType Pwm_SetPowerState (Pwm_PowerStateRequestResultType* Result);

This API configures the Pwm module so that it enters the already prepared power st ate, chosen between a predefined set of configured ones.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b7532b0354d7 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Pwm_SetPowerState coloca o módulo PWM em um estado previamente preparado a partir de uma seleção pré-configurada de power-states [SWS_Pwm_00166]. A declaração está disponível por meio do cabeçalho Pwm.h [SWS_Pwm_00166].

Uso e valores de retorno

A função não recebe parâmetros de entrada e passa o resultado detalhado por meio do parâmetro de ponteiro Result do tipo Pwm_PowerStateRequestResultType* [SWS_Pwm_00166]:

  • Se o modo pôde ser alterado com sucesso, a função retorna E_OK e define Result como PWM_SERVICE_ACCEPTED [SWS_Pwm_00166].
  • Se a solicitação for rejeitada, a chamada retorna E_NOT_OK [SWS_Pwm_00166].

Tratamento de erros

Em caso de erro (valor de retorno E_NOT_OK), Result especifica a causa da falha [SWS_Pwm_00166]:

  • PWM_NOT_INIT: o módulo PWM não está inicializado [SWS_Pwm_00166].
  • PWM_SEQUENCE_ERROR: há uma sequência inválida de chamadas de API [SWS_Pwm_00166].
  • PWM_HW_FAILURE: um erro no módulo de hardware impede a entrada no power-state solicitado [SWS_Pwm_00166].

Simultaneidade e condições marginais

Pwm_SetPowerState não é reentrante (Non Reentrant) e exige, para evitar um erro de sequência, que o estado de destino tenha sido preparado antes da chamada [SWS_Pwm_00166].

Este texto foi criado por uma IA com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

função Pwm_GetCurrentPowerState [SWS_Pwm_00177] 📄 PDF

Std_ReturnType Pwm_GetCurrentPowerState (Pwm_PowerStateType* CurrentPowerState, Pwm_PowerStateRequestResultType* Result);

This API returns the current power state of the PWM HW unit. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

função Pwm_PreparePowerState [SWS_Pwm_00183] 📄 PDF

Std_ReturnType Pwm_PreparePowerState (Pwm_PowerStateType PowerState, Pwm_PowerStateRequestResultType* Result);

This API starts the needed process to allow the PWM HW module to enter the requested power state. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 50b7f8a853d8 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona Pwm_PreparePowerState inicia o processo de preparação necessário para que o módulo de hardware PWM possa transitar para um estado de energia solicitado [SWS_Pwm_00183]. O estado de destino desejado é passado por meio do parâmetro PowerState, enquanto o resultado detalhado é disponibilizado por meio do ponteiro de saída Result [SWS_Pwm_00183]. Se a preparação foi iniciada com sucesso, a função retorna E_OK e define Result como PWM_SERVICE_ACCEPTED [SWS_Pwm_00183].

Tratamento de erros

Se o serviço for rejeitado, a função retorna E_NOT_OK e reporta a causa específica por meio de Result [SWS_Pwm_00183]:

  • PWM_NOT_INIT: o módulo PWM não está inicializado [SWS_Pwm_00183].
  • PWM_SEQUENCE_ERROR: sequência de chamadas inválida, pois o estado de energia atual já corresponde ao estado de destino [SWS_Pwm_00183].
  • PWM_POWER_STATE_NOT_SUPP: o módulo não suporta o estado de energia solicitado [SWS_Pwm_00183].
  • PWM_TRANS_NOT_POSSIBLE: Uma transição direta não é possível ou o periférico de hardware ainda está ocupado [SWS_Pwm_00183].

Concorrência e interação

A função não é reentrante (Non Reentrant) e, portanto, não deve ser chamada concorrentemente para o mesmo módulo [SWS_Pwm_00183]. Após a preparação bem-sucedida por Pwm_PreparePowerState, devem ser executadas ações subsequentes, não imediatamente efetivas, para concluir finalmente a transição do estado de energia [SWS_Pwm_00190].

Esta nota de uso foi gerada automaticamente com base na especificação R20-11.

Guia do implementador em breve (complexidade I1)

função Pwm_Main_PowerTransitionManager [SWS_Pwm_00189] 📄 PDF

void Pwm_Main_PowerTransitionManager (void);

This API is cyclically called and supervises the power state transitions, checking for the readiness of the module and issuing the callbacks Io Hw Ab_ Pwm_ Notify Ready For Power State (see Pwm Power State Ready Cb k Ref configuration parameter). AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 879296577e8e Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A interface Pwm_Main_PowerTransitionManager serve para o monitoramento cíclico de transições de estado de energia (Power State Transitions) do driver PWM de acordo com [SWS_Pwm_00189]. Ela possui o Service-ID 0x0d, não recebe parâmetros de passagem e não fornece valor de retorno (assinatura void Pwm_Main_PowerTransitionManager(void)).

No âmbito de sua execução cíclica, a função verifica a prontidão operacional do módulo para o respectivo estado de energia. Assim que a prontidão estiver presente, ela dispara os callbacks de notificação IoHwAb_Pwm_NotifyReadyForPowerState<Mode>, que são referenciados pelo parâmetro de configuração PwmPowerStateReadyCbkRef [SWS_Pwm_00189].

A função é prevista para um contexto de chamada cíclico e é disponibilizada por meio do arquivo de cabeçalho SchM_Pwm.h. Em consequência, a chamada periódica presumivelmente deve ocorrer no contexto do escalonador de BSW (Schedule Manager) [SWS_Pwm_00189]. Códigos de erro específicos, mecanismos para tratamento de erros via DET ou DEM, bem como condições especiais de reentrância não são definidos na especificação do módulo para este serviço. Pergunta Q-b9b0431e7ccbca88 (aberta)

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Pwm_ [SWS_Pwm_00105] 📄 PDF

void Pwm_Notification_<#Channel> (void);

The Pwm module shall call the function Pwm_ Notification_<#Channel> accordingly to the last call of Pwm_ Enable Notification for channel <#Channel>.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6eff8686a5f4 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de notificação relativa ao canal Pwm_Notification_<#Channel> é chamada sincronamente pelo módulo PWM assim que ocorre o evento de borda configurado para o respectivo canal [SWS_Pwm_00105]. A função possui a assinatura void Pwm_Notification_<#Channel>(void), não recebe parâmetros de passagem e não fornece valor de retorno [SWS_Pwm_00105]. Ela é declarada no arquivo Pwm_Externals.h e deve ser fornecida pelo usuário [SWS_Pwm_00105].

A chamada ocorre em função da última chamada de Pwm_EnableNotification para o canal em questão [SWS_Pwm_00105]. Os eventos disparadores orientam-se pelos valores de Pwm_EdgeNotificationType, que distingue bordas de sinal de subida (PWM_RISING_EDGE), de descida (PWM_FALLING_EDGE) ou ambas (PWM_BOTH_EDGES) [SWS_Pwm_00109]. Antes da geração de sinais e da notificação de eventos, o módulo PWM deve ter sido inicializado por meio de Pwm_Init com uma estrutura Pwm_ConfigType dependente de hardware [SWS_Pwm_00095], [SWS_Pwm_00111].

Em relação à concorrência, a reentrância da função de callback é explicitamente definida como dependente do usuário (PWM user implementation dependant) [SWS_Pwm_00105]. O contexto de execução exato (por exemplo, se a chamada ocorre diretamente em uma rotina de serviço de interrupção ou no contexto de task) deve depender da implementação subjacente do driver (interpretação). Pergunta Q-327872e0e8fecb37 (aberta) Não existem códigos de erro específicos, valores de retorno ou mensagens padronizadas de DET ou DEM para esta interface de notificação [SWS_Pwm_00105].

Este texto foi gerado por uma IA e baseia-se na especificação AUTOSAR Classic Release R20-11.

função IoHwAb_Pwm_NotifyReadyForPower [SWS_Pwm_00198] 📄 PDF

void IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> (void);

The API shall be invoked by the PWM Driver when the requested power state preparation for mode <#Mode> is completed.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 23b0f44b508d Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função IoHwAb_Pwm_NotifyReadyForPower (declarada na sintaxe como IoHwAb_Pwm_NotifyReadyForPowerState<#Mode>) é disponibilizada através do cabeçalho IoHwAb_Pwm.h e serve como interface de callback no gerenciamento de energia AUTOSAR [SWS_Pwm_00198].

Em relação ao uso, às propriedades da interface e à interação com o sistema, aplicam-se as seguintes diretrizes obrigatórias:

  • Uso e contexto de chamada: A interface possui o ID de serviço 0x60 e é executada de forma síncrona [SWS_Pwm_00198]. Ela deve obrigatoriamente ser chamada pelo driver PWM assim que a preparação no nível do dispositivo para um estado de energia (Power State) solicitado de um modo tiver sido concluída com sucesso [SWS_Pwm_00198].
  • Parâmetros e valores de retorno: A assinatura da função não define parâmetros de entrada, de entrada/saída ou de saída e não possui valor de retorno (void) [SWS_Pwm_00198]. Interpretação: a associação ao respectivo modo de energia provavelmente decorre diretamente do nome da função específico do modo no código-fonte. Pergunta Q-ab761160ed91de78 (aberta)
  • Concorrência e restrições: A função é especificada como não reentrante (Non Reentrant) [SWS_Pwm_00198]. As chamadas não devem, portanto, ocorrer em paralelo ou aninhadas dentro do mesmo contexto de driver.
  • Interação: No fluxo entre módulos, a chamada sinaliza à abstração de hardware de E/S de nível superior que o estágio do driver está pronto para a mudança para o estado de operação desejado [SWS_Pwm_00198].

Nas fontes da especificação, não estão previstos códigos de erro específicos nem mensagens para DET ou DEM para esta função [SWS_Pwm_00198].

Este texto foi criado por uma IA; todas as afirmações baseiam-se exclusivamente na especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

tipo Pwm_OutputStateType [SWS_Pwm_00108] 📄 PDF

Output state of a PWM channel.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4d670762d069 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo de enumeração Pwm_OutputStateType define o estado de saída de um canal PWM dentro do driver Classic AUTOSAR Pwm [SWS_Pwm_00108]. A definição do tipo é disponibilizada por meio do arquivo de cabeçalho Pwm.h para unidades de software chamadoras e aplicações de driver [SWS_Pwm_00108].

A faixa de valores desta enumeração distingue dois estados claramente definidos do canal [SWS_Pwm_00108]:

  • PWM_HIGH (valor numérico 0x00): indica que o respectivo canal PWM se encontra no estado High [SWS_Pwm_00108].
  • PWM_LOW (valor numérico 0x01): indica que o respectivo canal PWM se encontra no estado Low [SWS_Pwm_00108].

Em relação ao contexto de chamada e à finalidade de uso, o elemento em si, como tipo, não define funções de interface [SWS_Pwm_00108]. Interpretação: os valores tipicamente devem servir como parâmetros ou valores de retorno em funções de API do módulo para sinalizar o estado de nível lógico atual ou desejado de um canal. Pergunta Q-9c142d658ab7fcfd (aberta)

Por se tratar de uma definição de tipo elementar, não existem tratamentos de erro específicos relativos a DET ou DEM, tampouco requisitos de reentrância ou de execução síncrona no escopo da especificação [SWS_Pwm_00108].

Este texto foi gerado por uma IA com base na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

tipo Pwm_EdgeNotificationType [SWS_Pwm_00109] 📄 PDF

Definition of the type of edge notification of a PWM channel.

tipo Pwm_ConfigType [SWS_Pwm_00111] 📄 PDF

This is the type of data structure containing the initialization data for the PWM driver.

tipo Pwm_PowerStateRequestResultType [SWS_Pwm_00165] 📄 PDF

Result of the requests related to power state transitions.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 615a415d7a52 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo de enumeração Pwm_PowerStateRequestResultType fornece o resultado de solicitações para mudança de estado do modo de gerenciamento de energia (Power State Transitions) no driver PWM, de acordo com [SWS_Pwm_00165]. A definição do tipo está disponível por meio do cabeçalho Pwm.h [SWS_Pwm_00165].

O tipo representa tanto a transição bem-sucedida quanto condições de erro específicas [SWS_Pwm_00165]:

  • PWM_SERVICE_ACCEPTED (0x00): a mudança solicitada do estado de energia (Power-State) foi executada com sucesso [SWS_Pwm_00165].
  • PWM_NOT_INIT (0x01): o módulo PWM ainda não está inicializado [SWS_Pwm_00165].
  • PWM_SEQUENCE_ERROR (0x02): a sequência de chamada da API é inadmissível [SWS_Pwm_00165].
  • PWM_HW_FAILURE (0x03): um erro de hardware impede que o estado de energia exigido seja assumido [SWS_Pwm_00165].
  • PWM_POWER_STATE_NOT_SUPP (0x04): o estado solicitado não é suportado pelo módulo [SWS_Pwm_00165].
  • PWM_TRANS_NOT_POSSIBLE (0x05): uma transição direta de estado não é possível ou o periférico de hardware ainda está ocupado [SWS_Pwm_00165].

Os chamadores devem avaliar o resultado para determinar se uma mudança de estado se tornou efetiva imediatamente. Interpretação: o tipo tipicamente deve atuar como valor de retorno ou parâmetro de saída de funções correspondentes de gerenciamento de energia para informar módulos superiores sobre conflitos de transição ou bloqueios de hardware. Pergunta Q-fd06829e5c030906 (aberta)

Este texto foi gerado por uma IA e serve como orientação. A especificação AUTOSAR é determinante.

Guia do implementador em breve (complexidade I1)

tipo Pwm_PowerStateType [SWS_Pwm_00197] 📄 PDF

Power state currently active or set as target power state.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b1411c45ba56 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo enumerado Pwm_PowerStateType serve no módulo PWM para a descrição de estados de energia [SWS_Pwm_00197]. Ele representa ou o estado operacional atualmente ativo ou um novo estado de potência definido como destino do driver [SWS_Pwm_00197]. Esse tipo de dados é disponibilizado por meio do arquivo de cabeçalho Pwm.h [SWS_Pwm_00197].

A especificação define para a enumeração os seguintes valores e faixas de valores [SWS_Pwm_00197]:

  • PWM_FULL_POWER (valor 0x00): caracteriza o estado de potência máxima («Full Power») [SWS_Pwm_00197].
  • Faixa de valores 1..255: define modos de potência graduados com consumo de energia decrescente passo a passo («power modes with decreasing power consumptions») [SWS_Pwm_00197].

Em relação ao contexto de uso, presume-se que o tipo funcione como parâmetro de passagem na solicitação de um modo de economia de energia, bem como valor de retorno em consultas de status, já que o tipo mapeia tanto estados ativos quanto de destino [SWS_Pwm_00197]. Pergunta Q-f0423f8b958d7e91 (aberta) Funções de API concretas, tratamentos de erro (DET/DEM) e restrições de concorrência não estão presentes para este tipo de dados no excerto de especificação fornecido e, portanto, foram omitidos [SWS_Pwm_00197].

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Pwm
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Pwm@rel:R20-11#cbc5bff4
Content hash
cbc5bff4
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_PWMDriver.pdf#nameddest=SWS_Pwm_00095

Inicialização e estado

Pwm_DeInit função

Service for PWM De - Initialization.

void Pwm_DeInit (void);

Service returns the version information of this module.

void Pwm_GetVersionInfo (Std_VersionInfoType* versioninfo);
Pwm_Init função

Service for PWM initialization.

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Serviços · Set…

Service sets the duty cycle of the PWM channel.

void Pwm_SetDutyCycle (Pwm_ChannelType ChannelNumber, uint16 DutyCycle);

Service sets the PWM output to the configured Idle state.

void Pwm_SetOutputToIdle (Pwm_ChannelType ChannelNumber);

Service sets the period and the duty cycle of a PWM channel

void Pwm_SetPeriodAndDuty (Pwm_ChannelType ChannelNumber, Pwm_PeriodType Period, uint16 DutyCycle);

This API configures the Pwm module so that it enters the already prepared power st ate, chosen between a predefined set of configured ones.

Std_ReturnType Pwm_SetPowerState (Pwm_PowerStateRequestResultType* Result);

Serviços · Get…

This API returns the current power state of the PWM HW unit. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

Std_ReturnType Pwm_GetCurrentPowerState (Pwm_PowerStateType* CurrentPowerState, Pwm_PowerStateRequestResultType* Result);

Service to read the internal state of the PWM out put signal.

Pwm_OutputStateType Pwm_GetOutputState (Pwm_ChannelType ChannelNumber);

This API returns the Target power state of the PWM HW unit.

Std_ReturnType Pwm_GetTargetPowerState (Pwm_PowerStateType* TargetPowerState, Pwm_PowerStateRequestResultType* Result);

Serviços · Outros

The API shall be invoked by the PWM Driver when the requested power state preparation for mode <#Mode> is completed.

void IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> (void);

Service to disable the PWM signal edge notification.

void Pwm_DisableNotification (Pwm_ChannelType ChannelNumber);

Service to enable the PWM signal edge notification according to notification pa rameter.

void Pwm_EnableNotification (Pwm_ChannelType ChannelNumber, Pwm_EdgeNotificationType Notification);

This API is cyclically called and supervises the power state transitions, checking for the readiness of the module and issuing the callbacks Io Hw Ab_ Pwm_ Notify Ready For Power State (see Pwm Power State Ready Cb k Ref configuration parameter). AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

void Pwm_Main_PowerTransitionManager (void);

The Pwm module shall call the function Pwm_ Notification_<#Channel> accordingly to the last call of Pwm_ Enable Notification for channel <#Channel>.

void Pwm_Notification_<#Channel> (void);

This API starts the needed process to allow the PWM HW module to enter the requested power state. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_PWMDriver

Std_ReturnType Pwm_PreparePowerState (Pwm_PowerStateType PowerState, Pwm_PowerStateRequestResultType* Result);

Tipos

Defines the class of a PWM channel

Nume ric identifier of a PWM channel.

This is the type of data structure containing the initialization data for the PWM driver.

Definition of the type of edge notification of a PWM channel.

Output state of a PWM channel.

Definition of the period of a PWM channel.

Result of the requests related to power state transitions.

Power state currently active or set as target power state.