Freescale Semiconductor Inc.
Main Page | Data Structures | File List | Data Fields | Globals

etpu_inj.h File Reference


Detailed Description

This file contains useful macros and prototypes for INJ API.

Author:
Milan Brejl [r54529]
Version:
1.0
Date:
17-Mar-2014

Definition in file etpu_inj.h.

#include "etpu_util.h"
#include "etpu_inj_auto.h"

Go to the source code of this file.

Defines

#define FS_ETPU_INJ_BANK_CHAN_NOT_USED   0xFF
#define FS_ETPU_INJ_PHASE_DURATION_MASK   0x00FFFFFF
#define FS_ETPU_INJ_PHASE_OUT_LOW   0x00000000
#define FS_ETPU_INJ_PHASE_OUT_HIGH_INJ   0x01000000
#define FS_ETPU_INJ_PHASE_OUT_HIGH_BANK_1   0x02000000
#define FS_ETPU_INJ_PHASE_OUT_HIGH_BANK_2   0x04000000
#define FS_ETPU_INJ_PHASE_OUT_HIGH_BANK_3   0x08000000
#define FS_ETPU_INJ_PHASE_DMA_INJ   0x10000000
#define FS_ETPU_INJ_PHASE_DMA_IRQ_BANK_1   0x20000000
#define FS_ETPU_INJ_PHASE_DMA_IRQ_BANK_2   0x40000000
#define FS_ETPU_INJ_PHASE_DMA_IRQ_BANK_3   0x80000000

Functions

uint32_t fs_etpu_inj_init (struct inj_instance_t *p_inj_instance, struct inj_config_t *p_inj_config)
 This function initializes eTPU channels to run INJ function.
uint32_t fs_etpu_inj_config (struct inj_instance_t *p_inj_instance, struct inj_config_t *p_inj_config)
 This function changes the INJ configuration.
uint32_t fs_etpu_inj_get_states (struct inj_instance_t *p_inj_instance, struct inj_states_t *p_inj_states)
 This function reads INJ state variables, including error flags, and clears the eTPU error after reading.


Define Documentation

#define FS_ETPU_INJ_BANK_CHAN_NOT_USED   0xFF
 

Unused BANK channel number

Definition at line 33 of file etpu_inj.h.

Referenced by fs_etpu_inj_init().

#define FS_ETPU_INJ_PHASE_DMA_INJ   0x10000000
 

Definition at line 42 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_DMA_IRQ_BANK_1   0x20000000
 

Definition at line 43 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_DMA_IRQ_BANK_2   0x40000000
 

Definition at line 44 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_DMA_IRQ_BANK_3   0x80000000
 

Definition at line 45 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_DURATION_MASK   0x00FFFFFF
 

Injection phase configuration

Definition at line 36 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_OUT_HIGH_BANK_1   0x02000000
 

Definition at line 39 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_OUT_HIGH_BANK_2   0x04000000
 

Definition at line 40 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_OUT_HIGH_BANK_3   0x08000000
 

Definition at line 41 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_OUT_HIGH_INJ   0x01000000
 

Definition at line 38 of file etpu_inj.h.

#define FS_ETPU_INJ_PHASE_OUT_LOW   0x00000000
 

Definition at line 37 of file etpu_inj.h.


Function Documentation

uint32_t fs_etpu_inj_config struct inj_instance_t p_inj_instance,
struct inj_config_t p_inj_config
 

This function changes the INJ configuration.

Note:
The following actions are performed in order:
  1. Read channel parameter from eTPU DATA RAM to check no injection sequence is active on this injector.
  2. Write configuration parameter values to eTPU DATA RAM
  3. Write HSR
Warning:
The new injection sequence definition (array of injections and array of phases of each injection) must fit into the eTPU DATA RAM already allocated.
Parameters:
*p_inj_instance - This is a pointer to the instance structure inj_instance_t.
*p_inj_config - This is a pointer to the structure of configuration parameters inj_config_t.
Returns:
Error codes that can be returned are:
  • FS_ETPU_ERROR_NONE - No error, injection parameters were set.
  • FS_ETPU_ERROR_TIMING - The injection parameters were not set because the injection sequence is active. During this time the injection parameters cannot be updated.

Definition at line 325 of file etpu_inj.c.

References inj_config_t::angle_irq, inj_injection_config_t::angle_start, inj_config_t::angle_stop, inj_instance_t::chan_num_inj, inj_instance_t::cpba, inj_instance_t::cpba_injections, inj_instance_t::cpba_phases, fs_etpu_data_ram_start, FS_ETPU_INJ_HSR_UPDATE, FS_ETPU_INJ_INJECTION_STRUCT_SIZE, FS_ETPU_INJ_OFFSET_ANGLE_IRQ, FS_ETPU_INJ_OFFSET_ANGLE_START, FS_ETPU_INJ_OFFSET_ANGLE_STOP, FS_ETPU_INJ_OFFSET_INJECTION_COUNT, FS_ETPU_INJ_OFFSET_INJECTION_COUNTER, FS_ETPU_INJ_OFFSET_P_PHASE_FIRST, FS_ETPU_INJ_OFFSET_PHASE_COUNT, FS_ETPU_INJ_PHASE_STRUCT_SIZE, inj_config_t::injection_count, inj_config_t::p_injection_config, inj_injection_config_t::p_phase_config, and inj_injection_config_t::phase_count.

uint32_t fs_etpu_inj_get_states struct inj_instance_t p_inj_instance,
struct inj_states_t p_inj_states
 

This function reads INJ state variables, including error flags, and clears the eTPU error after reading.

Note:
The following actions are performed in order:
  1. Read state parameter values from eTPU DATA RAM
  2. Clear INJ error
Parameters:
*p_inj_instance - This is a pointer to the instance structure inj_instance_t.
*p_inj_states - This is a pointer to the return structure of states inj_states_t.
Returns:
Error codes that can be returned are:
  • FS_ETPU_ERROR_NONE - No error

Definition at line 414 of file etpu_inj.c.

References inj_instance_t::cpba, inj_states_t::error, FS_ETPU_INJ_OFFSET_ERROR, FS_ETPU_INJ_OFFSET_INJECTION_COUNTER, FS_ETPU_INJ_OFFSET_PHASE_COUNTER, inj_states_t::injection_idx, and inj_states_t::phase_idx.

uint32_t fs_etpu_inj_init struct inj_instance_t p_inj_instance,
struct inj_config_t p_inj_config
 

This function initializes eTPU channels to run INJ function.

Note:
The following actions are performed in order:
  1. Use user-defined CPBA or allocate new eTPU DATA RAM
  2. Write chan config registers and FM bits
  3. Write channel parameters
  4. Write HSR
  5. Set channel priority
Parameters:
*p_inj_instance - This is a pointer to the instance structure inj_instance_t.
*p_inj_config - This is a pointer to the structure of configuration parameters inj_config_t.
Returns:
Error codes that can be returned are:
  • FS_ETPU_ERROR_MALLOC - eTPU DATA RAM memory allocation error
  • FS_ETPU_ERROR_NONE - No error
Warning:
This function does not configure the pins, only the eTPU channels.

Definition at line 107 of file etpu_inj.c.

References inj_config_t::angle_irq, inj_injection_config_t::angle_start, inj_config_t::angle_stop, inj_instance_t::chan_num_bank_1, inj_instance_t::chan_num_bank_2, inj_instance_t::chan_num_bank_3, inj_instance_t::chan_num_inj, inj_instance_t::cpba, inj_instance_t::cpba_injections, inj_instance_t::cpba_phases, fs_etpu_data_ram_start, FS_ETPU_INJ_BANK_CHAN_NOT_USED, FS_ETPU_INJ_FM1_CHANNEL_BANK, FS_ETPU_INJ_FM1_CHANNEL_INJ, FS_ETPU_INJ_FUNCTION_NUMBER, FS_ETPU_INJ_HSR_INIT, FS_ETPU_INJ_INJECTION_STRUCT_SIZE, FS_ETPU_INJ_NUM_PARMS, FS_ETPU_INJ_OFFSET_ANGLE_IRQ, FS_ETPU_INJ_OFFSET_ANGLE_START, FS_ETPU_INJ_OFFSET_ANGLE_STOP, FS_ETPU_INJ_OFFSET_BANK_CHANS, FS_ETPU_INJ_OFFSET_BANK_CHANS_COUNT, FS_ETPU_INJ_OFFSET_BANK_CHANS_MASK, FS_ETPU_INJ_OFFSET_ERROR, FS_ETPU_INJ_OFFSET_INACTIVE_POLARITIES, FS_ETPU_INJ_OFFSET_INJECTION_COUNT, FS_ETPU_INJ_OFFSET_INJECTION_COUNTER, FS_ETPU_INJ_OFFSET_P_INJECTION, FS_ETPU_INJ_OFFSET_P_INJECTION_FIRST, FS_ETPU_INJ_OFFSET_P_PHASE, FS_ETPU_INJ_OFFSET_P_PHASE_FIRST, FS_ETPU_INJ_OFFSET_PHASE_COUNT, FS_ETPU_INJ_OFFSET_PHASE_COUNTER, FS_ETPU_INJ_OFFSET_TDC_ANGLE, FS_ETPU_INJ_OFFSET_TDC_ANGLE_ACTUAL, FS_ETPU_INJ_PHASE_STRUCT_SIZE, FS_ETPU_INJ_TABLE_SELECT, inj_config_t::injection_count, inj_config_t::p_injection_config, inj_injection_config_t::p_phase_config, inj_injection_config_t::phase_count, inj_instance_t::polarity_bank, inj_instance_t::polarity_inj, inj_instance_t::priority, and inj_instance_t::tdc_angle.