am243x/am64x: SDFM: Enable trip based OC detection

-Enable trip based oc detection

Fixes: PINDSW-5523

Signed-off-by: Achala Ram <a-ram@ti.com>
This commit is contained in:
Achala Ram 2023-12-18 19:32:19 +05:30
parent a9d1c6e5b4
commit 48c3485bfe
36 changed files with 1022 additions and 818 deletions

View File

@ -30,6 +30,7 @@ const libdirs_freertos = {
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib",
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib",
"${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib",
"${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib"
],
};
@ -40,6 +41,7 @@ const includes_freertos_r5f = {
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f",
"${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include",
"${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_nine_channel_load_share_mode",
"${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include"
],
};
@ -49,6 +51,7 @@ const libs_freertos_r5f = {
"drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"board.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
],
};

View File

@ -37,6 +37,7 @@
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_nine_channel_load_share_mode
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include
-mcpu=cortex-r5
-mfloat-abi=hard
-mfpu=vfpv3-d16
@ -53,6 +54,7 @@
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib
-i${CG_TOOL_ROOT}/lib
-m=icss_sdfm_nine_channel_load_share_mode.${ConfigName}.map
--diag_suppress=10063
@ -78,6 +80,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.release.lib
-lboard.am243x.r5f.ti-arm-clang.release.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.release.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.release.lib
-llibc.a
-llibsysbm.a
"
@ -91,6 +94,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.debug.lib
-lboard.am243x.r5f.ti-arm-clang.debug.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.debug.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.debug.lib
-llibc.a
-llibsysbm.a
"

View File

@ -67,6 +67,7 @@ INCLUDES_common := \
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include \
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_nine_channel_load_share_mode \
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include \
-Igenerated \
DEFINES_common := \
@ -109,6 +110,7 @@ LIBS_PATH_common = \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
-Wl,-i${CG_TOOL_ROOT}/lib \
LIBS_common = \
@ -116,6 +118,7 @@ LIBS_common = \
-ldrivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lboard.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lpruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-llibc.a \
-llibsysbm.a \
@ -130,6 +133,7 @@ LIBS_NAME = \
drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
board.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
libc.a \
libsysbm.a \
@ -138,6 +142,7 @@ LIBS_PATH_NAME = \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
${CG_TOOL_ROOT}/lib \
FILES := $(FILES_common) $(FILES_$(PROFILE))

View File

@ -37,6 +37,7 @@
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_nine_channel_load_share_mode
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include
-mcpu=cortex-r5
-mfloat-abi=hard
-mfpu=vfpv3-d16
@ -53,6 +54,7 @@
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib
-i${CG_TOOL_ROOT}/lib
-m=icss_sdfm_nine_channel_load_share_mode.${ConfigName}.map
--diag_suppress=10063
@ -78,6 +80,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.release.lib
-lboard.am243x.r5f.ti-arm-clang.release.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.release.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.release.lib
-llibc.a
-llibsysbm.a
"
@ -91,6 +94,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.debug.lib
-lboard.am243x.r5f.ti-arm-clang.debug.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.debug.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.debug.lib
-llibc.a
-llibsysbm.a
"

View File

@ -67,6 +67,7 @@ INCLUDES_common := \
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include \
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_nine_channel_load_share_mode \
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include \
-Igenerated \
DEFINES_common := \
@ -109,6 +110,7 @@ LIBS_PATH_common = \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
-Wl,-i${CG_TOOL_ROOT}/lib \
LIBS_common = \
@ -116,6 +118,7 @@ LIBS_common = \
-ldrivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lboard.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lpruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-llibc.a \
-llibsysbm.a \
@ -130,6 +133,7 @@ LIBS_NAME = \
drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
board.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
libc.a \
libsysbm.a \
@ -138,6 +142,7 @@ LIBS_PATH_NAME = \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
${CG_TOOL_ROOT}/lib \
FILES := $(FILES_common) $(FILES_$(PROFILE))

View File

@ -108,6 +108,19 @@ static Pinmux_PerCfg_t gPinMuxMainDomainCfgsdfm[] = {
PIN_PRG0_PRU0_GPO19,
( PIN_MODE(3) | PIN_PULL_DISABLE )
},
/* PWM1_TZ_OUT,
PRG0_PWM1_TZ_OUT, TZ_OUT, R3, J2C:P6 J8.76 */
{
PIN_PRG0_PRU1_GPO19,
( PIN_MODE(3) | PIN_PULL_DISABLE )
},
/* PWM2_TZ_OUT,
PRG0_PWM2_TZ_OUT, TZ_OUT, R3, J2C:P6 J6.57 */
{
PIN_PRG0_PRU1_GPO8,
( PIN_MODE(3) | PIN_PULL_DISABLE )
},
{PINMUX_END, PINMUX_END}
};

View File

@ -224,14 +224,15 @@ void sdfm_configure_gpio_pin(sdfm_handle h_sdfm)
}
/* Initialize SDFM PRU FW */
int32_t init_sdfm_pru_fw(uint8_t pruId, SdfmPrms *pSdfmPrms, sdfm_handle *pHSdfm, void *pruss_cfg)
int32_t init_sdfm_pru_fw(uint8_t pruId, SdfmPrms *pSdfmPrms, sdfm_handle *pHSdfm, PRUICSS_Handle pruIcssHandle)
{
sdfm_handle hSdfm;
uint8_t SDFM_CH = 0;
/* Initialize SDFM instance */
hSdfm = SDFM_init(pruId, pSdfmPrms->pruInsId);
hSdfm->pruss_cfg = pruss_cfg;
hSdfm->gPruIcssHandle = pruIcssHandle;
hSdfm->pruss_cfg = (void *)(((PRUICSS_HwAttrs *)(pruIcssHandle->hwAttrs))->cfgRegBase);
if( pSdfmPrms->loadShare )
{
@ -368,10 +369,7 @@ int32_t initPruSdfm(
uint32_t byteLen; /* Total number of bytes to be written */
uint8_t pruId;
int32_t status;
void *pruss_cfg;
pruss_cfg = (void *)(((PRUICSS_HwAttrs *)(pruIcssHandle->hwAttrs))->cfgRegBase);
/* Reset PRU */
status = PRUICSS_resetCore(pruIcssHandle, pruInstId);
if (status != SystemP_SUCCESS)
@ -460,7 +458,7 @@ int32_t initPruSdfm(
}
/* Initialize SDFM PRU FW */
status = init_sdfm_pru_fw(pruId, pSdfmPrms, pHSdfm, pruss_cfg);
status = init_sdfm_pru_fw(pruId, pSdfmPrms, pHSdfm, pruIcssHandle);
if (status != SDFM_ERR_NERR)
{
return SDFM_ERR_INIT_PRU_SDFM;

View File

@ -30,6 +30,7 @@ const libdirs_freertos = {
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib",
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib",
"${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib",
"${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib",
],
};
@ -40,6 +41,7 @@ const includes_freertos_r5f = {
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f",
"${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include",
"${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_single_pru_mode",
"${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include"
],
};
@ -49,6 +51,7 @@ const libs_freertos_r5f = {
"drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"board.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
],
};

View File

@ -37,6 +37,7 @@
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_single_pru_mode
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include
-mcpu=cortex-r5
-mfloat-abi=hard
-mfpu=vfpv3-d16
@ -53,6 +54,7 @@
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib
-i${CG_TOOL_ROOT}/lib
-m=icss_sdfm_three_channel_single_pru_mode.${ConfigName}.map
--diag_suppress=10063
@ -78,6 +80,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.release.lib
-lboard.am243x.r5f.ti-arm-clang.release.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.release.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.release.lib
-llibc.a
-llibsysbm.a
"
@ -91,6 +94,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.debug.lib
-lboard.am243x.r5f.ti-arm-clang.debug.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.debug.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.debug.lib
-llibc.a
-llibsysbm.a
"

View File

@ -67,6 +67,7 @@ INCLUDES_common := \
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include \
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_single_pru_mode \
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include \
-Igenerated \
DEFINES_common := \
@ -109,6 +110,7 @@ LIBS_PATH_common = \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
-Wl,-i${CG_TOOL_ROOT}/lib \
LIBS_common = \
@ -116,6 +118,7 @@ LIBS_common = \
-ldrivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lboard.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lpruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-llibc.a \
-llibsysbm.a \
@ -130,6 +133,7 @@ LIBS_NAME = \
drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
board.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
libc.a \
libsysbm.a \
@ -138,6 +142,7 @@ LIBS_PATH_NAME = \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
${CG_TOOL_ROOT}/lib \
FILES := $(FILES_common) $(FILES_$(PROFILE))

View File

@ -37,6 +37,7 @@
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_single_pru_mode
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include
-mcpu=cortex-r5
-mfloat-abi=hard
-mfpu=vfpv3-d16
@ -53,6 +54,7 @@
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib
-i${CG_TOOL_ROOT}/lib
-m=icss_sdfm_three_channel_single_pru_mode.${ConfigName}.map
--diag_suppress=10063
@ -78,6 +80,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.release.lib
-lboard.am243x.r5f.ti-arm-clang.release.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.release.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.release.lib
-llibc.a
-llibsysbm.a
"
@ -91,6 +94,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.debug.lib
-lboard.am243x.r5f.ti-arm-clang.debug.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.debug.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.debug.lib
-llibc.a
-llibsysbm.a
"

View File

@ -67,6 +67,7 @@ INCLUDES_common := \
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include \
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_single_pru_mode \
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include \
-Igenerated \
DEFINES_common := \
@ -109,6 +110,7 @@ LIBS_PATH_common = \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
-Wl,-i${CG_TOOL_ROOT}/lib \
LIBS_common = \
@ -116,6 +118,7 @@ LIBS_common = \
-ldrivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lboard.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lpruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-llibc.a \
-llibsysbm.a \
@ -130,6 +133,7 @@ LIBS_NAME = \
drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
board.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
libc.a \
libsysbm.a \
@ -138,6 +142,7 @@ LIBS_PATH_NAME = \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
${CG_TOOL_ROOT}/lib \
FILES := $(FILES_common) $(FILES_$(PROFILE))

View File

@ -176,14 +176,15 @@ void sdfm_configure_gpio_pin(sdfm_handle h_sdfm)
}
/* Initialize SDFM PRU FW */
int32_t init_sdfm_pru_fw(uint8_t pruId, SdfmPrms *pSdfmPrms, sdfm_handle *pHSdfm, void *pruss_cfg)
int32_t init_sdfm_pru_fw(uint8_t pruId, SdfmPrms *pSdfmPrms, sdfm_handle *pHSdfm, PRUICSS_Handle pruIcssHandle)
{
sdfm_handle hSdfm;
uint8_t SDFM_CH = 0;
/* Initialize SDFM instance */
hSdfm = SDFM_init(pruId, pSdfmPrms->pruInsId);
hSdfm->pruss_cfg = pruss_cfg;
hSdfm->gPruIcssHandle = pruIcssHandle;
hSdfm->pruss_cfg = (void *)(((PRUICSS_HwAttrs *)(pruIcssHandle->hwAttrs))->cfgRegBase);
uint32_t i;
i = SDFM_getFirmwareVersion(hSdfm);
@ -286,10 +287,7 @@ int32_t initPruSdfm(
uint32_t byteLen; /* Total number of bytes to be written */
uint8_t pruId;
int32_t status;
void *pruss_cfg;
pruss_cfg = (void *)(((PRUICSS_HwAttrs *)(pruIcssHandle->hwAttrs))->cfgRegBase);
/* Reset PRU */
status = PRUICSS_resetCore(pruIcssHandle, pruInstId);
if (status != SystemP_SUCCESS) {
@ -349,7 +347,7 @@ int32_t initPruSdfm(
}
/* Initialize SDFM PRU FW */
status = init_sdfm_pru_fw(pruId, pSdfmPrms, pHSdfm, pruss_cfg);
status = init_sdfm_pru_fw(pruId, pSdfmPrms, pHSdfm, pruIcssHandle);
if (status != SDFM_ERR_NERR) {
return SDFM_ERR_INIT_PRU_SDFM;
}

View File

@ -31,6 +31,7 @@ const libdirs_freertos = {
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib",
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib",
"${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib",
"${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib",
],
};
@ -41,6 +42,7 @@ const includes_freertos_r5f = {
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f",
"${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include",
"${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_with_phase_compensation",
"${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include"
],
};
@ -50,6 +52,7 @@ const libs_freertos_r5f = {
"drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"board.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib",
"pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib"
],
};

View File

@ -37,6 +37,7 @@
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_with_phase_compensation
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include
-mcpu=cortex-r5
-mfloat-abi=hard
-mfpu=vfpv3-d16
@ -53,6 +54,7 @@
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib
-i${CG_TOOL_ROOT}/lib
-m=icss_sdfm_three_channel_with_phase_compensation.${ConfigName}.map
--diag_suppress=10063
@ -78,6 +80,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.release.lib
-lboard.am243x.r5f.ti-arm-clang.release.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.release.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.release.lib
-llibc.a
-llibsysbm.a
"
@ -91,6 +94,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.debug.lib
-lboard.am243x.r5f.ti-arm-clang.debug.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.debug.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.debug.lib
-llibc.a
-llibsysbm.a
"

View File

@ -68,6 +68,7 @@ INCLUDES_common := \
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include \
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_with_phase_compensation \
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include \
-Igenerated \
DEFINES_common := \
@ -110,6 +111,7 @@ LIBS_PATH_common = \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
-Wl,-i${CG_TOOL_ROOT}/lib \
LIBS_common = \
@ -117,6 +119,7 @@ LIBS_common = \
-ldrivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lboard.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lpruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-llibc.a \
-llibsysbm.a \
@ -131,6 +134,7 @@ LIBS_NAME = \
drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
board.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
libc.a \
libsysbm.a \
@ -139,6 +143,7 @@ LIBS_PATH_NAME = \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
${CG_TOOL_ROOT}/lib \
FILES := $(FILES_common) $(FILES_$(PROFILE))

View File

@ -37,6 +37,7 @@
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_with_phase_compensation
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include
-mcpu=cortex-r5
-mfloat-abi=hard
-mfpu=vfpv3-d16
@ -53,6 +54,7 @@
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib
-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib
-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib
-i${CG_TOOL_ROOT}/lib
-m=icss_sdfm_three_channel_with_phase_compensation.${ConfigName}.map
--diag_suppress=10063
@ -78,6 +80,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.release.lib
-lboard.am243x.r5f.ti-arm-clang.release.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.release.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.release.lib
-llibc.a
-llibsysbm.a
"
@ -91,6 +94,7 @@
-ldrivers.am243x.r5f.ti-arm-clang.debug.lib
-lboard.am243x.r5f.ti-arm-clang.debug.lib
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.debug.lib
-lpruicss_pwm.am243x.r5f.ti-arm-clang.debug.lib
-llibc.a
-llibsysbm.a
"

View File

@ -68,6 +68,7 @@ INCLUDES_common := \
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
-I${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/include \
-I${MOTOR_CONTROL_SDK_PATH}/examples/current_sense/icss_sdfm_three_channel_with_phase_compensation \
-I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include \
-Igenerated \
DEFINES_common := \
@ -110,6 +111,7 @@ LIBS_PATH_common = \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
-Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
-Wl,-i${CG_TOOL_ROOT}/lib \
LIBS_common = \
@ -117,6 +119,7 @@ LIBS_common = \
-ldrivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lboard.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lmotorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-lpruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
-llibc.a \
-llibsysbm.a \
@ -131,6 +134,7 @@ LIBS_NAME = \
drivers.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
board.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
motorcontrol_sdfm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
pruicss_pwm.am243x.r5f.ti-arm-clang.${ConfigName}.lib \
libc.a \
libsysbm.a \
@ -139,6 +143,7 @@ LIBS_PATH_NAME = \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \
${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \
${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/lib \
${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \
${CG_TOOL_ROOT}/lib \
FILES := $(FILES_common) $(FILES_$(PROFILE))

View File

@ -185,12 +185,15 @@ void SDFM_measurePhaseCompensation(sdfm_handle h_sdfm, uint32_t iep_clk)
}
/* Initialize SDFM PRU FW */
int32_t init_sdfm_pru_fw(uint8_t pruId, SdfmPrms *pSdfmPrms, sdfm_handle *pHSdfm, void *pruss_cfg)
int32_t init_sdfm_pru_fw(uint8_t pruId, SdfmPrms *pSdfmPrms, sdfm_handle *pHSdfm, PRUICSS_Handle pruIcssHandle)
{
sdfm_handle hSdfm;
/* Initialize SDFM instance */
hSdfm = SDFM_init(pruId);
hSdfm->gPruIcssHandle = pruIcssHandle;
hSdfm->pruss_cfg = (void *)(((PRUICSS_HwAttrs *)(pruIcssHandle->hwAttrs))->cfgRegBase);
uint32_t i;
i = SDFM_getFirmwareVersion(hSdfm);
@ -210,8 +213,6 @@ int32_t init_sdfm_pru_fw(uint8_t pruId, SdfmPrms *pSdfmPrms, sdfm_handle *pHSdfm
uint32_t sampleOutputInterfaceGlobalAddr = CPU0_BTCM_SOCVIEW(pSdfmPrms->samplesBaseAddress);
hSdfm->p_sdfm_interface->sampleBufferBaseAdd = sampleOutputInterfaceGlobalAddr;
hSdfm->iep_inc = 1; /* Default IEP increment 1 */
hSdfm->pruss_cfg = pruss_cfg;
uint8_t acc_filter = 0; //SINC3 filter
uint8_t ecap_divider = 0x0F; //IEP at 300MHz: SD clock = 300/15=20Mhz
@ -306,7 +307,6 @@ int32_t initPruSdfm(
int32_t status;
void *pruss_cfg;
pruss_cfg = (void *)(((PRUICSS_HwAttrs *)(pruIcssHandle->hwAttrs))->cfgRegBase);
/* Reset PRU */
status = PRUICSS_resetCore(pruIcssHandle, pruInstId);
if (status != SystemP_SUCCESS) {
@ -372,7 +372,7 @@ int32_t initPruSdfm(
}
/* Initialize SDFM PRU FW */
status = init_sdfm_pru_fw(pruId, pSdfmPrms, pHSdfm, pruss_cfg);
status = init_sdfm_pru_fw(pruId, pSdfmPrms, pHSdfm, pruIcssHandle);
if (status != SDFM_ERR_NERR) {
return SDFM_ERR_INIT_PRU_SDFM;
}

View File

@ -277,7 +277,7 @@ BUILD_COMBO_EXAMPLE_PRIVATE_ALL =
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-pru0_fw_ti-pru-cgt
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-rtupru0_fw_ti-pru-cgt
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-rtupru1_fw_ti-pru-cgt
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-txpru1_fw_ti-pru-cgt
@ -423,7 +423,7 @@ examples-private: $(BUILD_COMBO_EXAMPLE_PRIVATE_ALL)
sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt:
$(MAKE) -C source/current_sense/sdfm/firmware/multi_axis_load_share/am243x-evm/icssg0-txpru0_fw/ti-pru-cgt -f makefile all
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt:
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt:
$(MAKE) -C source/current_sense/sdfm/firmware/single_axis_single_pru/am243x-evm/icssg0-pru0_fw/ti-pru-cgt -f makefile all
endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt:
@ -530,7 +530,7 @@ BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL =
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-rtupru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-rtupru1_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-txpru1_fw_ti-pru-cgt_clean
@ -676,7 +676,7 @@ examples-private-clean: $(BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL)
sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_clean:
$(MAKE) -C source/current_sense/sdfm/firmware/multi_axis_load_share/am243x-evm/icssg0-txpru0_fw/ti-pru-cgt -f makefile clean
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean:
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean:
$(MAKE) -C source/current_sense/sdfm/firmware/single_axis_single_pru/am243x-evm/icssg0-pru0_fw/ti-pru-cgt -f makefile clean
endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean:
@ -783,7 +783,7 @@ BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL =
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_scrub
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-rtupru0_fw_ti-pru-cgt_scrub
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_scrub
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_scrub
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_scrub
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-rtupru1_fw_ti-pru-cgt_scrub
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-txpru1_fw_ti-pru-cgt_scrub
@ -929,7 +929,7 @@ examples-scrub-private: $(BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL)
sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_scrub:
$(MAKE) -C source/current_sense/sdfm/firmware/multi_axis_load_share/am243x-evm/icssg0-txpru0_fw/ti-pru-cgt -f makefile scrub
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_scrub:
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_scrub:
$(MAKE) -C source/current_sense/sdfm/firmware/single_axis_single_pru/am243x-evm/icssg0-pru0_fw/ti-pru-cgt -f makefile scrub
endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub:

View File

@ -51,7 +51,7 @@ BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL =
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_build
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-rtupru0_fw_ti-pru-cgt_build
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_build
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_build
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_build
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-rtupru1_fw_ti-pru-cgt_build
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-txpru1_fw_ti-pru-cgt_build
@ -197,7 +197,7 @@ all-private: $(BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL)
sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_build:
$(MAKE) -C source/current_sense/sdfm/firmware/multi_axis_load_share/am243x-evm/icssg0-txpru0_fw/ti-pru-cgt -f makefile_projectspec all
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_build:
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_build:
$(MAKE) -C source/current_sense/sdfm/firmware/single_axis_single_pru/am243x-evm/icssg0-pru0_fw/ti-pru-cgt -f makefile_projectspec all
endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build:
@ -305,7 +305,7 @@ BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL =
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-rtupru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-rtupru1_fw_ti-pru-cgt_clean
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-txpru1_fw_ti-pru-cgt_clean
@ -451,7 +451,7 @@ clean-private: $(BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL)
sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_clean:
$(MAKE) -C source/current_sense/sdfm/firmware/multi_axis_load_share/am243x-evm/icssg0-txpru0_fw/ti-pru-cgt -f makefile_projectspec clean
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean:
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_clean:
$(MAKE) -C source/current_sense/sdfm/firmware/single_axis_single_pru/am243x-evm/icssg0-pru0_fw/ti-pru-cgt -f makefile_projectspec clean
endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean:
@ -559,7 +559,7 @@ BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL =
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_export
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-rtupru0_fw_ti-pru-cgt_export
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_export
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_export
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_export
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-rtupru1_fw_ti-pru-cgt_export
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-txpru1_fw_ti-pru-cgt_export
@ -705,7 +705,7 @@ export-private: $(BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL)
sdfm_firmware_multi_axis_load_share_am243x-evm_icssg0-txpru0_fw_ti-pru-cgt_export:
$(MAKE) -C source/current_sense/sdfm/firmware/multi_axis_load_share/am243x-evm/icssg0-txpru0_fw/ti-pru-cgt -f makefile_projectspec export
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_export:
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_export:
$(MAKE) -C source/current_sense/sdfm/firmware/single_axis_single_pru/am243x-evm/icssg0-pru0_fw/ti-pru-cgt -f makefile_projectspec export
endat_peripheral_interface_multi_ch_load_share_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export:

View File

@ -36,6 +36,7 @@
#include <current_sense/sdfm/include/sdfm_drv.h>
#include <current_sense/sdfm/include/sdfm_api.h>
#include <current_sense/sdfm/firmware/icssg_sdfm.h>
#include <pruicss_pwm/include/pruicss_pwm.h>
#include <drivers/hw_include/am64x_am243x/cslr_soc_baseaddress.h>
#include <drivers/soc.h>
#include <drivers/gpio.h>
@ -43,8 +44,8 @@
/* Internal structure for managing each PRU SD */
SDFM g_sdfm[NUM_PRU] = {
{PRU_ID_0,0,0,0,0, NULL},
{PRU_ID_1,0,0,0,0, NULL},
{NULL,PRU_ID_0,0,0,0,0, NULL},
{NULL,PRU_ID_1,0,0,0,0, NULL},
};
/* Initialize SDFM instance */
@ -183,7 +184,7 @@ void SDFM_disableDoubleSampling(sdfm_handle h_sdfm)
void SDFM_setEnableChannel(sdfm_handle h_sdfm, uint8_t channel_number)
{
uint32_t temp;
temp = 1<< channel_number;
temp = 1 << channel_number;
if(temp & SDFM_CH_MASK_FOR_CH0_CH3_CH6)
{
h_sdfm->p_sdfm_interface->sdfm_ch_ctrl.sdfm_ch_id |= (channel_number << SDFM_CFG_BF_SD_CH0_ID_SHIFT);
@ -281,28 +282,103 @@ void SDFM_configFastDetect(sdfm_handle h_sdfm, uint8_t ch, uint8_t *fdParms)
}
/*return status of Trip status bit*/
uint32_t SDFM_getPwmTripStatus(sdfm_handle h_sdfm, uint8_t pwmIns)
/*return status of PWM trip vector status bit*/
int32_t SDFM_getFastDetectErrorStatus(sdfm_handle h_sdfm, uint8_t chNum)
{
void *pruss_cfg = h_sdfm->pruss_cfg;
uint32_t regval;
regval = HW_RD_REG32((uint8_t *)pruss_cfg + CSL_ICSSCFG_PWM0 + pwmIns * 4);
regval = regval & CSL_ICSSCFG_PWM0_PWM0_TRIP_S_MASK;
return regval>>CSL_ICSSCFG_PWM0_PWM0_TRIP_S_SHIFT;
uint8_t pwmSet;
int32_t retVal = SystemP_SUCCESS;
PRUICSS_Handle pruIcssHandle = h_sdfm->gPruIcssHandle;
if((chNum >= SDFM_CHANNEL0) && (chNum < SDFM_CHANNEL3))
{
pwmSet = 0;
}
else if (chNum > SDFM_CHANNEL2 && chNum < SDFM_CHANNEL6)
{
pwmSet = 1;
}
else if (chNum > SDFM_CHANNEL5 && chNum <= SDFM_CHANNEL8)
{
pwmSet = 2;
}
else
{
retVal = SystemP_FAILURE;
}
if(retVal == SystemP_FAILURE)
{
return retVal;
}
/*PWM trip vector */
retVal = PRUICSS_PWM_getPwmTripTriggerCauseVector(pruIcssHandle, pwmSet);
if(retVal == SystemP_FAILURE)
{
return retVal;
}
else
{
retVal = retVal >> 2;
uint32_t temp;
temp = 1 << chNum;
if(temp & SDFM_CH_MASK_FOR_CH0_CH3_CH6)
{
return ((retVal) & (1 << SDFM_CHANNEL0)) ? 1 : 0;
}
else if(temp & SDFM_CH_MASK_FOR_CH1_CH4_CH7)
{
return ((retVal) & (1 << SDFM_CHANNEL1))? 1 : 0;
}
else
{
return ((retVal) & (1 << SDFM_CHANNEL2)) ? 1 : 0;
}
}
}
/*Clear Trip status bit*/
void SDFM_clearPwmTripStatus(sdfm_handle h_sdfm, uint8_t pwmIns)
int32_t SDFM_clearPwmTripStatus(sdfm_handle h_sdfm, uint8_t chNum)
{
void *pruss_cfg = h_sdfm->pruss_cfg;
uint32_t regval;
regval = HW_RD_REG32((uint8_t *)pruss_cfg + CSL_ICSSCFG_PWM0 + pwmIns * 4);
regval = regval | CSL_ICSSCFG_PWM0_PWM0_TRIP_RESET_MASK;
HW_WR_REG32((uint8_t *)pruss_cfg + CSL_ICSSCFG_PWM0 + pwmIns * 4, regval);
regval = HW_RD_REG32((uint8_t *)pruss_cfg + CSL_ICSSCFG_PWM0 + pwmIns * 4);
regval = regval & (~ CSL_ICSSCFG_PWM0_PWM0_TRIP_RESET_MASK);
HW_WR_REG32((uint8_t *)pruss_cfg + CSL_ICSSCFG_PWM0 + pwmIns * 4, regval);
uint8_t pwmSet;
int32_t retVal = SystemP_SUCCESS;
PRUICSS_Handle pruIcssHandle = h_sdfm->gPruIcssHandle;
if((chNum >= SDFM_CHANNEL0) && (chNum < SDFM_CHANNEL3))
{
pwmSet = 0;
}
else if (chNum > SDFM_CHANNEL2 && chNum < SDFM_CHANNEL6)
{
pwmSet = 1;
}
else if (chNum > SDFM_CHANNEL5 && chNum <= SDFM_CHANNEL8)
{
pwmSet = 2;
}
else
{
retVal = SystemP_FAILURE;
}
if(retVal == SystemP_FAILURE)
{
return retVal;
}
/*clear trip status*/
retVal = PRUICSS_PWM_generatePwmTripReset(pruIcssHandle, pwmSet);
if(retVal == SystemP_FAILURE)
{
return retVal;
}
/*clear trip reset status*/
retVal = PRUICSS_PWM_clearPwmTripResetStatus(pruIcssHandle, pwmSet);
return retVal;
}
/*Enable Load share mode*/
void SDFM_enableLoadShareMode(sdfm_handle h_sdfm, uint8_t sliceId)
@ -359,6 +435,80 @@ float SDFM_measureClockPhaseDelay(sdfm_handle h_sdfm, uint16_t clkEdg)
float phaseDelay = ((float)h_sdfm->p_sdfm_interface->sdfm_ch_ctrl.clock_phase_delay * 1000000000)/h_sdfm->pru_core_clk;
return phaseDelay;
}
uint8_t SDFM_getHighThresholdStatus(sdfm_handle h_sdfm, uint8_t chNum)
{
uint32_t temp;
temp = 1 << chNum;
if(temp & SDFM_CH_MASK_FOR_CH0_CH3_CH6)
{
return h_sdfm->p_sdfm_interface->sdfm_cfg_ptr[0].sdfm_threshold_parms.highThStatus;
}
else if(temp & SDFM_CH_MASK_FOR_CH1_CH4_CH7)
{
return h_sdfm->p_sdfm_interface->sdfm_cfg_ptr[1].sdfm_threshold_parms.highThStatus;
}
else
{
return h_sdfm->p_sdfm_interface->sdfm_cfg_ptr[2].sdfm_threshold_parms.highThStatus;
}
}
uint8_t SDFM_getLowThresholdStatus(sdfm_handle h_sdfm, uint8_t chNum)
{
uint32_t temp;
temp = 1 << chNum;
if(temp & SDFM_CH_MASK_FOR_CH0_CH3_CH6)
{
return h_sdfm->p_sdfm_interface->sdfm_cfg_ptr[0].sdfm_threshold_parms.lowThStatus;
}
else if(temp & SDFM_CH_MASK_FOR_CH1_CH4_CH7)
{
return h_sdfm->p_sdfm_interface->sdfm_cfg_ptr[1].sdfm_threshold_parms.lowThStatus;
}
else
{
return h_sdfm->p_sdfm_interface->sdfm_cfg_ptr[2].sdfm_threshold_parms.lowThStatus;
}
}
int32_t SDFM_clearOverCurrentError(sdfm_handle h_sdfm, uint8_t chNum)
{
uint8_t pwmSet;
int32_t retVal = SystemP_SUCCESS;
PRUICSS_Handle pruIcssHandle = h_sdfm->gPruIcssHandle;
if((chNum >= SDFM_CHANNEL0) && (chNum < SDFM_CHANNEL3))
{
pwmSet = 0;
}
else if (chNum > SDFM_CHANNEL2 && chNum < SDFM_CHANNEL6)
{
pwmSet = 1;
}
else if (chNum > SDFM_CHANNEL5 && chNum <= SDFM_CHANNEL8)
{
pwmSet = 2;
}
else
{
retVal = SystemP_FAILURE;
}
if(retVal == SystemP_FAILURE)
{
return retVal;
}
/*Clear over current Error PWM trip*/
retVal = PRUICSS_PWM_clearPwmOverCurrentErrorTrip(pruIcssHandle, pwmSet);
if(retVal == SystemP_FAILURE)
{
return retVal;
}
/*Clear PWM trip*/
retVal = SDFM_clearPwmTripStatus(h_sdfm, chNum);
return retVal;
}
/* SDFM global enable */
void SDFM_enable(sdfm_handle h_sdfm)
{

View File

@ -130,8 +130,10 @@
#define SDFM_CFG_CH0_FILTER_TYPE_OFFSET ( 0x1D )
#define SDFM_CFG_CH0_OSR_OFFSET ( 0x1E )
#define SDFM_CFG_OC_HIGH_THR_CH0_OFFSET ( 0x20 )
#define SDFM_CFG_OC_LOW_THR_CH0_OFFSET ( 0x24 )
#define SDFM_CFG_OC_HIGH_THR_CH0_OFFSET ( 0x20 )
#define SDFM_CFG_OC_LOW_THR_CH0_OFFSET ( 0x24 )
#define SDFM_CFG_OC_HIGH_THR_STATUS_CH0_OFFSET ( 0x28 )
#define SDFM_CFG_OC_LOW_THR_STATUS_CH0_OFFSET ( 0x29 )
#define SDFM_CFG_CH0_FD_WD_REG_OFFSET ( 0x2C)
#define SDFM_CFG_CH0_FD_ZERO_MAX_REG_OFFSET ( 0x2D)
@ -155,8 +157,10 @@
#define SDFM_CFG_CH1_FILTER_TYPE_OFFSET ( 0x61 )
#define SDFM_CFG_CH1_OSR_OFFSET ( 0x62 )
#define SDFM_CFG_OC_HIGH_THR_CH1_OFFSET ( 0x64 )
#define SDFM_CFG_OC_LOW_THR_CH1_OFFSET ( 0x68 )
#define SDFM_CFG_OC_HIGH_THR_CH1_OFFSET ( 0x64 )
#define SDFM_CFG_OC_LOW_THR_CH1_OFFSET ( 0x68 )
#define SDFM_CFG_OC_HIGH_THR_STATUS_CH1_OFFSET ( 0x6C )
#define SDFM_CFG_OC_LOW_THR_STATUS_CH1_OFFSET ( 0x6D )
#define SDFM_CFG_CH1_FD_WD_REG_OFFSET ( 0x70 )
#define SDFM_CFG_CH1_FD_ZERO_MAX_REG_OFFSET ( 0x71 )
@ -181,8 +185,10 @@
#define SDFM_CFG_CH2_FILTER_TYPE_OFFSET ( 0xA5 )
#define SDFM_CFG_CH2_OSR_OFFSET ( 0xA6 )
#define SDFM_CFG_OC_HIGH_THR_CH2_OFFSET ( 0xA8 )
#define SDFM_CFG_OC_LOW_THR_CH2_OFFSET ( 0xAC )
#define SDFM_CFG_OC_HIGH_THR_CH2_OFFSET ( 0xA8 )
#define SDFM_CFG_OC_LOW_THR_CH2_OFFSET ( 0xAC )
#define SDFM_CFG_OC_HIGH_THR_STATUS_CH2_OFFSET ( 0xB0 )
#define SDFM_CFG_OC_LOW_THR_STATUS_CH2_OFFSET ( 0xB1 )
#define SDFM_CFG_CH2_FD_WD_REG_OFFSET ( 0xB4 )
#define SDFM_CFG_CH2_FD_ZERO_MAX_REG_OFFSET ( 0xB5 )

View File

@ -1,144 +0,0 @@
let path = require('path');
let device = "am64x";
const files = {
common: [
"sdfm.asm",
"icssg_pru.cmd",
],
};
/* Relative to where the makefile will be generated
* Typically at <example_folder>/<BOARD>/<core_os_combo>/<compiler>
*/
const filedirs = {
common: [
"..", /* core_os_combo base */
"../..", /* Example base */
"../../../..",
],
};
const includes = {
common: [
"${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware",
],
};
const defines_rtu = {
common: [
"SDFM_RTU_CORE",
"SDFM_LOAD_SHARE_MODE",
],
};
const defines_pru = {
common: [
"SDFM_PRU_CORE",
"SDFM_LOAD_SHARE_MODE",
],
};
const defines_txpru = {
common: [
"SDFM_TXPRU_CORE",
"SDFM_LOAD_SHARE_MODE",
],
};
const readmeDoxygenPageTag = "SDFM_DESIGN";
const cflags = {
common: [
"-v4",
"-o2",
"--display_error_number",
"--hardware_mac=on",
],
};
const lflags = {
common: [
"--warn_sections",
"--entry_point=SDFM_ENTRY",
"--zero_init=off",
"--disable_auto_rts",
"--define=SDFM_LOAD_SHARE_MODE=1",
],
};
const buildOptionCombos = [
{ device: device, cpu: "icssg0-pru0", cgt: "ti-pru-cgt", board: "am64x-evm", os: "fw"},
{ device: device, cpu: "icssg0-rtupru0", cgt: "ti-pru-cgt", board: "am64x-evm", os: "fw"},
{ device: device, cpu: "icssg0-txpru0", cgt: "ti-pru-cgt", board: "am64x-evm", os: "fw"},
];
let postBuildStepsPru0 = [
"$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=pru_SDFM_PRU0_image -o sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-pru0_fw_ti-pru-cgt.h sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-pru0_fw_ti-pru-cgt.out; move sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-pru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_pru_bin.h;"
];
let postBuildStepsRtupru0 = [
"$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=pru_SDFM_RTU0_image -o sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-rtupru0_fw_ti-pru-cgt.h sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-rtupru0_fw_ti-pru-cgt.out; move sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-rtupru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_rtu_bin.h;"
];
let postBuildStepsTxpru0 = [
"$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=pru_SDFM_TXPRU0_image -o sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-txpru0_fw_ti-pru-cgt.h sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-txpru0_fw_ti-pru-cgt.out; move sdfm_firmware_multi_axis_load_share_am64x-evm_icssg0-txpru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_txpru_bin.h;"
];
function getComponentProperty() {
let property = {};
property.dirPath = path.resolve(__dirname, "..");
property.type = "executable";
property.makefile = "pru";
property.name = "sdfm_firmware_multi_axis_load_share";
property.isInternal = false;
property.description = "ICSS SDFM"
property.buildOptionCombos = buildOptionCombos;
property.pru_main_file = "main";
property.pru_linker_file = "linker";
property.isSkipTopLevelBuild = true;
property.skipUpdatingTirex = true;
return property;
}
function getComponentBuildProperty(buildOption) {
let build_property = {};
build_property.files = files;
build_property.filedirs = filedirs;
build_property.includes = includes;
if(buildOption.cpu.match("icssg0-pru0"))
{
build_property.postBuildSteps = postBuildStepsPru0;
build_property.defines = defines_pru;
}
if(buildOption.cpu.match("icssg0-rtupru0"))
{
build_property.postBuildSteps = postBuildStepsRtupru0;
build_property.defines = defines_rtu;
}
if(buildOption.cpu.match("icssg0-txpru0"))
{
build_property.postBuildSteps = postBuildStepsTxpru0;
build_property.defines = defines_txpru;
}
build_property.cflags = cflags;
build_property.lflags = lflags;
build_property.readmeDoxygenPageTag = readmeDoxygenPageTag;
build_property.projecspecFileAction = "copy";
build_property.skipMakefileCcsBootimageGen = true;
return build_property;
}
module.exports = {
getComponentProperty,
getComponentBuildProperty,
};

View File

@ -124,12 +124,12 @@ SDFM_ENTRY:
PHASE_DELAY_CAL:
;check phase delay measurment active
LBCO &TEMP_REG0.b0, CT_PRU_ICSSG_LOC_DMEM, SDFM_CFG_SD_EN_PHASE_DELAY, 1
LBBO &TEMP_REG0.b0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_SD_EN_PHASE_DELAY, 1
QBBC SKIP_PHASE_DELAY_CAL, TEMP_REG0.b0, 0
JAL RET_ADDR_REG, SDFM_CLOCK_PHASE_COMPENSATION
;acknowledge
CLR TEMP_REG0, TEMP_REG0, 0
SBCO &TEMP_REG0.b0, CT_PRU_ICSSG_LOC_DMEM, SDFM_CFG_SD_EN_PHASE_DELAY, 1
SBBO &TEMP_REG0.b0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_SD_EN_PHASE_DELAY, 1
SKIP_PHASE_DELAY_CAL:
@ -287,6 +287,43 @@ TS0_OC_LOOP:
;Comparator for Ch0
MOV TEMP_REG2, CN5
;Trip Zone based over current detection
;Load the positive threshold value for current channel
LBBO &OC_HIGH_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_CH0_OFFSET, SDFM_CFG_OC_HIGH_THR_SZ
;Load the positive threshold value for current channel
LBBO &OC_LOW_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_CH0_OFFSET, SDFM_CFG_OC_LOW_THR_SZ
;PWM0 register offset
LDI TEMP_REG1, ICSSG_CFG_PWMx
LBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;Check if the sample value is greater than the high threshold
QBGE OVER_CURRENT_HIGH_THRESHOLD_CH0, OC_HIGH_THR, TEMP_REG2
;Unset in DMEM
LDI TEMP_REG0.b0, 0
SBBO &TEMP_REG0.b0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_STATUS_CH0_OFFSET, 1
;Check if the sample value is lower than the low threshold
QBLE OVER_CURRENT_LOW_THRESHOLD_CH0, OC_LOW_THR, TEMP_REG2
LDI TEMP_REG0.b0, 0
SBBO &TEMP_REG0.b0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_STATUS_CH0_OFFSET, 1
JMP END_OVER_CURRENT_DETECTION_CH0
OVER_CURRENT_HIGH_THRESHOLD_CH0:
;Generate PWM trip
SET TEMP_REG0.b2.t3
SBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;Store in DMEM
LDI TEMP_REG0.b0, 1
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_STATUS_CH0_OFFSET, 1
JMP END_OVER_CURRENT_DETECTION_CH0
OVER_CURRENT_LOW_THRESHOLD_CH0:
;Generate PWM trip
SET TEMP_REG0.b2.t3
SBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;set bit store in DMEM
LDI TEMP_REG0.b0, 1
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_STATUS_CH0_OFFSET, 1
END_OVER_CURRENT_DETECTION_CH0:
.if $isdefed("DEBUG_CODE")
;For the current channel, compare against the High threshold, Low threshold and ZC thresholds (if enabled)
;Load the positive threshold value for current channel
LBBO &OC_HIGH_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_CH0_OFFSET, SDFM_CFG_OC_HIGH_THR_SZ
@ -322,8 +359,10 @@ BELOW_THRESHOLD_START_CH0:
LBBO &GPIO_TGL_ADDR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_LOW_THR_CH0_SET_VAL_ADDR_OFFSET, SDFM_CFG_GPIO_CLR_ADDR_SZ
LBBO &TEMP_REG3, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_LOW_THR_CH0_WRITE_VAL_OFFSET, SDFM_CFG_GPIO_VALUE_SZ
SBBO &TEMP_REG3, GPIO_TGL_ADDR, 0, SDFM_CFG_GPIO_VALUE_SZ
COMP_CH0_END:
.endif
COMP_CH0_END:
.if $isdefed("DEBUG_CODE")
;GPIO LOW
LBBO &GPIO_TGL_ADDR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_HIGH_THR_CH0_CLR_VAL_ADDR_OFFSET, SDFM_CFG_GPIO_CLR_ADDR_SZ
@ -365,7 +404,45 @@ COMP_CH0_END:
.endif
;Comparator for Ch1
MOV TEMP_REG2, CN5
MOV TEMP_REG2, CN5
;Trip Zone based over current detection
;Load the positive threshold value for current channel
LBBO &OC_HIGH_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_CH1_OFFSET, SDFM_CFG_OC_HIGH_THR_SZ
;Load the positive threshold value for current channel
LBBO &OC_LOW_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_CH1_OFFSET, SDFM_CFG_OC_LOW_THR_SZ
;PWM0 register offset
LDI TEMP_REG1, ICSSG_CFG_PWMx
LBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;Check if the sample value is greater than the high threshold
QBGE OVER_CURRENT_HIGH_THRESHOLD_CH1, OC_HIGH_THR, TEMP_REG2
;Unset in DMEM
LDI TEMP_REG0.b0, 0
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_STATUS_CH1_OFFSET, 1
;Check if the sample value is lower than the low threshold
QBLE OVER_CURRENT_LOW_THRESHOLD_CH1, OC_LOW_THR, TEMP_REG2
LDI TEMP_REG0.b0, 0
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_STATUS_CH1_OFFSET, 1
JMP END_OVER_CURRENT_DETECTION_CH1
OVER_CURRENT_HIGH_THRESHOLD_CH1:
;Generate PWM trip
SET TEMP_REG0.b2.t3
SBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;Store DMEM
LDI TEMP_REG0.b0, 1
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_STATUS_CH1_OFFSET, 1
JMP END_OVER_CURRENT_DETECTION_CH1
OVER_CURRENT_LOW_THRESHOLD_CH1:
;Generate PWM trip
SET TEMP_REG0.b2.t3
SBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;set bit store in DMEM
LDI TEMP_REG0.b0, 1
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_STATUS_CH1_OFFSET, 1
END_OVER_CURRENT_DETECTION_CH1:
.if $isdefed("DEBUG_CODE")
;For the current channel, compare against the High threshold, Low threshold and ZC thresholds (if enabled)
;Load the positive threshold value for current channel
LBBO &OC_HIGH_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_CH1_OFFSET, SDFM_CFG_OC_HIGH_THR_SZ
@ -402,6 +479,8 @@ BELOW_THRESHOLD_START_CH1:
LBBO &GPIO_TGL_ADDR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_LOW_THR_CH1_SET_VAL_ADDR_OFFSET, SDFM_CFG_GPIO_SET_ADDR_SZ
LBBO &TEMP_REG3, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_LOW_THR_CH1_WRITE_VAL_OFFSET, SDFM_CFG_GPIO_VALUE_SZ
SBBO &TEMP_REG3, GPIO_TGL_ADDR, 0, SDFM_CFG_GPIO_VALUE_SZ
.endif
COMP_CH1_END:
.if $isdefed("DEBUG_CODE")
@ -444,7 +523,44 @@ COMP_CH1_END:
.endif
;Comparator for Ch2
MOV TEMP_REG2, CN5
MOV TEMP_REG2, CN5
;Trip Zone based over current detection
;Load the positive threshold value for current channel
LBBO &OC_HIGH_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_CH2_OFFSET, SDFM_CFG_OC_HIGH_THR_SZ
;Load the positive threshold value for current channel
LBBO &OC_LOW_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_CH2_OFFSET, SDFM_CFG_OC_LOW_THR_SZ
;PWM0 register offset
LDI TEMP_REG1, ICSSG_CFG_PWMx
LBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;Check if the sample value is greater than the high threshold
QBGE OVER_CURRENT_HIGH_THRESHOLD_CH2, OC_HIGH_THR, TEMP_REG2
;Unset in DMEM
LDI TEMP_REG0.b0, 0
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_STATUS_CH2_OFFSET, 1
;Check if the sample value is lower than the low threshold
QBLE OVER_CURRENT_LOW_THRESHOLD_CH2, OC_LOW_THR, TEMP_REG2
LDI TEMP_REG0.b0, 0
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_STATUS_CH2_OFFSET, 1
JMP END_OVER_CURRENT_DETECTION_CH2
OVER_CURRENT_HIGH_THRESHOLD_CH2:
;Generate PWM trip
SET TEMP_REG0.b2.t3
SBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;Store in DMEM
LDI TEMP_REG0.b0, 1
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_STATUS_CH2_OFFSET, 1
JMP END_OVER_CURRENT_DETECTION_CH2
OVER_CURRENT_LOW_THRESHOLD_CH2:
;Generate PWM trip
SET TEMP_REG0.b2.t3
SBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
;set bit store in DMEM
LDI TEMP_REG0.b0, 1
SBBO &TEMP_REG0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_LOW_THR_STATUS_CH2_OFFSET, 1
END_OVER_CURRENT_DETECTION_CH2:
.if $isdefed("DEBUG_CODE")
;For the current channel, compare against the High threshold, Low threshold and ZC thresholds (if enabled)
;Load the positive threshold value for current channel
LBBO &OC_HIGH_THR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_OC_HIGH_THR_CH2_OFFSET, SDFM_CFG_OC_HIGH_THR_SZ
@ -481,6 +597,7 @@ BELOW_THRESHOLD_START_CH2:
LBBO &GPIO_TGL_ADDR, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_LOW_THR_CH2_SET_VAL_ADDR_OFFSET, SDFM_CFG_GPIO_CLR_ADDR_SZ
LBBO &TEMP_REG3, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_LOW_THR_CH2_WRITE_VAL_OFFSET, SDFM_CFG_GPIO_VALUE_SZ
SBBO &TEMP_REG3, GPIO_TGL_ADDR, 0, SDFM_CFG_GPIO_CLR_ADDR_SZ
.endif
COMP_CH2_END:
@ -963,20 +1080,37 @@ reset_sd_ch_hw_loop_end:
;
;PWM trip zone block configuration
FN_CONFIG_PWM_REG:
;set trip mask
;PWM0 register offset
FN_CONFIG_PWM_REG:
;PWMx register offset
LDI TEMP_REG1, ICSSG_CFG_PWMx
LBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
QBNE SDFM_MASK_SKIP1_CH0, SD_CH0_ID, 0
OR TEMP_REG0.b1, TEMP_REG0.b1, 1
SDFM_MASK_SKIP1_CH0
QBNE SDFM_MASK_SKIP1_CH1, SD_CH1_ID, 1
OR TEMP_REG0.b1, TEMP_REG0.b1, 2
SDFM_MASK_SKIP1_CH1
QBNE SDFM_MASK_SKIP1_CH2, SD_CH2_ID, 2
;set trip mask for over current error
LBBO &COMPARATOR_EN, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_SD_EN_COMP_OFFSET, SDFM_CFG_EN_COMP_SZ
QBBC SKIP_OVER_CURRENT_MASK, COMPARATOR_EN, SDFM_CFG_EN_COMP_BIT
SET TEMP_REG0.b1, TEMP_REG0.b1, 1
SKIP_OVER_CURRENT_MASK:
;set trip mask for fast detect block error
;Load fast detect enable bits
LBBO &TEMP_REG2.w0, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_SD_CH_ID_OFFSET, SDFM_CFG_SD_CH_ID_SZ
LBBO &TEMP_REG3, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_SD_EN_FD_OFFSET, 1
QBBC END_MASK_CONFIG, TEMP_REG3, 0
AND TEMP_REG1.b0, TEMP_REG2.b0, 0xF
QBNE SDFM_MASK_SKIP1_CH0, TEMP_REG1.b0, SD_CH0_ID
OR TEMP_REG0.b1, TEMP_REG0.b1, 4
SDFM_MASK_SKIP1_CH2:
SDFM_MASK_SKIP1_CH0
LSR TEMP_REG2, TEMP_REG2, 4
AND TEMP_REG1.b0, TEMP_REG2.b0, 0xF
QBNE SDFM_MASK_SKIP1_CH1, TEMP_REG1.b0, SD_CH1_ID
OR TEMP_REG0.b1, TEMP_REG0.b1, 8
SDFM_MASK_SKIP1_CH1
LSR TEMP_REG2, TEMP_REG2, 4
AND TEMP_REG1.b0, TEMP_REG2.b0, 0xF
QBNE SDFM_MASK_SKIP1_CH2, TEMP_REG1.b0, SD_CH2_ID
OR TEMP_REG0.b1, TEMP_REG0.b1, 16
SDFM_MASK_SKIP1_CH2:
END_MASK_CONFIG:
LDI TEMP_REG1, ICSSG_CFG_PWMx
SBCO &TEMP_REG0, CT_PRU_ICSSG_CFG, TEMP_REG1, 4
JMP RET_ADDR_REG
@ -1021,7 +1155,7 @@ END_PHASE_DELAY:
LSR TEMP_REG0, TEMP_REG1.w0, 3
SUB TEMP_REG0, TEMP_REG2,TEMP_REG0
QBLT SDFM_CLOCK_PHASE_COMPENSATION, TEMP_REG0, 1
SBCO &TEMP_REG1, CT_PRU_ICSSG_LOC_DMEM, SDFM_CFG_SD_CLOCK_PHASE_DELAY, 4
SBBO &TEMP_REG1, SDFM_CFG_BASE_PTR_REG, SDFM_CFG_SD_CLOCK_PHASE_DELAY, 4
JMP RET_ADDR_REG
;

View File

@ -15,11 +15,11 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x24000001,
0x81200b01,
0x10000000,
0x91171801,
0xf1171701,
0xc9000104,
0x2301c999,
0x2301d299,
0x1d00e1e1,
0x81171801,
0xe1171701,
0xf1001701,
0xcf0001ff,
0x1f00e1e1,
@ -27,9 +27,9 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x91340401,
0x1f01e1e1,
0x81340401,
0x23011c99,
0x23011999,
0x32800000,
0x23012399,
0x23012099,
0x240c00c2,
0x24000082,
0xf1021701,
@ -53,13 +53,13 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x0b04e1e1,
0x110fe1e2,
0x10020256,
0x23013d99,
0x23025e99,
0x23014199,
0x23017199,
0x2301b699,
0x23013a99,
0x23026799,
0x23013e99,
0x23016e99,
0x2301b399,
0x1f19fefe,
0x2301bf99,
0x2301bc99,
0x240fffd5,
0x24ffff95,
0x240000d4,
@ -76,13 +76,13 @@ const uint32_t SDFM_PRU0_image_0[] = {
0xf114179a,
0xd1009a02,
0x21004c00,
0xc9019a26,
0xc9019a25,
0x10161602,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xc91cff20,
0xc91cff1f,
0x1f18ffff,
0x10f5ffe5,
0x0ce5e9e6,
@ -95,32 +95,31 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x10e8e8e3,
0xf1203793,
0xf124379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf140379d,
0xf13c3784,
0xe1003d84,
0x7f0000fb,
0xf144379d,
0xf13c3784,
0xe1003d84,
0x7f0000f7,
0xf150379d,
0xf1483784,
0xe1003d84,
0x79000004,
0xf14c379d,
0xf1483784,
0xe1003d84,
0xc9029a26,
0x240130e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe1281701,
0x58e3fb09,
0x24000001,
0xe1291701,
0x21007200,
0x1f034141,
0x80e22481,
0x24000101,
0xe1281701,
0x21007200,
0x1f034141,
0x80e22481,
0x24000101,
0xe1291701,
0xc9029a25,
0x10363602,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xc91cff20,
0xc91cff1f,
0x1f18ffff,
0x10f5ffe5,
0x0ce5ece6,
@ -133,32 +132,31 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x10e8e8e3,
0xf1643793,
0xf168379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf184379d,
0xf1803784,
0xe1003d84,
0x7f0000fb,
0xf188379d,
0xf1803784,
0xe1003d84,
0x7f0000f7,
0xf194379d,
0xf18c3784,
0xe1003d84,
0x79000004,
0xf190379d,
0xf18c3784,
0xe1003d84,
0xc9039a26,
0x240130e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe16c1701,
0x58e3fb09,
0x24000001,
0xe16d1701,
0x21009700,
0x1f034141,
0x80e22481,
0x24000101,
0xe16c1701,
0x21009700,
0x1f034141,
0x80e22481,
0x24000101,
0xe16d1701,
0xc9039a25,
0x10565682,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xcf1cffae,
0xcf1cffb0,
0x1f18ffff,
0x10f5ffe5,
0x0ce5efe6,
@ -171,26 +169,25 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x10e8e8e3,
0xf1a83793,
0xf1ac379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf1c8379d,
0xf1c43784,
0xe1003d84,
0x7f0000fb,
0xf1cc379d,
0xf1c43784,
0xe1003d84,
0x7f0000f7,
0xf1d8379d,
0xf1d03784,
0xe1003d84,
0x79000004,
0xf1d4379d,
0xf1d03784,
0xe1003d84,
0x7f00008e,
0x240130e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe1b01701,
0x58e3fb09,
0x24000001,
0xe1b11701,
0x2100bc00,
0x1f034141,
0x80e22481,
0x24000101,
0xe1b01701,
0x2100bc00,
0x1f034141,
0x80e22481,
0x24000101,
0xe1b11701,
0x7f000091,
0x24000000,
0x107e7e12,
0x2f852381,
@ -250,10 +247,10 @@ const uint32_t SDFM_PRU0_image_0[] = {
0xf1083782,
0x58e2e103,
0x81983a81,
0x2100fe00,
0x2100fb00,
0x04e2e1e1,
0x81983a81,
0x21011100,
0x21010e00,
0x59031c07,
0xf1f43781,
0x91983a82,
@ -285,7 +282,7 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x10000000,
0x24000b01,
0x81000a01,
0x2400c081,
0x2400bd81,
0x810c0a81,
0x24140081,
0x81380a81,
@ -337,7 +334,7 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x09015341,
0x13414141,
0x13804141,
0x21016c00,
0x21016900,
0x6836030d,
0xf1621701,
0xc9010417,
@ -350,7 +347,7 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x09015341,
0x13414141,
0x13804141,
0x21016c00,
0x21016900,
0x6856030c,
0xf1a61701,
0xc902040a,
@ -392,7 +389,7 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x09033b21,
0x09011b41,
0x13414141,
0x2101b100,
0x2101ae00,
0x68360314,
0x24000081,
0xf17c1741,
@ -412,7 +409,7 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x09033b21,
0x09011b41,
0x13414141,
0x2101b100,
0x2101ae00,
0x68560313,
0x24000081,
0xf1c01741,
@ -448,12 +445,24 @@ const uint32_t SDFM_PRU0_image_0[] = {
0x20990000,
0x240130e2,
0x90e22481,
0x69001602,
0x13012121,
0x69013602,
0x13022121,
0x69025602,
0xf114179a,
0xc9009a02,
0x1f012121,
0xf1103783,
0xf1161704,
0xc900e40c,
0x110f0302,
0x68160202,
0x13042121,
0x0b04e3e3,
0x110f0302,
0x68360202,
0x13082121,
0x0b04e3e3,
0x110f0302,
0x68560202,
0x13102121,
0x240130e2,
0x80e22481,
0x20990000,
0x240001c2,
@ -485,53 +494,53 @@ const uint32_t SDFM_PRU0_image_0[] = {
0xd1005f2e,
0x01018282,
0x1b01e3e3,
0x21021300,
0x21021c00,
0x01028282,
0x1b02e3e3,
0x21021300,
0x21021c00,
0x01038282,
0x1b03e3e3,
0x21021300,
0x21021c00,
0x01048282,
0x1b04e3e3,
0x21021300,
0x21021c00,
0x01058282,
0x1b05e3e3,
0x21021300,
0x21021c00,
0x01068282,
0x1b06e3e3,
0x21021300,
0x21021c00,
0x01078282,
0x1b07e3e3,
0x21021300,
0x21021c00,
0x01088282,
0x1b08e3e3,
0x21021300,
0x21021c00,
0x01098282,
0x1b09e3e3,
0x21021300,
0x21021c00,
0x010a8282,
0x1b0ae3e3,
0x21021300,
0x21021c00,
0x010b8282,
0x1b0be3e3,
0x21021300,
0x21021c00,
0x010c8282,
0x1b0ce3e3,
0x21021300,
0x21021c00,
0x010d8282,
0x1b0de3e3,
0x21021300,
0x21021c00,
0x010e8282,
0x1b0ee3e3,
0x21021300,
0x21021c00,
0x010f8282,
0x1b0fe3e3,
0x21021300,
0x21021c00,
0x01108282,
0x1b10e3e3,
0x24000042,
0x21025900,
0x21026200,
0x240000e2,
0x31070043,
0xd1011f00,
@ -554,56 +563,56 @@ const uint32_t SDFM_PRU0_image_0[] = {
0xc9005f2e,
0x01018282,
0x1b01e3e3,
0x21025800,
0x21026100,
0x01028282,
0x1b02e3e3,
0x21025800,
0x21026100,
0x01038282,
0x1b03e3e3,
0x21025800,
0x21026100,
0x01048282,
0x1b04e3e3,
0x21025800,
0x21026100,
0x01058282,
0x1b05e3e3,
0x21025800,
0x21026100,
0x01068282,
0x1b06e3e3,
0x21025800,
0x21026100,
0x01078282,
0x1b07e3e3,
0x21025800,
0x21026100,
0x01088282,
0x1b08e3e3,
0x21025800,
0x21026100,
0x01098282,
0x1b09e3e3,
0x21025800,
0x21026100,
0x010a8282,
0x1b0ae3e3,
0x21025800,
0x21026100,
0x010b8282,
0x1b0be3e3,
0x21025800,
0x21026100,
0x010c8282,
0x1b0ce3e3,
0x21025800,
0x21026100,
0x010d8282,
0x1b0de3e3,
0x21025800,
0x21026100,
0x010e8282,
0x1b0ee3e3,
0x21025800,
0x21026100,
0x010f8282,
0x1b0fe3e3,
0x21025800,
0x21026100,
0x01108282,
0x1b10e3e3,
0x24000142,
0x0b0382e1,
0x04e1e3e1,
0x4f01e16e,
0x81183882,
0xe1183782,
0x20990000,
0x240280c1,
0x24000081,

View File

@ -15,11 +15,11 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x24000001,
0x81200b01,
0x10000000,
0x91171801,
0xf1171701,
0xc9000104,
0x2301c999,
0x2301d299,
0x1d00e1e1,
0x81171801,
0xe1171701,
0xf1001701,
0xcf0001ff,
0x1f00e1e1,
@ -27,9 +27,9 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x91340401,
0x1f01e1e1,
0x81340401,
0x23011c99,
0x23011999,
0x32800000,
0x23012399,
0x23012099,
0x240c00c2,
0x24000082,
0xf1021701,
@ -53,13 +53,13 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x0b04e1e1,
0x110fe1e2,
0x10020256,
0x23013d99,
0x23025e99,
0x23014199,
0x23017199,
0x2301b699,
0x23013a99,
0x23026799,
0x23013e99,
0x23016e99,
0x2301b399,
0x1f19fefe,
0x2301bf99,
0x2301bc99,
0x240fffd5,
0x24ffff95,
0x240000d4,
@ -76,13 +76,13 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0xf114179a,
0xd1009a02,
0x21004c00,
0xc9019a26,
0xc9019a25,
0x10161602,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xc91cff20,
0xc91cff1f,
0x1f18ffff,
0x10f5ffe5,
0x0ce5e9e6,
@ -95,32 +95,31 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x10e8e8e3,
0xf1203793,
0xf124379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf140379d,
0xf13c3784,
0xe1003d84,
0x7f0000fb,
0xf144379d,
0xf13c3784,
0xe1003d84,
0x7f0000f7,
0xf150379d,
0xf1483784,
0xe1003d84,
0x79000004,
0xf14c379d,
0xf1483784,
0xe1003d84,
0xc9029a26,
0x240134e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe1281701,
0x58e3fb09,
0x24000001,
0xe1291701,
0x21007200,
0x1f034141,
0x80e22481,
0x24000101,
0xe1281701,
0x21007200,
0x1f034141,
0x80e22481,
0x24000101,
0xe1291701,
0xc9029a25,
0x10363602,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xc91cff20,
0xc91cff1f,
0x1f18ffff,
0x10f5ffe5,
0x0ce5ece6,
@ -133,32 +132,31 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x10e8e8e3,
0xf1643793,
0xf168379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf184379d,
0xf1803784,
0xe1003d84,
0x7f0000fb,
0xf188379d,
0xf1803784,
0xe1003d84,
0x7f0000f7,
0xf194379d,
0xf18c3784,
0xe1003d84,
0x79000004,
0xf190379d,
0xf18c3784,
0xe1003d84,
0xc9039a26,
0x240134e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe16c1701,
0x58e3fb09,
0x24000001,
0xe16d1701,
0x21009700,
0x1f034141,
0x80e22481,
0x24000101,
0xe16c1701,
0x21009700,
0x1f034141,
0x80e22481,
0x24000101,
0xe16d1701,
0xc9039a25,
0x10565682,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xcf1cffae,
0xcf1cffb0,
0x1f18ffff,
0x10f5ffe5,
0x0ce5efe6,
@ -171,26 +169,25 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x10e8e8e3,
0xf1a83793,
0xf1ac379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf1c8379d,
0xf1c43784,
0xe1003d84,
0x7f0000fb,
0xf1cc379d,
0xf1c43784,
0xe1003d84,
0x7f0000f7,
0xf1d8379d,
0xf1d03784,
0xe1003d84,
0x79000004,
0xf1d4379d,
0xf1d03784,
0xe1003d84,
0x7f00008e,
0x240134e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe1b01701,
0x58e3fb09,
0x24000001,
0xe1b11701,
0x2100bc00,
0x1f034141,
0x80e22481,
0x24000101,
0xe1b01701,
0x2100bc00,
0x1f034141,
0x80e22481,
0x24000101,
0xe1b11701,
0x7f000091,
0x24000000,
0x107e7e12,
0x2f852381,
@ -250,10 +247,10 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0xf1083782,
0x58e2e103,
0x81983a81,
0x2100fe00,
0x2100fb00,
0x04e2e1e1,
0x81983a81,
0x21011100,
0x21010e00,
0x59031c07,
0xf1f43781,
0x91983a82,
@ -285,7 +282,7 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x10000000,
0x24000b01,
0x81000a01,
0x2400c081,
0x2400bd81,
0x810c0a81,
0x24140081,
0x81380a81,
@ -337,7 +334,7 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x09015341,
0x13414141,
0x13804141,
0x21016c00,
0x21016900,
0x6836030d,
0xf1621701,
0xc9010417,
@ -350,7 +347,7 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x09015341,
0x13414141,
0x13804141,
0x21016c00,
0x21016900,
0x6856030c,
0xf1a61701,
0xc902040a,
@ -392,7 +389,7 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x09033b21,
0x09011b41,
0x13414141,
0x2101b100,
0x2101ae00,
0x68360314,
0x24000081,
0xf17c1741,
@ -412,7 +409,7 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x09033b21,
0x09011b41,
0x13414141,
0x2101b100,
0x2101ae00,
0x68560313,
0x24000081,
0xf1c01741,
@ -448,12 +445,24 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0x20990000,
0x240134e2,
0x90e22481,
0x69001602,
0x13012121,
0x69013602,
0x13022121,
0x69025602,
0xf114179a,
0xc9009a02,
0x1f012121,
0xf1103783,
0xf1161704,
0xc900e40c,
0x110f0302,
0x68160202,
0x13042121,
0x0b04e3e3,
0x110f0302,
0x68360202,
0x13082121,
0x0b04e3e3,
0x110f0302,
0x68560202,
0x13102121,
0x240134e2,
0x80e22481,
0x20990000,
0x240001c2,
@ -485,53 +494,53 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0xd1005f2e,
0x01018282,
0x1b01e3e3,
0x21021300,
0x21021c00,
0x01028282,
0x1b02e3e3,
0x21021300,
0x21021c00,
0x01038282,
0x1b03e3e3,
0x21021300,
0x21021c00,
0x01048282,
0x1b04e3e3,
0x21021300,
0x21021c00,
0x01058282,
0x1b05e3e3,
0x21021300,
0x21021c00,
0x01068282,
0x1b06e3e3,
0x21021300,
0x21021c00,
0x01078282,
0x1b07e3e3,
0x21021300,
0x21021c00,
0x01088282,
0x1b08e3e3,
0x21021300,
0x21021c00,
0x01098282,
0x1b09e3e3,
0x21021300,
0x21021c00,
0x010a8282,
0x1b0ae3e3,
0x21021300,
0x21021c00,
0x010b8282,
0x1b0be3e3,
0x21021300,
0x21021c00,
0x010c8282,
0x1b0ce3e3,
0x21021300,
0x21021c00,
0x010d8282,
0x1b0de3e3,
0x21021300,
0x21021c00,
0x010e8282,
0x1b0ee3e3,
0x21021300,
0x21021c00,
0x010f8282,
0x1b0fe3e3,
0x21021300,
0x21021c00,
0x01108282,
0x1b10e3e3,
0x24000042,
0x21025900,
0x21026200,
0x240000e2,
0x31070043,
0xd1011f00,
@ -554,56 +563,56 @@ const uint32_t pru_SDFM_PRU0_image_0[] = {
0xc9005f2e,
0x01018282,
0x1b01e3e3,
0x21025800,
0x21026100,
0x01028282,
0x1b02e3e3,
0x21025800,
0x21026100,
0x01038282,
0x1b03e3e3,
0x21025800,
0x21026100,
0x01048282,
0x1b04e3e3,
0x21025800,
0x21026100,
0x01058282,
0x1b05e3e3,
0x21025800,
0x21026100,
0x01068282,
0x1b06e3e3,
0x21025800,
0x21026100,
0x01078282,
0x1b07e3e3,
0x21025800,
0x21026100,
0x01088282,
0x1b08e3e3,
0x21025800,
0x21026100,
0x01098282,
0x1b09e3e3,
0x21025800,
0x21026100,
0x010a8282,
0x1b0ae3e3,
0x21025800,
0x21026100,
0x010b8282,
0x1b0be3e3,
0x21025800,
0x21026100,
0x010c8282,
0x1b0ce3e3,
0x21025800,
0x21026100,
0x010d8282,
0x1b0de3e3,
0x21025800,
0x21026100,
0x010e8282,
0x1b0ee3e3,
0x21025800,
0x21026100,
0x010f8282,
0x1b0fe3e3,
0x21025800,
0x21026100,
0x01108282,
0x1b10e3e3,
0x24000142,
0x0b0382e1,
0x04e1e3e1,
0x4f01e16e,
0x81183882,
0xe1183782,
0x20990000,
0x240280c1,
0x24000081,

View File

@ -15,11 +15,11 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x24000001,
0x81200b01,
0x10000000,
0x91171801,
0xf1171701,
0xc9000104,
0x2301a799,
0x2301b099,
0x1d00e1e1,
0x81171801,
0xe1171701,
0xf1001701,
0xcf0001ff,
0x1f00e1e1,
@ -27,7 +27,7 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x91340401,
0x1f03e1e1,
0x81340401,
0x2300fa99,
0x2300f799,
0x32800000,
0xf1021701,
0x51010104,
@ -45,12 +45,12 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x0b04e1e1,
0x110fe1e2,
0x10020256,
0x23011b99,
0x23011f99,
0x23014f99,
0x23019499,
0x23011899,
0x23011c99,
0x23014c99,
0x23019199,
0x1f19fefe,
0x23019d99,
0x23019a99,
0x240fffd5,
0x24ffff95,
0x240000d4,
@ -64,13 +64,13 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0xf114179a,
0xd1009a02,
0x21004000,
0xc9019a26,
0xc9019a25,
0x10161602,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xc91cff20,
0xc91cff1f,
0x1f18ffff,
0x10f5ffe5,
0x0ce5e9e6,
@ -83,32 +83,31 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x10e8e8e3,
0xf1203793,
0xf124379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf140379d,
0xf13c3784,
0xe1003d84,
0x7f0000fb,
0xf144379d,
0xf13c3784,
0xe1003d84,
0x7f0000f7,
0xf150379d,
0xf1483784,
0xe1003d84,
0x79000004,
0xf14c379d,
0xf1483784,
0xe1003d84,
0xc9029a26,
0x240130e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe1281701,
0x58e3fb09,
0x24000001,
0xe1291701,
0x21006600,
0x1f034141,
0x80e22481,
0x24000101,
0xe1281701,
0x21006600,
0x1f034141,
0x80e22481,
0x24000101,
0xe1291701,
0xc9029a25,
0x10363602,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xc91cff20,
0xc91cff1f,
0x1f18ffff,
0x10f5ffe5,
0x0ce5ece6,
@ -121,32 +120,31 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x10e8e8e3,
0xf1643793,
0xf168379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf184379d,
0xf1803784,
0xe1003d84,
0x7f0000fb,
0xf188379d,
0xf1803784,
0xe1003d84,
0x7f0000f7,
0xf194379d,
0xf18c3784,
0xe1003d84,
0x79000004,
0xf190379d,
0xf18c3784,
0xe1003d84,
0xc9039a26,
0x240130e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe16c1701,
0x58e3fb09,
0x24000001,
0xe16d1701,
0x21008b00,
0x1f034141,
0x80e22481,
0x24000101,
0xe16c1701,
0x21008b00,
0x1f034141,
0x80e22481,
0x24000101,
0xe16d1701,
0xc9039a25,
0x10565682,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xcf1cffae,
0xcf1cffb0,
0x1f18ffff,
0x10f5ffe5,
0x0ce5efe6,
@ -159,26 +157,25 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x10e8e8e3,
0xf1a83793,
0xf1ac379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf1c8379d,
0xf1c43784,
0xe1003d84,
0x7f0000fb,
0xf1cc379d,
0xf1c43784,
0xe1003d84,
0x7f0000f7,
0xf1d8379d,
0xf1d03784,
0xe1003d84,
0x79000004,
0xf1d4379d,
0xf1d03784,
0xe1003d84,
0x7f00008e,
0x240130e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe1b01701,
0x58e3fb09,
0x24000001,
0xe1b11701,
0x2100b000,
0x1f034141,
0x80e22481,
0x24000101,
0xe1b01701,
0x2100b000,
0x1f034141,
0x80e22481,
0x24000101,
0xe1b11701,
0x7f000091,
0x24000000,
0x107e7e12,
0x2f852381,
@ -229,7 +226,7 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x0108f4e1,
0xe0e13788,
0xc9017c02,
0x2100ef00,
0x2100ec00,
0x59031c03,
0x01011c1c,
0x7900000b,
@ -251,7 +248,7 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x10000000,
0x24000b01,
0x81000a01,
0x2400b481,
0x2400b181,
0x810c0a81,
0x24140081,
0x81380a81,
@ -303,7 +300,7 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x09015341,
0x13414141,
0x13804141,
0x21014a00,
0x21014700,
0x6836030d,
0xf1621701,
0xc9010417,
@ -316,7 +313,7 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x09015341,
0x13414141,
0x13804141,
0x21014a00,
0x21014700,
0x6856030c,
0xf1a61701,
0xc902040a,
@ -358,7 +355,7 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x09033b21,
0x09011b41,
0x13414141,
0x21018f00,
0x21018c00,
0x68360314,
0x24000081,
0xf17c1741,
@ -378,7 +375,7 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x09033b21,
0x09011b41,
0x13414141,
0x21018f00,
0x21018c00,
0x68560313,
0x24000081,
0xf1c01741,
@ -414,12 +411,24 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0x20990000,
0x240130e2,
0x90e22481,
0x69001602,
0x13012121,
0x69013602,
0x13022121,
0x69025602,
0xf114179a,
0xc9009a02,
0x1f012121,
0xf1103783,
0xf1161704,
0xc900e40c,
0x110f0302,
0x68160202,
0x13042121,
0x0b04e3e3,
0x110f0302,
0x68360202,
0x13082121,
0x0b04e3e3,
0x110f0302,
0x68560202,
0x13102121,
0x240130e2,
0x80e22481,
0x20990000,
0x240001c2,
@ -451,53 +460,53 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0xd1005f2e,
0x01018282,
0x1b01e3e3,
0x2101f100,
0x2101fa00,
0x01028282,
0x1b02e3e3,
0x2101f100,
0x2101fa00,
0x01038282,
0x1b03e3e3,
0x2101f100,
0x2101fa00,
0x01048282,
0x1b04e3e3,
0x2101f100,
0x2101fa00,
0x01058282,
0x1b05e3e3,
0x2101f100,
0x2101fa00,
0x01068282,
0x1b06e3e3,
0x2101f100,
0x2101fa00,
0x01078282,
0x1b07e3e3,
0x2101f100,
0x2101fa00,
0x01088282,
0x1b08e3e3,
0x2101f100,
0x2101fa00,
0x01098282,
0x1b09e3e3,
0x2101f100,
0x2101fa00,
0x010a8282,
0x1b0ae3e3,
0x2101f100,
0x2101fa00,
0x010b8282,
0x1b0be3e3,
0x2101f100,
0x2101fa00,
0x010c8282,
0x1b0ce3e3,
0x2101f100,
0x2101fa00,
0x010d8282,
0x1b0de3e3,
0x2101f100,
0x2101fa00,
0x010e8282,
0x1b0ee3e3,
0x2101f100,
0x2101fa00,
0x010f8282,
0x1b0fe3e3,
0x2101f100,
0x2101fa00,
0x01108282,
0x1b10e3e3,
0x24000042,
0x21023700,
0x21024000,
0x240000e2,
0x31070043,
0xd1011f00,
@ -520,56 +529,56 @@ const uint32_t pru_SDFM_RTU0_image_0[] = {
0xc9005f2e,
0x01018282,
0x1b01e3e3,
0x21023600,
0x21023f00,
0x01028282,
0x1b02e3e3,
0x21023600,
0x21023f00,
0x01038282,
0x1b03e3e3,
0x21023600,
0x21023f00,
0x01048282,
0x1b04e3e3,
0x21023600,
0x21023f00,
0x01058282,
0x1b05e3e3,
0x21023600,
0x21023f00,
0x01068282,
0x1b06e3e3,
0x21023600,
0x21023f00,
0x01078282,
0x1b07e3e3,
0x21023600,
0x21023f00,
0x01088282,
0x1b08e3e3,
0x21023600,
0x21023f00,
0x01098282,
0x1b09e3e3,
0x21023600,
0x21023f00,
0x010a8282,
0x1b0ae3e3,
0x21023600,
0x21023f00,
0x010b8282,
0x1b0be3e3,
0x21023600,
0x21023f00,
0x010c8282,
0x1b0ce3e3,
0x21023600,
0x21023f00,
0x010d8282,
0x1b0de3e3,
0x21023600,
0x21023f00,
0x010e8282,
0x1b0ee3e3,
0x21023600,
0x21023f00,
0x010f8282,
0x1b0fe3e3,
0x21023600,
0x21023f00,
0x01108282,
0x1b10e3e3,
0x24000142,
0x0b0382e1,
0x04e1e3e1,
0x4f01e16e,
0x81183882,
0xe1183782,
0x20990000,
0x240280c1,
0x24000081,

View File

@ -15,18 +15,18 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x24000001,
0x81200b01,
0x10000000,
0x91171801,
0xf1171701,
0xc9000104,
0x2301a699,
0x2301af99,
0x1d00e1e1,
0x81171801,
0xe1171701,
0xf1001701,
0xcf0001ff,
0x1f00e1e1,
0xe1011701,
0x91340401,
0x81340401,
0x2300f999,
0x2300f699,
0x32800000,
0xf1021701,
0x51010104,
@ -44,12 +44,12 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x0b04e1e1,
0x110fe1e2,
0x10020256,
0x23011a99,
0x23011e99,
0x23014e99,
0x23019399,
0x23011799,
0x23011b99,
0x23014b99,
0x23019099,
0x1f19fefe,
0x23019c99,
0x23019999,
0x240fffd5,
0x24ffff95,
0x240000d4,
@ -63,13 +63,13 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0xf114179a,
0xd1009a02,
0x21003f00,
0xc9019a26,
0xc9019a25,
0x10161602,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xc91cff20,
0xc91cff1f,
0x1f18ffff,
0x10f5ffe5,
0x0ce5e9e6,
@ -82,32 +82,31 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x10e8e8e3,
0xf1203793,
0xf124379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf140379d,
0xf13c3784,
0xe1003d84,
0x7f0000fb,
0xf144379d,
0xf13c3784,
0xe1003d84,
0x7f0000f7,
0xf150379d,
0xf1483784,
0xe1003d84,
0x79000004,
0xf14c379d,
0xf1483784,
0xe1003d84,
0xc9029a26,
0x240138e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe1281701,
0x58e3fb09,
0x24000001,
0xe1291701,
0x21006500,
0x1f034141,
0x80e22481,
0x24000101,
0xe1281701,
0x21006500,
0x1f034141,
0x80e22481,
0x24000101,
0xe1291701,
0xc9029a25,
0x10363602,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xc91cff20,
0xc91cff1f,
0x1f18ffff,
0x10f5ffe5,
0x0ce5ece6,
@ -120,32 +119,31 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x10e8e8e3,
0xf1643793,
0xf168379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf184379d,
0xf1803784,
0xe1003d84,
0x7f0000fb,
0xf188379d,
0xf1803784,
0xe1003d84,
0x7f0000f7,
0xf194379d,
0xf18c3784,
0xe1003d84,
0x79000004,
0xf190379d,
0xf18c3784,
0xe1003d84,
0xc9039a26,
0x240138e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe16c1701,
0x58e3fb09,
0x24000001,
0xe16d1701,
0x21008a00,
0x1f034141,
0x80e22481,
0x24000101,
0xe16c1701,
0x21008a00,
0x1f034141,
0x80e22481,
0x24000101,
0xe16d1701,
0xc9039a25,
0x10565682,
0x09020202,
0x1f010202,
0x1002027e,
0x10000000,
0xcf1cffae,
0xcf1cffb0,
0x1f18ffff,
0x10f5ffe5,
0x0ce5efe6,
@ -158,26 +156,25 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x10e8e8e3,
0xf1a83793,
0xf1ac379b,
0x70e3f304,
0x58e3f307,
0x70e3fb0a,
0x58e3fb0d,
0xf1c8379d,
0xf1c43784,
0xe1003d84,
0x7f0000fb,
0xf1cc379d,
0xf1c43784,
0xe1003d84,
0x7f0000f7,
0xf1d8379d,
0xf1d03784,
0xe1003d84,
0x79000004,
0xf1d4379d,
0xf1d03784,
0xe1003d84,
0x7f00008e,
0x240138e2,
0x90e22481,
0x70e3f307,
0x24000001,
0xe1b01701,
0x58e3fb09,
0x24000001,
0xe1b11701,
0x2100af00,
0x1f034141,
0x80e22481,
0x24000101,
0xe1b01701,
0x2100af00,
0x1f034141,
0x80e22481,
0x24000101,
0xe1b11701,
0x7f000091,
0x24000000,
0x107e7e12,
0x2f852381,
@ -228,7 +225,7 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x0108f4e1,
0xe0e13788,
0xc9017c02,
0x2100ee00,
0x2100eb00,
0x59031c03,
0x01011c1c,
0x7900000b,
@ -250,7 +247,7 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x10000000,
0x24000b01,
0x81001c01,
0x2400b381,
0x2400b081,
0x810c1c81,
0x24140081,
0x81381c81,
@ -302,7 +299,7 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x09015341,
0x13414141,
0x13804141,
0x21014900,
0x21014600,
0x6836030d,
0xf1621701,
0xc9010417,
@ -315,7 +312,7 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x09015341,
0x13414141,
0x13804141,
0x21014900,
0x21014600,
0x6856030c,
0xf1a61701,
0xc902040a,
@ -357,7 +354,7 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x09033b21,
0x09011b41,
0x13414141,
0x21018e00,
0x21018b00,
0x68360314,
0x24000081,
0xf17c1741,
@ -377,7 +374,7 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x09033b21,
0x09011b41,
0x13414141,
0x21018e00,
0x21018b00,
0x68560313,
0x24000081,
0xf1c01741,
@ -413,12 +410,24 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0x20990000,
0x240138e2,
0x90e22481,
0x69001602,
0x13012121,
0x69013602,
0x13022121,
0x69025602,
0xf114179a,
0xc9009a02,
0x1f012121,
0xf1103783,
0xf1161704,
0xc900e40c,
0x110f0302,
0x68160202,
0x13042121,
0x0b04e3e3,
0x110f0302,
0x68360202,
0x13082121,
0x0b04e3e3,
0x110f0302,
0x68560202,
0x13102121,
0x240138e2,
0x80e22481,
0x20990000,
0x240001c2,
@ -450,53 +459,53 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0xd1005f2e,
0x01018282,
0x1b01e3e3,
0x2101f000,
0x2101f900,
0x01028282,
0x1b02e3e3,
0x2101f000,
0x2101f900,
0x01038282,
0x1b03e3e3,
0x2101f000,
0x2101f900,
0x01048282,
0x1b04e3e3,
0x2101f000,
0x2101f900,
0x01058282,
0x1b05e3e3,
0x2101f000,
0x2101f900,
0x01068282,
0x1b06e3e3,
0x2101f000,
0x2101f900,
0x01078282,
0x1b07e3e3,
0x2101f000,
0x2101f900,
0x01088282,
0x1b08e3e3,
0x2101f000,
0x2101f900,
0x01098282,
0x1b09e3e3,
0x2101f000,
0x2101f900,
0x010a8282,
0x1b0ae3e3,
0x2101f000,
0x2101f900,
0x010b8282,
0x1b0be3e3,
0x2101f000,
0x2101f900,
0x010c8282,
0x1b0ce3e3,
0x2101f000,
0x2101f900,
0x010d8282,
0x1b0de3e3,
0x2101f000,
0x2101f900,
0x010e8282,
0x1b0ee3e3,
0x2101f000,
0x2101f900,
0x010f8282,
0x1b0fe3e3,
0x2101f000,
0x2101f900,
0x01108282,
0x1b10e3e3,
0x24000042,
0x21023600,
0x21023f00,
0x240000e2,
0x31070043,
0xd1011f00,
@ -519,56 +528,56 @@ const uint32_t pru_SDFM_TXPRU0_image_0[] = {
0xc9005f2e,
0x01018282,
0x1b01e3e3,
0x21023500,
0x21023e00,
0x01028282,
0x1b02e3e3,
0x21023500,
0x21023e00,
0x01038282,
0x1b03e3e3,
0x21023500,
0x21023e00,
0x01048282,
0x1b04e3e3,
0x21023500,
0x21023e00,
0x01058282,
0x1b05e3e3,
0x21023500,
0x21023e00,
0x01068282,
0x1b06e3e3,
0x21023500,
0x21023e00,
0x01078282,
0x1b07e3e3,
0x21023500,
0x21023e00,
0x01088282,
0x1b08e3e3,
0x21023500,
0x21023e00,
0x01098282,
0x1b09e3e3,
0x21023500,
0x21023e00,
0x010a8282,
0x1b0ae3e3,
0x21023500,
0x21023e00,
0x010b8282,
0x1b0be3e3,
0x21023500,
0x21023e00,
0x010c8282,
0x1b0ce3e3,
0x21023500,
0x21023e00,
0x010d8282,
0x1b0de3e3,
0x21023500,
0x21023e00,
0x010e8282,
0x1b0ee3e3,
0x21023500,
0x21023e00,
0x010f8282,
0x1b0fe3e3,
0x21023500,
0x21023e00,
0x01108282,
0x1b10e3e3,
0x24000142,
0x0b0382e1,
0x04e1e3e1,
0x4f01e16e,
0x81183882,
0xe1183782,
0x20990000,
0x240280c1,
0x24000081,

View File

@ -55,7 +55,7 @@ const buildOptionCombos = [
let postBuildStepsPru = [
"$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=SDFM_PRU0_image -o sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out; move sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_bin.h;"
"$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=SDFM_PRU0_image -o sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out; move sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_bin.h;"
];
@ -66,7 +66,7 @@ function getComponentProperty() {
property.dirPath = path.resolve(__dirname, "..");
property.type = "executable";
property.makefile = "pru";
property.name = "sdfm_firmware";
property.name = "sdfm_firmware_single_axis_single_pru";
property.isInternal = false;
property.description = "ICSS SDFM"
property.buildOptionCombos = buildOptionCombos;

View File

@ -1,99 +0,0 @@
let path = require('path');
let device = "am64x";
const files = {
common: [
"sdfm.asm",
"icssg_pru.cmd",
],
};
const filedirs = {
common: [
"..", /* core_os_combo base */
"../..",
"../../../..", /* Example base */
],
};
const includes = {
common: [
"${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware",
],
};
const readmeDoxygenPageTag = "SDFM_DESIGN";
const cflags_pru = {
common: [
"-v4",
"-DSDFM_PRU_CORE",
"-o2",
"--display_error_number",
"--hardware_mac=on",
],
};
const lflags_pru = {
common: [
"--disable_auto_rts",
"--define=SDFM_PRU_CORE=1",
"--warn_sections",
"--entry_point=SDFM_ENTRY",
"--zero_init=off",
],
};
const buildOptionCombos = [
{ device: device, cpu: "icssg0-pru0", cgt: "ti-pru-cgt", board: "am64x-evm", os: "fw"},
];
let postBuildStepsPru = [
"$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=SDFM_PRU0_image -o sdfm_firmware_am64x-evm_icssg0-pru0_fw_ti-pru-cgt.h sdfm_firmware_am64x-evm_icssg0-pru0_fw_ti-pru-cgt.out; move sdfm_firmware_am64x-evm_icssg0-pru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_bin.h;"
];
function getComponentProperty() {
let property = {};
property.dirPath = path.resolve(__dirname, "..");
property.type = "executable";
property.makefile = "pru";
property.name = "sdfm_firmware";
property.isInternal = false;
property.description = "ICSS SDFM"
property.buildOptionCombos = buildOptionCombos;
property.pru_main_file = "main";
property.pru_linker_file = "linker";
property.isSkipTopLevelBuild = true;
property.skipUpdatingTirex = true;
return property;
}
function getComponentBuildProperty(buildOption) {
let build_property = {};
build_property.files = files;
build_property.filedirs = filedirs;
build_property.includes = includes;
build_property.cflags = cflags_pru;
build_property.lflags = lflags_pru;
build_property.readmeDoxygenPageTag = readmeDoxygenPageTag;
build_property.projecspecFileAction = "copy";
build_property.skipMakefileCcsBootimageGen = true;
build_property.postBuildSteps = postBuildStepsPru;
return build_property;
}
module.exports = {
getComponentProperty,
getComponentBuildProperty,
};

View File

@ -10,8 +10,8 @@
</applicability>
<project
title="Sdfm Firmware"
name = "sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt"
title="Sdfm Firmware Single Axis Single Pru"
name = "sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt"
products="com.ti.MOTOR_CONTROL_SDK_AMXXX;"
configurations="
Release,
@ -46,7 +46,7 @@
"
linkerBuildOptions="
-i${CG_TOOL_ROOT}/lib
-m=sdfm_firmware.${ConfigName}.map
-m=sdfm_firmware_single_axis_single_pru.${ConfigName}.map
-llibc.a
--disable_auto_rts
--define=SDFM_PRU_CORE=1
@ -56,10 +56,10 @@
"
postBuildStep="
$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=SDFM_PRU0_image -o sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out; move sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_bin.h;
$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=SDFM_PRU0_image -o sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out; move sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_bin.h;
"
description="A Sdfm Firmware FW project">
description="A Sdfm Firmware Single Axis Single Pru FW project">
<configuration name="Release"
compilerBuildOptions="

View File

@ -66,35 +66,35 @@ LIBS := -llibc.a
# Add inputs and outputs from these tool invocations to the build variables
EXE_OUTPUTS += \
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out \
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out \
EXE_OUTPUTS__QUOTED += \
"sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out" \
"sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out" \
BIN_OUTPUTS += \
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.hex \
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.hex \
BIN_OUTPUTS__QUOTED += \
"sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.hex" \
"sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.hex" \
# All Target
all: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
@$(MAKE) --no-print-directory -Onone "sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out"
@$(MAKE) --no-print-directory -Onone "sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out"
# Tool invocations
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
@echo 'Building target: "$@"'
@echo 'Invoking: PRU Linker'
"$(CG_TOOL_ROOT)/bin/clpru" -DICSSG0 -DPRU0 -DSLICE0 -v4 -v4 -DSDFM_PRU_CORE -o2 --display_error_number --hardware_mac=on --define=SOC_AM243X --define=_DEBUG_=1 -g --diag_warning=225 --diag_wrap=off --display_error_number --endian=little -z -m"sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.map" -i"$(CG_TOOL_ROOT)/lib" --diag_wrap=off --display_error_number --warn_sections --xml_link_info="sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_linkInfo.xml" --rom_model -o "sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out" $(ORDERED_OBJS)
"$(CG_TOOL_ROOT)/bin/clpru" -DICSSG0 -DPRU0 -DSLICE0 -v4 -v4 -DSDFM_PRU_CORE -o2 --display_error_number --hardware_mac=on --define=SOC_AM243X --define=_DEBUG_=1 -g --diag_warning=225 --diag_wrap=off --display_error_number --endian=little -z -m"sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.map" -i"$(CG_TOOL_ROOT)/lib" --diag_wrap=off --display_error_number --warn_sections --xml_link_info="sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt_linkInfo.xml" --rom_model -o "sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out" $(ORDERED_OBJS)
@echo 'Finished building target: "$@"'
@echo ' '
@$(MAKE) --no-print-directory post-build
sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.hex: $(EXE_OUTPUTS)
sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.hex: $(EXE_OUTPUTS)
@echo 'Building secondary target: "$@"'
@echo 'Invoking: PRU Hex Utility'
"$(CG_TOOL_ROOT)/bin/hexpru" -o "sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.hex" $(EXE_OUTPUTS__QUOTED)
"$(CG_TOOL_ROOT)/bin/hexpru" -o "sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.hex" $(EXE_OUTPUTS__QUOTED)
@echo 'Finished building secondary target: "$@"'
@echo ' '
@$(MAKE) --no-print-directory post-build
@ -108,7 +108,7 @@ clean:
-@echo ' '
post-build:
-$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=SDFM_PRU0_image -o sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out; move sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_bin.h
-$(CG_TOOL_ROOT)/bin/hexpru.exe --diag_wrap=off --array --array:name_prefix=SDFM_PRU0_image -o sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.out; move sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt.h ${MOTOR_CONTROL_SDK_PATH}/source/current_sense/sdfm/firmware/sdfm_bin.h
-@echo ' '
.PHONY: all clean dependents

View File

@ -7,7 +7,7 @@ include $(MOTOR_CONTROL_SDK_PATH)/imports.mak
PROFILE?=Release
PROJECT_NAME=sdfm_firmware_am243x-evm_icssg0-pru0_fw_ti-pru-cgt
PROJECT_NAME=sdfm_firmware_single_axis_single_pru_am243x-evm_icssg0-pru0_fw_ti-pru-cgt
all:
$(CCS_ECLIPSE) -noSplash -data $(MOTOR_CONTROL_SDK_PATH)/ccs_projects -application com.ti.ccstudio.apps.projectBuild -ccs.projects $(PROJECT_NAME) -ccs.configuration $(PROFILE)

View File

@ -311,25 +311,27 @@ uint64_t SDFM_getFirmwareVersion(sdfm_handle h_sdfm);
*
*/
void SDFM_configFastDetect(sdfm_handle h_sdfm, uint8_t ch, uint8_t *fdParms);
/*
* \brief This API returns the Trip status for the PWM trip zone block specified by pwmIns variable.
* \brief This API returns the fast detect error status for specified SDFM channel number.
*
* \param[in] h_sdfm SDFM handle
* \param[in] pwm current PWM instance
* \param[in] \param[in] chNum SDFM channel number : Channel0-Channel9
*
* \retval Status of PWM Trip status bit
* \retval stauts of fd error: 1 means error available & 0 menas no error, SystemP_FAILURE on not expected API parameters
*
*/
uint32_t SDFM_getPwmTripStatus(sdfm_handle h_sdfm, uint8_t pwmIns);
int32_t SDFM_getFastDetectErrorStatus(sdfm_handle h_sdfm, uint8_t chNum);
/*
* \brief Clear PWM trip status for the PWM trip zone block specified by pwmIns variable.
* \brief Clear PWM trip status of the corresponding PWM trip zone block for specified SDFM channel number.
*
* \param[in] h_sdfm SDFM handle
* \param[in] pwm current PWM instance
*
* \param[in] chNum SDFM channel number : Channel0-Channel9
*
* \retval SystemP_SUCCESS on success, SystemP_FAILURE on error or not expected API parameters
*/
void SDFM_clearPwmTripStatus(sdfm_handle h_sdfm, uint8_t pwmIns);
int32_t SDFM_clearPwmTripStatus(sdfm_handle h_sdfm, uint8_t chNum);
/**
*
* \brief This API enables continuous normal current sampling
@ -358,6 +360,37 @@ void SDFM_enableLoadShareMode(sdfm_handle h_sdfm, uint8_t sliceId);
* \retval Phase delay in nano sec
*/
float SDFM_measureClockPhaseDelay(sdfm_handle h_sdfm, uint16_t clEdg);
/**
*
* \brief This API returns high threshold Status for specified SDFM channel number
*
* \param[in] h_sdfm SDFM handle
* \param[in] chNum SDFM channel number : Channel0-Channel9
*
* \retval Status of Over current error for High threshold
*/
uint8_t SDFM_getLowThresholdStatus(sdfm_handle h_sdfm, uint8_t chNum);
/**
*
* \brief This API returns high threshold Status for specified SDFM channel number
* \param[in] h_sdfm SDFM handle
* \param[in] chNum SDFM channel number : Channel0-Channel9
*
* \retval Status of over current error for Low Threshold
*/
uint8_t SDFM_getHighThresholdStatus(sdfm_handle h_sdfm, uint8_t chNum);
/**
*
* \brief This API clears Overcurrent error bit of corresponding PWM register for specified SDFM channel number
* \param[in] h_sdfm SDFM handle
* \param[in] chNum SDFM channel number : Channel0-Channel9
*
* \retval SystemP_SUCCESS on success, SystemP_FAILURE on not expected API parameters
*/
int32_t SDFM_clearOverCurrentError(sdfm_handle h_sdfm, uint8_t chNum);
/** @} */
#ifdef __cplusplus

View File

@ -43,7 +43,6 @@ extern "C" {
#include <math.h>
/* ========================================================================== */
/* Macros */
/* ========================================================================== */
@ -117,8 +116,6 @@ extern "C" {
/* SDFM output buffer size in 32-bit words */
#define ICSSG_SD_SAMP_CH_BUF_SZ ( 128 )
#define NUM_CH_SUPPORTED_PER_AXIS ( 3 )
#define SDFM_NINE_CH_MASK ( 0x1FF )
@ -126,6 +123,20 @@ extern "C" {
#define SDFM_CH_MASK_FOR_CH1_CH4_CH7 ( 0x92 )
#define SDFM_CH_MASK_FOR_CH2_CH5_CH8 ( 0x124 )
/*SDFM Channel IDs*/
#define SDFM_CHANNEL0 (0)
#define SDFM_CHANNEL1 (1)
#define SDFM_CHANNEL2 (2)
#define SDFM_CHANNEL3 (3)
#define SDFM_CHANNEL4 (4)
#define SDFM_CHANNEL5 (5)
#define SDFM_CHANNEL6 (6)
#define SDFM_CHANNEL7 (7)
#define SDFM_CHANNEL8 (8)
/*Fast detect ERROR mask*/
#define SDFM_FD_ERROR_MASK_FOR_TRIP_VEC ( 0x3800000 )
#define SDFM_PHASE_DELAY_ACK_BIT_MASK (1)
#define SDFM_PHASE_DELAY_CAL_LOOP_SIZE (8)
@ -247,8 +258,12 @@ typedef struct SDFM_ThresholdParms_s
volatile uint32_t high_threshold;
/**< Low threshold value */
volatile uint32_t low_threshold;
/**< reserved for zero crossing*/
volatile uint32_t reserved3;
/**< High Threshold status*/
volatile uint8_t highThStatus;
/**< High Threshold status*/
volatile uint8_t lowThStatus;
/**< reserved */
volatile uint16_t reserved3;
}SDFM_ThresholdParms;
/**
@ -331,6 +346,7 @@ typedef struct SDFM_SampleOutInterface_s
*/
typedef struct SDFM_s {
/**< PRU ID */
PRUICSS_Handle gPruIcssHandle;
uint8_t pru_id;
uint32_t sdfm_clock;
uint32_t iep_clock;