DEENESPTFRRUARHIKOZHNL

PWM Driver (Pwm)

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

Guía del móduloGENERADO POR IA

Controla salidas moduladas por ancho de pulsos del hardware del microcontrolador canal por canal mediante período y ciclo de trabajo.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: 346ede702b24 Procedencia Preguntas abiertas (1)
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Controla salidas moduladas por ancho de pulsos del hardware del microcontrolador canal por canal mediante período y ciclo de trabajo.

Como módulo MCAL, el controlador de dispositivo PWM controla las salidas moduladas por ancho de pulsos del microcontrolador canal por canal y accede para ello directamente a sus registros. Según Pwm_Init, los Pwm User ajustan el ciclo de trabajo y, en canales con período variable, también el período. Pueden conmutar salidas al estado inactivo (Idle) y activar o desactivar notificaciones de flanco [SWS_Pwm_91000]. De manera opcional, el controlador de dispositivo gestiona cambios de dos fases del estado de potencia mediante preparación y establecimiento. En caso de detección de errores activa, notifica fallos como la falta de inicialización o canales no válidos y entonces no ejecuta nada [SWS_Pwm_00201].

El controlador de dispositivo PWM es un módulo MCAL y controla las salidas moduladas por ancho de pulsos del microcontrolador a través de sus registros. Por lo tanto, no requiere interfaces de módulos inferiores (SWS PWM Driver p. 44). Se inicializa de forma síncrona con Pwm_Init y un puntero al conjunto de configuración [SWS_Pwm_00095], al que el ECU State Manager llama como interfaz de inicialización opcional (SWS EcuM p. 152). Típicamente lo utiliza la IoHwAb, por ejemplo mediante un controlador de etapa de potencia (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 Señal PWM (punto de lectura de Pwm_GetOutputState antes de la lógica de puerto)

Diagrama de contexto: EcuM inicializa el controlador de dispositivo, el Pwm User lo maneja y el controlador de dispositivo devuelve notificaciones y errores. Fuentes: [SWS_Pwm_00105], [SWS_Pwm_00198], [SWS_Pwm_00104]

El control se realiza mediante un ciclo de trabajo de 16 bits en el que 0x8000 representa el 100 % (SWS PWM Driver p. 18). Los servicios más importantes:

  • Pwm_SetDutyCycle modifica el ciclo de trabajo [SWS_Pwm_91000]. Con 0 % y 100 %, establece un nivel estático en función de la polaridad.
  • Pwm_SetPeriodAndDuty modifica adicionalmente el período, pero solo en canales de la clase PWM_VARIABLE_PERIOD [SWS_Pwm_00110].
  • Pwm_SetOutputToIdle conmuta inmediatamente al nivel Idle [SWS_Pwm_91002].
  • Pwm_GetOutputState lee el nivel interno [SWS_Pwm_00100].
kanal init tras Pwm_Init (estado inicial configurado) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat nivel estático (0 %: inverso a la polaridad, 100 %: igual a la polaridad) init->stat Configuración: Low o High mod->mod Pwm_SetPeriodAndDuty (solo 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 (reactivación con período variable)

Diagrama de estados: un canal cambia mediante la API entre modulación, nivel estático y estado inactivo (Idle). Fuentes: [SWS_Pwm_91000], [SWS_Pwm_91001], SWS PWM Driver p. 31

Las notificaciones de flanco se activan por canal con Pwm_EnableNotification [SWS_Pwm_91004] y llegan al Pwm User como Pwm_Notification_<#Channel> [SWS_Pwm_00105]. De manera opcional, el controlador de dispositivo también gestiona estados de potencia en dos fases. Pwm_PreparePowerState inicia la preparación [SWS_Pwm_00183], que el Pwm_Main_PowerTransitionManager periódico finaliza [SWS_Pwm_00189]. Después, Pwm_SetPowerState establece el estado [SWS_Pwm_00166].

Con la detección de errores activa, las funciones notifican errores como PWM_E_UNINIT, PWM_E_PARAM_CHANNEL o PWM_E_PERIOD_UNCHANGEABLE [SWS_Pwm_00201] y retornan sin efecto (SWS PWM Driver p. 44). En estos casos, Pwm_GetOutputState devuelve PWM_LOW [SWS_Pwm_30051]. Si se llama a Pwm_SetPowerState mientras el controlador de dispositivo todavía está en uso, se produce el error de tiempo de ejecución PWM_E_NOT_DISENGAGED [SWS_Pwm_00202].

Rol en el MCAL: controlador de dispositivo entre la unidad PWM y el Pwm User

El controlador de dispositivo PWM encapsula las salidas moduladas por ancho de pulsos del microcontrolador. Como módulo de la capa MCAL, accede directamente a los registros del microcontrolador y, por tanto, no requiere interfaces de módulos subyacentes (SWS PWM Driver p. 44). Por la misma razón, no proporciona callbacks para capas inferiores (SWS PWM Driver p. 40) ni ofrece interfaces de servicio (SWS PWM Driver p. 44). Sus servicios están disponibles a través de Pwm.h, tales como Pwm_Init [SWS_Pwm_00095], Pwm_SetDutyCycle [SWS_Pwm_91000] y Pwm_GetOutputState [SWS_Pwm_00100]. Importa los tipos estándar Std_ReturnType y Std_VersionInfoType desde Std_Types.h [SWS_Pwm_00094].

El ECU State Manager incluye Pwm_Init entre sus interfaces de inicialización opcionales (SWS EcuM p. 152). En el caso de uso de una etapa final de potencia, un controlador de etapa de potencia de la IoHwAb llama a servicios de PWM, DIO y SPI y, con ello, ajusta, entre otros, tensiones y frecuencias (SWS IoHwAb p. 37). En sentido inverso, el controlador de dispositivo llama a dos tipos de funciones: las notificaciones específicas de canal Pwm_Notification_<#Channel> [SWS_Pwm_00105] y, en la gestión de potencia, IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198]. Opcionalmente, notifica errores de desarrollo a través de Det_ReportError [SWS_Pwm_00104]. Si el hardware ofrece mecanismos diferentes para canales distintos, esto no se abstrae mediante infijos de API específicos del fabricante, sino a través del número de 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 Señal PWM (punto de lectura de Pwm_GetOutputState antes de la lógica de puerto)

Diagrama de contexto: el controlador Pwm es inicializado por EcuM y operado por el Pwm User. El planificador lo invoca cíclicamente, notifica eventos al Pwm User y errores a DET, y controla la unidad PWM mediante sus registros. Fuentes: [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 señal: período, ciclo de trabajo, polaridad y clases de canal

Se accede a un canal mediante el identificador numérico Pwm_ChannelType [SWS_Pwm_00106]. El período es de tipo Pwm_PeriodType, un tipo dependiente de la implementación con 8 a 32 bits [SWS_Pwm_00107]. Tres conceptos determinan la señal (SWS PWM Driver p. 9):

  • La polaridad define el nivel inicial de cada período.
  • El ciclo de trabajo indica la proporción de este nivel inicial dentro del período.
  • El estado idle es el estado inicial tras Pwm_SetOutputToIdle o Pwm_DeInit.

El gráfico para la descripción de la señal compara ambas polaridades PWM_HIGH y PWM_LOW (SWS PWM Driver p. 7).

El ciclo de trabajo es un valor de 16 bits. 0x0000 representa el 0 % y 0x8000 el 100 %. Como ayuda de implementación, la especificación menciona AbsoluteDutyCycle = ((uint32)AbsolutePeriodTime * RelativeDutyCycle) >> 15; (SWS PWM Driver p. 18). De forma correspondiente, Pwm_SetDutyCycle y Pwm_SetPeriodAndDuty limitan el parámetro DutyCycle a Min=0x0000 y Max=0x8000 [SWS_Pwm_91000] [SWS_Pwm_91001].

La clase de canal Pwm_ChannelClassType define qué puede modificar un canal en tiempo de ejecución [SWS_Pwm_00110]:

  • PWM_VARIABLE_PERIOD: el período y el ciclo de trabajo son modificables.
  • PWM_FIXED_PERIOD: solo el ciclo de trabajo es modificable.
  • PWM_FIXED_PERIOD_SHIFTED: período fijo y desplazado que no se puede modificar; solo disponible si el hardware lo admite.

El diagrama de período desplazado muestra canales con el mismo período, cuyo inicio de período está desfasado en cada caso un tiempo fijo (SWS PWM Driver p. 23).

Ciclo de vida y control de la señal: desde Pwm_Init hasta el estado idle

Pwm_Init es síncrona y no reentrante. Mediante ConfigPtr, la función recibe un puntero al conjunto de configuración [SWS_Pwm_00095]. Su tipo Pwm_ConfigType tiene contenido específico del hardware [SWS_Pwm_00111]. Según el diagrama de inicialización, las salidas quedan posteriormente, según la configuración, en nivel bajo, en nivel alto o en estado de modulación. Las notificaciones solo se producen tras la primera llamada a Pwm_EnableNotification (SWS PWM Driver p. 46). Si se vuelve a invocar Pwm_Init en un controlador ya inicializado, debe notificarse el error de desarrollo PWM_E_ALREADY_INITIALIZED [SWS_Pwm_50002].

Pwm_DeInit también es síncrona y no reentrante [SWS_Pwm_00096]. La función desinicializa el módulo, establece las salidas en el estado idle y desactiva las interrupciones de PWM, así como las notificaciones de flanco. Puede habilitarse y deshabilitarse mediante PwmDeInitApi (SWS PWM Driver p. 27). Interpretación: después de esto, el módulo debería considerarse de nuevo como no inicializado, de modo que una nueva invocación de Pwm_Init resulta admisible. Pregunta Q-a892974ddbe644e0 (abierta)

lebenszyklus start comenzar uninit no inicializado start->uninit uninit->uninit otra API → PWM_E_UNINIT (Pwm_GetOutputState devuelve PWM_LOW) init inicializado (canales según configuración: Low, High o modulación) uninit->init Pwm_Init(ConfigPtr) init->uninit Pwm_DeInit (salidas IDLE, interrupciones y notificaciones desactivadas) Interpretación: estado subsiguiente init->init Pwm_Init → PWM_E_ALREADY_INITIALIZED

Diagrama de estados: ciclo de vida del módulo con inicialización, desinicialización y errores ante un orden de llamada incorrecto. El retorno al estado «no inicializado» tras Pwm_DeInit es una interpretación. Fuentes: [SWS_Pwm_00095], [SWS_Pwm_00096], [SWS_Pwm_50002], [SWS_Pwm_20002], [SWS_Pwm_30051], SWS PWM Driver p. 27

Durante el funcionamiento, Pwm_SetDutyCycle establece el ciclo de trabajo de un canal [SWS_Pwm_91000]. Con 0 % y 100 %, la salida se establece de forma estática (SWS PWM Driver p. 28):

  • Al 0 %, el nivel es inverso a la polaridad configurada.
  • Al 100 %, el nivel coincide con la polaridad.
  • Con valores intermedios, se modula según el período, el ciclo de trabajo y la polaridad.

Según el diagrama, el controlador asume el nuevo ciclo de trabajo al final del período en curso si la implementación lo admite; de lo contrario, inmediatamente (SWS PWM Driver p. 37).

Pwm_SetPeriodAndDuty establece conjuntamente el período y el ciclo de trabajo [SWS_Pwm_91001]. En este caso se aplican tres reglas (SWS PWM Driver p. 30):

  • El período se actualiza al final del período si la implementación lo admite y está configurado mediante PwmPeriodUpdatedEndperiod.
  • Deben suprimirse los picos espurios en la salida.
  • El ciclo de trabajo se suministra para que la frecuencia y el ciclo de trabajo concuerden entre sí.
tastgrad a Llamada a Pwm_SetDutyCycle o Pwm_SetPeriodAndDuty (comprobaciones generales superadas) k Pwm_SetPeriodAndDuty? a->k c Kanalklasse = PWM_VARIABLE_PERIOD? k->c Sí d angeforderter Tastgrad? k->d nein (Pwm_SetDutyCycle) e Notificar PWM_E_PERIOD_UNCHANGEABLE, salir de la función sin acción c->e no (con detección de errores activa) p Establecer período y ciclo de trabajo (período al final del período si PwmPeriodUpdatedEndperiod; suprimir picos espurios) c->p Sí z Salida estática: inversa a la polaridad d->z 0x0000 (0 %) h Salida estática: igual a la polaridad d->h 0x8000 (100 %) m Modulación según período, ciclo de trabajo y polaridad d->m dazwischen

Diagrama de actividades: procesamiento de Pwm_SetDutyCycle y Pwm_SetPeriodAndDuty con comprobación de la clase de canal y tratamiento especial del 0 % y 100 %. Fuentes: [SWS_Pwm_40002], SWS PWM Driver p. 28, SWS PWM Driver p. 30, SWS PWM Driver p. 44

Pwm_SetOutputToIdle establece la salida inmediatamente en el estado idle configurado [SWS_Pwm_91002]. Los canales con período variable se vuelven a activar a continuación mediante Pwm_SetPeriodAndDuty (SWS PWM Driver p. 31). El diagrama «Setting Pwm output to idle» muestra exactamente esta secuencia (SWS PWM Driver p. 50). Pwm_GetOutputState lee el estado de salida interno de forma síncrona como PWM_HIGH o PWM_LOW [SWS_Pwm_00100] [SWS_Pwm_00108]. Un diagrama de la especificación de requisitos ubica el valor leído en la salida de la unidad PWM, es decir, antes de la lógica de puerto y no en el pin físico (RS PWM Driver p. 14).

kanal init tras Pwm_Init (estado inicial configurado) mod Modulation (0 % < Tastgrad < 100 %) init->mod Konfiguration: Modulation stat nivel estático (0 %: inverso a la polaridad, 100 %: igual a la polaridad) init->stat Configuración: Low o High mod->mod Pwm_SetPeriodAndDuty (solo 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 (reactivación con período variable)

Diagrama de estados: estados de salida de un canal (modulación, nivel estático, idle) y las API que alternan entre ellos. Fuentes: [SWS_Pwm_91000], [SWS_Pwm_91001], [SWS_Pwm_91002], SWS PWM Driver p. 28, SWS PWM Driver p. 31, SWS PWM Driver p. 46

Notificaciones de flanco por canal

Con Pwm_EnableNotification, el Pwm User habilita la notificación para un canal. El parámetro de tipo Pwm_EdgeNotificationType selecciona PWM_RISING_EDGE, PWM_FALLING_EDGE o PWM_BOTH_EDGES [SWS_Pwm_91004] [SWS_Pwm_00109]. La función descarta las interrupciones pendientes (SWS PWM Driver p. 35). Al igual que Pwm_DisableNotification [SWS_Pwm_91003], solo existe si PwmNotificationSupported está habilitado (SWS PWM Driver p. 34).

El controlador invoca la función configurada Pwm_Notification_<#Channel> de acuerdo con la última llamada a Pwm_EnableNotification o Pwm_DisableNotification. Al hacerlo, restablece el flag de interrupción correspondiente (SWS PWM Driver p. 42). La devolución de llamada no tiene parámetros y se da a conocer a través de Pwm_Externals.h. El hecho de que sea reentrante depende de la implementación del Pwm User [SWS_Pwm_00105].

Notificación de flanco de un canal PWMPwm UserPwmPwm_Init(const Pwm_ConfigType*)Pwm_Init()Ninguna notificación hasta elersten Pwm_EnableNotificationPwm_EnableNotification(ChannelNumber,PWM_RISING_EDGE | PWM_FALLING_EDGE | PWM_BOTH_EDGES)anstehende Interrupts verwerfenPwm_EnableNotification()loopen cada flanco seleccionadoRestablecer flag de interrupciónPwm_Notification_<#Channel>()Pwm_DisableNotification(ChannelNumber)Pwm_DisableNotification()Sin notificaciones adicionales

Diagrama de secuencias: flujo desde la inicialización, pasando por la activación y desactivación de la notificación de flanco, hasta el cese de nuevas devoluciones de llamada. Fuentes: [SWS_Pwm_91004], [SWS_Pwm_91003], [SWS_Pwm_00105], SWS PWM Driver p. 52, SWS PWM Driver p. 42

Estados de potencia de los periféricos PWM

El control de estados de potencia es una función opcional. Se limita a los periféricos PWM y presupone que la aplicación, la gestión de modos y IoHwAb ya cumplen las condiciones marco de nivel superior (SWS PWM Driver p. 17). Si PwmLowPowerStatesSupport está activo, se generan las cuatro API de Power State (SWS PWM Driver p. 16). Pwm_PowerStateType reconoce PWM_FULL_POWER (0x00), así como el rango 1..255 para estados con consumo decreciente. En R20-11, el tipo se define como una enumeración [SWS_Pwm_00197]. Por el contrario, una versión posterior lo presenta como un tipo derivado de uint8 (SWS PWM Driver p. 25).

El cambio de estado de potencia se desarrolla en dos fases:

  1. Pwm_PreparePowerState inicia la preparación y proporciona en el parámetro de resultado PWM_SERVICE_ACCEPTED o un motivo de rechazo [SWS_Pwm_00183] [SWS_Pwm_00165]. Lo que no se pueda concluir de inmediato lo procesa la Pwm_Main_PowerTransitionManager llamada periódicamente [SWS_Pwm_00189] [SWS_Pwm_00190]. Su tasa de invocación es variable y solo envía devoluciones de llamada en modo asíncrono (SWS PWM Driver p. 41). El controlador notifica la preparación completada mediante IoHwAb_Pwm_NotifyReadyForPowerState<#Mode> [SWS_Pwm_00198].
  2. Pwm_SetPowerState sitúa el hardware en el estado preparado [SWS_Pwm_00166]. Los prerrequisitos, tales como establecer todos los canales en IDLE y cancelar todas las notificaciones, deben haber sido cumplidos previamente por los SWC responsables, como IoHwAb. La función no ejecuta estados intermedios implícitos (SWS PWM Driver p. 36).
powerzustand uninit no inicializado (resultado PWM_NOT_INIT) stabil stabil (aktueller = Zielzustand) uninit->stabil Pwm_Init stabil->stabil Pwm_SetPowerState sin preparación o Prepare con estado actual → PWM_SEQUENCE_ERROR stabil->stabil no soportado / no alcanzable directamente → PWM_POWER_STATE_NOT_SUPP / PWM_TRANS_NOT_POSSIBLE vorb Preparación en curso (destino ≠ estado actual) 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: cambio en dos fases del estado de potencia con preparación, finalización y ajuste, así como los errores de secuencia. Fuentes: [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] devuelve el estado actual y Pwm_GetTargetPowerState [SWS_Pwm_00180] el solicitado. Mientras no se esté ejecutando ninguna transición, ambos coinciden (SWS PWM Driver p. 38). La especificación de IoHwAb muestra la interacción entre BswM, RTE/SchM, IoHwAb, ADC y PWM para el caso asíncrono (SWS IoHwAb p. 60). En el caso síncrono, la preparación ya ha finalizado cuando retorna la API de preparación (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_ACCEPTEDLa preparación continúa en 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()Condición previa: todos los canales IDLE,Benachrichtigungen abgemeldetPwm_SetPowerState(&Result)E_OK / PWM_SERVICE_ACCEPTEDPwm_GetCurrentPowerState(...)E_OK, CurrentPowerState

Diagrama de secuencias: cambio asíncrono a un estado de bajo consumo, controlado por IoHwAb. La secuencia está simplificada y se ha omitido ADC. Fuentes: [SWS_Pwm_00183], [SWS_Pwm_00189], [SWS_Pwm_00198], [SWS_Pwm_00166], SWS IoHwAb p. 57, SWS IoHwAb p. 60

Configuración, contenedores de canal y concurrencia

Los parámetros obligatorios de un canal son el canal de hardware asignado, los valores predeterminados de período y ciclo de trabajo, la polaridad, el nivel idle y la clase de canal. El desfase de fase, el canal de referencia y las propiedades específicas del microcontrolador son opcionales en la medida en que el hardware los proporcione (SWS PWM Driver p. 25). En el modelo de configuración, PwmChannelConfigSet contiene al menos un PwmChannel y PwmDutycycleDefault está limitado de 0 a 0x8000 (ECUC-Parameter p. 545). PwmChannelClass se asigna a Pwm_ChannelClassType. PwmChannelId se asigna al nombre simbólico del contenedor del canal (SWS PWM Driver p. 57).

Los servicios opcionales se habilitan y deshabilitan mediante configuración: PwmSetOutputToIdle (SWS PWM Driver p. 31), PwmGetOutputState (SWS PWM Driver p. 33), así como los mencionados arriba PwmDeInitApi y PwmNotificationSupported.

Para la concurrencia se aplica lo siguiente:

  • Los servicios de canal como Pwm_SetDutyCycle son reentrantes para números de canal diferentes [SWS_Pwm_91000].
  • Las API de estado de potencia no son reentrantes [SWS_Pwm_00183].
  • El módulo debe rechazar las configuraciones con asignaciones de partición que la implementación no admita [SWS_Pwm_00203].

La guía BSW Distribution Guide explica los niveles de reentrancia, hasta llegar a «multi-core reentrant» (BSW Distribution Guide p. 18).

Comportamiento en caso de error

Si la detección de errores de desarrollo está activa, las funciones notifican los errores detectados al Default Error Tracer. A continuación, omiten la función solicitada para no alterar ni los datos ni los registros de hardware (SWS PWM Driver p. 44). Los códigos de error son [SWS_Pwm_00201]:

  • PWM_E_INIT_FAILED (0x10)
  • PWM_E_UNINIT (0x11) para llamadas previas a la inicialización [SWS_Pwm_20002]
  • PWM_E_PARAM_CHANNEL (0x12) para canales no válidos [SWS_Pwm_30002]
  • PWM_E_PERIOD_UNCHANGEABLE (0x13) para cambios de período en canales con período fijo [SWS_Pwm_40002]
  • PWM_E_ALREADY_INITIALIZED (0x14)
  • PWM_E_PARAM_POINTER (0x15) para un parámetro NULL en Pwm_GetVersionInfo

Pwm_GetOutputState siempre debe devolver un valor. Antes de la inicialización o si el canal no es válido, este es PWM_LOW [SWS_Pwm_30051].

pruefung a Llamada a una API de canal det Entwicklungsfehlererkennung aktiv? a->det ini Modul initialisiert? det->ini Sí ok Ejecutar servicio det->ok No ch ¿ChannelNumber válido? ini->ch Sí u PWM_E_UNINIT an Det melden ini->u No pc PWM_E_PARAM_CHANNEL an Det melden ch->pc No ch->ok Sí skip Salir de la función sin acción (Pwm_GetOutputState devuelve PWM_LOW) u->skip pc->skip

Diagrama de actividades: comprobaciones generales de las API de canal con la detección de errores de desarrollo activa, con cancelación sin efecto. Fuentes: [SWS_Pwm_20002], [SWS_Pwm_30002], [SWS_Pwm_30051], SWS PWM Driver p. 44

Las API de estado de potencia notifican además los errores mediante Std_ReturnType y el tipo de resultado Pwm_PowerStateRequestResultType. Los posibles valores son PWM_NOT_INIT, PWM_SEQUENCE_ERROR, PWM_HW_FAILURE, PWM_POWER_STATE_NOT_SUPP y PWM_TRANS_NOT_POSSIBLE [SWS_Pwm_00165]. Para un estado no admitido se define además PWM_E_POWER_STATE_NOT_SUPPORTED [SWS_Pwm_00174], y para un estado no alcanzable directamente, PWM_E_TRANSITION_NOT_POSSIBLE [SWS_Pwm_00175].

Si se invoca Pwm_SetPowerState mientras todavía hay canales fuera de IDLE o hay notificaciones registradas, se produce el error de tiempo de ejecución PWM_E_NOT_DISENGAGED (0x16) [SWS_Pwm_00202] (SWS PWM Driver p. 20). Pwm_Main_PowerTransitionManager simplemente retorna sin inicializar y no notifica deliberadamente ningún error de desarrollo. El motivo: las tareas periódicas pueden ejecutarse incluso antes de finalizar la inicialización (SWS PWM Driver p. 41).

Más evidencia detallada

Guía generada por IA sobre la base de los requisitos y pasajes de documentos proporcionados en la carga útil para AUTOSAR Classic R20-11. Solo la especificación es vinculante.

PWM Driver (Pwm)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función Pwm_Init [SWS_Pwm_00095] 📄 PDF

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Service for PWM initialization.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0770524664d2 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona Pwm_Init sirve como servicio central para la inicialización de todo el controlador PWM ([SWS_Pwm_00095]). Se proporciona a través del archivo de cabecera Pwm.h y tiene el Service-ID hexadecimal 0x00 ([SWS_Pwm_00095]). Como único parámetro de entrada se transfiere ConfigPtr, que actúa como puntero al conjunto de configuración específico del controlador de tipo Pwm_ConfigType ([SWS_Pwm_00095]). La interfaz no tiene valor de retorno y no utiliza parámetros de salida ni parámetros de entrada/salida ([SWS_Pwm_00095]).

En lo relativo al comportamiento en tiempo de ejecución, Pwm_Init es síncrona y está especificada como no reentrante (Non Reentrant) ([SWS_Pwm_00095]). Por lo tanto, una invocación simultánea o interruptiva de esta función desde varios subprocesos, tareas o rutinas de interrupción es estrictamente inadmisible. Es de prever que la ejecución se realice típicamente una sola vez durante el arranque del sistema, en la fase de inicialización de la ECU, antes del uso posterior de los canales PWM. Pregunta Q-ff3f1cf769dfed70 (abierta)

Para asegurar el orden de invocación admisible, el módulo supervisa su estado: si se invoca el servicio Pwm_Init cuando el controlador PWM ya está inicializado, el módulo notifica el error de desarrollo PWM_E_ALREADY_INITIALIZED con el identificador 0x14 ([SWS_Pwm_50002]). Por consiguiente, una inicialización reiterada se considera un error.

Este texto ha sido elaborado por una IA. Las especificaciones de AUTOSAR son determinantes.

Guía del implementador pendiente (complejidad I1)

función Pwm_DeInit [SWS_Pwm_00096] 📄 PDF

void Pwm_DeInit (void);

Service for PWM De - Initialization.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e8e4048754f1 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y signatura

La función Pwm_DeInit sirve como servicio para la desinicialización del controlador de PWM ([SWS_Pwm_00096]). Se proporciona a través del archivo de cabecera Pwm.h y lleva el ID de servicio 0x01 ([SWS_Pwm_00096]). La interfaz posee la firma void Pwm_DeInit(void), no recibe parámetros de entrada ni de salida y no devuelve ningún valor al llamador ([SWS_Pwm_00096]).

La llamada a Pwm_DeInit se ejecuta de forma síncrona ([SWS_Pwm_00096]). Por lo tanto, el flujo de control llamador permanece en la función hasta que concluyen los pasos de desinicialización del módulo PWM.

Concurrencia y restricciones

Para la ejecución se aplican las siguientes condiciones marco relativas a la concurrencia:

  • No reentrante: El servicio está especificado como no reentrante ([SWS_Pwm_00096]). No está permitida una llamada simultánea o con interrupción desde múltiples hilos, tareas o ISR.
  • Contexto de llamada: Debido a la semántica síncrona y a la falta de reentrancia, la llamada debería realizarse típicamente en el marco de una fase de parada controlada a nivel de tarea. Pregunta Q-f1afc58637cba5cf (abierta)

Manejo de errores

En la especificación de Pwm_DeInit no se definen valores de retorno ni códigos de error específicos ([SWS_Pwm_00096]). Cualquier posible error de tiempo de ejecución o de estado probablemente se registre o intercepte a través de mecanismos de monitorización internos del módulo, como la interfaz de desarrollo (DET), ya que no está prevista una notificación de errores directa a través de la interfaz de la función. Pregunta (abierta)

Este texto ha sido generado automáticamente a partir de la especificación AUTOSAR Classic R20-11.

función Pwm_DisableNotification [SWS_Pwm_91003] 📄 PDF

void Pwm_DisableNotification (Pwm_ChannelType ChannelNumber);

Service to disable the PWM signal edge notification.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 2d97fc6435bd Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función Pwm_DisableNotification sirve para desactivar la notificación de flancos (Signal Edge Notification) de un canal PWM determinado [SWS_Pwm_91003]. La declaración de la función y las definiciones de tipos asociadas se ponen a disposición a través del archivo de cabecera Pwm.h [SWS_Pwm_91003].

Parámetros y valor de retorno

La interfaz posee el Service-ID 0x06 y presenta las siguientes características de firma [SWS_Pwm_91003]:

  • ChannelNumber (in): Identificador numérico del canal PWM a configurar del tipo Pwm_ChannelType [SWS_Pwm_91003].

No existen parámetros de entrada/salida (inout) ni parámetros de solo salida (out) [SWS_Pwm_91003]. La función no devuelve ningún valor de retorno (void) al llamador [SWS_Pwm_91003].

Comportamiento de sincronización y concurrencia

La llamada a Pwm_DisableNotification opera de forma asíncrona [SWS_Pwm_91003]. En lo relativo al comportamiento multihilo, el servicio es reentrante siempre que se direccionen números de canal diferentes [SWS_Pwm_91003].

Interpretación: Dado que la reentrancia está limitada explícitamente a diferentes canales, la función probablemente no sea reentrante para el mismo canal PWM [SWS_Pwm_91003]. Pregunta Q-005e97fd25679da7 (abierta) Por lo tanto, es probable que las llamadas simultáneas para el canal idéntico deban sincronizarse entre sí por parte del llamador.

Notas de uso seleccionadas basadas en la especificación AUTOSAR Classic R20-11.

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0c9ffc1eca13 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función Pwm_EnableNotification sirve para activar notificaciones de flanco de señal para un canal PWM determinado de acuerdo con el parámetro de notificación transferido [SWS_Pwm_91004]. El servicio se proporciona a través del archivo de cabecera Pwm.h, posee el Service-ID 0x07 y no devuelve ningún valor de retorno (void) al llamador [SWS_Pwm_91004].

Al llamar a la interfaz deben transferirse dos parámetros de entrada obligatorios [SWS_Pwm_91004]:

  • ChannelNumber (de tipo Pwm_ChannelType): identificador numérico del canal PWM que se va a direccionar [SWS_Pwm_91004].
  • Notification (de tipo Pwm_EdgeNotificationType): define el tipo de notificación de flanco con los valores admisibles PWM_RISING_EDGE, PWM_FALLING_EDGE o PWM_BOTH_EDGES [SWS_Pwm_91004].

Semántica y concurrencia

La ejecución del servicio está especificada como asíncrona [SWS_Pwm_91004]. En cuanto a la concurrencia, Pwm_EnableNotification está diseñado como reentrante para números de canal distintos [SWS_Pwm_91004]. En caso de acceso simultáneo o interruptivo al mismo canal PWM, se presume que el servicio no es reentrante; por lo tanto, dicho acceso debe asegurarse del lado del llamador. Pregunta Q-73309ed8589161a3 (abierta)

Tratamiento de errores y condiciones límite

El extracto de la especificación no define para esta función valores de retorno específicos ni mensajes de error para el Development Error Tracer (DET) o el Diagnostic Event Manager (DEM) [SWS_Pwm_91004]. Asimismo, faltan directrices sobre contextos de llamada admisibles o secuencias relativas a tareas. Dado que no se indican condiciones previas, la llamada a la función probablemente solo sea admisible tras una inicialización correcta del controlador PWM. Pregunta Q-7f428f59a20175c2 (abierta)

Esta nota de uso se generó de manera automatizada sobre la base del extracto de la especificación de AUTOSAR Classic R20-11.

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b7532b0354d7 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona Pwm_SetPowerState pone el módulo PWM en un estado previamente preparado a partir de una selección preconfigurada de Power-States [SWS_Pwm_00166]. La declaración está disponible a través de la cabecera Pwm.h [SWS_Pwm_00166].

Uso y valores de retorno

La función no recibe parámetros de entrada y transfiere el resultado detallado a través del parámetro de puntero Result de tipo Pwm_PowerStateRequestResultType* [SWS_Pwm_00166]:

  • Si el modo se pudo cambiar correctamente, la función devuelve E_OK y establece Result en PWM_SERVICE_ACCEPTED [SWS_Pwm_00166].
  • Si la solicitud es rechazada, la llamada devuelve E_NOT_OK [SWS_Pwm_00166].

Manejo de errores

En caso de error (valor de retorno E_NOT_OK), Result especifica la causa del fallo [SWS_Pwm_00166]:

  • PWM_NOT_INIT: el módulo PWM no está inicializado [SWS_Pwm_00166].
  • PWM_SEQUENCE_ERROR: existe una secuencia de llamada a la API no admisible [SWS_Pwm_00166].
  • PWM_HW_FAILURE: un error en el módulo de hardware impide la entrada en el Power-State solicitado [SWS_Pwm_00166].

Concurrencia y condiciones de contorno

Pwm_SetPowerState no es reentrante (Non Reentrant) y, para evitar un error de secuencia, requiere que el estado de destino se haya preparado antes de la llamada [SWS_Pwm_00166].

Este texto fue creado por una IA a partir de la especificación AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función 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

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 50b7f8a853d8 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función síncrona Pwm_PreparePowerState inicia el proceso de preparación necesario para que el módulo de hardware PWM pueda cambiar a un estado de energía solicitado [SWS_Pwm_00183]. El estado de destino deseado se transfiere a través del parámetro PowerState, mientras que el resultado detallado se proporciona a través del puntero de salida Result [SWS_Pwm_00183]. Si la preparación se inició con éxito, la función devuelve E_OK y establece Result en PWM_SERVICE_ACCEPTED [SWS_Pwm_00183].

Manejo de errores

Si se rechaza el servicio, la función devuelve E_NOT_OK y notifica la causa específica a través de Result [SWS_Pwm_00183]:

  • PWM_NOT_INIT: el módulo PWM no está inicializado [SWS_Pwm_00183].
  • PWM_SEQUENCE_ERROR: secuencia de llamada no admisible, ya que el estado de energía actual ya coincide con el estado de destino [SWS_Pwm_00183].
  • PWM_POWER_STATE_NOT_SUPP: el módulo no admite el estado de energía solicitado [SWS_Pwm_00183].
  • PWM_TRANS_NOT_POSSIBLE: No es posible una transición directa o el periférico de hardware todavía está ocupado [SWS_Pwm_00183].

Concurrencia e interacción

La función no es reentrante (Non Reentrant) y, por tanto, no debe llamarse de forma concurrente para el mismo módulo [SWS_Pwm_00183]. Tras una preparación correcta mediante Pwm_PreparePowerState, deben ejecutarse acciones posteriores que no surten efecto de forma inmediata para concluir definitivamente la transición del estado de energía [SWS_Pwm_00190].

Esta nota de uso se generó automáticamente sobre la base de la especificación R20-11.

Guía del implementador pendiente (complejidad I1)

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 879296577e8e Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La interfaz Pwm_Main_PowerTransitionManager sirve para la supervisión cíclica de transiciones de estado de energía (Power State Transitions) del controlador PWM según [SWS_Pwm_00189]. Posee el Service-ID 0x0d, no recibe parámetros de transferencia y no devuelve ningún valor de retorno (firma void Pwm_Main_PowerTransitionManager(void)).

En el marco de su ejecución cíclica, la función comprueba la disponibilidad operativa del módulo para el estado de energía respectivo. Tan pronto como exista la disponibilidad, desencadena los callbacks de notificación IoHwAb_Pwm_NotifyReadyForPowerState<Mode> que se referencian mediante el parámetro de configuración PwmPowerStateReadyCbkRef [SWS_Pwm_00189].

La función está prevista para un contexto de llamada cíclico y se proporciona a través del archivo de cabecera SchM_Pwm.h. En consecuencia, es de prever que la llamada periódica tenga lugar típicamente en el contexto del planificador de BSW (Schedule Manager) [SWS_Pwm_00189]. En la especificación del módulo no se definen para este servicio códigos de error específicos, mecanismos para el tratamiento de errores mediante DET o DEM, ni condiciones especiales de reentrancia. Pregunta Q-b9b0431e7ccbca88 (abierta)

Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función 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>.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6eff8686a5f4 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El módulo PWM llama de forma síncrona a la función de notificación relativa al canal Pwm_Notification_<#Channel> en cuanto se produce el evento de flanco configurado para el canal respectivo [SWS_Pwm_00105]. La función tiene la firma void Pwm_Notification_<#Channel>(void), no recibe parámetros de transferencia y no devuelve ningún valor [SWS_Pwm_00105]. Está declarada en el archivo Pwm_Externals.h y debe ser proporcionada por el usuario [SWS_Pwm_00105].

La llamada se realiza en función de la última llamada a Pwm_EnableNotification para el canal en cuestión [SWS_Pwm_00105]. Los eventos desencadenantes se orientan a los valores de Pwm_EdgeNotificationType, que distingue flancos de señal ascendentes (PWM_RISING_EDGE), descendentes (PWM_FALLING_EDGE) o ambos flancos (PWM_BOTH_EDGES) [SWS_Pwm_00109]. Antes de la generación de la señal y de la notificación de eventos, el módulo PWM debe haberse inicializado a través de Pwm_Init con una estructura Pwm_ConfigType dependiente del hardware [SWS_Pwm_00095], [SWS_Pwm_00111].

En relación con la concurrencia, la reentrancia de la función de callback está definida explícitamente como dependiente del usuario (PWM user implementation dependant) [SWS_Pwm_00105]. El contexto de ejecución exacto (por ejemplo, si la llamada se realiza directamente en una rutina de servicio de interrupción o en el contexto de tarea) dependerá probablemente de la implementación subyacente del controlador (interpretación). Pregunta Q-327872e0e8fecb37 (abierta) No existen códigos de error específicos, valores de retorno ni mensajes DET o DEM estandarizados para esta interfaz de notificación [SWS_Pwm_00105].

Este texto ha sido generado por una IA y se basa en la especificación AUTOSAR Classic Release R20-11.

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 23b0f44b508d Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función IoHwAb_Pwm_NotifyReadyForPower (declarada en la sintaxis como IoHwAb_Pwm_NotifyReadyForPowerState<#Mode>) se proporciona a través de la cabecera IoHwAb_Pwm.h y sirve como interfaz de callback en la gestión de energía de AUTOSAR [SWS_Pwm_00198].

En lo que respecta al uso, las propiedades de la interfaz y la interacción del sistema, se aplican los siguientes requisitos vinculantes:

  • Uso y contexto de llamada: La interfaz posee el Service-ID 0x60 y se ejecuta de forma síncrona [SWS_Pwm_00198]. El controlador PWM debe llamarla obligatoriamente tan pronto como la preparación por parte del dispositivo para un estado de energía (Power State) solicitado de un modo haya concluido con éxito [SWS_Pwm_00198].
  • Parámetros y valores de retorno: La firma de la función no define parámetros de entrada, entrada/salida ni salida, y no posee ningún valor de retorno (void) [SWS_Pwm_00198]. Interpretación: Es probable que la asignación al modo de energía correspondiente se derive directamente del nombre de función específico del modo en el código fuente. Pregunta Q-ab761160ed91de78 (abierta)
  • Concurrencia y restricciones: La función está especificada como no reentrante (Non Reentrant) [SWS_Pwm_00198]. Por consiguiente, las llamadas no deben realizarse de forma paralela ni anidada dentro del mismo contexto de controlador.
  • Interacción: En el flujo entre módulos, la llamada a la abstracción de hardware de E/S de nivel superior señaliza que la etapa del controlador está lista para la transición al estado operativo deseado [SWS_Pwm_00198].

En las fuentes de la especificación no se prevén para esta función códigos de error específicos ni mensajes a DET o DEM [SWS_Pwm_00198].

Este texto ha sido elaborado por una IA; todas las afirmaciones se basan exclusivamente en la especificación AUTOSAR.

Guía del implementador pendiente (complejidad I1)

tipo Pwm_OutputStateType [SWS_Pwm_00108] 📄 PDF

Output state of a PWM channel.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4d670762d069 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración Pwm_OutputStateType define el estado de salida de un canal PWM dentro del controlador de Classic AUTOSAR Pwm [SWS_Pwm_00108]. La definición de tipo se proporciona a través del archivo de cabecera Pwm.h para unidades de software llamadoras y aplicaciones de controladores [SWS_Pwm_00108].

El rango de valores de esta enumeración distingue dos estados unívocamente definidos del canal [SWS_Pwm_00108]:

  • PWM_HIGH (valor numérico 0x00): indica que el canal PWM en cuestión se encuentra en estado High [SWS_Pwm_00108].
  • PWM_LOW (valor numérico 0x01): indica que el canal PWM en cuestión se encuentra en estado Low [SWS_Pwm_00108].

En relación con el contexto de llamada y la finalidad de uso, el elemento en sí, como tipo, no define funciones de interfaz [SWS_Pwm_00108]. Interpretación: es de prever que los valores sirvan típicamente como parámetros o valores de retorno en funciones de API del módulo para señalizar el estado de nivel lógico actual o deseado de un canal. Pregunta Q-9c142d658ab7fcfd (abierta)

Dado que se trata de una definición de tipo elemental, no existen tratamientos de error específicos relativos a DET o DEM, ni tampoco requisitos de reentrancia o ejecución síncrona en el alcance de la especificación [SWS_Pwm_00108].

Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 615a415d7a52 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración Pwm_PowerStateRequestResultType proporciona el resultado de solicitudes de cambio de estado del modo de gestión de energía (Power State Transitions) en el controlador PWM según [SWS_Pwm_00165]. La definición de tipo está disponible a través de la cabecera Pwm.h [SWS_Pwm_00165].

El tipo representa tanto la transición correcta como condiciones de error específicas [SWS_Pwm_00165]:

  • PWM_SERVICE_ACCEPTED (0x00): el cambio solicitado de Power-State se ejecutó correctamente [SWS_Pwm_00165].
  • PWM_NOT_INIT (0x01): el módulo PWM todavía no está inicializado [SWS_Pwm_00165].
  • PWM_SEQUENCE_ERROR (0x02): la secuencia de llamada de la API no es admisible [SWS_Pwm_00165].
  • PWM_HW_FAILURE (0x03): un fallo de hardware impide adoptar el estado de energía requerido [SWS_Pwm_00165].
  • PWM_POWER_STATE_NOT_SUPP (0x04): el estado solicitado no es compatible con el módulo [SWS_Pwm_00165].
  • PWM_TRANS_NOT_POSSIBLE (0x05): no es posible una transición de estado directa o el periférico de hardware todavía está ocupado [SWS_Pwm_00165].

Los llamadores deben evaluar el resultado para determinar si un cambio de estado surtió efecto de forma inmediata. Interpretación: es de prever que el tipo actúe típicamente como valor de retorno o parámetro de salida de las correspondientes funciones de gestión de energía para informar a los módulos de nivel superior sobre conflictos de transición o bloqueos de hardware. Pregunta Q-fd06829e5c030906 (abierta)

Este texto fue generado por una IA y sirve como guía orientativa. El texto vinculante es la especificación AUTOSAR.

Guía del implementador pendiente (complejidad I1)

tipo Pwm_PowerStateType [SWS_Pwm_00197] 📄 PDF

Power state currently active or set as target power state.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b1411c45ba56 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración Pwm_PowerStateType sirve en el módulo PWM para describir estados de energía [SWS_Pwm_00197]. Representa o bien el estado operativo actualmente activo o bien un nuevo estado de potencia predeterminado como destino del controlador [SWS_Pwm_00197]. Este tipo de datos se proporciona a través del archivo de cabecera Pwm.h [SWS_Pwm_00197].

La especificación define para la enumeración los siguientes valores y rangos de valores [SWS_Pwm_00197]:

  • PWM_FULL_POWER (valor 0x00): identifica el estado de máxima potencia («Full Power») [SWS_Pwm_00197].
  • Rango de valores 1..255: define modos de potencia escalonados con consumo de energía decreciente gradualmente («power modes with decreasing power consumptions») [SWS_Pwm_00197].

En cuanto al contexto de uso, es de prever que el tipo funcione como parámetro de transferencia al solicitar un modo de bajo consumo, así como valor de retorno en consultas de estado, dado que el tipo representa tanto estados activos como de destino [SWS_Pwm_00197]. Pregunta Q-f0423f8b958d7e91 (abierta) En el presente extracto de la especificación no se incluyen funciones concretas de API, tratamientos de error (DET/DEM) ni restricciones de concurrencia para este tipo de datos, por lo que se omiten [SWS_Pwm_00197].

Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad 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#e65959bb
Content hash
e65959bb
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_PWMDriver.pdf#nameddest=SWS_Pwm_00095

Inicialización y estado

Pwm_DeInit función

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 función

Service for PWM initialization.

void Pwm_Init (const Pwm_ConfigType* ConfigPtr);

Servicios · 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);

Servicios · 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);

Servicios · Otros

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.