Pull request #87: am64x/am243: tamagawa: Enable periodic trigger mode for multi-channel
Merge in PINDSW/motor_control_sdk from a0503545_tamagawa to next * commit '10ae899ab6ace09c4f69d78916148e3d94100d19': am64x/am243: tamagawa: resolve reviewer comments am64x/am243: tamagawa: add global reinit am64x/am243: tamagawa: Enable periodic trigger mode for multi-channel
This commit is contained in:
commit
4c8bed70f8
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -5,6 +5,7 @@ let device = "am243x";
|
||||
const files = {
|
||||
common: [
|
||||
"tamagawa_diagnostic.c",
|
||||
"tamagawa_periodic_trigger.c",
|
||||
"main.c",
|
||||
],
|
||||
};
|
||||
@ -34,6 +35,7 @@ const includes_freertos_r5f = {
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic",
|
||||
],
|
||||
};
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ let device = "am64x";
|
||||
const files = {
|
||||
common: [
|
||||
"tamagawa_diagnostic.c",
|
||||
"tamagawa_periodic_trigger.c",
|
||||
"main.c",
|
||||
],
|
||||
};
|
||||
@ -34,6 +35,7 @@ const includes_freertos_r5f = {
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am64x/r5f",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic",
|
||||
],
|
||||
};
|
||||
|
||||
|
||||
@ -64,6 +64,9 @@ tamagawa1.PRU_ICSSG0_PRU.$assign = "PRU_ICSSG0_PRU1";
|
||||
const pruicss = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
|
||||
const pruicss1 = pruicss.addInstance({}, false);
|
||||
pruicss1.$name = "CONFIG_PRU_ICSS0";
|
||||
pruicss1.intcMapping.create(1);
|
||||
pruicss1.intcMapping[0].$name = "CONFIG_ICSS0_INTC_MAPPING0";
|
||||
pruicss1.intcMapping[0].event = "18";
|
||||
tamagawa1.pru = pruicss1;
|
||||
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
|
||||
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic
|
||||
-mcpu=cortex-r5
|
||||
-mfloat-abi=hard
|
||||
-mfpu=vfpv3-d16
|
||||
@ -97,6 +98,8 @@
|
||||
<pathVariable name="MOTOR_CONTROL_SDK_PATH" path="${COM_TI_MOTOR_CONTROL_SDK_AMXXX_INSTALL_DIR}" scope="project" />
|
||||
<file path="../../../../tamagawa_diagnostic.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../../../../tamagawa_periodic_trigger.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../main.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="linker.cmd" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
|
||||
@ -39,6 +39,7 @@ endif
|
||||
|
||||
FILES_common := \
|
||||
tamagawa_diagnostic.c \
|
||||
tamagawa_periodic_trigger.c \
|
||||
main.c \
|
||||
ti_drivers_config.c \
|
||||
ti_drivers_open_close.c \
|
||||
@ -61,6 +62,7 @@ INCLUDES_common := \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic \
|
||||
-Igenerated \
|
||||
|
||||
DEFINES_common := \
|
||||
|
||||
@ -83,6 +83,9 @@ tamagawa1.ENC2_EN.GPIO.gpioPin.$assign = "MMC1_SDCD";
|
||||
const pruicss = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
|
||||
const pruicss1 = pruicss.addInstance({}, false);
|
||||
pruicss1.$name = "CONFIG_PRU_ICSS0";
|
||||
pruicss1.intcMapping.create(1);
|
||||
pruicss1.intcMapping[0].$name = "CONFIG_ICSS0_INTC_MAPPING0";
|
||||
pruicss1.intcMapping[0].event = "18";
|
||||
tamagawa1.pru = pruicss1;
|
||||
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
|
||||
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic
|
||||
-mcpu=cortex-r5
|
||||
-mfloat-abi=hard
|
||||
-mfpu=vfpv3-d16
|
||||
@ -97,6 +98,8 @@
|
||||
<pathVariable name="MOTOR_CONTROL_SDK_PATH" path="${COM_TI_MOTOR_CONTROL_SDK_AMXXX_INSTALL_DIR}" scope="project" />
|
||||
<file path="../../../../tamagawa_diagnostic.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../../../../tamagawa_periodic_trigger.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../main.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="linker.cmd" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
|
||||
@ -39,6 +39,7 @@ endif
|
||||
|
||||
FILES_common := \
|
||||
tamagawa_diagnostic.c \
|
||||
tamagawa_periodic_trigger.c \
|
||||
main.c \
|
||||
ti_drivers_config.c \
|
||||
ti_drivers_open_close.c \
|
||||
@ -61,6 +62,7 @@ INCLUDES_common := \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic \
|
||||
-Igenerated \
|
||||
|
||||
DEFINES_common := \
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -64,6 +64,9 @@ tamagawa1.PRU_ICSSG0_PRU.$assign = "PRU_ICSSG0_PRU1";
|
||||
const pruicss = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
|
||||
const pruicss1 = pruicss.addInstance({}, false);
|
||||
pruicss1.$name = "CONFIG_PRU_ICSS0";
|
||||
pruicss1.intcMapping.create(1);
|
||||
pruicss1.intcMapping[0].$name = "CONFIG_ICSS0_INTC_MAPPING0";
|
||||
pruicss1.intcMapping[0].event = "18";
|
||||
tamagawa1.pru = pruicss1;
|
||||
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
|
||||
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am64x/r5f
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic
|
||||
-mcpu=cortex-r5
|
||||
-mfloat-abi=hard
|
||||
-mfpu=vfpv3-d16
|
||||
@ -97,6 +98,8 @@
|
||||
<pathVariable name="MOTOR_CONTROL_SDK_PATH" path="${COM_TI_MOTOR_CONTROL_SDK_AMXXX_INSTALL_DIR}" scope="project" />
|
||||
<file path="../../../../tamagawa_diagnostic.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../../../../tamagawa_periodic_trigger.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../main.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="linker.cmd" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
|
||||
@ -39,6 +39,7 @@ endif
|
||||
|
||||
FILES_common := \
|
||||
tamagawa_diagnostic.c \
|
||||
tamagawa_periodic_trigger.c \
|
||||
main.c \
|
||||
ti_drivers_config.c \
|
||||
ti_drivers_open_close.c \
|
||||
@ -61,6 +62,7 @@ INCLUDES_common := \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am64x/r5f \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic \
|
||||
-Igenerated \
|
||||
|
||||
DEFINES_common := \
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -5,6 +5,7 @@ let device = "am243x";
|
||||
const files = {
|
||||
common: [
|
||||
"tamagawa_diagnostic.c",
|
||||
"tamagawa_periodic_trigger.c",
|
||||
"main.c",
|
||||
],
|
||||
};
|
||||
@ -34,6 +35,7 @@ const includes_freertos_r5f = {
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic",
|
||||
],
|
||||
};
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ let device = "am64x";
|
||||
const files = {
|
||||
common: [
|
||||
"tamagawa_diagnostic.c",
|
||||
"tamagawa_periodic_trigger.c",
|
||||
"main.c",
|
||||
],
|
||||
};
|
||||
@ -34,6 +35,7 @@ const includes_freertos_r5f = {
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am64x/r5f",
|
||||
"${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic",
|
||||
],
|
||||
};
|
||||
|
||||
|
||||
@ -64,6 +64,9 @@ const pruicss1 = pruicss.addInstance({}, false);
|
||||
pruicss1.$name = "CONFIG_PRU_ICSS0";
|
||||
tamagawa1.pru = pruicss1;
|
||||
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
|
||||
pruicss1.intcMapping.create(1);
|
||||
pruicss1.intcMapping[0].$name = "CONFIG_ICSS0_INTC_MAPPING0";
|
||||
pruicss1.intcMapping[0].event = "18";
|
||||
|
||||
/**
|
||||
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic
|
||||
-mcpu=cortex-r5
|
||||
-mfloat-abi=hard
|
||||
-mfpu=vfpv3-d16
|
||||
@ -97,6 +98,8 @@
|
||||
<pathVariable name="MOTOR_CONTROL_SDK_PATH" path="${COM_TI_MOTOR_CONTROL_SDK_AMXXX_INSTALL_DIR}" scope="project" />
|
||||
<file path="../../../../tamagawa_diagnostic.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../../../../tamagawa_periodic_trigger.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../main.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="linker.cmd" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
|
||||
@ -39,6 +39,7 @@ endif
|
||||
|
||||
FILES_common := \
|
||||
tamagawa_diagnostic.c \
|
||||
tamagawa_periodic_trigger.c \
|
||||
main.c \
|
||||
ti_drivers_config.c \
|
||||
ti_drivers_open_close.c \
|
||||
@ -61,6 +62,7 @@ INCLUDES_common := \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic \
|
||||
-Igenerated \
|
||||
|
||||
DEFINES_common := \
|
||||
|
||||
@ -80,6 +80,10 @@ const pruicss1 = pruicss.addInstance({}, false);
|
||||
pruicss1.$name = "CONFIG_PRU_ICSS0";
|
||||
tamagawa1.pru = pruicss1;
|
||||
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
|
||||
pruicss1.intcMapping.create(1);
|
||||
pruicss1.intcMapping[0].$name = "CONFIG_ICSS0_INTC_MAPPING0";
|
||||
pruicss1.intcMapping[0].event = "18";
|
||||
|
||||
|
||||
/**
|
||||
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic
|
||||
-mcpu=cortex-r5
|
||||
-mfloat-abi=hard
|
||||
-mfpu=vfpv3-d16
|
||||
@ -97,6 +98,8 @@
|
||||
<pathVariable name="MOTOR_CONTROL_SDK_PATH" path="${COM_TI_MOTOR_CONTROL_SDK_AMXXX_INSTALL_DIR}" scope="project" />
|
||||
<file path="../../../../tamagawa_diagnostic.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../../../../tamagawa_periodic_trigger.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../main.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="linker.cmd" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
|
||||
@ -39,6 +39,7 @@ endif
|
||||
|
||||
FILES_common := \
|
||||
tamagawa_diagnostic.c \
|
||||
tamagawa_periodic_trigger.c \
|
||||
main.c \
|
||||
ti_drivers_config.c \
|
||||
ti_drivers_open_close.c \
|
||||
@ -61,6 +62,7 @@ INCLUDES_common := \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am243x/r5f \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic \
|
||||
-Igenerated \
|
||||
|
||||
DEFINES_common := \
|
||||
|
||||
@ -64,6 +64,10 @@ const pruicss1 = pruicss.addInstance({}, false);
|
||||
pruicss1.$name = "CONFIG_PRU_ICSS0";
|
||||
tamagawa1.pru = pruicss1;
|
||||
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
|
||||
pruicss1.intcMapping.create(1);
|
||||
pruicss1.intcMapping[0].$name = "CONFIG_ICSS0_INTC_MAPPING0";
|
||||
pruicss1.intcMapping[0].event = "18";
|
||||
|
||||
|
||||
/**
|
||||
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am64x/r5f
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic
|
||||
-mcpu=cortex-r5
|
||||
-mfloat-abi=hard
|
||||
-mfpu=vfpv3-d16
|
||||
@ -97,6 +98,8 @@
|
||||
<pathVariable name="MOTOR_CONTROL_SDK_PATH" path="${COM_TI_MOTOR_CONTROL_SDK_AMXXX_INSTALL_DIR}" scope="project" />
|
||||
<file path="../../../../tamagawa_diagnostic.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../../../../tamagawa_periodic_trigger.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../main.c" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="linker.cmd" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
|
||||
@ -39,6 +39,7 @@ endif
|
||||
|
||||
FILES_common := \
|
||||
tamagawa_diagnostic.c \
|
||||
tamagawa_periodic_trigger.c \
|
||||
main.c \
|
||||
ti_drivers_config.c \
|
||||
ti_drivers_open_close.c \
|
||||
@ -61,6 +62,7 @@ INCLUDES_common := \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am64x/r5f \
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/examples/position_sense/tamagawa_diagnostic \
|
||||
-Igenerated \
|
||||
|
||||
DEFINES_common := \
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -52,6 +52,17 @@
|
||||
#include "ti_drivers_config.h"
|
||||
#include "ti_board_open_close.h"
|
||||
#include <position_sense/tamagawa/include/tamagawa_drv.h>
|
||||
#include "tamagawa_periodic_trigger.h"
|
||||
|
||||
#define TASK_STACK_SIZE (4096)
|
||||
#define TASK_PRIORITY (6)
|
||||
|
||||
uint32_t gTaskFxnStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)));
|
||||
TaskP_Object gTaskObject;
|
||||
|
||||
#define TAMAGAWA_POSITION_LOOP_STOP 0
|
||||
#define TAMAGAWA_POSITION_LOOP_START 1
|
||||
|
||||
#if ((CONFIG_TAMAGAWA0_CHANNEL0 + CONFIG_TAMAGAWA0_CHANNEL1 + CONFIG_TAMAGAWA0_CHANNEL2) == 1)
|
||||
#include <position_sense/tamagawa/firmware/tamagawa_master_single_channel_bin.h>
|
||||
#endif
|
||||
@ -188,6 +199,18 @@ static enum data_id tamagawa_get_command(uint8_t *adf, uint8_t *edf)
|
||||
cmd = DATA_ID_0;
|
||||
DebugP_log("\r\n| WARNING: invalid Data ID, Data readout Data ID 0 will be sent\n");
|
||||
}
|
||||
/* If the command is 9, start periodic trigger with DATA ID as 0*/
|
||||
if(cmd == PERIODIC_TRIGGER_CMD)
|
||||
{
|
||||
DebugP_log("\r| Enter IEP cycle count: ");
|
||||
if(DebugP_scanf("%u\n", &priv->cmp3) >= 0)
|
||||
{
|
||||
return cmd;
|
||||
}else{
|
||||
cmd = DATA_ID_0;
|
||||
DebugP_log("\r\n| WARNING: invalid value entered, Data readout Data ID 0 will be sent with host trigger mode\n");
|
||||
}
|
||||
}
|
||||
/* Check to make sure that the command issued is correct */
|
||||
if(cmd >= DATA_ID_NUM)
|
||||
{
|
||||
@ -281,6 +304,7 @@ static void tamagawa_display_menu(void)
|
||||
DebugP_log("\r\n| 6 : Reset (Data ID 8) |");
|
||||
DebugP_log("\r\n| 7 : Reset (Data ID C) |");
|
||||
DebugP_log("\r\n| 8 : Readout from EEPROM (Data ID D) |");
|
||||
DebugP_log("\r\n| 9 : Start periodic continuous mode |");
|
||||
DebugP_log("\r\n|------------------------------------------------------------------------------|\n|\n");
|
||||
DebugP_log("\r\n| enter value: ");
|
||||
}
|
||||
@ -292,6 +316,119 @@ uint32_t tamagawa_get_fw_version(void)
|
||||
return *((uint32_t *)TamagawaFirmware + 1);
|
||||
}
|
||||
|
||||
static int32_t tamagawa_position_loop_status;
|
||||
|
||||
static void tamagawa_position_loop_decide_termination(void *args)
|
||||
{
|
||||
char c;
|
||||
|
||||
while(1)
|
||||
{
|
||||
DebugP_scanf("%c", &c);
|
||||
tamagawa_position_loop_status = TAMAGAWA_POSITION_LOOP_STOP;
|
||||
break;
|
||||
}
|
||||
TaskP_exit();
|
||||
}
|
||||
|
||||
|
||||
static int32_t tamagawa_loop_task_create(void)
|
||||
{
|
||||
uint32_t status;
|
||||
TaskP_Params taskParams;
|
||||
|
||||
TaskP_Params_init(&taskParams);
|
||||
taskParams.name = "tamagawa_position_loop_decide_termination";
|
||||
taskParams.stackSize = TASK_STACK_SIZE;
|
||||
taskParams.stack = (uint8_t *)gTaskFxnStack;
|
||||
taskParams.priority = TASK_PRIORITY;
|
||||
taskParams.taskMain = (TaskP_FxnMain)tamagawa_position_loop_decide_termination;
|
||||
status = TaskP_construct(&gTaskObject, &taskParams);
|
||||
|
||||
if(status != SystemP_SUCCESS)
|
||||
{
|
||||
DebugP_log("\rTask2 creation failed\n");
|
||||
}
|
||||
|
||||
return status ;
|
||||
}
|
||||
|
||||
static void tamagawa_process_periodic_command(enum data_id process_dataid_cmd)
|
||||
{
|
||||
int32_t status;
|
||||
|
||||
tamagawa_config_periodic_trigger(priv);
|
||||
|
||||
if(tamagawa_loop_task_create() != SystemP_SUCCESS)
|
||||
{
|
||||
DebugP_log("\r| ERROR: OS not allowing continuous mode as related Task creation failed\r\n|\r\n|\n");
|
||||
DebugP_log("Task_create() failed!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
struct tamagawa_periodic_interface tamagawa_periodic_interface;
|
||||
tamagawa_periodic_interface.pruss_cfg = priv->pruss_cfg;
|
||||
tamagawa_periodic_interface.pruss_iep = priv->pruss_iep;
|
||||
tamagawa_periodic_interface.pruss_dmem = priv->tamagawa_xchg;
|
||||
tamagawa_periodic_interface.cmp3 = priv->cmp3;
|
||||
|
||||
status = tamagawa_config_periodic_mode(&tamagawa_periodic_interface, gPruIcssXHandle);
|
||||
DebugP_assert(0 != status);
|
||||
tamagawa_position_loop_status = TAMAGAWA_POSITION_LOOP_START;
|
||||
|
||||
DebugP_log("\r|\n\r| press enter to stop the continuous mode\r\n|\r\n| position, f1\r\n| ");
|
||||
|
||||
while(1)
|
||||
{
|
||||
if(tamagawa_position_loop_status == TAMAGAWA_POSITION_LOOP_STOP)
|
||||
{
|
||||
tamagawa_stop_periodic_continuous_mode(&tamagawa_periodic_interface);
|
||||
tamagawa_config_host_trigger(priv);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
tamagawa_update_data_id(priv, process_dataid_cmd);
|
||||
|
||||
/* In case of EEPROM commands, calculate the CRC for the different channels selected */
|
||||
if((process_dataid_cmd == DATA_ID_6) || (process_dataid_cmd == DATA_ID_D))
|
||||
{
|
||||
uint32_t ch = 0;
|
||||
for(ch = 0 ; ch < MAX_CHANNELS ; ch++)
|
||||
{
|
||||
if(gTamagawa_multi_ch_mask & 1 << ch)
|
||||
{
|
||||
tamagawa_update_crc(priv, process_dataid_cmd, ch);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
tamagawa_command_process(priv, process_dataid_cmd, gTamagawa_multi_ch_mask);
|
||||
|
||||
if(gTamagawa_is_multi_ch)
|
||||
{
|
||||
DebugP_log("\r\n Multi-channel mode is enabled\n\n");
|
||||
|
||||
uint32_t ch;
|
||||
for(ch = 0; ch < MAX_CHANNELS; ch++)
|
||||
{
|
||||
if(gTamagawa_multi_ch_mask & 1 << ch)
|
||||
{
|
||||
tamagawa_multi_channel_set_cur(priv, ch);
|
||||
DebugP_log("\r\n\r|\n|\t\t\t\tCHANNEL %d\n", ch);
|
||||
tamagawa_handle_rx(priv, process_dataid_cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DebugP_log("\r\n Single-channel mode is enabled\n\n");
|
||||
tamagawa_handle_rx(priv, process_dataid_cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tamagawa_main(void *args)
|
||||
{
|
||||
@ -310,12 +447,14 @@ void tamagawa_main(void *args)
|
||||
#endif
|
||||
|
||||
void *pruicss_cfg;
|
||||
void *pruicss_iep;
|
||||
uint32_t slice_value = 1;
|
||||
uint32_t selected_ch;
|
||||
|
||||
tamagawa_pruicss_init();
|
||||
|
||||
pruicss_cfg = (void *)(((PRUICSS_HwAttrs *)(gPruIcssXHandle->hwAttrs))->cfgRegBase);
|
||||
pruicss_iep = (void *)(((PRUICSS_HwAttrs *)(gPruIcssXHandle->hwAttrs))->iep0RegBase);
|
||||
|
||||
if(PRUICSS_PRUx == 0)
|
||||
{
|
||||
@ -323,9 +462,8 @@ void tamagawa_main(void *args)
|
||||
}
|
||||
|
||||
/* Initialize the priv structure according to the PRUx slice selected */
|
||||
priv = tamagawa_init((struct tamagawa_xchg *)((PRUICSS_HwAttrs *)(
|
||||
gPruIcssXHandle->hwAttrs))->pru1DramBase, pruicss_cfg, slice_value);
|
||||
|
||||
priv = tamagawa_init((struct tamagawa_xchg *)(
|
||||
(PRUICSS_HwAttrs *)(gPruIcssXHandle->hwAttrs))->pru1DramBase, pruicss_cfg,pruicss_iep,slice_value);
|
||||
|
||||
tamagawa_set_baudrate(priv, CONFIG_TAMAGAWA0_BAUDRATE);
|
||||
|
||||
@ -393,6 +531,12 @@ void tamagawa_main(void *args)
|
||||
tamagawa_display_menu();
|
||||
cmd = tamagawa_get_command(&adf, &edf);
|
||||
|
||||
if(cmd == PERIODIC_TRIGGER_CMD)
|
||||
{
|
||||
/*Takes which data_id to process in input arguments*/
|
||||
tamagawa_process_periodic_command(DATA_ID_0);
|
||||
}
|
||||
|
||||
if(cmd >= DATA_ID_NUM)
|
||||
{
|
||||
continue;
|
||||
@ -436,8 +580,8 @@ void tamagawa_main(void *args)
|
||||
DebugP_log("\r\n Single-channel mode is enabled\n\n");
|
||||
tamagawa_handle_rx(priv, cmd);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Board_driversClose();
|
||||
Drivers_close();
|
||||
}
|
||||
|
||||
@ -0,0 +1,189 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Texas Instruments Incorporated
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
#include<stdio.h>
|
||||
#include<stdint.h>
|
||||
#include<math.h>
|
||||
|
||||
#include <drivers/pruicss.h>
|
||||
#include <drivers/hw_include/hw_types.h>
|
||||
#include <drivers/hw_include/tistdtypes.h>
|
||||
#include <kernel/dpl/ClockP.h>
|
||||
#include "tamagawa_periodic_trigger.h"
|
||||
#include <drivers/soc.h>
|
||||
#include <position_sense/tamagawa/include/tamagawa_drv.h>
|
||||
|
||||
static HwiP_Object gIcssgEncoderHwiObject0; /* ICSSG Tamagawa PRU FW HWI */
|
||||
|
||||
/* ICSSG Interrupt settings */
|
||||
#define ICSSG_PRU_TAMAGAWA_INT_NUM ( CSLR_R5FSS0_CORE0_INTR_PRU_ICSSG0_PR1_HOST_INTR_PEND_0 )
|
||||
uint32_t gPrutamagawaIrqCnt0;
|
||||
|
||||
/*global variable */
|
||||
void *gPruss_iep;
|
||||
|
||||
PRUICSS_Handle gPruIcssXHandle;
|
||||
|
||||
/* ICSS INTC configuration */
|
||||
extern PRUICSS_IntcInitData icss0_intc_initdata;
|
||||
|
||||
void tamagawa_config_iep(struct tamagawa_periodic_interface *tamagawa_periodic_interface)
|
||||
{
|
||||
/*reset iep timer*/
|
||||
void *pruss_iep = tamagawa_periodic_interface->pruss_iep;
|
||||
struct tamagawa_pruss_xchg *pruss_xchg = tamagawa_periodic_interface->pruss_dmem;
|
||||
uint8_t temp;
|
||||
uint8_t event;
|
||||
uint32_t cmp_reg0;
|
||||
uint32_t cmp_reg1;
|
||||
uint32_t event_clear;
|
||||
uint64_t cmp0 = 0;
|
||||
|
||||
/*clear IEP*/
|
||||
temp = HW_RD_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_GLOBAL_CFG_REG );
|
||||
temp &= 0xFE;
|
||||
HW_WR_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_GLOBAL_CFG_REG, temp);
|
||||
|
||||
/* cmp cfg reg */
|
||||
event = HW_RD_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP_CFG_REG);
|
||||
event_clear = HW_RD_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP_STATUS_REG);
|
||||
|
||||
/*enable IEP reset by cmp0 event*/
|
||||
event |= IEP_CMP0_ENABLE;
|
||||
event |= IEP_RST_CNT_EN;
|
||||
event_clear |= 1;
|
||||
|
||||
/*set IEP counter to ZERO*/
|
||||
HW_WR_REG32((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_COUNT_REG0, 0);
|
||||
HW_WR_REG32((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_COUNT_REG1, 0);
|
||||
|
||||
/*configure cmp3 registers*/
|
||||
event |= (0x1 << 4 );
|
||||
event_clear |= (0x1 << 3);
|
||||
cmp_reg0 = (tamagawa_periodic_interface->cmp3 & 0xffffffff) - IEP_DEFAULT_INC;
|
||||
cmp_reg1 = (tamagawa_periodic_interface->cmp3>>32 & 0xffffffff);
|
||||
|
||||
HW_WR_REG32((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP3_REG0, cmp_reg0);
|
||||
HW_WR_REG32((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP3_REG1, cmp_reg1);
|
||||
|
||||
cmp0 = tamagawa_periodic_interface->cmp3;
|
||||
|
||||
/*clear event*/
|
||||
HW_WR_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP_STATUS_REG, event_clear);
|
||||
/*enable event*/
|
||||
HW_WR_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP_CFG_REG, event);
|
||||
|
||||
/*configure cmp0 registers*/
|
||||
cmp0 = 2*cmp0;
|
||||
cmp_reg0 = (cmp0 & 0xffffffff) - IEP_DEFAULT_INC;
|
||||
cmp_reg1 = (cmp0>>32 & 0xffffffff);
|
||||
HW_WR_REG32((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP0_REG0, cmp_reg0);
|
||||
HW_WR_REG32((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP0_REG1, cmp_reg1);
|
||||
|
||||
|
||||
/*write IEP default increment & IEP start*/
|
||||
temp = HW_RD_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_GLOBAL_CFG_REG );
|
||||
temp &= 0x0F;
|
||||
temp |= 0x10;
|
||||
temp |= IEP_COUNTER_EN;
|
||||
HW_WR_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_GLOBAL_CFG_REG, temp);
|
||||
}
|
||||
|
||||
|
||||
void tamagawa_interrupt_config(struct tamagawa_periodic_interface *tamagawa_periodic_interface)
|
||||
{
|
||||
struct tamagawa_pruss_xchg *pruss_xchg = tamagawa_periodic_interface->pruss_dmem;
|
||||
int32_t status;
|
||||
HwiP_Params hwiPrms;
|
||||
/* Register & enable ICSSG tamagawa PRU FW interrupt */
|
||||
HwiP_Params_init(&hwiPrms);
|
||||
hwiPrms.intNum = ICSSG_PRU_TAMAGAWA_INT_NUM;
|
||||
hwiPrms.callback = &prutamagawaIrqHandler0;
|
||||
hwiPrms.args = 0;
|
||||
hwiPrms.isPulse = FALSE;
|
||||
hwiPrms.isFIQ = FALSE;
|
||||
status = HwiP_construct(&gIcssgEncoderHwiObject0, &hwiPrms);
|
||||
DebugP_assert(status == SystemP_SUCCESS);
|
||||
|
||||
}
|
||||
uint32_t tamagawa_config_periodic_mode(struct tamagawa_periodic_interface *tamagawa_periodic_interface, PRUICSS_Handle handle)
|
||||
{
|
||||
int32_t status;
|
||||
gPruIcssXHandle = handle;
|
||||
gPruss_iep = tamagawa_periodic_interface->pruss_iep;
|
||||
/*configure IEP*/
|
||||
tamagawa_config_iep(tamagawa_periodic_interface);
|
||||
/* Initialize ICSS INTC */
|
||||
status = PRUICSS_intcInit(gPruIcssXHandle, &icss0_intc_initdata);
|
||||
if (status != SystemP_SUCCESS)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*config Interrupt*/
|
||||
tamagawa_interrupt_config(tamagawa_periodic_interface);
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
void tamagawa_stop_periodic_continuous_mode(struct tamagawa_periodic_interface *tamagawa_periodic_interface)
|
||||
{
|
||||
/*reset iep timer*/
|
||||
void *pruss_iep = tamagawa_periodic_interface->pruss_iep;
|
||||
uint8_t temp;
|
||||
/*clear IEP*/
|
||||
temp = HW_RD_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_GLOBAL_CFG_REG );
|
||||
temp &= 0xFE;
|
||||
HW_WR_REG8((uint8_t*)pruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_GLOBAL_CFG_REG, temp);
|
||||
}
|
||||
|
||||
/* PRU tamagawa FW IRQ handler */
|
||||
void prutamagawaIrqHandler0(void *args)
|
||||
{
|
||||
|
||||
/* debug, inncrement PRU SDFM IRQ count */
|
||||
gPrutamagawaIrqCnt0++;
|
||||
|
||||
/* clear Cmp3 event*/
|
||||
uint32_t event_clear;
|
||||
event_clear = HW_RD_REG8((uint8_t*)gPruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP_STATUS_REG);
|
||||
event_clear |= IEP_CMP3_EVNT;
|
||||
HW_WR_REG8((uint8_t*)gPruss_iep + CSL_ICSS_G_PR1_IEP1_SLV_CMP_STATUS_REG, event_clear);
|
||||
|
||||
/* Clear interrupt at source */
|
||||
/* Write 18 to ICSSG_STATUS_CLR_INDEX_REG
|
||||
Firmware: TRIGGER_HOST_SDFM_IRQ defined as 18
|
||||
18 = 16+2, 2 is Host Interrupt Number. See AM64x TRM.
|
||||
*/
|
||||
PRUICSS_clearEvent(gPruIcssXHandle, PRU_TRIGGER_HOST_TAMAGAWA_EVT0);
|
||||
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Texas Instruments Incorporated
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _TAMAGAWA_H_
|
||||
#define _TAMAGAWA_H_
|
||||
|
||||
#include<stdint.h>
|
||||
|
||||
struct tamagawa_periodic_interface
|
||||
{
|
||||
void *pruss_iep;
|
||||
void *pruss_dmem;
|
||||
void *pruss_cfg;
|
||||
uint64_t cmp3;
|
||||
};
|
||||
|
||||
#define IEP_DEFAULT_INC 0x1;
|
||||
#define IEP_DEFAULT_INC_EN 0x4;
|
||||
#define IEP_COUNTER_EN 0x1;
|
||||
#define IEP_RST_CNT_EN 0x1;
|
||||
#define IEP_CMP0_ENABLE 0x1 << 1;
|
||||
#define IEP_CMP3_EVNT (0x1 << 3 )
|
||||
|
||||
#define PRU_TRIGGER_HOST_TAMAGAWA_EVT0 ( 2+16 ) /* pr0_pru_mst_intr[2]_intr_req */
|
||||
#define PERIOD
|
||||
|
||||
uint32_t tamagawa_config_periodic_mode(struct tamagawa_periodic_interface *tamagawa_periodic_interface, PRUICSS_Handle handle);
|
||||
|
||||
void tamagawa_stop_periodic_continuous_mode(struct tamagawa_periodic_interface *tamagawa_periodic_interface);
|
||||
|
||||
static void prutamagawaIrqHandler0(void *handle);
|
||||
|
||||
|
||||
#endif /* _TAMAGAWA_H_ */
|
||||
@ -4,5 +4,5 @@
|
||||
* View (ROV) tool.
|
||||
*/
|
||||
var crovFiles = [
|
||||
"mcu_plus_sdk/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
|
||||
];
|
||||
|
||||
@ -103,6 +103,7 @@ help:
|
||||
@echo $(MAKE) -s -C source/position_sense/hdsl/firmware/multichannel_ch1_sync_mode/am243x-evm/icssg0-pru1_fw/ti-pru-cgt [all clean syscfg-gui syscfg]
|
||||
@echo $(MAKE) -s -C source/position_sense/hdsl/firmware/sync_225_mhz/am243x-evm/icssg0-pru1_fw/ti-pru-cgt [all clean syscfg-gui syscfg]
|
||||
@echo $(MAKE) -s -C source/position_sense/tamagawa/firmware/multi_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt [all clean syscfg-gui syscfg]
|
||||
@echo $(MAKE) -s -C source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt [all clean syscfg-gui syscfg]
|
||||
@echo $(MAKE) -s -C source/position_sense/tamagawa/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt [all clean syscfg-gui syscfg]
|
||||
@echo $(MAKE) -s -C source/position_sense/tamagawa/firmware/single_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt [all clean syscfg-gui syscfg]
|
||||
@echo $(MAKE) -s -C source/position_sense/bissc/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt [all clean syscfg-gui syscfg]
|
||||
@ -290,6 +291,7 @@ BUILD_COMBO_EXAMPLE_PRIVATE_ALL += hdsl_master_multichannel_ch0_sync_mode_am243x
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += hdsl_master_multichannel_ch1_sync_mode_am243x-evm_icssg0-pru1_fw_ti-pru-cgt
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += hdsl_master_sync_225_mhz_am243x-evm_icssg0-pru1_fw_ti-pru-cgt
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += tamagawa_single_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_ALL += bissc_peripheral_interface_single_ch_am243x-evm_icssg0-pru1_fw_ti-pru-cgt
|
||||
@ -462,6 +464,9 @@ examples-private: $(BUILD_COMBO_EXAMPLE_PRIVATE_ALL)
|
||||
tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile all
|
||||
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt -f makefile all
|
||||
|
||||
tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile all
|
||||
|
||||
@ -543,6 +548,7 @@ BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += hdsl_master_multichannel_ch0_sync_mode_
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += hdsl_master_multichannel_ch1_sync_mode_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += hdsl_master_sync_225_mhz_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += tamagawa_single_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL += bissc_peripheral_interface_single_ch_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
@ -715,6 +721,9 @@ examples-private-clean: $(BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL)
|
||||
tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile clean
|
||||
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_clean:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt -f makefile clean
|
||||
|
||||
tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile clean
|
||||
|
||||
@ -796,6 +805,7 @@ BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += hdsl_master_multichannel_ch0_sync_mode_
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += hdsl_master_multichannel_ch1_sync_mode_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += hdsl_master_sync_225_mhz_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_scrub
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += tamagawa_single_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_scrub
|
||||
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL += bissc_peripheral_interface_single_ch_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub
|
||||
@ -968,6 +978,9 @@ examples-scrub-private: $(BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL)
|
||||
tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile scrub
|
||||
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_scrub:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt -f makefile scrub
|
||||
|
||||
tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_scrub:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile scrub
|
||||
|
||||
|
||||
@ -64,6 +64,7 @@ BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += hdsl_master_multichannel_ch
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += hdsl_master_multichannel_ch1_sync_mode_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += hdsl_master_sync_225_mhz_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_build
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += tamagawa_single_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_build
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL += bissc_peripheral_interface_single_ch_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build
|
||||
@ -236,6 +237,9 @@ all-private: $(BUILD_COMBO_EXAMPLE_PROJECTSPEC_BUILD_PRIVATE_ALL)
|
||||
tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec all
|
||||
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_build:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec all
|
||||
|
||||
tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_build:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec all
|
||||
|
||||
@ -318,6 +322,7 @@ BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += hdsl_master_multichannel_ch
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += hdsl_master_multichannel_ch1_sync_mode_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += hdsl_master_sync_225_mhz_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += tamagawa_single_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL += bissc_peripheral_interface_single_ch_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean
|
||||
@ -490,6 +495,9 @@ clean-private: $(BUILD_COMBO_EXAMPLE_PROJECTSPEC_CLEAN_PRIVATE_ALL)
|
||||
tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec clean
|
||||
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_clean:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec clean
|
||||
|
||||
tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_clean:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec clean
|
||||
|
||||
@ -572,6 +580,7 @@ BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += hdsl_master_multichannel_c
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += hdsl_master_multichannel_ch1_sync_mode_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += hdsl_master_sync_225_mhz_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_export
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += tamagawa_single_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_export
|
||||
BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL += bissc_peripheral_interface_single_ch_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export
|
||||
@ -744,6 +753,9 @@ export-private: $(BUILD_COMBO_EXAMPLE_PROJECTSPEC_EXPORT_PRIVATE_ALL)
|
||||
tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec export
|
||||
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_export:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec export
|
||||
|
||||
tamagawa_single_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt_export:
|
||||
$(MAKE) -C source/position_sense/tamagawa/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec export
|
||||
|
||||
@ -847,6 +859,7 @@ help:
|
||||
@echo $(MAKE) -s -C source/position_sense/hdsl/firmware/multichannel_ch1_sync_mode/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec [export all clean]
|
||||
@echo $(MAKE) -s -C source/position_sense/hdsl/firmware/sync_225_mhz/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec [export all clean]
|
||||
@echo $(MAKE) -s -C source/position_sense/tamagawa/firmware/multi_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec [export all clean]
|
||||
@echo $(MAKE) -s -C source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec [export all clean]
|
||||
@echo $(MAKE) -s -C source/position_sense/tamagawa/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec [export all clean]
|
||||
@echo $(MAKE) -s -C source/position_sense/tamagawa/firmware/single_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec [export all clean]
|
||||
@echo $(MAKE) -s -C source/position_sense/bissc/firmware/single_channel/am243x-evm/icssg0-pru1_fw/ti-pru-cgt -f makefile_projectspec [export all clean]
|
||||
|
||||
@ -583,12 +583,13 @@ static inline void tamagawa_config_clr_cfg0(struct tamagawa_priv *priv)
|
||||
HW_WR_REG32((uint32_t)(pruss_cfg) + tamagawa_priv.register_offset_val.ICSS_CFG_PRUx_ED_CH2_CFG0, 0);
|
||||
}
|
||||
|
||||
struct tamagawa_priv *tamagawa_init(struct tamagawa_xchg *tamagawa_xchg, void *pruss_cfg, uint32_t slice_value)
|
||||
struct tamagawa_priv *tamagawa_init(struct tamagawa_xchg *tamagawa_xchg, void *pruss_cfg, void *pruss_iep, uint32_t slice_value)
|
||||
{
|
||||
/* Initializes tamagawa firmware interface address and get the pointer to struct tamagawa_priv instance */
|
||||
tamagawa_priv.tamagawa_xchg = tamagawa_xchg;
|
||||
tamagawa_priv.pruss_cfg = pruss_cfg;
|
||||
tamagawa_priv.slice_value = slice_value;
|
||||
tamagawa_priv.pruss_iep = pruss_iep;
|
||||
|
||||
/* If the slice value is 0, it denotes that PRU0 is selected. Assign the register offsets for PRU0 */
|
||||
if(slice_value==0)
|
||||
|
||||
@ -47,12 +47,17 @@ const lflags = {
|
||||
|
||||
const buildOptionCombos = [
|
||||
{ device: device, cpu: "icssg0-pru1", cgt: "ti-pru-cgt", board: "am243x-evm", os: "fw"},
|
||||
{ device: device, cpu: "icssg0-pru1", cgt: "ti-pru-cgt", board: "am243x-lp", os: "fw"},
|
||||
];
|
||||
|
||||
let postBuildSteps = [
|
||||
let postBuildStepsEVM = [
|
||||
"$(CG_TOOL_ROOT)/bin/hexpru.exe ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/tamagawa_master_hexpru.cmd tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt.out; ${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/tools/bin2header/bin2header.exe tamagawa_multi_channel_am243x-evm_icssg0-pru1_fw_ti-pru-cgt.b00 tamagawa_master_multi_channel_bin.h TamagawaFirmware 4; move tamagawa_master_multi_channel_bin.h ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/tamagawa_master_multi_channel_bin.h ;"
|
||||
];
|
||||
|
||||
let postBuildStepsLP = [
|
||||
"$(CG_TOOL_ROOT)/bin/hexpru.exe ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/tamagawa_master_hexpru.cmd tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.out; ${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/tools/bin2header/bin2header.exe tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.b00 tamagawa_master_multi_channel_bin.h TamagawaFirmware 4; move tamagawa_master_multi_channel_bin.h ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/tamagawa_master_multi_channel_bin.h ;"
|
||||
];
|
||||
|
||||
function getComponentProperty() {
|
||||
let property = {};
|
||||
|
||||
@ -67,8 +72,6 @@ function getComponentProperty() {
|
||||
property.pru_linker_file = "linker";
|
||||
property.isSkipTopLevelBuild = true;
|
||||
property.skipUpdatingTirex = true;
|
||||
property.postBuildSteps = postBuildSteps;
|
||||
|
||||
return property;
|
||||
}
|
||||
|
||||
@ -85,6 +88,16 @@ function getComponentBuildProperty(buildOption) {
|
||||
build_property.projecspecFileAction = "copy";
|
||||
build_property.skipMakefileCcsBootimageGen = true;
|
||||
|
||||
if(buildOption.board.match(/am243x-evm*/) )
|
||||
{
|
||||
build_property.postBuildSteps = postBuildStepsEVM;
|
||||
}
|
||||
else if(buildOption.board.match(/am243x-lp*/) )
|
||||
{
|
||||
build_property.postBuildSteps = postBuildStepsLP;
|
||||
|
||||
}
|
||||
|
||||
return build_property;
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectSpec>
|
||||
<applicability>
|
||||
<when>
|
||||
<context
|
||||
deviceFamily="PRU"
|
||||
deviceId="AM243x_LAUNCHPAD"
|
||||
/>
|
||||
</when>
|
||||
</applicability>
|
||||
|
||||
<project
|
||||
title="Tamagawa Multi Channel"
|
||||
name = "tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt"
|
||||
products="com.ti.MOTOR_CONTROL_SDK_AMXXX;"
|
||||
configurations="
|
||||
Release,
|
||||
Debug,
|
||||
"
|
||||
connection="TIXDS110_Connection.xml"
|
||||
toolChain="TI"
|
||||
cgtVersion="2.3.3"
|
||||
device="AM243x_LAUNCHPAD"
|
||||
deviceCore="ICSS_G0_PRU_1"
|
||||
ignoreDefaultDeviceSettings="true"
|
||||
ignoreDefaultCCSSettings="true"
|
||||
endianness="little"
|
||||
outputFormat="ELF"
|
||||
outputType="executable"
|
||||
|
||||
compilerBuildOptions="
|
||||
-I${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware
|
||||
-DICSSG0
|
||||
-DPRU1
|
||||
-DSLICE1
|
||||
-v4
|
||||
-DSOC_AM243X
|
||||
-DENABLE_MULTI_CHANNEL
|
||||
"
|
||||
linkerBuildOptions="
|
||||
-m=tamagawa_multi_channel.${ConfigName}.map
|
||||
--entry_point=TAMAGAWA_INIT
|
||||
--disable_auto_rts
|
||||
"
|
||||
|
||||
postBuildStep="
|
||||
$(CG_TOOL_ROOT)/bin/hexpru.exe ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/tamagawa_master_hexpru.cmd tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.out; ${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/tools/bin2header/bin2header.exe tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.b00 tamagawa_master_multi_channel_bin.h TamagawaFirmware 4; move tamagawa_master_multi_channel_bin.h ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/tamagawa_master_multi_channel_bin.h ;
|
||||
"
|
||||
|
||||
description="A Tamagawa Multi Channel FW project">
|
||||
|
||||
<configuration name="Release"
|
||||
compilerBuildOptions="
|
||||
"
|
||||
linkerBuildOptions="
|
||||
"
|
||||
></configuration>
|
||||
<configuration name="Debug"
|
||||
compilerBuildOptions="
|
||||
"
|
||||
linkerBuildOptions="
|
||||
"
|
||||
></configuration>
|
||||
<pathVariable name="MOTOR_CONTROL_SDK_PATH" path="${COM_TI_MOTOR_CONTROL_SDK_AMXXX_INSTALL_DIR}" scope="project" />
|
||||
<file path="../../../../tamagawa_main.asm" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../../../../tamagawa_diagnostic.cmd" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="../../../../tamagawa_master_hexpru.cmd" openOnCreation="false" excludeFromBuild="false" action="copy">
|
||||
</file>
|
||||
<file path="${MOTOR_CONTROL_SDK_PATH}/docs/api_guide_am243x/TAMAGAWA_DESIGN.html"
|
||||
openOnCreation="false" excludeFromBuild="false" targetName="README.html" action="link">
|
||||
</file>
|
||||
</project>
|
||||
</projectSpec>
|
||||
@ -0,0 +1,117 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
# Required input arguments:
|
||||
# MOTOR_CONTROL_SDK_PATH=${MOTOR_CONTROL_SDK_PATH} sdk_dir_path
|
||||
# CCS_INSTALL_DIR=${CCS_INSTALL_DIR} ccs_dir_path
|
||||
# CCS_PROJECT_DEBUG=${CWD} project_debug_dir_path
|
||||
|
||||
SHELL = cmd.exe
|
||||
CCS_PATH?=$(CCS_INSTALL_DIR)/ccs_base/pru/include
|
||||
CG_TOOL_ROOT := C:/ti/ti-cgt-pru_2.3.3
|
||||
SYSCFG_DIR := $(CCS_PROJECT_DEBUG)/syscfg
|
||||
|
||||
GEN_OPTS__FLAG :=
|
||||
GEN_CMDS__FLAG :=
|
||||
|
||||
ORDERED_OBJS += \
|
||||
"./main.obj" \
|
||||
"${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt/linker.cmd" \
|
||||
$(GEN_CMDS__FLAG) \
|
||||
-llibc.a \
|
||||
|
||||
-include ../makefile.init
|
||||
|
||||
RM := DEL /F
|
||||
RMDIR := RMDIR /S/Q
|
||||
|
||||
# Every subdirectory with source files must be described here
|
||||
SUBDIRS := \
|
||||
. \
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
CMD_SRCS += \
|
||||
${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/multi_channel/am243x-lp/icssg0-pru1_fw/ti-pru-cgt/linker.cmd \
|
||||
|
||||
ASM_SRCS += \
|
||||
${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/multi_channel/main.asm
|
||||
|
||||
OBJS += \
|
||||
./main.obj
|
||||
|
||||
ASM_DEPS += \
|
||||
./main.d
|
||||
|
||||
OBJS__QUOTED += \
|
||||
"main.obj"
|
||||
|
||||
ASM_DEPS__QUOTED += \
|
||||
"main.d"
|
||||
|
||||
ASM_SRCS__QUOTED += \
|
||||
"${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/multi_channel/main.asm"
|
||||
|
||||
# Each subdirectory must supply rules for building sources it contributes
|
||||
main.obj: ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/multi_channel/main.asm $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
|
||||
@echo 'Building file: "$<"'
|
||||
@echo 'Invoking: PRU Compiler'
|
||||
"$(CG_TOOL_ROOT)/bin/clpru" -DICSSG0 -DPRU1 -DSLICE1 -v4 --define=SOC_AM243X --define=ENABLE_MULTI_CHANNEL --include_path="$(CCS_PATH)" --include_path="$(SYSCFG_DIR)" --include_path="${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware" --define=_DEBUG_=1 -g --diag_warning=225 --diag_wrap=off --display_error_number --endian=little --preproc_with_compile --preproc_dependency="$(basename $(<F)).d_raw" $(GEN_OPTS__FLAG) "$<"
|
||||
@echo 'Finished building: "$<"'
|
||||
@echo ' '
|
||||
|
||||
LIBS := -llibc.a
|
||||
|
||||
-include ../makefile.defs
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
EXE_OUTPUTS += \
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.out \
|
||||
|
||||
EXE_OUTPUTS__QUOTED += \
|
||||
"tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.out" \
|
||||
|
||||
BIN_OUTPUTS += \
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.hex \
|
||||
|
||||
BIN_OUTPUTS__QUOTED += \
|
||||
"tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.hex" \
|
||||
|
||||
|
||||
# All Target
|
||||
all: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
|
||||
@$(MAKE) --no-print-directory -Onone "tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.out"
|
||||
|
||||
# Tool invocations
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
|
||||
@echo 'Building target: "$@"'
|
||||
@echo 'Invoking: PRU Linker'
|
||||
"$(CG_TOOL_ROOT)/bin/clpru" -DICSSG0 -DPRU1 -DSLICE1 -v4 --define=SOC_AM243X --define=ENABLE_MULTI_CHANNEL --define=_DEBUG_=1 -g --diag_warning=225 --diag_wrap=off --display_error_number --endian=little -z -m"tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.map" -i"$(CG_TOOL_ROOT)/lib" --diag_wrap=off --display_error_number --warn_sections --xml_link_info="tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt_linkInfo.xml" --rom_model -o "tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.out" $(ORDERED_OBJS)
|
||||
@echo 'Finished building target: "$@"'
|
||||
@echo ' '
|
||||
@$(MAKE) --no-print-directory post-build
|
||||
|
||||
tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.hex: $(EXE_OUTPUTS)
|
||||
@echo 'Building secondary target: "$@"'
|
||||
@echo 'Invoking: PRU Hex Utility'
|
||||
"$(CG_TOOL_ROOT)/bin/hexpru" -o "tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.hex" $(EXE_OUTPUTS__QUOTED)
|
||||
@echo 'Finished building secondary target: "$@"'
|
||||
@echo ' '
|
||||
@$(MAKE) --no-print-directory post-build
|
||||
|
||||
# Other Targets
|
||||
clean:
|
||||
-$(RM) $(BIN_OUTPUTS__QUOTED)$(EXE_OUTPUTS__QUOTED)
|
||||
-$(RM) "main.obj"
|
||||
-$(RM) "main.d"
|
||||
-@echo 'Finished clean'
|
||||
-@echo ' '
|
||||
|
||||
post-build:
|
||||
-$(CG_TOOL_ROOT)/bin/hexpru.exe ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/tamagawa_master_hexpru.cmd tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.out; ${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/tools/bin2header/bin2header.exe tamagawa_multi_channel_am243x-lp_icssg0-pru1_fw_ti-pru-cgt.b00 tamagawa_master_multi_channel_bin.h TamagawaFirmware 4; move tamagawa_master_multi_channel_bin.h ${MOTOR_CONTROL_SDK_PATH}/source/position_sense/tamagawa/firmware/tamagawa_master_multi_channel_bin.h
|
||||
-@echo ' '
|
||||
|
||||
.PHONY: all clean dependents
|
||||
.SECONDARY:
|
||||
|
||||
-include ../makefile.targets
|
||||
@ -0,0 +1,20 @@
|
||||
#
|
||||
# Auto generated makefile
|
||||
#
|
||||
|
||||
export MOTOR_CONTROL_SDK_PATH?=$(abspath ../../../../../../../..)
|
||||
include $(MOTOR_CONTROL_SDK_PATH)/imports.mak
|
||||
|
||||
PROFILE?=Release
|
||||
|
||||
PROJECT_NAME=tamagawa_multi_channel_am243x-lp_icssg0-pru1_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)
|
||||
|
||||
clean:
|
||||
$(CCS_ECLIPSE) -noSplash -data $(MOTOR_CONTROL_SDK_PATH)/ccs_projects -application com.ti.ccstudio.apps.projectBuild -ccs.projects $(PROJECT_NAME) -ccs.configuration $(PROFILE) -ccs.clean
|
||||
|
||||
export:
|
||||
$(MKDIR) $(MOTOR_CONTROL_SDK_PATH)/ccs_projects
|
||||
$(CCS_ECLIPSE) -noSplash -data $(MOTOR_CONTROL_SDK_PATH)/ccs_projects -application com.ti.ccstudio.apps.projectCreate -ccs.projectSpec example.projectspec -ccs.overwrite full
|
||||
@ -172,11 +172,26 @@ TAMAGAWA_SKIP_INIT_SUCCESS:
|
||||
LDI R0.b0, 1
|
||||
;Initialization successful status update ends here
|
||||
SBCO &R0.b0, PRUx_DMEM, TAMAGAWA_INTFC_CMD_STATUS_OFFSET, 1
|
||||
|
||||
CHECK_OPERATING_MODE:
|
||||
LBCO &R0.b0, PRUx_DMEM, TAMAGAWA_OPMODE_CONFIG_OFFSET, 1
|
||||
;If opmode=1, Host trigger is done
|
||||
;If opmode=0, Periodic trigger is done
|
||||
QBNE HANDLE_HOST_TRIGGER_MODE, R0.b0, 0
|
||||
|
||||
HANDLE_PERIODIC_TRIGGER_MODE:
|
||||
;Get compare event status
|
||||
LBCO &R0, ICSS_IEP, ICSS_IEP_CMP_STATUS_REG, 4
|
||||
; wait till IEP CMP3 event
|
||||
QBBC HANDLE_PERIODIC_TRIGGER_MODE, R0, 3
|
||||
; Clear IEP CMP3 event
|
||||
SET R0, R0, 3
|
||||
; store compare event status
|
||||
SBCO &R0, ICSS_IEP, ICSS_IEP_CMP_STATUS_REG, 4
|
||||
; SET command TRIGGER
|
||||
LDI R0.b0, 1
|
||||
SBCO &R0.b0, PRUx_DMEM, TAMAGAWA_INTFC_CMD_TRIGGER_OFFSET, 1
|
||||
|
||||
HANDLE_HOST_TRIGGER_MODE:
|
||||
;If Host Trigger=1, request made by R5F to Firmware, now Firmware do processing and when done set trigger to 0 so that R5F application can act further.
|
||||
LBCO &R0.b0, PRUx_DMEM, TAMAGAWA_INTFC_CMD_TRIGGER_OFFSET, 1
|
||||
@ -197,6 +212,18 @@ TAMAGAWA_HOST_CMD_END:
|
||||
LDI R3.w0, 0
|
||||
;Clear Host Trigger
|
||||
SBCO &R3.b0, PRUx_DMEM, TAMAGAWA_INTFC_CMD_TRIGGER_OFFSET, 1
|
||||
;check PRU host trigger for all three channels
|
||||
LBCO &R3.b0, PRUx_DMEM, TAMAGAWA_OPMODE_CONFIG_OFFSET, 1
|
||||
;skip interrupt to R5F in host trigger
|
||||
QBNE SKIP_INTERRUPT_TRIGGER, R3.b0, 0
|
||||
;Generate interrupt to R5F
|
||||
LDI R31.w0, 34;PRU_TRIGGER_HOST_TAMAGAWA_EVT0 ( pr0_pru_mst_intr[2]_intr_req )
|
||||
;Global reinit
|
||||
set R31, TAMAGAWA_TX_GLOBAL_REINIT
|
||||
;Handle next Postition in periodic trigger
|
||||
JMP HANDLE_PERIODIC_TRIGGER_MODE
|
||||
|
||||
SKIP_INTERRUPT_TRIGGER:
|
||||
;Handle next Position request by user.
|
||||
JMP HANDLE_HOST_TRIGGER_MODE
|
||||
|
||||
|
||||
@ -71,21 +71,30 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x91401880,
|
||||
0x914418c0,
|
||||
0x91481801,
|
||||
0x23013888,
|
||||
0x23014188,
|
||||
0x24000100,
|
||||
0x81031800,
|
||||
0x91001800,
|
||||
0x69000001,
|
||||
0x69000006,
|
||||
0x91743a80,
|
||||
0xcf03e0fd,
|
||||
0x1f03e0e0,
|
||||
0x81743a80,
|
||||
0x81021800,
|
||||
0x91021800,
|
||||
0x570000ff,
|
||||
0x9104181b,
|
||||
0x9105183b,
|
||||
0x91081821,
|
||||
0x91091806,
|
||||
0x23001f88,
|
||||
0x23002888,
|
||||
0x24000083,
|
||||
0x81021803,
|
||||
0x21001500,
|
||||
0x91001803,
|
||||
0x69000302,
|
||||
0x2400229f,
|
||||
0x570003ed,
|
||||
0x21001a00,
|
||||
0xc9000702,
|
||||
0x240000de,
|
||||
0xc9010702,
|
||||
@ -102,32 +111,32 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x101b1b1e,
|
||||
0x103b3b1e,
|
||||
0x05015e5e,
|
||||
0x2300fec8,
|
||||
0x21008f00,
|
||||
0x230107c8,
|
||||
0x21009800,
|
||||
0x31020016,
|
||||
0xc9000705,
|
||||
0x11035e1a,
|
||||
0x69001a03,
|
||||
0x2400881a,
|
||||
0x21004100,
|
||||
0x21004a00,
|
||||
0xc9010705,
|
||||
0x11035e1a,
|
||||
0x69011a03,
|
||||
0x2400b01a,
|
||||
0x21004100,
|
||||
0x21004a00,
|
||||
0xc9020705,
|
||||
0x11035e1a,
|
||||
0x69021a03,
|
||||
0x2400d81a,
|
||||
0x21004100,
|
||||
0x21004a00,
|
||||
0x901a3899,
|
||||
0x1079791e,
|
||||
0x1059591e,
|
||||
0x1039391e,
|
||||
0x1019191e,
|
||||
0x05015e5e,
|
||||
0x2300fec8,
|
||||
0x21008f00,
|
||||
0x230107c8,
|
||||
0x21009800,
|
||||
0x31020026,
|
||||
0xc900070c,
|
||||
0x11035e1a,
|
||||
@ -140,7 +149,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x1079791e,
|
||||
0x1059591e,
|
||||
0x1039391e,
|
||||
0x21006e00,
|
||||
0x21007700,
|
||||
0xc901070c,
|
||||
0x11035e1a,
|
||||
0x69011a0a,
|
||||
@ -152,7 +161,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x1079791e,
|
||||
0x1059591e,
|
||||
0x1039391e,
|
||||
0x21006e00,
|
||||
0x21007700,
|
||||
0xc902070c,
|
||||
0x11035e1a,
|
||||
0x69021a0a,
|
||||
@ -164,9 +173,9 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x1079791e,
|
||||
0x1059591e,
|
||||
0x1039391e,
|
||||
0x21006e00,
|
||||
0x21007700,
|
||||
0x05015e5e,
|
||||
0x2300fec8,
|
||||
0x230107c8,
|
||||
0x2eff819a,
|
||||
0x100a0a5e,
|
||||
0x3102001d,
|
||||
@ -178,7 +187,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x2400881a,
|
||||
0x901a1819,
|
||||
0x1019191e,
|
||||
0x21008e00,
|
||||
0x21009700,
|
||||
0xc9010709,
|
||||
0x11035e1a,
|
||||
0x69011a07,
|
||||
@ -187,7 +196,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x2400b01a,
|
||||
0x901a1819,
|
||||
0x1019191e,
|
||||
0x21008e00,
|
||||
0x21009700,
|
||||
0xc9020709,
|
||||
0x11035e1a,
|
||||
0x69021a07,
|
||||
@ -196,7 +205,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x2400d81a,
|
||||
0x901a1819,
|
||||
0x1019191e,
|
||||
0x21008e00,
|
||||
0x21009700,
|
||||
0x05015e5e,
|
||||
0x2eff9d8b,
|
||||
0x2eff8183,
|
||||
@ -222,13 +231,13 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x10077f1c,
|
||||
0x6e071cff,
|
||||
0xd104ff02,
|
||||
0x2100a900,
|
||||
0x2100b200,
|
||||
0x1f070b0b,
|
||||
0xd10cff02,
|
||||
0x2100ac00,
|
||||
0x2100b500,
|
||||
0x1f072b2b,
|
||||
0xd114ff02,
|
||||
0x2100af00,
|
||||
0x2100b800,
|
||||
0x1f074b4b,
|
||||
0x101c1c7f,
|
||||
0x100b0b0c,
|
||||
@ -254,18 +263,18 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x09012727,
|
||||
0x09014b4b,
|
||||
0x12262727,
|
||||
0x2100d700,
|
||||
0x2100e000,
|
||||
0x24000003,
|
||||
0x24000023,
|
||||
0x24000043,
|
||||
0x50460b04,
|
||||
0x50662b05,
|
||||
0x50274b06,
|
||||
0x2100d400,
|
||||
0x2100dd00,
|
||||
0x24000103,
|
||||
0x2100cc00,
|
||||
0x2100d500,
|
||||
0x24000123,
|
||||
0x2100cd00,
|
||||
0x2100d600,
|
||||
0x24000143,
|
||||
0x81183883,
|
||||
0x812838a3,
|
||||
@ -279,25 +288,25 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x5108240a,
|
||||
0x510c240f,
|
||||
0x51000614,
|
||||
0x21009a00,
|
||||
0x2100a300,
|
||||
0x10ececf0,
|
||||
0x10ededf3,
|
||||
0x10eeeef6,
|
||||
0x2eff858c,
|
||||
0x51004412,
|
||||
0x2100df00,
|
||||
0x2100e800,
|
||||
0x10ececf1,
|
||||
0x10ededf4,
|
||||
0x10eeeef7,
|
||||
0x2eff858c,
|
||||
0x5100440c,
|
||||
0x2100df00,
|
||||
0x2100e800,
|
||||
0x10ececf2,
|
||||
0x10ededf5,
|
||||
0x10eeeef8,
|
||||
0x2eff858c,
|
||||
0x51004406,
|
||||
0x2100df00,
|
||||
0x2100e800,
|
||||
0x24000044,
|
||||
0x670424ed,
|
||||
0x670824f2,
|
||||
@ -318,9 +327,9 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51087a04,
|
||||
0x51047a05,
|
||||
0x13500202,
|
||||
0x21010b00,
|
||||
0x21011400,
|
||||
0x13f00202,
|
||||
0x21010b00,
|
||||
0x21011400,
|
||||
0x11000202,
|
||||
0x2401099d,
|
||||
0x809d0402,
|
||||
@ -335,9 +344,9 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51087a04,
|
||||
0x51047a05,
|
||||
0x13500202,
|
||||
0x21011c00,
|
||||
0x21012500,
|
||||
0x13f00202,
|
||||
0x21011c00,
|
||||
0x21012500,
|
||||
0x11000202,
|
||||
0x2401119d,
|
||||
0x809d0402,
|
||||
@ -352,9 +361,9 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51087a04,
|
||||
0x51047a05,
|
||||
0x13500202,
|
||||
0x21012d00,
|
||||
0x21013600,
|
||||
0x13f00202,
|
||||
0x21012d00,
|
||||
0x21013600,
|
||||
0x11000202,
|
||||
0x2401199d,
|
||||
0x809d0402,
|
||||
|
||||
@ -76,21 +76,32 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x91401880,
|
||||
0x914418c0,
|
||||
0x91481801,
|
||||
0x23018e88,
|
||||
0x23019988,
|
||||
0x24000100,
|
||||
0x81031800,
|
||||
0x91001800,
|
||||
0x69000001,
|
||||
0x69000007,
|
||||
0x91743a80,
|
||||
0xcf03e0ff,
|
||||
0x1f03e0e0,
|
||||
0x81743a80,
|
||||
0x24000100,
|
||||
0x81021800,
|
||||
0x91021800,
|
||||
0x570000ff,
|
||||
0x9104181b,
|
||||
0x9105183b,
|
||||
0x91081821,
|
||||
0x91091806,
|
||||
0x23002488,
|
||||
0x23002f88,
|
||||
0x24000083,
|
||||
0x81021803,
|
||||
0x91001803,
|
||||
0x69000304,
|
||||
0x2400229f,
|
||||
0x1f13ffff,
|
||||
0x21001a00,
|
||||
0x21002000,
|
||||
0xc9000702,
|
||||
0x240000de,
|
||||
0xc9010702,
|
||||
@ -105,30 +116,30 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51047a1b,
|
||||
0x101b1b1e,
|
||||
0x103b3b1e,
|
||||
0x230150c8,
|
||||
0x21008c00,
|
||||
0x23015bc8,
|
||||
0x21009700,
|
||||
0xc9000705,
|
||||
0x11035e1a,
|
||||
0x69001a03,
|
||||
0x2400881a,
|
||||
0x21004300,
|
||||
0x21004e00,
|
||||
0xc9010705,
|
||||
0x11035e1a,
|
||||
0x69011a03,
|
||||
0x2400b01a,
|
||||
0x21004300,
|
||||
0x21004e00,
|
||||
0xc9020705,
|
||||
0x11035e1a,
|
||||
0x69021a03,
|
||||
0x2400d81a,
|
||||
0x21004300,
|
||||
0x21004e00,
|
||||
0x901a3899,
|
||||
0x1079791e,
|
||||
0x1059591e,
|
||||
0x1039391e,
|
||||
0x1019191e,
|
||||
0x230150c8,
|
||||
0x21008c00,
|
||||
0x23015bc8,
|
||||
0x21009700,
|
||||
0xc900070c,
|
||||
0x11035e1a,
|
||||
0x69001a0a,
|
||||
@ -140,7 +151,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x1079791e,
|
||||
0x1059591e,
|
||||
0x1039391e,
|
||||
0x21006e00,
|
||||
0x21007900,
|
||||
0xc901070c,
|
||||
0x11035e1a,
|
||||
0x69011a0a,
|
||||
@ -152,7 +163,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x1079791e,
|
||||
0x1059591e,
|
||||
0x1039391e,
|
||||
0x21006e00,
|
||||
0x21007900,
|
||||
0xc902070c,
|
||||
0x11035e1a,
|
||||
0x69021a0a,
|
||||
@ -164,8 +175,8 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x1079791e,
|
||||
0x1059591e,
|
||||
0x1039391e,
|
||||
0x21006e00,
|
||||
0x230150c8,
|
||||
0x21007900,
|
||||
0x23015bc8,
|
||||
0x2eff819a,
|
||||
0x100a0a5e,
|
||||
0xc9000709,
|
||||
@ -176,7 +187,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x2400881a,
|
||||
0x901a1819,
|
||||
0x1019191e,
|
||||
0x21008c00,
|
||||
0x21009700,
|
||||
0xc9010709,
|
||||
0x11035e1a,
|
||||
0x69011a07,
|
||||
@ -185,7 +196,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x2400b01a,
|
||||
0x901a1819,
|
||||
0x1019191e,
|
||||
0x21008c00,
|
||||
0x21009700,
|
||||
0xc9020709,
|
||||
0x11035e1a,
|
||||
0x69021a07,
|
||||
@ -194,7 +205,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x2400d81a,
|
||||
0x901a1819,
|
||||
0x1019191e,
|
||||
0x21008c00,
|
||||
0x21009700,
|
||||
0x2eff9d8b,
|
||||
0x2eff8183,
|
||||
0x2eff8185,
|
||||
@ -220,7 +231,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x11017f1c,
|
||||
0x6f011cff,
|
||||
0xd104ff02,
|
||||
0x2100a700,
|
||||
0x2100b200,
|
||||
0x1f070b0b,
|
||||
0x101c1c7f,
|
||||
0x100b0b0c,
|
||||
@ -232,10 +243,10 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x09010303,
|
||||
0x09010b0b,
|
||||
0x12630303,
|
||||
0x2100b700,
|
||||
0x2100c200,
|
||||
0x24000023,
|
||||
0x50030b02,
|
||||
0x2100b600,
|
||||
0x2100c100,
|
||||
0x24000123,
|
||||
0x811838a3,
|
||||
0x01012424,
|
||||
@ -247,19 +258,19 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51082408,
|
||||
0x510c240b,
|
||||
0x5100060e,
|
||||
0x21009900,
|
||||
0x2100a400,
|
||||
0x10ececf0,
|
||||
0x2eff818c,
|
||||
0x5100440e,
|
||||
0x2100bf00,
|
||||
0x2100ca00,
|
||||
0x10ececf1,
|
||||
0x2eff818c,
|
||||
0x5100440a,
|
||||
0x2100bf00,
|
||||
0x2100ca00,
|
||||
0x10ececf2,
|
||||
0x2eff818c,
|
||||
0x51004406,
|
||||
0x2100bf00,
|
||||
0x2100ca00,
|
||||
0x24000044,
|
||||
0x670424f3,
|
||||
0x670824f6,
|
||||
@ -282,7 +293,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x11027f1c,
|
||||
0x6f021cff,
|
||||
0xd10cff02,
|
||||
0x2100e500,
|
||||
0x2100f000,
|
||||
0x1f070b0b,
|
||||
0x101c1c7f,
|
||||
0x100b0b0c,
|
||||
@ -294,10 +305,10 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x09010303,
|
||||
0x09010b0b,
|
||||
0x12630303,
|
||||
0x2100f500,
|
||||
0x21010000,
|
||||
0x24000023,
|
||||
0x50030b02,
|
||||
0x2100f400,
|
||||
0x2100ff00,
|
||||
0x24000123,
|
||||
0x812838a3,
|
||||
0x01012424,
|
||||
@ -309,19 +320,19 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51082408,
|
||||
0x510c240b,
|
||||
0x5100060e,
|
||||
0x2100d700,
|
||||
0x2100e200,
|
||||
0x10ececf0,
|
||||
0x2eff818c,
|
||||
0x5100440e,
|
||||
0x2100fd00,
|
||||
0x21010800,
|
||||
0x10ececf1,
|
||||
0x2eff818c,
|
||||
0x5100440a,
|
||||
0x2100fd00,
|
||||
0x21010800,
|
||||
0x10ececf2,
|
||||
0x2eff818c,
|
||||
0x51004406,
|
||||
0x2100fd00,
|
||||
0x21010800,
|
||||
0x24000044,
|
||||
0x670424f3,
|
||||
0x670824f6,
|
||||
@ -344,7 +355,7 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x11047f1c,
|
||||
0x6f041cff,
|
||||
0xd114ff02,
|
||||
0x21012300,
|
||||
0x21012e00,
|
||||
0x1f070b0b,
|
||||
0x101c1c7f,
|
||||
0x100b0b0c,
|
||||
@ -356,10 +367,10 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x09010303,
|
||||
0x09010b0b,
|
||||
0x12630303,
|
||||
0x21013300,
|
||||
0x21013e00,
|
||||
0x24000023,
|
||||
0x50030b02,
|
||||
0x21013200,
|
||||
0x21013d00,
|
||||
0x24000123,
|
||||
0x813838a3,
|
||||
0x01012424,
|
||||
@ -371,19 +382,19 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51082408,
|
||||
0x510c240b,
|
||||
0x5100060e,
|
||||
0x21011500,
|
||||
0x21012000,
|
||||
0x10ececf0,
|
||||
0x2eff818c,
|
||||
0x5100440e,
|
||||
0x21013b00,
|
||||
0x21014600,
|
||||
0x10ececf1,
|
||||
0x2eff818c,
|
||||
0x5100440a,
|
||||
0x21013b00,
|
||||
0x21014600,
|
||||
0x10ececf2,
|
||||
0x2eff818c,
|
||||
0x51004406,
|
||||
0x21013b00,
|
||||
0x21014600,
|
||||
0x24000044,
|
||||
0x670424f3,
|
||||
0x670824f6,
|
||||
@ -400,9 +411,9 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51087a04,
|
||||
0x51047a05,
|
||||
0x13500202,
|
||||
0x21015d00,
|
||||
0x21016800,
|
||||
0x13f00202,
|
||||
0x21015d00,
|
||||
0x21016800,
|
||||
0x11000202,
|
||||
0x2401099d,
|
||||
0x809d0402,
|
||||
@ -417,9 +428,9 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51087a04,
|
||||
0x51047a05,
|
||||
0x13500202,
|
||||
0x21016e00,
|
||||
0x21017900,
|
||||
0x13f00202,
|
||||
0x21016e00,
|
||||
0x21017900,
|
||||
0x11000202,
|
||||
0x2401119d,
|
||||
0x809d0402,
|
||||
@ -434,9 +445,9 @@ const unsigned int TamagawaFirmware[]= {
|
||||
0x51087a04,
|
||||
0x51047a05,
|
||||
0x13500202,
|
||||
0x21017f00,
|
||||
0x21018a00,
|
||||
0x13f00202,
|
||||
0x21017f00,
|
||||
0x21018a00,
|
||||
0x11000202,
|
||||
0x2401199d,
|
||||
0x809d0402,
|
||||
|
||||
@ -105,6 +105,7 @@ enum data_id
|
||||
DATA_ID_8, /**< Reset */
|
||||
DATA_ID_C, /**< Reset */
|
||||
DATA_ID_D, /**< EEPROM read */
|
||||
PERIODIC_TRIGGER_CMD, /**< periodic trigger command */
|
||||
DATA_ID_NUM /**< Number of Data ID codes */
|
||||
};
|
||||
|
||||
@ -280,6 +281,8 @@ struct tamagawa_priv
|
||||
void *pruss_cfg; /**< ICSS PRU config base address*/
|
||||
int32_t slice_value; /**< PRUx Slice being used*/
|
||||
struct register_offsets register_offset_val; /**< Register offset values based on PRUx slice selection*/
|
||||
void *pruss_iep; /**< ICSS IEP base address*/
|
||||
uint64_t cmp3; /**< IEP CMP3 reg used in periodic trigger mode*/
|
||||
};
|
||||
|
||||
/* ========================================================================== */
|
||||
@ -404,12 +407,13 @@ void tamagawa_multi_channel_set_cur(struct tamagawa_priv *priv, uint32_t ch);
|
||||
*
|
||||
* \param[in] tamagawa_xchg tamagawa firmware interface address
|
||||
* \param[in] pruss_cfg ICSS PRU config base address
|
||||
* \param[in] pruss_iep ICSS PRU IEP base address
|
||||
* \param[in] slice_value PRUx slice value : 0 for PRU0 and 1 for PRU1
|
||||
*
|
||||
* \retval priv pointer to struct tamagawa_priv instance
|
||||
*
|
||||
*/
|
||||
struct tamagawa_priv *tamagawa_init(struct tamagawa_xchg *tamagawa_xchg, void *pruss_cfg, uint32_t slice_value);
|
||||
struct tamagawa_priv *tamagawa_init(struct tamagawa_xchg *tamagawa_xchg, void *pruss_cfg, void *pruss_iep, uint32_t slice_value);
|
||||
|
||||
/**
|
||||
* \brief update the current requested command id in tamagawa interface. <br>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user