diff --git a/examples/position_sense/endat_diagnostic/endat_diagnostic.c b/examples/position_sense/endat_diagnostic/endat_diagnostic.c
index 532097c..e4cfb8a 100644
--- a/examples/position_sense/endat_diagnostic/endat_diagnostic.c
+++ b/examples/position_sense/endat_diagnostic/endat_diagnostic.c
@@ -95,6 +95,12 @@
#define MRS_POS_VAL2_WORD2 0x43
#define MRS_POS_VAL2_WORD3 0x44
+/* Translate the TCM local view addr to SoC view addr */
+#define CPU0_ATCM_SOCVIEW(x) (CSL_R5FSS0_CORE0_ATCM_BASE+(x))
+#define CPU1_ATCM_SOCVIEW(x) (CSL_R5FSS1_CORE0_ATCM_BASE+(x))
+#define CPU0_BTCM_SOCVIEW(x) (CSL_R5FSS0_CORE0_BTCM_BASE+(x - CSL_R5FSS0_BTCM_BASE))
+#define CPU1_BTCM_SOCVIEW(x) (CSL_R5FSS1_CORE0_BTCM_BASE+(x - CSL_R5FSS1_BTCM_BASE))
+
static union endat_format_data gEndat_format_data_mtrctrl[3];
static uint32_t gEndat_mtrctrl_crc_err[3];
@@ -153,6 +159,9 @@ char gPrintf_dump_buffer[21];
* variable tp a string as printf doesn't support
* printing 64-bit variables
*/
+
+/* EnDat channel Info, written by PRU cores */
+__attribute__((section(".gEnDatChInfo"))) struct endatChRxInfo gEndatChInfo;
char * uint64_to_str (uint64_t x)
{
char *b = gPrintf_dump_buffer + sizeof(gPrintf_dump_buffer);
@@ -192,6 +201,7 @@ static void endat_pruss_init(void)
}
PRUICSS_disableCore(gPruIcssXHandle, PRUICSS_PRUx);
+
}
void endat_pre_init(void)
@@ -523,7 +533,7 @@ static void endat_recvd_print(int32_t cmd, struct endat_priv *priv,
static void endat_display_raw_data(int32_t cmd, struct endat_priv *priv)
{
int32_t ch = priv->channel;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
switch(cmd)
{
@@ -542,8 +552,8 @@ static void endat_display_raw_data(int32_t cmd, struct endat_priv *priv)
case 13:
case 14:
DebugP_log("\r|\n| raw data: %x %x %x %x\n|\n",
- pruss_xchg->ch[ch].pos_word0, pruss_xchg->ch[ch].pos_word1,
- pruss_xchg->ch[ch].pos_word2, pruss_xchg->ch[ch].pos_word3);
+ endatChRxInfo->ch[ch].posWord0, endatChRxInfo->ch[ch].posWord1,
+ endatChRxInfo->ch[ch].posWord2, endatChRxInfo->ch[ch].posWord3);
break;
default:
@@ -2133,16 +2143,20 @@ void endat_main(void *args)
DebugP_log("\r\n\n");
+ /*Translate the TCM local view addr to globel view addr */
+ uint64_t gEndatChInfoGlobalAddr = CPU0_BTCM_SOCVIEW((uint64_t)&gEndatChInfo);
+
+
pruss_cfg = (void *)(((PRUICSS_HwAttrs *)(gPruIcssXHandle->hwAttrs))->cfgRegBase);
pruss_iep = (void *)(((PRUICSS_HwAttrs *)(gPruIcssXHandle->hwAttrs))->iep0RegBase);
#if PRU_ICSSGx_PRU_SLICE
priv = endat_init((struct endat_pruss_xchg *)((PRUICSS_HwAttrs *)(
- gPruIcssXHandle->hwAttrs))->pru1DramBase, pruss_cfg, pruss_iep, PRUICSS_SLICEx);
+ gPruIcssXHandle->hwAttrs))->pru1DramBase, &gEndatChInfo, gEndatChInfoGlobalAddr, pruss_cfg, pruss_iep, PRUICSS_SLICEx);
#else
priv = endat_init((struct endat_pruss_xchg *)((PRUICSS_HwAttrs *)(
- gPruIcssXHandle->hwAttrs))->pru0DramBase, pruss_cfg, pruss_iep, PRUICSS_SLICEx);
+ gPruIcssXHandle->hwAttrs))->pru0DramBase, &gEndatChInfo, gEndatChInfoGlobalAddr, pruss_cfg, pruss_iep, PRUICSS_SLICEx);
#endif
@@ -2180,7 +2194,7 @@ void endat_main(void *args)
priv->pruss_xchg->endat_delay_380ms = ((icssgclk/1000) * 380);
priv->pruss_xchg->endat_delay_900ms = ((icssgclk/1000) * 900);
priv->pruss_xchg->icssg_clk = icssgclk;
-
+
i = endat_pruss_load_run_fw(priv);
diff --git a/examples/position_sense/endat_diagnostic/multi_channel_load_share/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd b/examples/position_sense/endat_diagnostic/multi_channel_load_share/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
index 69640f4..68996ec 100644
--- a/examples/position_sense/endat_diagnostic/multi_channel_load_share/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
+++ b/examples/position_sense/endat_diagnostic/multi_channel_load_share/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
@@ -103,6 +103,9 @@ SECTIONS
.bss.ipc_vring_mem (NOLOAD) : {} > RTOS_NORTOS_IPC_SHM_MEM
/* General purpose non cacheable memory, used in some examples */
.bss.nocache (NOLOAD) : {} > NON_CACHE_MEM
+
+ /* TCM used by ICSS PRU to write endat channel Info */
+ .gEnDatChInfo : {} align(4) > R5F_TCMB0
}
/*
diff --git a/examples/position_sense/endat_diagnostic/multi_channel_load_share/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd b/examples/position_sense/endat_diagnostic/multi_channel_load_share/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
index c4848c3..8bf6d08 100644
--- a/examples/position_sense/endat_diagnostic/multi_channel_load_share/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
+++ b/examples/position_sense/endat_diagnostic/multi_channel_load_share/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
@@ -103,6 +103,10 @@ SECTIONS
.bss.ipc_vring_mem (NOLOAD) : {} > RTOS_NORTOS_IPC_SHM_MEM
/* General purpose non cacheable memory, used in some examples */
.bss.nocache (NOLOAD) : {} > NON_CACHE_MEM
+
+ /* TCM used by ICSS PRU to write endat channel Info */
+ .gEnDatChInfo : {} align(4) > R5F_TCMB0
+
}
/*
@@ -146,3 +150,5 @@ MEMORY
LOG_SHM_MEM : ORIGIN = 0x701D0000 + 0x80, LENGTH = 0x00004000 - 0x80
RTOS_NORTOS_IPC_SHM_MEM : ORIGIN = 0x701D4000, LENGTH = 0x0000C000
}
+
+
diff --git a/examples/position_sense/endat_diagnostic/multi_channel_single_pru/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd b/examples/position_sense/endat_diagnostic/multi_channel_single_pru/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
index 69640f4..68996ec 100644
--- a/examples/position_sense/endat_diagnostic/multi_channel_single_pru/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
+++ b/examples/position_sense/endat_diagnostic/multi_channel_single_pru/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
@@ -103,6 +103,9 @@ SECTIONS
.bss.ipc_vring_mem (NOLOAD) : {} > RTOS_NORTOS_IPC_SHM_MEM
/* General purpose non cacheable memory, used in some examples */
.bss.nocache (NOLOAD) : {} > NON_CACHE_MEM
+
+ /* TCM used by ICSS PRU to write endat channel Info */
+ .gEnDatChInfo : {} align(4) > R5F_TCMB0
}
/*
diff --git a/examples/position_sense/endat_diagnostic/multi_channel_single_pru/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd b/examples/position_sense/endat_diagnostic/multi_channel_single_pru/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
index c4848c3..47c06e6 100644
--- a/examples/position_sense/endat_diagnostic/multi_channel_single_pru/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
+++ b/examples/position_sense/endat_diagnostic/multi_channel_single_pru/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
@@ -103,6 +103,9 @@ SECTIONS
.bss.ipc_vring_mem (NOLOAD) : {} > RTOS_NORTOS_IPC_SHM_MEM
/* General purpose non cacheable memory, used in some examples */
.bss.nocache (NOLOAD) : {} > NON_CACHE_MEM
+
+ /* TCM used by ICSS PRU to write endat channel Info */
+ .gEnDatChInfo : {} align(4) > R5F_TCMB0
}
/*
@@ -124,7 +127,7 @@ MEMORY
R5F_VECS : ORIGIN = 0x00000000 , LENGTH = 0x00000040
R5F_TCMA : ORIGIN = 0x00000040 , LENGTH = 0x00007FC0
R5F_TCMB0 : ORIGIN = 0x41010000 , LENGTH = 0x00008000
-
+
/* memory segment used to hold CPU specific non-cached data, MAKE to add a MPU entry to mark this as non-cached */
NON_CACHE_MEM : ORIGIN = 0x70060000 , LENGTH = 0x8000
diff --git a/examples/position_sense/endat_diagnostic/single_channel/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd b/examples/position_sense/endat_diagnostic/single_channel/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
index 69640f4..68996ec 100644
--- a/examples/position_sense/endat_diagnostic/single_channel/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
+++ b/examples/position_sense/endat_diagnostic/single_channel/am243x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
@@ -103,6 +103,9 @@ SECTIONS
.bss.ipc_vring_mem (NOLOAD) : {} > RTOS_NORTOS_IPC_SHM_MEM
/* General purpose non cacheable memory, used in some examples */
.bss.nocache (NOLOAD) : {} > NON_CACHE_MEM
+
+ /* TCM used by ICSS PRU to write endat channel Info */
+ .gEnDatChInfo : {} align(4) > R5F_TCMB0
}
/*
diff --git a/examples/position_sense/endat_diagnostic/single_channel/am243x-lp/r5fss0-0_freertos/ti-arm-clang/linker.cmd b/examples/position_sense/endat_diagnostic/single_channel/am243x-lp/r5fss0-0_freertos/ti-arm-clang/linker.cmd
index 69640f4..886a65d 100644
--- a/examples/position_sense/endat_diagnostic/single_channel/am243x-lp/r5fss0-0_freertos/ti-arm-clang/linker.cmd
+++ b/examples/position_sense/endat_diagnostic/single_channel/am243x-lp/r5fss0-0_freertos/ti-arm-clang/linker.cmd
@@ -103,6 +103,9 @@ SECTIONS
.bss.ipc_vring_mem (NOLOAD) : {} > RTOS_NORTOS_IPC_SHM_MEM
/* General purpose non cacheable memory, used in some examples */
.bss.nocache (NOLOAD) : {} > NON_CACHE_MEM
+
+ /* TCM used by ICSS PRU to write endat channel Info */
+ .gEnDatChInfo : {} align(4) > R5F_TCMB0
}
/*
@@ -124,6 +127,7 @@ MEMORY
R5F_VECS : ORIGIN = 0x00000000 , LENGTH = 0x00000040
R5F_TCMA : ORIGIN = 0x00000040 , LENGTH = 0x00007FC0
R5F_TCMB0 : ORIGIN = 0x41010000 , LENGTH = 0x00008000
+
/* memory segment used to hold CPU specific non-cached data, MAKE to add a MPU entry to mark this as non-cached */
NON_CACHE_MEM : ORIGIN = 0x70060000 , LENGTH = 0x8000
diff --git a/examples/position_sense/endat_diagnostic/single_channel/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd b/examples/position_sense/endat_diagnostic/single_channel/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
index c4848c3..9b6e533 100644
--- a/examples/position_sense/endat_diagnostic/single_channel/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
+++ b/examples/position_sense/endat_diagnostic/single_channel/am64x-evm/r5fss0-0_freertos/ti-arm-clang/linker.cmd
@@ -103,6 +103,9 @@ SECTIONS
.bss.ipc_vring_mem (NOLOAD) : {} > RTOS_NORTOS_IPC_SHM_MEM
/* General purpose non cacheable memory, used in some examples */
.bss.nocache (NOLOAD) : {} > NON_CACHE_MEM
+
+ /* TCM used by ICSS PRU to write endat channel Info */
+ .gEnDatChInfo : {} align(4) > R5F_TCMB0
}
/*
@@ -124,6 +127,7 @@ MEMORY
R5F_VECS : ORIGIN = 0x00000000 , LENGTH = 0x00000040
R5F_TCMA : ORIGIN = 0x00000040 , LENGTH = 0x00007FC0
R5F_TCMB0 : ORIGIN = 0x41010000 , LENGTH = 0x00008000
+
/* memory segment used to hold CPU specific non-cached data, MAKE to add a MPU entry to mark this as non-cached */
NON_CACHE_MEM : ORIGIN = 0x70060000 , LENGTH = 0x8000
diff --git a/source/position_sense/endat/driver/endat_drv.c b/source/position_sense/endat/driver/endat_drv.c
index 6ae0144..ba94f8c 100644
--- a/source/position_sense/endat/driver/endat_drv.c
+++ b/source/position_sense/endat/driver/endat_drv.c
@@ -50,14 +50,13 @@ static int32_t endat_recvd_organize(int32_t cmd, struct endat_priv *priv,
{
uint32_t word0, word1, word2, word3;
uint32_t pos_bits, shift;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
-
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
memset(endat_data, 0, sizeof(*endat_data));
- word0 = pruss_xchg->ch[priv->channel].pos_word0;
- word1 = pruss_xchg->ch[priv->channel].pos_word1;
- word2 = pruss_xchg->ch[priv->channel].pos_word2;
- word3 = pruss_xchg->ch[priv->channel].pos_word3;
+ word0 = endatChRxInfo->ch[priv->channel].posWord0;
+ word1 = endatChRxInfo->ch[priv->channel].posWord1;
+ word2 = endatChRxInfo->ch[priv->channel].posWord2;
+ word3 = endatChRxInfo->ch[priv->channel].posWord3;
switch(cmd)
{
@@ -404,7 +403,7 @@ uint32_t endat_recvd_validate(struct endat_priv *priv, int32_t cmd,
#endif
#ifdef ENDAT_USE_OTF_CRC_STATUS
- val = priv->pruss_xchg->ch[priv->channel].crc.status;
+ val = priv->endatChRxInfo->ch[priv->channel].crcStatus;
if(priv->flags.info2)
{
@@ -1120,9 +1119,9 @@ void endat_command_wait(struct endat_priv *priv)
void endat_recovery_time_conversion(struct endat_priv *priv)
{
/* RT: convert cycle to ns */
- priv->pruss_xchg->endat_ch0_rt = priv->pruss_xchg->endat_ch0_rt * ((float)(1000000000)/priv->pruss_xchg->icssg_clk);
- priv->pruss_xchg->endat_ch1_rt = priv->pruss_xchg->endat_ch1_rt * ((float)(1000000000)/priv->pruss_xchg->icssg_clk);
- priv->pruss_xchg->endat_ch2_rt = priv->pruss_xchg->endat_ch2_rt * ((float)(1000000000)/priv->pruss_xchg->icssg_clk);
+ priv->endatChRxInfo->ch[0].recoveryTime = priv->endatChRxInfo->ch[0].recoveryTime * ((float)(1000000000)/priv->pruss_xchg->icssg_clk);
+ priv->endatChRxInfo->ch[1].recoveryTime = priv->endatChRxInfo->ch[1].recoveryTime * ((float)(1000000000)/priv->pruss_xchg->icssg_clk);
+ priv->endatChRxInfo->ch[2].recoveryTime = priv->endatChRxInfo->ch[2].recoveryTime * ((float)(1000000000)/priv->pruss_xchg->icssg_clk);
}
@@ -1149,16 +1148,16 @@ int32_t endat_command_process(struct endat_priv *priv, int32_t cmd,
int32_t endat_get_2_2_angle(struct endat_priv *priv)
{
int32_t pos;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
int32_t ch = priv->channel;
- if(!(pruss_xchg->ch[ch].crc.status & ENDAT_CRC_DATA))
+ if(!(endatChRxInfo->ch[ch].crcStatus & ENDAT_CRC_DATA))
{
return -1;
}
- pos = pruss_xchg->ch[ch].pos_word0;
+ pos = endatChRxInfo->ch[ch].posWord0;
#ifdef __TI_ARM__
pos = __rbit(pos);
@@ -1186,7 +1185,7 @@ static int32_t endat_get_pos_res(struct endat_priv *priv)
struct cmd_supplement cmd_supplement;
uint32_t word;
int32_t ch = priv->channel;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
/* select memory area encoder manufacturer page 0 */
cmd = 2, cmd_supplement.address = MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE0;
@@ -1210,7 +1209,7 @@ static int32_t endat_get_pos_res(struct endat_priv *priv)
/* delay copied from fw */
ClockP_usleep(1000 * 2);
- word = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
+ word = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
1 << ENDAT_NUM_BITS_PARAMETER) - 1);
return word &= (1 << ENDAT_NUM_BITS_VALID_PAGE0_WORD13) - 1;
}
@@ -1221,7 +1220,7 @@ static int32_t endat_get_multi_turn_res(struct endat_priv *priv)
struct cmd_supplement cmd_supplement;
uint32_t word;
int32_t ch = priv->channel;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
/* select memory area encoder manufacturer page 0 */
cmd = 2, cmd_supplement.address = MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE1;
@@ -1245,7 +1244,7 @@ static int32_t endat_get_multi_turn_res(struct endat_priv *priv)
/* delay copied from fw */
ClockP_usleep(1000 * 2);
- word = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
+ word = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
1 << ENDAT_NUM_BITS_PARAMETER) - 1);
return word &= (1 << ENDAT_NUM_BITS_VALID_PAGE1_WORD1) - 1;
}
@@ -1256,7 +1255,7 @@ static int32_t endat_get_id(struct endat_priv *priv)
struct cmd_supplement cmd_supplement;
uint32_t word0, word1, word2;
int32_t ch = priv->channel;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
/* select memory area encoder manufacturer page 1 */
cmd = 2, cmd_supplement.address = MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE1;
@@ -1277,7 +1276,7 @@ static int32_t endat_get_id(struct endat_priv *priv)
return -EINVAL;
}
- word0 = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC))
+ word0 = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC))
& ((1 << ENDAT_NUM_BITS_PARAMETER) - 1);
/* delay copied from fw */
ClockP_usleep(1000 * 2);
@@ -1290,7 +1289,7 @@ static int32_t endat_get_id(struct endat_priv *priv)
return -EINVAL;
}
- word1 = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC))
+ word1 = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC))
& ((1 << ENDAT_NUM_BITS_PARAMETER) - 1);
/* delay copied from fw */
ClockP_usleep(1000 * 2);
@@ -1303,7 +1302,7 @@ static int32_t endat_get_id(struct endat_priv *priv)
return -EINVAL;
}
- word2 = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC))
+ word2 = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC))
& ((1 << ENDAT_NUM_BITS_PARAMETER) - 1);
/* delay copied from fw */
ClockP_usleep(1000 * 2);
@@ -1321,7 +1320,7 @@ static int32_t endat_get_sn(struct endat_priv *priv)
struct cmd_supplement cmd_supplement;
uint32_t word0, word1, word2;
int32_t ch = priv->channel;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
/* select memory area encoder manufacturer page 1 */
cmd = 2, cmd_supplement.address = MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE1;
@@ -1342,7 +1341,7 @@ static int32_t endat_get_sn(struct endat_priv *priv)
return -EINVAL;
}
- word0 = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC))
+ word0 = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC))
& ((1 << ENDAT_NUM_BITS_PARAMETER) - 1);
/* delay copied from fw */
ClockP_usleep(1000 * 2);
@@ -1355,7 +1354,7 @@ static int32_t endat_get_sn(struct endat_priv *priv)
return -EINVAL;
}
- word1 = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC))
+ word1 = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC))
& ((1 << ENDAT_NUM_BITS_PARAMETER) - 1);
/* delay copied from fw */
ClockP_usleep(1000 * 2);
@@ -1368,7 +1367,7 @@ static int32_t endat_get_sn(struct endat_priv *priv)
return -EINVAL;
}
- word2 = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC))
+ word2 = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC))
& ((1 << ENDAT_NUM_BITS_PARAMETER) - 1);
/* delay copied from fw */
ClockP_usleep(1000 * 2);
@@ -1387,7 +1386,7 @@ static int32_t endat_get_command_set(struct endat_priv *priv)
struct cmd_supplement cmd_supplement;
uint32_t word;
int32_t ch = priv->channel;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
/* select memory area encoder manufacturer page 2 */
cmd = 2, cmd_supplement.address = MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE2;
@@ -1411,7 +1410,7 @@ static int32_t endat_get_command_set(struct endat_priv *priv)
/* delay copied from fw */
ClockP_usleep(1000 * 2);
- word = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
+ word = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
1 << ENDAT_NUM_BITS_PARAMETER) - 1);
priv->cmd_set_2_2 = (word & 0x1) && !(word & 0x2);
priv->has_safety = (word & 0x4) && !(word & 0x8);
@@ -1425,7 +1424,7 @@ static int32_t endat_get_type(struct endat_priv *priv)
struct cmd_supplement cmd_supplement;
uint32_t word;
int32_t ch = priv->channel;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
/* select memory area encoder manufacturer page 0 */
cmd = 2, cmd_supplement.address = MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE0;
@@ -1449,7 +1448,7 @@ static int32_t endat_get_type(struct endat_priv *priv)
/* delay copied from fw */
ClockP_usleep(1000 * 2);
- word = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
+ word = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
1 << ENDAT_NUM_BITS_PARAMETER) - 1);
priv->type = (word & (1 << 15)) ? rotary : linear;
@@ -1462,7 +1461,7 @@ static int32_t endat_get_step(struct endat_priv *priv)
struct cmd_supplement cmd_supplement;
uint32_t word;
int32_t ch = priv->channel;
- struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo = priv->endatChRxInfo;
/* select memory area encoder manufacturer page 0 */
cmd = 2, cmd_supplement.address = MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE1;
@@ -1485,7 +1484,7 @@ static int32_t endat_get_step(struct endat_priv *priv)
/* delay copied from fw */
ClockP_usleep(1000 * 2);
- word = (pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
+ word = (endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC)) & ((
1 << ENDAT_NUM_BITS_PARAMETER) - 1);
/* send parameter for word5 */
@@ -1498,7 +1497,7 @@ static int32_t endat_get_step(struct endat_priv *priv)
/* delay copied from fw */
ClockP_usleep(1000 * 2);
- word |= ((pruss_xchg->ch[ch].pos_word0 >> (ENDAT_NUM_BITS_POSITION_CRC))
+ word |= ((endatChRxInfo->ch[ch].posWord0 >> (ENDAT_NUM_BITS_POSITION_CRC))
& ((1 << ENDAT_NUM_BITS_PARAMETER) - 1)) << 16;
return word;
@@ -1598,7 +1597,7 @@ int32_t endat_get_encoder_info(struct endat_priv *priv)
uint32_t endat_get_prop_delay(struct endat_priv *priv)
{
- return priv->pruss_xchg->ch[priv->channel].prop_delay;
+ return priv->pruss_xchg->ch[priv->channel].propDelay;
}
void endat_addinfo_track(struct endat_priv *priv, int32_t cmd,
@@ -1757,8 +1756,7 @@ void endat_config_rx_clock_disable(struct endat_priv *priv,
{
struct endat_pruss_xchg *pruss_xchg = priv->pruss_xchg;
int32_t ch = priv->channel;
-
- pruss_xchg->ch[ch].rx_clk_less = val;
+ pruss_xchg->ch[ch].rxClkLess = val;
}
static void endat_set_continuous_mode(struct endat_priv *priv)
@@ -2079,30 +2077,21 @@ static void endat_hw_init(struct endat_priv *priv)
endat_config_clr_cfg0(priv);
}
-struct endat_priv *endat_init(struct endat_pruss_xchg *pruss_xchg,
+struct endat_priv *endat_init(struct endat_pruss_xchg *pruss_xchg, struct endatChRxInfo *endatRxInfo, uint64_t endatChInfoGlobalAddr,
void *pruss_cfg, void* pruss_iep, int32_t slice)
{
-
endat_priv.pruss_xchg = pruss_xchg;
endat_priv.pruss_cfg = pruss_cfg;
endat_priv.pruicss_slicex = slice;
endat_priv.pruss_iep = pruss_iep;
+ endat_priv.endatChRxInfo = endatRxInfo;
+ /*Write Configured memory address to DMEM */
+ endat_priv.pruss_xchg->endatChInfoMemoryAdd = endatChInfoGlobalAddr;
endat_hw_init(&endat_priv);
return &endat_priv;
}
uint32_t endat_get_recovery_time(struct endat_priv *priv)
{
- if(priv->channel == 0)
- {
- return priv->pruss_xchg->endat_ch0_rt;
- }
- else if (priv->channel == 1)
- {
- return priv->pruss_xchg->endat_ch1_rt;
- }
- else
- {
- return priv->pruss_xchg->endat_ch2_rt;
- }
+ return priv->endatChRxInfo->ch[priv->channel].recoveryTime;
}
diff --git a/source/position_sense/endat/firmware/endat_interface.h b/source/position_sense/endat/firmware/endat_interface.h
index ab2b34e..adebf80 100644
--- a/source/position_sense/endat/firmware/endat_interface.h
+++ b/source/position_sense/endat/firmware/endat_interface.h
@@ -99,69 +99,81 @@ ENDAT_CH2_CMD_WORD_2_ADDR_OFFSET .set 0x2C ; 8-bit address
ENDAT_CH2_CMD_WORD_2_PARAM_OFFSET .set 0x2D ; 16-bit data
ENDAT_CH2_CMD_WORD_2_BLKADDR_OFFSET .set 0x2F ; 8-bit optional block address
+;;;;;;;;;;;;; EnDat Channel info offset ;;;;;;;;;;;;;;;;;;;;;
+;CH0 registers
+ENDAT_CH0_NUM_CLOCK_PULSES_OFFSET .set 0X30
+ENDAT_CH0_ENDAT22_STAT_OFFSET .set 0x31
+ENDAT_CH0_CLOCK_LESS_FOR_TD .set 0x32
+ENDAT_CH0_MEAS_PROPDELAY_OFFSET .set 0x34
+ENDAT_CH0_CRC_ERR_COUNTER_OFFSET .set 0X38 ; CRC error count
-; NOTE: For ENDAT_CHx_POSITION_DATA_LSW_OFFSET: Bit0 is Error flag (EnDat2.1) and Bit0,Bit1 are Error flags (EnDat2.2)
-; CH0 registers
-ENDAT_CH0_POSITION_DATA_WORD0_OFFSET .set 0x30
-ENDAT_CH0_POSITION_DATA_WORD1_OFFSET .set 0x34
-ENDAT_CH0_POSITION_DATA_WORD2_OFFSET .set 0x38
-ENDAT_CH0_POSITION_DATA_WORD3_OFFSET .set 0x3C
-ENDAT_CH0_CRC_ERR_COUNTER_OFFSET .set 0X40 ; CRC error count
-ENDAT_CH0_NUM_CLOCK_PULSES_OFFSET .set 0X44
-ENDAT_CH0_ENDAT22_STAT_OFFSET .set 0x45
-ENDAT_CH0_CLOCK_LESS_FOR_TD .set 0x46
-ENDAT_CH0_MEAS_PROPDELAY_OFFSET .set 0x48
+;CH1 registers
+ENDAT_CH1_NUM_CLOCK_PULSES_OFFSET .set 0x40
+ENDAT_CH1_ENDAT22_STAT_OFFSET .set 0x41
+ENDAT_CH1_CLOCK_LESS_FOR_TD .set 0x42
+ENDAT_CH1_MEAS_PROPDELAY_OFFSET .set 0x44
+ENDAT_CH1_CRC_ERR_COUNTER_OFFSET .set 0x48 ; CRC error count
-; CH1 registers
-ENDAT_CH1_POSITION_DATA_WORD0_OFFSET .set 0x50
-ENDAT_CH1_POSITION_DATA_WORD1_OFFSET .set 0x54
-ENDAT_CH1_POSITION_DATA_WORD2_OFFSET .set 0x58
-ENDAT_CH1_POSITION_DATA_WORD3_OFFSET .set 0X5C
-ENDAT_CH1_CRC_ERR_COUNTER_OFFSET .set 0x60 ; CRC error count
-ENDAT_CH1_NUM_CLOCK_PULSES_OFFSET .set 0x64
-ENDAT_CH1_ENDAT22_STAT_OFFSET .set 0x65
-ENDAT_CH1_CLOCK_LESS_FOR_TD .set 0x66
-ENDAT_CH1_MEAS_PROPDELAY_OFFSET .set 0x68
+;CH2 registers
+ENDAT_CH2_NUM_CLOCK_PULSES_OFFSET .set 0x50
+ENDAT_CH2_ENDAT22_STAT_OFFSET .set 0x51
+ENDAT_CH2_CLOCK_LESS_FOR_TD .set 0x52
+ENDAT_CH2_MEAS_PROPDELAY_OFFSET .set 0x54
+ENDAT_CH2_CRC_ERR_COUNTER_OFFSET .set 0x58 ; CRC error count
-; CH2 registers
-ENDAT_CH2_POSITION_DATA_WORD0_OFFSET .set 0x70
-ENDAT_CH2_POSITION_DATA_WORD1_OFFSET .set 0x74
-ENDAT_CH2_POSITION_DATA_WORD2_OFFSET .set 0x78
-ENDAT_CH2_POSITION_DATA_WORD3_OFFSET .set 0x7C
-ENDAT_CH2_CRC_ERR_COUNTER_OFFSET .set 0x80 ; CRC error count
-ENDAT_CH2_NUM_CLOCK_PULSES_OFFSET .set 0x84
-ENDAT_CH2_ENDAT22_STAT_OFFSET .set 0x85
-ENDAT_CH2_CLOCK_LESS_FOR_TD .set 0x86
-ENDAT_CH2_MEAS_PROPDELAY_OFFSET .set 0x88
+;;;;;;;;;;Configured memory address offset ;;;;;;;;;;;
+ENDAT_CONFIG_CH_INFO_MEMORY_ADDRESS .set 0x60 ;64 bit data store memory address
-; clock configuration
-ENDAT_CONFIG_CLOCK_RX_OFFSET .set 0x90 ; clock to be configure for rx = tx * oversample rate
-ENDAT_CONFIG_CLOCK_TX_OFFSET .set 0x92 ; clock to be configure for tx
-ENDAT_CONFIG_CLOCK_RX_EN_CNT_OFFSET .set 0x94 ; rx arm delay
+
+;;;;;;;;;; clock configuration ;;;;;;;;;
+ENDAT_CONFIG_CLOCK_RX_OFFSET .set 0x68 ; clock to be configure for rx = tx * oversample rate
+ENDAT_CONFIG_CLOCK_TX_OFFSET .set 0x6A ; clock to be configure for tx
+ENDAT_CONFIG_CLOCK_RX_EN_CNT_OFFSET .set 0x6C ; rx arm delay
; Delay Configuration
-ENDAT_CONFIG_DELAY_125NS_OFFSET .set 0x98
-ENDAT_CONFIG_DELAY_5US_OFFSET .set 0x9C
-ENDAT_CONFIG_DELAY_51US_OFFSET .set 0xA0
-ENDAT_CONFIG_DELAY_1MS_OFFSET .set 0xA4
-ENDAT_CONFIG_DELAY_2MS_OFFSET .set 0xA8 ; delay for 2ms counter
-ENDAT_CONFIG_DELAY_12MS_OFFSET .set 0xAC ; delay for 12ms counter
-ENDAT_CONFIG_DELAY_50MS_OFFSET .set 0xB0 ; delay for 20ms counter
-ENDAT_CONFIG_DELAY_380MS_OFFSET .set 0xB4
-ENDAT_CONFIG_DELAY_900MS_OFFSET .set 0XB8
+ENDAT_CONFIG_DELAY_125NS_OFFSET .set 0x70
+ENDAT_CONFIG_DELAY_5US_OFFSET .set 0x74
+ENDAT_CONFIG_DELAY_51US_OFFSET .set 0x78
+ENDAT_CONFIG_DELAY_1MS_OFFSET .set 0x7C
+ENDAT_CONFIG_DELAY_2MS_OFFSET .set 0x80 ; delay for 2ms counter
+ENDAT_CONFIG_DELAY_12MS_OFFSET .set 0x84 ; delay for 12ms counter
+ENDAT_CONFIG_DELAY_50MS_OFFSET .set 0x88 ; delay for 20ms counter
+ENDAT_CONFIG_DELAY_380MS_OFFSET .set 0x8C
+ENDAT_CONFIG_DELAY_900MS_OFFSET .set 0X90
-; mask for core set
-MASK_FOR_PRIMARY_CORE .set 0xBC
+;;;;;;;;; mask for core set ;;;;;;;;
+MASK_FOR_PRIMARY_CORE .set 0x94
;rx complete status
-ENDAT_CH0_CONFIG_SYN_BIT .set 0xBD ;0th bit for ch0
-ENDAT_CH1_CONFIG_SYN_BIT .set 0xBE ;0th bit for ch0
-ENDAT_CH2_CONFIG_SYN_BIT .set 0xBF ;0th bit for ch0
-; Recovery Time
-ENDAT_CH0_RT_OFFSET .set 0xC0 ;
-ENDAT_CH1_RT_OFFSET .set 0xC4 ;
-ENDAT_CH2_RT_OFFSET .set 0xC8 ;
+ENDAT_CH0_CONFIG_SYN_BIT .set 0x95 ;0th bit for ch0
+ENDAT_CH1_CONFIG_SYN_BIT .set 0x96 ;0th bit for ch0
+ENDAT_CH2_CONFIG_SYN_BIT .set 0x97 ;0th bit for ch0
-;icssgclock
-PRUICSSG_CLOCK .set 0xCD;
+;;;;;;; icssgclock ;;;;;;;;;;;;;;
+PRUICSSG_CLOCK .set 0x98;
+;;;;;;;;;; EnDat channel Rx info offset ;;;;;;;;
+; NOTE: For ENDAT_CHx_POSITION_DATA_LSW_OFFSET: Bit0 is Error flag (EnDat2.1) and Bit0,Bit1 are Error flags (EnDat2.2)
+; CH0 registers
+ENDAT_CH0_POSITION_DATA_WORD0_OFFSET .set 0x00
+ENDAT_CH0_POSITION_DATA_WORD1_OFFSET .set 0x04
+ENDAT_CH0_POSITION_DATA_WORD2_OFFSET .set 0x08
+ENDAT_CH0_POSITION_DATA_WORD3_OFFSET .set 0x0C
+ENDAT_CH0_CRC_STATUS_OFFSET .set 0x10
+ENDAT_CH0_RT_OFFSET .set 0x14
+
+; CH1 registers
+ENDAT_CH1_POSITION_DATA_WORD0_OFFSET .set 0x18
+ENDAT_CH1_POSITION_DATA_WORD1_OFFSET .set 0x1C
+ENDAT_CH1_POSITION_DATA_WORD2_OFFSET .set 0x20
+ENDAT_CH1_POSITION_DATA_WORD3_OFFSET .set 0X24
+ENDAT_CH1_CRC_STATUS_OFFSET .set 0x28
+ENDAT_CH1_RT_OFFSET .set 0x2C
+
+; CH2 registers
+ENDAT_CH2_POSITION_DATA_WORD0_OFFSET .set 0x30
+ENDAT_CH2_POSITION_DATA_WORD1_OFFSET .set 0x34
+ENDAT_CH2_POSITION_DATA_WORD2_OFFSET .set 0x38
+ENDAT_CH2_POSITION_DATA_WORD3_OFFSET .set 0x3C
+ENDAT_CH2_CRC_STATUS_OFFSET .set 0x40
+ENDAT_CH2_RT_OFFSET .set 0x44
diff --git a/source/position_sense/endat/firmware/endat_main.asm b/source/position_sense/endat/firmware/endat_main.asm
index 602552f..6840fa9 100644
--- a/source/position_sense/endat/firmware/endat_main.asm
+++ b/source/position_sense/endat/firmware/endat_main.asm
@@ -280,7 +280,7 @@ ENDAT_SKIP_DEFAULT_CH:
LDI R1.b2, ENDAT_CMDTYP_2_1
CALL FN_SEND_RECEIVE_ENDAT
; Need to save the response and extract the clock pulses info
-
+
.if $isdefed("ENABLE_MULTI_CHANNEL")
LSL R15, R15, 3
LSL R19, R19, 3
@@ -349,7 +349,6 @@ ENDAT_SKIP2_CH2:
LDI R1.b2, ENDAT_CMDTYP_2_1
CALL FN_SEND_RECEIVE_ENDAT
; Need to save the response and extract the clock pulses info
-
.if $isdefed("ENABLE_MULTI_CHANNEL")
LSL R15, R15, 3
LSL R19, R19, 3
@@ -489,7 +488,7 @@ PROP_DELAY_MULTI_END:
.if $isdefed("ENABLE_MULTI_MAKE_RTU") ;ch0: R3.b0 - ENDAT_TX_CHx_SEL, R2.b1 - clock plus for position, R3.b2 - ENDAT_CHx_SB, R3.b3 - ENDAT_CHx_TX_REINIT
LDI R3.w0, 0 | 8 << 8
LDI R3.w2, 24 | 5 << 8
- LBCO &R2.b1, PRUx_DMEM, ENDAT_CH0_NUM_CLOCK_PULSES_OFFSET, 1
+ LBCO &R2.b1, PRUx_DMEM, ENDAT_CH0_NUM_CLOCK_PULSES_OFFSET, 1
CALL FN_PROP_DELAY_CALC
.elseif $isdefed("ENABLE_MULTI_MAKE_PRU") ;ch1 : R3.b0 - ENDAT_TX_CHx_SEL, R2.b1 - clock plus for position, R3.b2 - ENDAT_CHx_SB, R3.b3 - ENDAT_CHx_TX_REINIT
LDI R3.w0, 1 | 9 << 8
@@ -521,7 +520,7 @@ ENDAT_SKIP5A_CH2:
.endif
-
+
.if $isdefed("ENABLE_MULTI_MAKE_RTU") ;store prop_delay value in DMEM for ch0
SBCO &R9, PRUx_DMEM, ENDAT_CH0_MEAS_PROPDELAY_OFFSET, 4
.elseif $isdefed("ENABLE_MULTI_MAKE_PRU") ;store prop_delay value in DMEM for ch1
@@ -744,10 +743,12 @@ ENDAT_SKIP_CONTINUOUS_MODE:
CALL FN_SEND_ENDAT22_COMMAND_SUPPLEMENT
ENDAT_HOST_CMD_DONE:
; result in R15-R18, R0.b0 holds CRC status, R2.b0 indicates addinfo presence
+ ;R14 contain address of TCM
+ LBCO &R14, PRUx_DMEM, ENDAT_CONFIG_CH_INFO_MEMORY_ADDRESS, 4
.if $isdefed("ENABLE_MULTI_MAKE_RTU") ;ch0: store encoder response and crc in DMEM
; R0.b0 has CRC status
MOV SCRATCH.b0, R0.b0
- LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET + 1, 3
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
QBBS ENDAT_SKIP14A_RTU_CH0, SCRATCH.b0, 0 ; pos/data CRC check
ADD SCRATCH.b1, SCRATCH.b1, 1
ZERO &R15, 8
@@ -765,11 +766,12 @@ ENDAT_SKIP14E_RTU_CH0:
ZERO &R18, 4
ENDAT_SKIP14C_RTU_CH0:
- SBCO &R15, PRUx_DMEM, ENDAT_CH0_POSITION_DATA_WORD0_OFFSET, 16
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &R15, R14, ENDAT_CH0_POSITION_DATA_WORD0_OFFSET, 16
+ SBBO &SCRATCH.b0, R14, ENDAT_CH0_CRC_STATUS_OFFSET, 1
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
.elseif $isdefed("ENABLE_MULTI_MAKE_PRU") ;ch1 store encoder response and crc in DMEM
MOV SCRATCH.b0, R0.b0
- LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET + 1, 3
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
QBBS ENDAT_SKIP14A_PRU_CH1, SCRATCH.b0, 0 ; pos/data CRC check
ADD SCRATCH.b1, SCRATCH.b1, 1
ZERO &R15, 8
@@ -787,11 +789,12 @@ ENDAT_SKIP14E_PRU_CH1:
ZERO &R18, 4
ENDAT_SKIP14C_PRU_CH1:
- SBCO &R15, PRUx_DMEM, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 16
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &R15, R14, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 16
+ SBBO &SCRATCH.b0, R14, ENDAT_CH1_CRC_STATUS_OFFSET, 1
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
.elseif $isdefed("ENABLE_MULTI_MAKE_TXPRU");ch2 store encoder response and crc in DMEM
MOV SCRATCH.b0, R0.b0
- LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET + 1, 3
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
QBBS ENDAT_SKIP14A_TXPRU_CH2, SCRATCH.b0, 0 ; pos/data CRC check
ADD SCRATCH.b1, SCRATCH.b1, 1
ZERO &R15, 8
@@ -809,15 +812,16 @@ ENDAT_SKIP14E_TXPRU_CH2:
ZERO &R18, 4
ENDAT_SKIP14C_TXPRU_CH2:
- SBCO &R15, PRUx_DMEM, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 16
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &R15, R14, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 16
+ SBBO &SCRATCH.b0, R14, ENDAT_CH2_CRC_STATUS_OFFSET, 1
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
.else ;store store encoder response and crc when load share mode is not enabled
QBBC ENDAT_SKIP14_CH0, ENDAT_ENABLE_CHx, 0
; R0.b0 has CRC status
MOV SCRATCH.b0, R0.b0
- LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET + 1, 3
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
QBBS ENDAT_SKIP14A_CH0, SCRATCH.b0, 0 ; pos/data CRC check
ADD SCRATCH.b1, SCRATCH.b1, 1
ZERO &R15, 8
@@ -835,8 +839,9 @@ ENDAT_SKIP14E_CH0:
ZERO &R18, 4
ENDAT_SKIP14C_CH0:
- SBCO &R15, PRUx_DMEM, ENDAT_CH0_POSITION_DATA_WORD0_OFFSET, 16
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &R15, R14, ENDAT_CH0_POSITION_DATA_WORD0_OFFSET, 16
+ SBBO &SCRATCH.b0, R14, ENDAT_CH0_CRC_STATUS_OFFSET, 1
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
ENDAT_SKIP14_CH0:
QBBC ENDAT_SKIP14_CH1, ENDAT_ENABLE_CHx, 1
@@ -846,7 +851,7 @@ ENDAT_SKIP14_CH0:
.else
MOV SCRATCH.b0, R0.b0
.endif
- LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET + 1, 3
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
QBBS ENDAT_SKIP14A_CH1, SCRATCH.b0, 0 ; pos/data CRC check
ADD SCRATCH.b1, SCRATCH.b1, 1
.if $isdefed("ENABLE_MULTI_CHANNEL")
@@ -876,11 +881,12 @@ ENDAT_SKIP14E_CH1:
.endif
ENDAT_SKIP14C_CH1:
.if $isdefed("ENABLE_MULTI_CHANNEL")
- SBCO &R19, PRUx_DMEM, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 16
+ SBBO &R19, R14, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 16
.else
- SBCO &R15, PRUx_DMEM, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 16
+ SBBO &R15, R14, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 16
.endif
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &SCRATCH.b0, R14, ENDAT_CH1_CRC_STATUS_OFFSET, 1
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
ENDAT_SKIP14_CH1:
QBBC ENDAT_SKIP14_CH2, ENDAT_ENABLE_CHx, 2
@@ -890,7 +896,7 @@ ENDAT_SKIP14_CH1:
.else
MOV SCRATCH.b0, R0.b0
.endif
- LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET + 1, 3
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
QBBS ENDAT_SKIP14A_CH2, SCRATCH.b0, 0 ; pos/data CRC check
ADD SCRATCH.b1, SCRATCH.b1, 1
.if $isdefed("ENABLE_MULTI_CHANNEL")
@@ -920,11 +926,12 @@ ENDAT_SKIP14E_CH2:
.endif
ENDAT_SKIP14C_CH2:
.if $isdefed("ENABLE_MULTI_CHANNEL")
- SBCO &R23, PRUx_DMEM, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 16
+ SBBO &R23, R14, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 16
.else
- SBCO &R15, PRUx_DMEM, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 16
+ SBBO &R15, R14, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 16
.endif
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &SCRATCH.b0, R14, ENDAT_CH2_CRC_STATUS_OFFSET, 1
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
ENDAT_SKIP14_CH2:
.endif
@@ -965,6 +972,8 @@ M_CALC_RECOV_TIME_MULTI_CH .macro
;enable PRU cycle counter
M_ENABLE_PRU_CYCLE_COUNTER
ZERO &R14, 4
+ ;Load memory base address
+ LBCO &SCRATCH, PRUx_DMEM, ENDAT_CONFIG_CH_INFO_MEMORY_ADDRESS, 4
; waiting for raising edge of clock for all connected channels
ENDAT_TD_LAST_RISING_CLOCK_MULTI_CH?:
LDI SCRATCH1.w0, ICSS_CFG_PRUx_ENDAT_TXCFG ;read clcok_status
@@ -982,7 +991,7 @@ W_RX_MULTI?:
LBCO &R27, ICSS_CFG, SCRATCH1.w0, 4
QBBS ENDAT_SKIP_MULTI_WRX_CH0?, R27, 28
LBCO &R27, c11, PRUx_CNTL_CYCLE_COUNT_OFFSET, 4
- SBCO &R27, PRUx_DMEM, ENDAT_CH0_RT_OFFSET, 4
+ SBBO &R27, SCRATCH, ENDAT_CH0_RT_OFFSET, 4
SET R28.b1, R28.b1, 0
ENDAT_SKIP_MULTI_WRX_CH0?:
@@ -993,7 +1002,7 @@ ENDAT_SKIP_MULTI_WRX_CH0?:
LBCO &R27, ICSS_CFG, SCRATCH1.w0, 4
QBBS ENDAT_SKIP_MULTI_WRX_CH1?, R27, 28
LBCO &R27, c11, PRUx_CNTL_CYCLE_COUNT_OFFSET, 4
- SBCO &R27, PRUx_DMEM, ENDAT_CH1_RT_OFFSET, 4
+ SBBO &R27, SCRATCH, ENDAT_CH1_RT_OFFSET, 4
SET R28.b1, R28.b1, 1
ENDAT_SKIP_MULTI_WRX_CH1?:
;ch2 waiting for RX complete
@@ -1003,7 +1012,7 @@ ENDAT_SKIP_MULTI_WRX_CH1?:
LBCO &R27, ICSS_CFG, SCRATCH1.w0, 4
QBBS ENDAT_SKIP_MULTI_WRX_CH2?, R27, 28
LBCO &R27, c11, PRUx_CNTL_CYCLE_COUNT_OFFSET, 4
- SBCO &R27, PRUx_DMEM, ENDAT_CH2_RT_OFFSET, 4
+ SBBO &R27, SCRATCH, ENDAT_CH2_RT_OFFSET, 4
SET R28.b1, R28.b1, 2
ENDAT_SKIP_MULTI_WRX_CH2?:
AND R28.b0, R28.b1, ENDAT_ENABLE_CHx_IN_USE
@@ -1235,7 +1244,9 @@ WRXCH0?:
LBCO &R27, c11, PRUx_CNTL_CYCLE_COUNT_OFFSET, 4
; store in DMEM
- SBCO &R27, PRUx_DMEM, ENDAT_CH0_RT_OFFSET, 4
+ ;Load memory address
+ LBCO &R14, PRUx_DMEM, ENDAT_CONFIG_CH_INFO_MEMORY_ADDRESS, 4
+ SBBO &R27, R14, ENDAT_CH0_RT_OFFSET, 4
.endm
;macro for channel 1
@@ -1260,8 +1271,10 @@ WRXCH1?:
; read pru counter at time when rx start
LBCO &R27, c11, PRUx_CNTL_CYCLE_COUNT_OFFSET, 4
+ ;Load memory address
+ LBCO &R14, PRUx_DMEM, ENDAT_CONFIG_CH_INFO_MEMORY_ADDRESS, 4
; store in DMEM
- SBCO &R27, PRUx_DMEM, ENDAT_CH1_RT_OFFSET, 4
+ SBBO &R27, R14, ENDAT_CH1_RT_OFFSET, 4
.endm
;macro for ch2
@@ -1297,7 +1310,9 @@ WRXCH2?:
.endif
; store in DMEM
- SBCO &R27, PRUx_DMEM, ENDAT_CH2_RT_OFFSET, 4
+ ;Load memory address
+ LBCO &R14, PRUx_DMEM, ENDAT_CONFIG_CH_INFO_MEMORY_ADDRESS, 4
+ SBBO &R27, R14, ENDAT_CH2_RT_OFFSET, 4
.endm
;macro for RT
@@ -1578,57 +1593,70 @@ ENDAT_SKIP35_CH1:
CLR R30.b3, R30.b3.t2 ; disable rx
ENDAT_SKIP35_CH2:
.endif
-
-
+
+ ;load memory address inot R14
+ LBCO &R14, PRUx_DMEM, ENDAT_CONFIG_CH_INFO_MEMORY_ADDRESS, 4
.if $isdefed("ENABLE_MULTI_MAKE_RTU")
- LBCO &SCRATCH, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 4
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
+ LBBO &SCRATCH.b0, R14, ENDAT_CH0_CRC_STATUS_OFFSET, 1
QBBC ENDAT_RTU_SKIP36A_CH0, R0, 0 ; (R0.t0 = 0) => crc failure
SET SCRATCH.b0, SCRATCH.b0, 0
- SBCO &R15, PRUx_DMEM, ENDAT_CH0_POSITION_DATA_WORD0_OFFSET, 8
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &R15, R14, ENDAT_CH0_POSITION_DATA_WORD0_OFFSET, 8
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH0_CRC_STATUS_OFFSET, 1
ENDAT_RTU_SKIP36A_CH0:
CLR SCRATCH.b0, SCRATCH.b0, 0
ADD SCRATCH.b1, SCRATCH.b1, 1
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 4
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH0_CRC_STATUS_OFFSET, 1
.elseif $isdefed("ENABLE_MULTI_MAKE_PRU")
- LBCO &SCRATCH, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 4
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
+ LBBO &SCRATCH.b0, R14, ENDAT_CH1_CRC_STATUS_OFFSET, 1
QBBC ENDAT_PRU_SKIP36A_CH1, R0, 0 ; (R0.t0 = 0) => crc failure
SET SCRATCH.b0, SCRATCH.b0, 0
- SBCO &R15, PRUx_DMEM, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 8
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &R15, R14, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 8
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH1_CRC_STATUS_OFFSET, 1
ENDAT_PRU_SKIP36A_CH1:
CLR SCRATCH.b0, SCRATCH.b0, 0
ADD SCRATCH.b1, SCRATCH.b1, 1
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 4
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH1_CRC_STATUS_OFFSET, 1
.elseif $isdefed("ENABLE_MULTI_MAKE_TXPRU")
- LBCO &SCRATCH, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 4
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
+ LBBO &SCRATCH.b0, R14, ENDAT_CH2_CRC_STATUS_OFFSET, 1
QBBC ENDAT_TX_SKIP36A_CH2, R0, 0 ; (R0.t0 = 0) => crc failure
SET SCRATCH.b0, SCRATCH.b0, 0
- SBCO &R15, PRUx_DMEM, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 8
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 4
-
+ SBBO &R15, R14, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 8
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH2_CRC_STATUS_OFFSET, 1
ENDAT_TX_SKIP36A_CH2:
CLR SCRATCH.b0, SCRATCH.b0, 0
ADD SCRATCH.b1, SCRATCH.b1, 1
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 4
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH2_CRC_STATUS_OFFSET, 1
.else
; Update CRC status. Update i/f buffer iff CRC success, if failure increment error count
QBBC ENDAT_SKIP36_CH0, ENDAT_ENABLE_CHx, 0
- LBCO &SCRATCH, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 4
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
+ LBBO &SCRATCH.b0, R14, ENDAT_CH0_CRC_STATUS_OFFSET, 1
QBBC ENDAT_SKIP36A_CH0, R0, 0 ; (R0.t0 = 0) => crc failure
SET SCRATCH.b0, SCRATCH.b0, 0
- SBCO &R15, PRUx_DMEM, ENDAT_CH0_POSITION_DATA_WORD0_OFFSET, 8
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 4
+ SBBO &R15, R14, ENDAT_CH0_POSITION_DATA_WORD0_OFFSET, 8
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH0_CRC_STATUS_OFFSET, 1
JMP ENDAT_SKIP36_CH0
ENDAT_SKIP36A_CH0:
CLR SCRATCH.b0, SCRATCH.b0, 0
ADD SCRATCH.b1, SCRATCH.b1, 1
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 4
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH0_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH0_CRC_STATUS_OFFSET, 1
ENDAT_SKIP36_CH0:
QBBC ENDAT_SKIP36_CH1, ENDAT_ENABLE_CHx, 1
- LBCO &SCRATCH, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 4
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
+ LBBO &SCRATCH.b0, R14, ENDAT_CH1_CRC_STATUS_OFFSET, 1
.if $isdefed("ENABLE_MULTI_CHANNEL")
QBBC ENDAT_SKIP36A_CH1, R0.b1, 0
.else
@@ -1638,21 +1666,24 @@ ENDAT_SKIP36_CH0:
SET SCRATCH.b0, SCRATCH.b0, 0
.if $isdefed("ENABLE_MULTI_CHANNEL")
- SBCO &R19, PRUx_DMEM, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 8
+ SBBO &R19, R14, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 8
.else
- SBCO &R15, PRUx_DMEM, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 8
+ SBBO &R15, R14, ENDAT_CH1_POSITION_DATA_WORD0_OFFSET, 8
.endif
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 4
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH1_CRC_STATUS_OFFSET, 1
JMP ENDAT_SKIP36_CH1
ENDAT_SKIP36A_CH1:
CLR SCRATCH.b0, SCRATCH.b0, 0
ADD SCRATCH.b1, SCRATCH.b1, 1
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 4
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH1_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH1_CRC_STATUS_OFFSET, 1
ENDAT_SKIP36_CH1:
QBBC ENDAT_SKIP36_CH2, ENDAT_ENABLE_CHx, 2
- LBCO &SCRATCH, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 4
+ LBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
+ LBBO &SCRATCH.b0, R14, ENDAT_CH2_CRC_STATUS_OFFSET, 1
.if $isdefed("ENABLE_MULTI_CHANNEL")
QBBC ENDAT_SKIP36A_CH2, R0.b2, 0
.else
@@ -1661,16 +1692,18 @@ ENDAT_SKIP36_CH1:
SET SCRATCH.b0, SCRATCH.b0, 0
.if $isdefed("ENABLE_MULTI_CHANNEL")
- SBCO &R23, PRUx_DMEM, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 8
+ SBBO &R23, R14, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 8
.else
- SBCO &R15, PRUx_DMEM, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 8
+ SBBO &R15, R14, ENDAT_CH2_POSITION_DATA_WORD0_OFFSET, 8
.endif
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 4
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH2_CRC_STATUS_OFFSET, 1
JMP ENDAT_SKIP36_CH2
ENDAT_SKIP36A_CH2:
CLR SCRATCH.b0, SCRATCH.b0, 0
ADD SCRATCH.b1, SCRATCH.b1, 1
- SBCO &SCRATCH, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 4
+ SBCO &SCRATCH.b1, PRUx_DMEM, ENDAT_CH2_CRC_ERR_COUNTER_OFFSET, 3
+ SBBO &SCRATCH.b0, R14, ENDAT_CH2_CRC_STATUS_OFFSET, 1
ENDAT_SKIP36_CH2:
.endif
diff --git a/source/position_sense/endat/firmware/endat_master_bin.h b/source/position_sense/endat/firmware/endat_master_bin.h
index 8ffc0b8..ab57638 100644
--- a/source/position_sense/endat/firmware/endat_master_bin.h
+++ b/source/position_sense/endat/firmware/endat_master_bin.h
@@ -12,121 +12,121 @@ const uint32_t EnDatFirmware_0[] = {
0x51000502,
0x21000d00,
0x24000105,
-0x2304309d,
+0x23044d9d,
0x24005480,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x23023f9d,
-0x91b03880,
-0x23042bdd,
+0x2302539d,
+0x91883880,
+0x230448dd,
0x24721d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x23023f9d,
-0x91ac3880,
-0x23042bdd,
+0x2302539d,
+0x91843880,
+0x230448dd,
0x24003880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x23023f9d,
-0x91ac3880,
-0x23042bdd,
+0x2302539d,
+0x91843880,
+0x230448dd,
0x24023880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x23023f9d,
-0x91ac3880,
-0x23042bdd,
+0x2302539d,
+0x91843880,
+0x230448dd,
0x24421d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x23023f9d,
-0x91ac3880,
-0x23042bdd,
+0x2302539d,
+0x91843880,
+0x230448dd,
0x241a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x23023f9d,
+0x2302539d,
0x0903efef,
0xc9000502,
-0x8144182f,
+0x8130182f,
0xc9010502,
-0x8164182f,
+0x8140182f,
0xc9020502,
-0x8184182f,
-0x91a83880,
-0x23042bdd,
+0x8150182f,
+0x91803880,
+0x230448dd,
0x244a1d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x23023f9d,
-0x91ac3880,
-0x23042bdd,
+0x2302539d,
+0x91843880,
+0x230448dd,
0x240a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x23023f9d,
+0x2302539d,
0x0903efef,
0xc9000502,
-0x8145182f,
+0x8131182f,
0xc9010502,
-0x8165182f,
+0x8141182f,
0xc9020502,
-0x8185182f,
-0x91ac3880,
-0x23042bdd,
+0x8151182f,
+0x91843880,
+0x230448dd,
0x24000180,
0x2403bfc0,
0x24271081,
-0x23048d9d,
+0x2304aa9d,
0xc9000504,
0x24080083,
0x240518c3,
-0x91441822,
+0x91301822,
0xc9010504,
0x24090183,
0x240d19c3,
-0x91641822,
+0x91401822,
0xc9020504,
0x240a0283,
0x24151ac3,
-0x91841822,
-0x2304989d,
+0x91501822,
+0x2304b59d,
0xc9000502,
-0x81483889,
+0x81343889,
0xc9010502,
-0x81683889,
+0x81443889,
0xc9020502,
-0x81883889,
-0x91905880,
+0x81543889,
+0x91685880,
0x6900e004,
0x24000280,
0x240017c0,
0x2400fa81,
-0x23048d9d,
+0x2304aa9d,
0x24000020,
0xc9000502,
-0x91441800,
+0x91301800,
0xc9010502,
-0x91641800,
+0x91401800,
0xc9020502,
-0x91841800,
+0x91501800,
0x51000002,
0x24000100,
0x81031800,
@@ -141,16 +141,17 @@ const uint32_t EnDatFirmware_0[] = {
0x91021800,
0xcf0000ff,
0xc9070003,
-0x2300cc9d,
-0x2100c500,
+0x2300d09d,
+0x2100c900,
0x910c7880,
-0x23023f9d,
+0x2302539d,
0xd1004103,
0x91143881,
-0x2302339d,
-0xc9000510,
+0x2302479d,
+0x9160388e,
+0xc9000511,
0x10000004,
-0x91413824,
+0x91383824,
0xd1000403,
0x01012424,
0x2eff838f,
@@ -162,11 +163,12 @@ const uint32_t EnDatFirmware_0[] = {
0xd1020403,
0x01016464,
0x2eff8192,
-0x8130f88f,
-0x81403884,
-0xc9010510,
+0xe100ee8f,
+0xe1100e04,
+0x81383824,
+0xc9010511,
0x10000004,
-0x91613824,
+0x91483824,
0xd1000403,
0x01012424,
0x2eff838f,
@@ -178,11 +180,12 @@ const uint32_t EnDatFirmware_0[] = {
0xd1020403,
0x01016464,
0x2eff8192,
-0x8150f88f,
-0x81603884,
-0xc9020510,
+0xe118ee8f,
+0xe1280e04,
+0x81483824,
+0xc9020511,
0x10000004,
-0x91813824,
+0x91583824,
0xd1000403,
0x01012424,
0x2eff838f,
@@ -194,14 +197,15 @@ const uint32_t EnDatFirmware_0[] = {
0xd1020403,
0x01016464,
0x2eff8192,
-0x8170f88f,
-0x81803884,
+0xe130ee8f,
+0xe1400e04,
+0x81583824,
0x24000083,
0x81021803,
0x91001804,
0x69000402,
0x2400229f,
-0x570004b9,
+0x570004b5,
0x21008b00,
0x910c7880,
0xc9000502,
@@ -213,7 +217,7 @@ const uint32_t EnDatFirmware_0[] = {
0x1000001e,
0x100101a2,
0x09032101,
-0x2301b5dd,
+0x2301c6dd,
0x240000cf,
0x2400008f,
0x240000d0,
@@ -244,7 +248,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2100f800,
+0x2100fc00,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -259,7 +263,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21010700,
+0x21010b00,
0x16004363,
0x1301f0f0,
0x1e03ffff,
@@ -275,17 +279,17 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21011700,
+0x21011b00,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x21013e00,
+0x21014200,
0x3062000e,
0x0901efef,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21012100,
+0x21012500,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -302,7 +306,7 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21013200,
+0x21013600,
0x1301efef,
0x13016363,
0x1e03ffff,
@@ -313,13 +317,13 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21013d00,
+0x21014100,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x51001b2c,
-0xc9001b2b,
-0xc900050e,
+0x51001b2f,
+0xc9001b2e,
+0xc900050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -332,8 +336,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
-0xc901050e,
+0x9160388e,
+0xe1142e9b,
+0xc901050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -346,8 +351,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
-0xc902050e,
+0x9160388e,
+0xe12c2e9b,
+0xc902050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -360,7 +366,8 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -374,7 +381,7 @@ const uint32_t EnDatFirmware_0[] = {
0x1f046262,
0x50636203,
0x1d000000,
-0x21017900,
+0x21018000,
0x1f000000,
0xc9000502,
0x1d007e7e,
@@ -382,36 +389,46 @@ const uint32_t EnDatFirmware_0[] = {
0x1d017e7e,
0xc9020502,
0x1d027e7e,
-0xc900050a,
-0x91403884,
-0xc900e005,
+0x9160388e,
+0xc900050d,
+0x91383824,
+0xf1100e04,
+0xc900e006,
0x1f000404,
-0x8130788f,
-0x81403884,
-0x21018900,
+0xe1006e8f,
+0x81383824,
+0xe1100e04,
+0x21019400,
0x1d000404,
0x01012424,
-0x81403884,
-0xc901050a,
-0x91603884,
-0xc9000005,
+0x81383824,
+0xe1100e04,
+0xc901050d,
+0x91483824,
+0xf1280e04,
+0xc9000006,
0x1f000404,
-0x8150788f,
-0x81603884,
-0x21019300,
+0xe1186e8f,
+0x81483824,
+0xe1280e04,
+0x2101a100,
0x1d000404,
0x01012424,
-0x81603884,
-0xc902050a,
-0x91803884,
-0xc9000005,
+0x81483824,
+0xe1280e04,
+0xc902050d,
+0x91583824,
+0xf1400e04,
+0xc9000006,
0x1f000404,
-0x8170788f,
-0x81803884,
-0x21019d00,
+0xe1306e8f,
+0x81583824,
+0xe1400e04,
+0x2101ae00,
0x1d000404,
0x01012424,
-0x81803884,
+0x81583824,
+0xe1400e04,
0x24010e8d,
0x908d0480,
0x0b028080,
@@ -424,7 +441,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc9020502,
0x1f027e7e,
0x91021800,
-0xd707002e,
+0xd7070021,
0x1f13ffff,
0xc9000503,
0x1d007e7e,
@@ -443,7 +460,7 @@ const uint32_t EnDatFirmware_0[] = {
0x12010202,
0x2401098d,
0x808d0402,
-0x914618c4,
+0x913218c4,
0x04c4a284,
0x24010a8d,
0x808d0484,
@@ -454,7 +471,7 @@ const uint32_t EnDatFirmware_0[] = {
0x12010202,
0x2401118d,
0x808d0402,
-0x916618c4,
+0x914218c4,
0x04c4a284,
0x2401128d,
0x808d0484,
@@ -465,7 +482,7 @@ const uint32_t EnDatFirmware_0[] = {
0x12010202,
0x2401198d,
0x808d0402,
-0x918618c4,
+0x915218c4,
0x04c4a284,
0x24011a8d,
0x808d0484,
@@ -504,7 +521,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc9020502,
0xd70762f9,
0x1f12ffff,
-0xc9000513,
+0xc9000514,
0x111c1f1c,
0x6f001cff,
0x2401088d,
@@ -522,8 +539,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
-0xc9010513,
+0x9160388e,
+0xe1142e9b,
+0xc9010514,
0x111c3f1c,
0x6f001cff,
0x2401108d,
@@ -541,8 +559,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
-0xc9020513,
+0x9160388e,
+0xe12c2e9b,
+0xc9020514,
0x111c5f1c,
0x6f001cff,
0x2401188d,
@@ -560,7 +579,8 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x20dd0000,
0xc9000502,
0x240018de,
@@ -572,7 +592,7 @@ const uint32_t EnDatFirmware_0[] = {
0x1001011e,
0x1021211e,
0x1041411e,
-0x2301e0dd,
+0x2301f1dd,
0x209d0000,
0xc9004108,
0xc9000502,
@@ -581,7 +601,7 @@ const uint32_t EnDatFirmware_0[] = {
0x240009de,
0xc9020502,
0x24000ade,
-0x21024d00,
+0x21026100,
0xc9000502,
0x240000de,
0xc9010502,
@@ -595,7 +615,7 @@ const uint32_t EnDatFirmware_0[] = {
0x1060601e,
0x100101a2,
0x09032101,
-0x2301b5dd,
+0x2301c6dd,
0x2eff818f,
0x2eff8190,
0xc9000503,
@@ -632,7 +652,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21027c00,
+0x21029000,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -647,7 +667,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21028b00,
+0x21029f00,
0x16004363,
0x1301f0f0,
0x1e03ffff,
@@ -663,17 +683,17 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21029b00,
+0x2102af00,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x2102c200,
+0x2102d600,
0x3062000e,
0x0901efef,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102a500,
+0x2102b900,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -690,7 +710,7 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102b600,
+0x2102ca00,
0x1301efef,
0x13016363,
0x1e03ffff,
@@ -701,13 +721,13 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102c100,
+0x2102d500,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x51001b2c,
-0xc9001b2b,
-0xc900050e,
+0x51001b2f,
+0xc9001b2e,
+0xc900050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -720,8 +740,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
-0xc901050e,
+0x9160388e,
+0xe1142e9b,
+0xc901050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -734,8 +755,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
-0xc902050e,
+0x9160388e,
+0xe12c2e9b,
+0xc902050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -748,7 +770,8 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -762,9 +785,9 @@ const uint32_t EnDatFirmware_0[] = {
0x1f046262,
0x50636203,
0x1d000000,
-0x2102fd00,
+0x21031400,
0x1f000000,
-0x53000225,
+0x5300022b,
0x24001da2,
0x240101cc,
0x2401018c,
@@ -779,7 +802,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21030f00,
+0x21032600,
0x16004363,
0x1301f1f1,
0x1e03ffff,
@@ -794,7 +817,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21031e00,
+0x21033500,
0x16004363,
0x1301e4e4,
0x1e03ffff,
@@ -810,17 +833,17 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21032e00,
+0x21034500,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x21035500,
+0x21036c00,
0x3062000e,
0x0901f1f1,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21033800,
+0x21034f00,
0x16004363,
0x1301f1f1,
0x1e03ffff,
@@ -837,7 +860,7 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21034900,
+0x21036000,
0x1301f1f1,
0x13016363,
0x1e03ffff,
@@ -848,13 +871,13 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21035400,
+0x21036b00,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x51001b2c,
-0xc9011b2b,
-0xc900050e,
+0x51001b2f,
+0xc9011b2e,
+0xc900050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -867,8 +890,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
-0xc901050e,
+0x9160388e,
+0xe1142e9b,
+0xc901050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -881,8 +905,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
-0xc902050e,
+0x9160388e,
+0xe12c2e9b,
+0xc902050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -895,7 +920,8 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -909,9 +935,9 @@ const uint32_t EnDatFirmware_0[] = {
0x1f046262,
0x50636203,
0x1d010000,
-0x21039000,
+0x2103aa00,
0x1f010000,
-0x69180292,
+0x69180295,
0x240101cc,
0x2401018c,
0x24000143,
@@ -925,7 +951,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2103a100,
+0x2103bb00,
0x16004363,
0x1301f2f2,
0x1e03ffff,
@@ -940,7 +966,7 @@ const uint32_t EnDatFirmware_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2103b000,
+0x2103ca00,
0x16004363,
0x1301e4e4,
0x1e03ffff,
@@ -956,17 +982,17 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2103c000,
+0x2103da00,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x2103e700,
+0x21040100,
0x3062000e,
0x0901f2f2,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2103ca00,
+0x2103e400,
0x16004363,
0x1301f2f2,
0x1e03ffff,
@@ -983,7 +1009,7 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2103db00,
+0x2103f500,
0x1301f2f2,
0x13016363,
0x1e03ffff,
@@ -994,13 +1020,13 @@ const uint32_t EnDatFirmware_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2103e600,
+0x21040000,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x51001b2c,
-0xc9021b2b,
-0xc900050e,
+0x51001b2f,
+0xc9021b2e,
+0xc900050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -1013,8 +1039,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
-0xc901050e,
+0x9160388e,
+0xe1142e9b,
+0xc901050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -1027,8 +1054,9 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
-0xc902050e,
+0x9160388e,
+0xe12c2e9b,
+0xc902050f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -1041,7 +1069,8 @@ const uint32_t EnDatFirmware_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -1055,7 +1084,7 @@ const uint32_t EnDatFirmware_0[] = {
0x1f046262,
0x50636203,
0x1d020000,
-0x21042200,
+0x21043f00,
0x1f020000,
0xc9004108,
0x1f13ffff,
@@ -1085,8 +1114,8 @@ const uint32_t EnDatFirmware_0[] = {
0x808d0400,
0x24011b8d,
0x808d0400,
-0x91b83880,
-0x23042bdd,
+0x91903880,
+0x230448dd,
0x24002000,
0x24010b8d,
0x808d0400,
@@ -1094,8 +1123,8 @@ const uint32_t EnDatFirmware_0[] = {
0x808d0400,
0x24011b8d,
0x808d0400,
-0x91983880,
-0x23042bdd,
+0x91703880,
+0x230448dd,
0x24006000,
0x24010b8d,
0x808d0400,
@@ -1103,8 +1132,8 @@ const uint32_t EnDatFirmware_0[] = {
0x808d0400,
0x24011b8d,
0x808d0400,
-0x91b43880,
-0x23042bdd,
+0x918c3880,
+0x230448dd,
0x24000000,
0x24010b8d,
0x808d0400,
@@ -1179,11 +1208,11 @@ const uint32_t EnDatFirmware_0[] = {
0x130803de,
0x24000e1e,
0xc9000502,
-0x91441822,
+0x91301822,
0xc9010502,
-0x91641822,
+0x91401822,
0xc9020502,
-0x91841822,
+0x91501822,
0x24000042,
0x0106a2a2,
0x0906a280,
@@ -1191,9 +1220,9 @@ const uint32_t EnDatFirmware_0[] = {
0x04a280a2,
0x24003801,
0x24000141,
-0x2301b5dd,
-0x91a03880,
-0x23042bdd,
+0x2301c6dd,
+0x91783880,
+0x230448dd,
0x2401048d,
0x908d0480,
0xce2380fe,
@@ -1201,10 +1230,10 @@ const uint32_t EnDatFirmware_0[] = {
0x810c2b80,
0x69000303,
0x2401088d,
-0x2104b800,
+0x2104d500,
0x69010303,
0x2401108d,
-0x2104b800,
+0x2104d500,
0x69020302,
0x2401188d,
0x908d2480,
@@ -1212,18 +1241,18 @@ const uint32_t EnDatFirmware_0[] = {
0x910c2b80,
0x2400007e,
0x00e0e9e9,
-0x91a43880,
-0x23042bdd,
+0x917c3880,
+0x230448dd,
0x1f13ffff,
0xd063ff00,
-0x91a83880,
-0x23042bdd,
+0x91803880,
+0x230448dd,
0x0101c8c8,
0x6708c8d5,
0x0b03e9e9,
-0x919c389b,
+0x9174389b,
0x60fbe903,
0x04fbe9e9,
-0x2104c700,
+0x2104e400,
0x209d0000};
diff --git a/source/position_sense/endat/firmware/endat_master_multi_PRU_bin.h b/source/position_sense/endat/firmware/endat_master_multi_PRU_bin.h
index 16eb005..84842f1 100644
--- a/source/position_sense/endat/firmware/endat_master_multi_PRU_bin.h
+++ b/source/position_sense/endat/firmware/endat_master_multi_PRU_bin.h
@@ -12,132 +12,132 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x51000502,
0x21000d00,
0x24000105,
-0x23032e9d,
+0x2303399d,
0x24005480,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91b03880,
-0x230329dd,
+0x23019e9d,
+0x91883880,
+0x230334dd,
0x24721d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24003880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24023880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24421d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x241a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
+0x23019e9d,
0x0903efef,
-0x8164182f,
-0x91a83880,
-0x230329dd,
+0x8140182f,
+0x91803880,
+0x230334dd,
0x244a1d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x240a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
+0x23019e9d,
0x0903efef,
-0x8165182f,
+0x8141182f,
0x2400020e,
-0x81be180e,
-0x91ac3880,
-0x230329dd,
+0x8196180e,
+0x91843880,
+0x230334dd,
0x24000180,
0x2403bfc0,
0x24271081,
0x2400000e,
-0x81be180e,
+0x8196180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9014e02,
-0x2303989d,
+0x2303a39d,
0x2400020e,
-0x81be180e,
+0x8196180e,
0x24090183,
0x240d19c3,
-0x91641822,
-0x2303a39d,
-0x81683889,
-0x91905880,
+0x91401822,
+0x2303ae9d,
+0x81443889,
+0x91685880,
0x6900e004,
0x24000280,
0x240017c0,
0x2400fa81,
0x2400000e,
-0x81be180e,
+0x8196180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9014e02,
-0x2303989d,
+0x2303a39d,
0x24000020,
-0x91641800,
+0x91401800,
0x51000002,
0x24000100,
0x81071800,
@@ -152,15 +152,16 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x91061800,
0xcf0000ff,
0xc9070003,
-0x2300b69d,
-0x2100af00,
+0x2300b89d,
+0x2100b100,
0x91187880,
-0x2301969d,
+0x23019e9d,
0xd1004103,
0x91203881,
-0x23018f9d,
+0x2301979d,
+0x9160388e,
0x10000004,
-0x91613824,
+0x91483824,
0xd1000403,
0x01012424,
0x2eff838f,
@@ -172,23 +173,24 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xd1020403,
0x01016464,
0x2eff8192,
-0x8150f88f,
-0x81603884,
+0xe118ee8f,
+0xe1280e04,
+0x81483824,
0x24000083,
0x81061803,
0x91041804,
0x69000402,
0x2400239f,
-0x570004da,
+0x570004d8,
0x21009600,
0x91187880,
0x240011de,
0x1000001e,
0x100101a2,
0x09032101,
-0x230163dd,
+0x23016add,
0x2400020e,
-0x81be180e,
+0x8196180e,
0x240000cf,
0x2400008f,
0x240000d0,
@@ -212,7 +214,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2100d800,
+0x2100da00,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -227,7 +229,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2100e700,
+0x2100e900,
0x16004363,
0x1301f0f0,
0x1e03ffff,
@@ -243,17 +245,17 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2100f700,
+0x2100f900,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x21011e00,
+0x21012000,
0x3062000e,
0x0901efef,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21010100,
+0x21010300,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -270,7 +272,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21011200,
+0x21011400,
0x1301efef,
0x13016363,
0x1e03ffff,
@@ -281,12 +283,12 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21011d00,
+0x21011f00,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9001b0e,
+0x51001b10,
+0xc9001b0f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -299,7 +301,8 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
+0x9160388e,
+0xe12c2e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -313,17 +316,21 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x1f046262,
0x50636203,
0x1d000000,
-0x21013c00,
+0x21013f00,
0x1f000000,
0x1d017e7e,
-0x91603884,
-0xc900e004,
+0x9160388e,
+0x91483824,
+0xf1280e04,
+0xc900e005,
0x1f000404,
-0x8150788f,
-0x81603884,
+0xe1186e8f,
+0x81483824,
+0xe1280e04,
0x1d000404,
0x01012424,
-0x81603884,
+0x81483824,
+0xe1280e04,
0x24010e8d,
0x908d0480,
0x0b028080,
@@ -331,24 +338,24 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x10e0e0e0,
0x1f017e7e,
0x91061800,
-0xd7070070,
+0xd707006b,
0x2400000e,
-0x81be180e,
+0x8196180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9014e02,
0x1f13ffff,
0x1d017e7e,
@@ -360,7 +367,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x12010202,
0x2401118d,
0x808d0402,
-0x916618c4,
+0x914218c4,
0x04c4a284,
0x2401128d,
0x808d0484,
@@ -396,18 +403,19 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
+0x9160388e,
+0xe12c2e9b,
0x20dd0000,
0x240019de,
0x2400011e,
0x1001011e,
0x1021211e,
0x1041411e,
-0x230172dd,
+0x230179dd,
0x209d0000,
0xc9004103,
0x240009de,
-0x21019a00,
+0x2101a200,
0x240001de,
0x1000001e,
0x71082104,
@@ -416,9 +424,9 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x1060601e,
0x100101a2,
0x09032101,
-0x230163dd,
+0x23016add,
0x2400020e,
-0x81be180e,
+0x8196180e,
0x2eff818f,
0x2eff8190,
0x24001903,
@@ -448,7 +456,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101c400,
+0x2101cc00,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -463,7 +471,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101d300,
+0x2101db00,
0x16004363,
0x1301f0f0,
0x1e03ffff,
@@ -479,17 +487,17 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2101e300,
+0x2101eb00,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x21020a00,
+0x21021200,
0x3062000e,
0x0901efef,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101ed00,
+0x2101f500,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -506,7 +514,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2101fe00,
+0x21020600,
0x1301efef,
0x13016363,
0x1e03ffff,
@@ -517,12 +525,12 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21020900,
+0x21021100,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9001b0e,
+0x51001b10,
+0xc9001b0f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -535,7 +543,8 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
+0x9160388e,
+0xe12c2e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -549,9 +558,9 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x1f046262,
0x50636203,
0x1d000000,
-0x21022800,
+0x21023100,
0x1f000000,
-0x510002eb,
+0x510002ed,
0x24001da2,
0x240101cc,
0x2401018c,
@@ -566,7 +575,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21023a00,
+0x21024300,
0x16004363,
0x1301f1f1,
0x1e03ffff,
@@ -581,7 +590,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21024900,
+0x21025200,
0x16004363,
0x1301e4e4,
0x1e03ffff,
@@ -597,17 +606,17 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21025900,
+0x21026200,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x21028000,
+0x21028900,
0x3062000e,
0x0901f1f1,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21026300,
+0x21026c00,
0x16004363,
0x1301f1f1,
0x1e03ffff,
@@ -624,7 +633,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21027400,
+0x21027d00,
0x1301f1f1,
0x13016363,
0x1e03ffff,
@@ -635,12 +644,12 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21027f00,
+0x21028800,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9011b0e,
+0x51001b10,
+0xc9011b0f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -653,7 +662,8 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
+0x9160388e,
+0xe12c2e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -667,9 +677,9 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x1f046262,
0x50636203,
0x1d010000,
-0x21029e00,
+0x2102a800,
0x1f010000,
-0x69180275,
+0x69180276,
0x240101cc,
0x2401018c,
0x24000143,
@@ -683,7 +693,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102af00,
+0x2102b900,
0x16004363,
0x1301f2f2,
0x1e03ffff,
@@ -698,7 +708,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102be00,
+0x2102c800,
0x16004363,
0x1301e4e4,
0x1e03ffff,
@@ -714,17 +724,17 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102ce00,
+0x2102d800,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x2102f500,
+0x2102ff00,
0x3062000e,
0x0901f2f2,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102d800,
+0x2102e200,
0x16004363,
0x1301f2f2,
0x1e03ffff,
@@ -741,7 +751,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102e900,
+0x2102f300,
0x1301f2f2,
0x13016363,
0x1e03ffff,
@@ -752,12 +762,12 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102f400,
+0x2102fe00,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9021b0e,
+0x51001b10,
+0xc9021b0f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -770,7 +780,8 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c4389b,
+0x9160388e,
+0xe12c2e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -784,26 +795,26 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x1f046262,
0x50636203,
0x1d020000,
-0x21031300,
+0x21031e00,
0x1f020000,
0xc9004115,
0x2400000e,
-0x81be180e,
+0x8196180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9014e02,
0x1f13ffff,
0xd10dff00,
@@ -814,66 +825,66 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x4ee2e0ff,
0x20dd0000,
0x2400000e,
-0x81be180e,
+0x8196180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9014e02,
0x1f13ffff,
0x2400020e,
-0x81be180e,
+0x8196180e,
0xd10dff00,
0x24006000,
0x2401138d,
0x808d0400,
-0x91b83880,
-0x230329dd,
+0x91903880,
+0x230334dd,
0x24002000,
0x2401138d,
0x808d0400,
-0x91983880,
-0x230329dd,
+0x91703880,
+0x230334dd,
0x24006000,
0x2401138d,
0x808d0400,
-0x91b43880,
-0x230329dd,
+0x918c3880,
+0x230334dd,
0x24000000,
0x2401138d,
0x808d0400,
0x2400000e,
-0x81be180e,
+0x8196180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9014e02,
0x1f13ffff,
0x2400020e,
-0x81be180e,
+0x8196180e,
0xd10dff00,
0x240011de,
0x2400001e,
@@ -886,26 +897,26 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x1f1cffff,
0x1d19fefe,
0x2400000e,
-0x81be180e,
+0x8196180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9014e02,
0x1f13ffff,
0x2400020e,
-0x81be180e,
+0x8196180e,
0xd10dff00,
0x209d0000,
0x24000081,
@@ -933,7 +944,7 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x2eff82c8,
0x130803de,
0x24000e1e,
-0x91641822,
+0x91401822,
0x24000042,
0x0106a2a2,
0x0906a280,
@@ -941,9 +952,9 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x04a280a2,
0x24003801,
0x24000141,
-0x230163dd,
-0x91a03880,
-0x230329dd,
+0x23016add,
+0x91783880,
+0x230334dd,
0x2401048d,
0x908d0480,
0xce2380fe,
@@ -955,38 +966,38 @@ const uint32_t EnDatFirmwareMultiMakePRU_0[] = {
0x910c2b80,
0x2400007e,
0x00e0e9e9,
-0x91a43880,
-0x230329dd,
+0x917c3880,
+0x230334dd,
0x2400000e,
-0x81be180e,
+0x8196180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9014e02,
0x1f13ffff,
0xd063ff00,
-0x91a83880,
-0x230329dd,
+0x91803880,
+0x230334dd,
0x2400020e,
-0x81be180e,
+0x8196180e,
0x0101c8c8,
0x6708c8cd,
0x0b03e9e9,
-0x919c389b,
+0x9174389b,
0x60fbe903,
0x04fbe9e9,
-0x2103da00,
+0x2103e500,
0x209d0000};
diff --git a/source/position_sense/endat/firmware/endat_master_multi_RTU_bin.h b/source/position_sense/endat/firmware/endat_master_multi_RTU_bin.h
index a7f57ea..ce5e359 100644
--- a/source/position_sense/endat/firmware/endat_master_multi_RTU_bin.h
+++ b/source/position_sense/endat/firmware/endat_master_multi_RTU_bin.h
@@ -12,132 +12,132 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x51000502,
0x21000d00,
0x24000105,
-0x23032e9d,
+0x2303399d,
0x24005480,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91b03880,
-0x230329dd,
+0x23019e9d,
+0x91883880,
+0x230334dd,
0x24721d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24003880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24023880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24421d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x241a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
+0x23019e9d,
0x0903efef,
-0x8144182f,
-0x91a83880,
-0x230329dd,
+0x8130182f,
+0x91803880,
+0x230334dd,
0x244a1d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x240a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
+0x23019e9d,
0x0903efef,
-0x8145182f,
+0x8131182f,
0x2400010e,
-0x81bd180e,
-0x91ac3880,
-0x230329dd,
+0x8195180e,
+0x91843880,
+0x230334dd,
0x24000180,
0x2403bfc0,
0x24271081,
0x2400000e,
-0x81bd180e,
+0x8195180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9004e02,
-0x2303989d,
+0x2303a39d,
0x2400010e,
-0x81bd180e,
+0x8195180e,
0x24080083,
0x240518c3,
-0x91441822,
-0x2303a39d,
-0x81483889,
-0x91905880,
+0x91301822,
+0x2303ae9d,
+0x81343889,
+0x91685880,
0x6900e004,
0x24000280,
0x240017c0,
0x2400fa81,
0x2400000e,
-0x81bd180e,
+0x8195180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9004e02,
-0x2303989d,
+0x2303a39d,
0x24000020,
-0x91441800,
+0x91301800,
0x51000002,
0x24000100,
0x81031800,
@@ -152,15 +152,16 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x91021800,
0xcf0000ff,
0xc9070003,
-0x2300b69d,
-0x2100af00,
+0x2300b89d,
+0x2100b100,
0x910c7880,
-0x2301969d,
+0x23019e9d,
0xd1004103,
0x91143881,
-0x23018f9d,
+0x2301979d,
+0x9160388e,
0x10000004,
-0x91413824,
+0x91383824,
0xd1000403,
0x01012424,
0x2eff838f,
@@ -172,23 +173,24 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xd1020403,
0x01016464,
0x2eff8192,
-0x8130f88f,
-0x81403884,
+0xe100ee8f,
+0xe1100e04,
+0x81383824,
0x24000083,
0x81021803,
0x91001804,
0x69000402,
0x2400229f,
-0x570004da,
+0x570004d8,
0x21009600,
0x910c7880,
0x240010de,
0x1000001e,
0x100101a2,
0x09032101,
-0x230163dd,
+0x23016add,
0x2400010e,
-0x81bd180e,
+0x8195180e,
0x240000cf,
0x2400008f,
0x240000d0,
@@ -212,7 +214,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2100d800,
+0x2100da00,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -227,7 +229,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2100e700,
+0x2100e900,
0x16004363,
0x1301f0f0,
0x1e03ffff,
@@ -243,17 +245,17 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2100f700,
+0x2100f900,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x21011e00,
+0x21012000,
0x3062000e,
0x0901efef,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21010100,
+0x21010300,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -270,7 +272,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21011200,
+0x21011400,
0x1301efef,
0x13016363,
0x1e03ffff,
@@ -281,12 +283,12 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21011d00,
+0x21011f00,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9001b0e,
+0x51001b10,
+0xc9001b0f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -299,7 +301,8 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
+0x9160388e,
+0xe1142e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -313,17 +316,21 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x1f046262,
0x50636203,
0x1d000000,
-0x21013c00,
+0x21013f00,
0x1f000000,
0x1d007e7e,
-0x91403884,
-0xc900e004,
+0x9160388e,
+0x91383824,
+0xf1100e04,
+0xc900e005,
0x1f000404,
-0x8130788f,
-0x81403884,
+0xe1006e8f,
+0x81383824,
+0xe1100e04,
0x1d000404,
0x01012424,
-0x81403884,
+0x81383824,
+0xe1100e04,
0x24010e8d,
0x908d0480,
0x0b028080,
@@ -331,24 +338,24 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x10e0e0e0,
0x1f007e7e,
0x91021800,
-0xd7070070,
+0xd707006b,
0x2400000e,
-0x81bd180e,
+0x8195180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9004e02,
0x1f13ffff,
0x1d007e7e,
@@ -360,7 +367,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x12010202,
0x2401098d,
0x808d0402,
-0x914618c4,
+0x913218c4,
0x04c4a284,
0x24010a8d,
0x808d0484,
@@ -396,18 +403,19 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
+0x9160388e,
+0xe1142e9b,
0x20dd0000,
0x240018de,
0x2400011e,
0x1001011e,
0x1021211e,
0x1041411e,
-0x230172dd,
+0x230179dd,
0x209d0000,
0xc9004103,
0x240008de,
-0x21019a00,
+0x2101a200,
0x240000de,
0x1000001e,
0x71082104,
@@ -416,9 +424,9 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x1060601e,
0x100101a2,
0x09032101,
-0x230163dd,
+0x23016add,
0x2400010e,
-0x81bd180e,
+0x8195180e,
0x2eff818f,
0x2eff8190,
0x24001803,
@@ -448,7 +456,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101c400,
+0x2101cc00,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -463,7 +471,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101d300,
+0x2101db00,
0x16004363,
0x1301f0f0,
0x1e03ffff,
@@ -479,17 +487,17 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2101e300,
+0x2101eb00,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x21020a00,
+0x21021200,
0x3062000e,
0x0901efef,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101ed00,
+0x2101f500,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -506,7 +514,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2101fe00,
+0x21020600,
0x1301efef,
0x13016363,
0x1e03ffff,
@@ -517,12 +525,12 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21020900,
+0x21021100,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9001b0e,
+0x51001b10,
+0xc9001b0f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -535,7 +543,8 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
+0x9160388e,
+0xe1142e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -549,9 +558,9 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x1f046262,
0x50636203,
0x1d000000,
-0x21022800,
+0x21023100,
0x1f000000,
-0x510002eb,
+0x510002ed,
0x24001da2,
0x240101cc,
0x2401018c,
@@ -566,7 +575,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21023a00,
+0x21024300,
0x16004363,
0x1301f1f1,
0x1e03ffff,
@@ -581,7 +590,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21024900,
+0x21025200,
0x16004363,
0x1301e4e4,
0x1e03ffff,
@@ -597,17 +606,17 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21025900,
+0x21026200,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x21028000,
+0x21028900,
0x3062000e,
0x0901f1f1,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21026300,
+0x21026c00,
0x16004363,
0x1301f1f1,
0x1e03ffff,
@@ -624,7 +633,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21027400,
+0x21027d00,
0x1301f1f1,
0x13016363,
0x1e03ffff,
@@ -635,12 +644,12 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21027f00,
+0x21028800,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9011b0e,
+0x51001b10,
+0xc9011b0f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -653,7 +662,8 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
+0x9160388e,
+0xe1142e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -667,9 +677,9 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x1f046262,
0x50636203,
0x1d010000,
-0x21029e00,
+0x2102a800,
0x1f010000,
-0x69180275,
+0x69180276,
0x240101cc,
0x2401018c,
0x24000143,
@@ -683,7 +693,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102af00,
+0x2102b900,
0x16004363,
0x1301f2f2,
0x1e03ffff,
@@ -698,7 +708,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102be00,
+0x2102c800,
0x16004363,
0x1301e4e4,
0x1e03ffff,
@@ -714,17 +724,17 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102ce00,
+0x2102d800,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x2102f500,
+0x2102ff00,
0x3062000e,
0x0901f2f2,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102d800,
+0x2102e200,
0x16004363,
0x1301f2f2,
0x1e03ffff,
@@ -741,7 +751,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102e900,
+0x2102f300,
0x1301f2f2,
0x13016363,
0x1e03ffff,
@@ -752,12 +762,12 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102f400,
+0x2102fe00,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9021b0e,
+0x51001b10,
+0xc9021b0f,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
@@ -770,7 +780,8 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c2b9b,
-0x81c0389b,
+0x9160388e,
+0xe1142e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -784,26 +795,26 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x1f046262,
0x50636203,
0x1d020000,
-0x21031300,
+0x21031e00,
0x1f020000,
0xc9004115,
0x2400000e,
-0x81bd180e,
+0x8195180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9004e02,
0x1f13ffff,
0xd105ff00,
@@ -814,66 +825,66 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x4ee2e0ff,
0x20dd0000,
0x2400000e,
-0x81bd180e,
+0x8195180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9004e02,
0x1f13ffff,
0x2400010e,
-0x81bd180e,
+0x8195180e,
0xd105ff00,
0x24006000,
0x24010b8d,
0x808d0400,
-0x91b83880,
-0x230329dd,
+0x91903880,
+0x230334dd,
0x24002000,
0x24010b8d,
0x808d0400,
-0x91983880,
-0x230329dd,
+0x91703880,
+0x230334dd,
0x24006000,
0x24010b8d,
0x808d0400,
-0x91b43880,
-0x230329dd,
+0x918c3880,
+0x230334dd,
0x24000000,
0x24010b8d,
0x808d0400,
0x2400000e,
-0x81bd180e,
+0x8195180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9004e02,
0x1f13ffff,
0x2400010e,
-0x81bd180e,
+0x8195180e,
0xd105ff00,
0x240010de,
0x2400001e,
@@ -886,26 +897,26 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x1f1bffff,
0x1d18fefe,
0x2400000e,
-0x81bd180e,
+0x8195180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9004e02,
0x1f13ffff,
0x2400010e,
-0x81bd180e,
+0x8195180e,
0xd105ff00,
0x209d0000,
0x24000081,
@@ -933,7 +944,7 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x2eff82c8,
0x130803de,
0x24000e1e,
-0x91441822,
+0x91301822,
0x24000042,
0x0106a2a2,
0x0906a280,
@@ -941,9 +952,9 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x04a280a2,
0x24003801,
0x24000141,
-0x230163dd,
-0x91a03880,
-0x230329dd,
+0x23016add,
+0x91783880,
+0x230334dd,
0x2401048d,
0x908d0480,
0xce2380fe,
@@ -955,38 +966,38 @@ const uint32_t EnDatFirmwareMultiMakeRTU_0[] = {
0x910c2b80,
0x2400007e,
0x00e0e9e9,
-0x91a43880,
-0x230329dd,
+0x917c3880,
+0x230334dd,
0x2400000e,
-0x81bd180e,
+0x8195180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9004e02,
0x1f13ffff,
0xd063ff00,
-0x91a83880,
-0x230329dd,
+0x91803880,
+0x230334dd,
0x2400010e,
-0x81bd180e,
+0x8195180e,
0x0101c8c8,
0x6708c8cd,
0x0b03e9e9,
-0x919c389b,
+0x9174389b,
0x60fbe903,
0x04fbe9e9,
-0x2103da00,
+0x2103e500,
0x209d0000};
diff --git a/source/position_sense/endat/firmware/endat_master_multi_TXPRU_bin.h b/source/position_sense/endat/firmware/endat_master_multi_TXPRU_bin.h
index 07eba24..97f5859 100644
--- a/source/position_sense/endat/firmware/endat_master_multi_TXPRU_bin.h
+++ b/source/position_sense/endat/firmware/endat_master_multi_TXPRU_bin.h
@@ -12,132 +12,132 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x51000502,
0x21000d00,
0x24000105,
-0x23032e9d,
+0x2303399d,
0x24005480,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91b03880,
-0x230329dd,
+0x23019e9d,
+0x91883880,
+0x230334dd,
0x24721d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24003880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24023880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x24421d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x241a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
+0x23019e9d,
0x0903efef,
-0x8184182f,
-0x91a83880,
-0x230329dd,
+0x8150182f,
+0x91803880,
+0x230334dd,
0x244a1d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
-0x91ac3880,
-0x230329dd,
+0x23019e9d,
+0x91843880,
+0x230334dd,
0x240a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2301969d,
+0x23019e9d,
0x0903efef,
-0x8185182f,
+0x8151182f,
0x2400040e,
-0x81bf180e,
-0x91ac3880,
-0x230329dd,
+0x8197180e,
+0x91843880,
+0x230334dd,
0x24000180,
0x2403bfc0,
0x24271081,
0x2400000e,
-0x81bf180e,
+0x8197180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9024e02,
-0x2303989d,
+0x2303a39d,
0x2400040e,
-0x81bf180e,
+0x8197180e,
0x240a0283,
0x24151ac3,
-0x91841822,
-0x2303a39d,
-0x81883889,
-0x91905880,
+0x91501822,
+0x2303ae9d,
+0x81543889,
+0x91685880,
0x6900e004,
0x24000280,
0x240017c0,
0x2400fa81,
0x2400000e,
-0x81bf180e,
+0x8197180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9024e02,
-0x2303989d,
+0x2303a39d,
0x24000020,
-0x91841800,
+0x91501800,
0x51000002,
0x24000100,
0x810b1800,
@@ -152,15 +152,16 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x910a1800,
0xcf0000ff,
0xc9070003,
-0x2300b69d,
-0x2100af00,
+0x2300b89d,
+0x2100b100,
0x91247880,
-0x2301969d,
+0x23019e9d,
0xd1004103,
0x912c3881,
-0x23018f9d,
+0x2301979d,
+0x9160388e,
0x10000004,
-0x91813824,
+0x91583824,
0xd1000403,
0x01012424,
0x2eff838f,
@@ -172,23 +173,24 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xd1020403,
0x01016464,
0x2eff8192,
-0x8170f88f,
-0x81803884,
+0xe130ee8f,
+0xe1400e04,
+0x81583824,
0x24000083,
0x810a1803,
0x91081804,
0x69000402,
0x2400249f,
-0x570004da,
+0x570004d8,
0x21009600,
0x91247880,
0x240012de,
0x1000001e,
0x100101a2,
0x09032101,
-0x230163dd,
+0x23016add,
0x2400040e,
-0x81bf180e,
+0x8197180e,
0x240000cf,
0x2400008f,
0x240000d0,
@@ -212,7 +214,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2100d800,
+0x2100da00,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -227,7 +229,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2100e700,
+0x2100e900,
0x16004363,
0x1301f0f0,
0x1e03ffff,
@@ -243,17 +245,17 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2100f700,
+0x2100f900,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x21011e00,
+0x21012000,
0x3062000e,
0x0901efef,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21010100,
+0x21010300,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -270,7 +272,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21011200,
+0x21011400,
0x1301efef,
0x13016363,
0x1e03ffff,
@@ -281,12 +283,12 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21011d00,
+0x21011f00,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9001b0e,
+0x51001b10,
+0xc9001b0f,
0x91003c8e,
0x1f03eeee,
0x81003c8e,
@@ -299,7 +301,8 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c3c9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -313,17 +316,21 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x1f046262,
0x50636203,
0x1d000000,
-0x21013c00,
+0x21013f00,
0x1f000000,
0x1d027e7e,
-0x91803884,
-0xc900e004,
+0x9160388e,
+0x91583824,
+0xf1400e04,
+0xc900e005,
0x1f000404,
-0x8170788f,
-0x81803884,
+0xe1306e8f,
+0x81583824,
+0xe1400e04,
0x1d000404,
0x01012424,
-0x81803884,
+0x81583824,
+0xe1400e04,
0x24010e8d,
0x908d0480,
0x0b028080,
@@ -331,24 +338,24 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x10e0e0e0,
0x1f027e7e,
0x910a1800,
-0xd7070070,
+0xd707006b,
0x2400000e,
-0x81bf180e,
+0x8197180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9024e02,
0x1f13ffff,
0x1d027e7e,
@@ -360,7 +367,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x12010202,
0x2401198d,
0x808d0402,
-0x918618c4,
+0x915218c4,
0x04c4a284,
0x24011a8d,
0x808d0484,
@@ -396,18 +403,19 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c3c9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x20dd0000,
0x24001ade,
0x2400011e,
0x1001011e,
0x1021211e,
0x1041411e,
-0x230172dd,
+0x230179dd,
0x209d0000,
0xc9004103,
0x24000ade,
-0x21019a00,
+0x2101a200,
0x240002de,
0x1000001e,
0x71082104,
@@ -416,9 +424,9 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x1060601e,
0x100101a2,
0x09032101,
-0x230163dd,
+0x23016add,
0x2400040e,
-0x81bf180e,
+0x8197180e,
0x2eff818f,
0x2eff8190,
0x24001a03,
@@ -448,7 +456,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101c400,
+0x2101cc00,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -463,7 +471,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101d300,
+0x2101db00,
0x16004363,
0x1301f0f0,
0x1e03ffff,
@@ -479,17 +487,17 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2101e300,
+0x2101eb00,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x21020a00,
+0x21021200,
0x3062000e,
0x0901efef,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2101ed00,
+0x2101f500,
0x16004363,
0x1301efef,
0x1e03ffff,
@@ -506,7 +514,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2101fe00,
+0x21020600,
0x1301efef,
0x13016363,
0x1e03ffff,
@@ -517,12 +525,12 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21020900,
+0x21021100,
0x1301f0f0,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9001b0e,
+0x51001b10,
+0xc9001b0f,
0x91003c8e,
0x1f03eeee,
0x81003c8e,
@@ -535,7 +543,8 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c3c9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -549,9 +558,9 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x1f046262,
0x50636203,
0x1d000000,
-0x21022800,
+0x21023100,
0x1f000000,
-0x510002eb,
+0x510002ed,
0x24001da2,
0x240101cc,
0x2401018c,
@@ -566,7 +575,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21023a00,
+0x21024300,
0x16004363,
0x1301f1f1,
0x1e03ffff,
@@ -581,7 +590,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21024900,
+0x21025200,
0x16004363,
0x1301e4e4,
0x1e03ffff,
@@ -597,17 +606,17 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21025900,
+0x21026200,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x21028000,
+0x21028900,
0x3062000e,
0x0901f1f1,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x21026300,
+0x21026c00,
0x16004363,
0x1301f1f1,
0x1e03ffff,
@@ -624,7 +633,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21027400,
+0x21027d00,
0x1301f1f1,
0x13016363,
0x1e03ffff,
@@ -635,12 +644,12 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x21027f00,
+0x21028800,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9011b0e,
+0x51001b10,
+0xc9011b0f,
0x91003c8e,
0x1f03eeee,
0x81003c8e,
@@ -653,7 +662,8 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c3c9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -667,9 +677,9 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x1f046262,
0x50636203,
0x1d010000,
-0x21029e00,
+0x2102a800,
0x1f010000,
-0x69180275,
+0x69180276,
0x240101cc,
0x2401018c,
0x24000143,
@@ -683,7 +693,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102af00,
+0x2102b900,
0x16004363,
0x1301f2f2,
0x1e03ffff,
@@ -698,7 +708,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102be00,
+0x2102c800,
0x16004363,
0x1301e4e4,
0x1e03ffff,
@@ -714,17 +724,17 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102ce00,
+0x2102d800,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x2102f500,
+0x2102ff00,
0x3062000e,
0x0901f2f2,
0xc803ff00,
0xd023ff03,
0x10434363,
-0x2102d800,
+0x2102e200,
0x16004363,
0x1301f2f2,
0x1e03ffff,
@@ -741,7 +751,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102e900,
+0x2102f300,
0x1301f2f2,
0x13016363,
0x1e03ffff,
@@ -752,12 +762,12 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x09016363,
0xc803ff00,
0xd023ff02,
-0x2102f400,
+0x2102fe00,
0x1301e4e4,
0x13016363,
0x1e03ffff,
-0x51001b0f,
-0xc9021b0e,
+0x51001b10,
+0xc9021b0f,
0x91003c8e,
0x1f03eeee,
0x81003c8e,
@@ -770,7 +780,8 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x908d249b,
0xd71cfbfe,
0x910c3c9b,
-0x81c8389b,
+0x9160388e,
+0xe1442e9b,
0x24000062,
0xd1000c02,
0x1f006262,
@@ -784,26 +795,26 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x1f046262,
0x50636203,
0x1d020000,
-0x21031300,
+0x21031e00,
0x1f020000,
0xc9004115,
0x2400000e,
-0x81bf180e,
+0x8197180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9024e02,
0x1f13ffff,
0xd115ff00,
@@ -814,66 +825,66 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x4ee2e0ff,
0x20dd0000,
0x2400000e,
-0x81bf180e,
+0x8197180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9024e02,
0x1f13ffff,
0x2400040e,
-0x81bf180e,
+0x8197180e,
0xd115ff00,
0x24006000,
0x24011b8d,
0x808d0400,
-0x91b83880,
-0x230329dd,
+0x91903880,
+0x230334dd,
0x24002000,
0x24011b8d,
0x808d0400,
-0x91983880,
-0x230329dd,
+0x91703880,
+0x230334dd,
0x24006000,
0x24011b8d,
0x808d0400,
-0x91b43880,
-0x230329dd,
+0x918c3880,
+0x230334dd,
0x24000000,
0x24011b8d,
0x808d0400,
0x2400000e,
-0x81bf180e,
+0x8197180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9024e02,
0x1f13ffff,
0x2400040e,
-0x81bf180e,
+0x8197180e,
0xd115ff00,
0x240012de,
0x2400001e,
@@ -886,26 +897,26 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x1f1dffff,
0x1d1afefe,
0x2400000e,
-0x81bf180e,
+0x8197180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9024e02,
0x1f13ffff,
0x2400040e,
-0x81bf180e,
+0x8197180e,
0xd115ff00,
0x209d0000,
0x24000081,
@@ -933,7 +944,7 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x2eff82c8,
0x130803de,
0x24000e1e,
-0x91841822,
+0x91501822,
0x24000042,
0x0106a2a2,
0x0906a280,
@@ -941,9 +952,9 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x04a280a2,
0x24003801,
0x24000141,
-0x230163dd,
-0x91a03880,
-0x230329dd,
+0x23016add,
+0x91783880,
+0x230334dd,
0x2401048d,
0x908d0480,
0xce2380fe,
@@ -955,38 +966,38 @@ const uint32_t EnDatFirmwareMultiMakeTXPRU_0[] = {
0x910c3c80,
0x2400007e,
0x00e0e9e9,
-0x91a43880,
-0x230329dd,
+0x917c3880,
+0x230334dd,
0x2400000e,
-0x81bf180e,
+0x8197180e,
0x2400002e,
-0x91bd180e,
+0x9195180e,
0x9101184e,
0x104e0e0e,
0x120e2e2e,
-0x91be180e,
+0x9196180e,
0x9105184e,
0x104e0e0e,
0x120e2e2e,
-0x91bf180e,
+0x9197180e,
0x9109184e,
0x104e0e0e,
0x120e2e2e,
0x6f002ef3,
-0x91bc184e,
+0x9194184e,
0xc9024e02,
0x1f13ffff,
0xd063ff00,
-0x91a83880,
-0x230329dd,
+0x91803880,
+0x230334dd,
0x2400040e,
-0x81bf180e,
+0x8197180e,
0x0101c8c8,
0x6708c8cd,
0x0b03e9e9,
-0x919c389b,
+0x9174389b,
0x60fbe903,
0x04fbe9e9,
-0x2103da00,
+0x2103e500,
0x209d0000};
diff --git a/source/position_sense/endat/firmware/endat_master_multi_bin.h b/source/position_sense/endat/firmware/endat_master_multi_bin.h
index 94882bd..bb594c9 100644
--- a/source/position_sense/endat/firmware/endat_master_multi_bin.h
+++ b/source/position_sense/endat/firmware/endat_master_multi_bin.h
@@ -8,101 +8,101 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x2effbb80,
0x24000705,
0x91011825,
-0x2305579d,
+0x23056a9d,
0x24005480,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2302929d,
-0x91b03880,
-0x230552dd,
+0x2302a29d,
+0x91883880,
+0x230565dd,
0x24721d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2302929d,
-0x91ac3880,
-0x230552dd,
+0x2302a29d,
+0x91843880,
+0x230565dd,
0x24003880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2302929d,
-0x91ac3880,
-0x230552dd,
+0x2302a29d,
+0x91843880,
+0x230565dd,
0x24023880,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2302929d,
-0x91ac3880,
-0x230552dd,
+0x2302a29d,
+0x91843880,
+0x230565dd,
0x24421d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2302929d,
-0x91ac3880,
-0x230552dd,
+0x2302a29d,
+0x91843880,
+0x230565dd,
0x241a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2302929d,
+0x2302a29d,
0x0903efef,
0x0903f3f3,
0x0903f7f7,
0xc9000502,
-0x8144182f,
+0x8130182f,
0xc9010502,
-0x81641833,
+0x81401833,
0xc9020502,
-0x81841837,
-0x91a83880,
-0x230552dd,
+0x81501837,
+0x91803880,
+0x230565dd,
0x244a1d80,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2302929d,
-0x91ac3880,
-0x230552dd,
+0x2302a29d,
+0x91843880,
+0x230565dd,
0x240a4680,
0x240000c0,
0x24001d01,
0x24001f21,
0x24000141,
-0x2302929d,
+0x2302a29d,
0x0903efef,
0x0903f3f3,
0x0903f7f7,
0xc9000502,
-0x8145182f,
+0x8131182f,
0xc9010502,
-0x81651833,
+0x81411833,
0xc9020502,
-0x81851837,
-0x91ac3880,
-0x230552dd,
+0x81511837,
+0x91843880,
+0x230565dd,
0x24000180,
0x2403bfc0,
0x24271081,
-0x2305b49d,
+0x2305c79d,
0x24080083,
0x240518c3,
-0x24004408,
+0x24003008,
0x3102000c,
0x90081822,
0x51002203,
0x51ff2202,
-0x2305bf9d,
+0x2305d29d,
0x01040808,
0x80083889,
0x011c0808,
@@ -110,22 +110,22 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x01012323,
0x01014343,
0x01086363,
-0x91905880,
+0x91685880,
0x6900e004,
0x24000280,
0x240017c0,
0x2400fa81,
-0x2305b49d,
+0x2305c79d,
0x24000000,
-0x91441820,
+0x91301820,
0x51002003,
0x51ff2002,
0x13010000,
-0x91641820,
+0x91401820,
0x51002003,
0x51ff2002,
0x13020000,
-0x91841820,
+0x91501820,
0x51002003,
0x51ff2002,
0x13040000,
@@ -149,16 +149,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x91021800,
0xcf0000ff,
0xc9070003,
-0x2300e79d,
-0x2100cd00,
+0x2300eb9d,
+0x2100d100,
0x910c7880,
-0x2302929d,
+0x2302a29d,
0xd1004103,
0x91143881,
-0x2302899d,
-0xc9000510,
+0x2302999d,
+0x9160388e,
+0xc9000511,
0x10000004,
-0x91413824,
+0x91383824,
0xd1000403,
0x01012424,
0x2eff838f,
@@ -170,11 +171,12 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0xd1020403,
0x01016464,
0x2eff8192,
-0x8130f88f,
-0x81403884,
-0xc9010510,
+0xe100ee8f,
+0xe1100e04,
+0x81383824,
+0xc9010511,
0x10202004,
-0x91613824,
+0x91483824,
0xd1000403,
0x01012424,
0x2eff8393,
@@ -186,11 +188,12 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0xd1020403,
0x01016464,
0x2eff8196,
-0x8150f893,
-0x81603884,
-0xc9020510,
+0xe118ee93,
+0xe1280e04,
+0x81483824,
+0xc9020511,
0x10404004,
-0x91813824,
+0x91583824,
0xd1000403,
0x01012424,
0x2eff8397,
@@ -202,14 +205,15 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0xd1020403,
0x01016464,
0x2eff819a,
-0x8170f897,
-0x81803884,
+0xe130ee97,
+0xe1400e04,
+0x81583824,
0x24000083,
0x81021803,
0x91001804,
0x69000402,
0x2400229f,
-0x570004b9,
+0x570004b5,
0x21009300,
0x2eff818c,
0x31020011,
@@ -242,7 +246,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x05015e5e,
0x100101a2,
0x09032101,
-0x230218dd,
+0x230227dd,
0x240000cf,
0x2400008f,
0x240000d0,
@@ -282,17 +286,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x21011e00,
+0x21012200,
0x16000a0b,
0x1301efef,
0xd10cff03,
0x102a2a2b,
-0x21012300,
+0x21012700,
0x16002a2b,
0x1301f3f3,
0xd114ff03,
0x104a4a4b,
-0x21012800,
+0x21012c00,
0x16004a4b,
0x1301f7f7,
0x1004047f,
@@ -310,17 +314,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x21013a00,
+0x21013e00,
0x16000a0b,
0x1301f0f0,
0xd10cff03,
0x102a2a2b,
-0x21013f00,
+0x21014300,
0x16002a2b,
0x1301f4f4,
0xd114ff03,
0x104a4a4b,
-0x21014400,
+0x21014800,
0x16004a4b,
0x1301f8f8,
0x1004047f,
@@ -339,19 +343,19 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x21015700,
+0x21015b00,
0x1301f0f0,
0x13010b0b,
0xd10cff02,
-0x21015b00,
+0x21015f00,
0x1301f4f4,
0x13012b2b,
0xd114ff02,
-0x21015f00,
+0x21016300,
0x1301f8f8,
0x13014b4b,
0x1004047f,
-0x2101a900,
+0x2101ad00,
0x3062001b,
0x0901efef,
0x0901f3f3,
@@ -360,17 +364,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x21016c00,
+0x21017000,
0x16000a0b,
0x1301efef,
0xd10cff03,
0x102a2a2b,
-0x21017100,
+0x21017500,
0x16002a2b,
0x1301f3f3,
0xd114ff03,
0x104a4a4b,
-0x21017600,
+0x21017a00,
0x16004a4b,
0x1301f7f7,
0x1004047f,
@@ -390,15 +394,15 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x21018a00,
+0x21018e00,
0x1301efef,
0x13010b0b,
0xd10cff02,
-0x21018e00,
+0x21019200,
0x1301f3f3,
0x13012b2b,
0xd114ff02,
-0x21019200,
+0x21019600,
0x1301f7f7,
0x13014b4b,
0x1004047f,
@@ -412,24 +416,25 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x2101a000,
+0x2101a400,
0x1301f0f0,
0x13010b0b,
0xd10cff02,
-0x2101a400,
+0x2101a800,
0x1301f4f4,
0x13012b2b,
0xd114ff02,
-0x2101a800,
+0x2101ac00,
0x1301f8f8,
0x13014b4b,
0x1004047f,
-0x51001b26,
-0xc9001b25,
+0x51001b27,
+0xc9001b26,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
0x2eff818e,
+0x91603884,
0x2401048d,
0x908d049b,
0x10253b5b,
@@ -442,7 +447,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c0389b,
+0xe114249b,
0x1f003c3c,
0xc9012508,
0xd1013c07,
@@ -450,7 +455,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c4389b,
+0xe12c249b,
0x1f013c3c,
0xc9022508,
0xd1023c07,
@@ -458,22 +463,22 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c8389b,
+0xe144249b,
0x1f023c3c,
0x10253c1c,
0x6e251ce7,
-0x2300d4dd,
+0x2300d8dd,
0x500b0c03,
0x1d000000,
-0x2101d400,
+0x2101d900,
0x1f000000,
0x502b2c03,
0x1d002020,
-0x2101d800,
+0x2101dd00,
0x1f002020,
0x504b4c03,
0x1d004040,
-0x2101dc00,
+0x2101e100,
0x1f004040,
0xc9000502,
0x1d007e7e,
@@ -481,36 +486,46 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x1d017e7e,
0xc9020502,
0x1d027e7e,
-0xc900050a,
-0x91403884,
-0xc900e005,
+0x9160388e,
+0xc900050d,
+0x91383824,
+0xf1100e04,
+0xc900e006,
0x1f000404,
-0x8130788f,
-0x81403884,
-0x2101ec00,
+0xe1006e8f,
+0x81383824,
+0xe1100e04,
+0x2101f500,
0x1d000404,
0x01012424,
-0x81403884,
-0xc901050a,
-0x91603884,
-0xc9002005,
+0x81383824,
+0xe1100e04,
+0xc901050d,
+0x91483824,
+0xf1280e04,
+0xc9002006,
0x1f000404,
-0x81507893,
-0x81603884,
-0x2101f600,
+0xe1186e93,
+0x81483824,
+0xe1280e04,
+0x21020200,
0x1d000404,
0x01012424,
-0x81603884,
-0xc902050a,
-0x91803884,
-0xc9004005,
+0x81483824,
+0xe1280e04,
+0xc902050d,
+0x91583824,
+0xf1400e04,
+0xc9004006,
0x1f000404,
-0x81707897,
-0x81803884,
-0x21020000,
+0xe1306e97,
+0x81583824,
+0xe1400e04,
+0x21020f00,
0x1d000404,
0x01012424,
-0x81803884,
+0x81583824,
+0xe1400e04,
0x24010e8d,
0x908d0480,
0x0b028080,
@@ -523,7 +538,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0xc9020502,
0x1f027e7e,
0x91021800,
-0xd50700e8,
+0xd50700dd,
0x1f13ffff,
0xc9000503,
0x1d007e7e,
@@ -542,7 +557,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x12010202,
0x2401098d,
0x808d0402,
-0x914618c4,
+0x913218c4,
0x04c4a284,
0x24010a8d,
0x808d0484,
@@ -553,7 +568,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x12010202,
0x2401118d,
0x808d0402,
-0x916618c4,
+0x914218c4,
0x04c4a284,
0x2401128d,
0x808d0484,
@@ -564,7 +579,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x12010202,
0x2401198d,
0x808d0402,
-0x918618c4,
+0x915218c4,
0x04c4a284,
0x24011a8d,
0x808d0484,
@@ -615,6 +630,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x1f03eeee,
0x81002b8e,
0x2eff818e,
+0x91603884,
0x2401048d,
0x908d049b,
0x10253b5b,
@@ -627,7 +643,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c0389b,
+0xe114249b,
0x1f003c3c,
0xc9012508,
0xd1013c07,
@@ -635,7 +651,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c4389b,
+0xe12c249b,
0x1f013c3c,
0xc9022508,
0xd1023c07,
@@ -643,7 +659,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c8389b,
+0xe144249b,
0x1f023c3c,
0x10253c1c,
0x6e251ce7,
@@ -655,7 +671,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x1021211e,
0x1041411e,
0x01015e5e,
-0x23023fdd,
+0x23024edd,
0x209d0000,
0xc9004108,
0xc9000502,
@@ -664,7 +680,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x240009de,
0xc9020502,
0x24000ade,
-0x2102a000,
+0x2102b000,
0xc9000502,
0x240000de,
0xc9010502,
@@ -680,7 +696,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x05015e5e,
0x100101a2,
0x09032101,
-0x230218dd,
+0x230227dd,
0x2eff818f,
0x2eff8190,
0x2eff8193,
@@ -730,17 +746,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x2102de00,
+0x2102ee00,
0x16000a0b,
0x1301efef,
0xd10cff03,
0x102a2a2b,
-0x2102e300,
+0x2102f300,
0x16002a2b,
0x1301f3f3,
0xd114ff03,
0x104a4a4b,
-0x2102e800,
+0x2102f800,
0x16004a4b,
0x1301f7f7,
0x1004047f,
@@ -758,17 +774,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x2102fa00,
+0x21030a00,
0x16000a0b,
0x1301f0f0,
0xd10cff03,
0x102a2a2b,
-0x2102ff00,
+0x21030f00,
0x16002a2b,
0x1301f4f4,
0xd114ff03,
0x104a4a4b,
-0x21030400,
+0x21031400,
0x16004a4b,
0x1301f8f8,
0x1004047f,
@@ -787,19 +803,19 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x21031700,
+0x21032700,
0x1301f0f0,
0x13010b0b,
0xd10cff02,
-0x21031b00,
+0x21032b00,
0x1301f4f4,
0x13012b2b,
0xd114ff02,
-0x21031f00,
+0x21032f00,
0x1301f8f8,
0x13014b4b,
0x1004047f,
-0x21036900,
+0x21037900,
0x3062001b,
0x0901efef,
0x0901f3f3,
@@ -808,17 +824,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x21032c00,
+0x21033c00,
0x16000a0b,
0x1301efef,
0xd10cff03,
0x102a2a2b,
-0x21033100,
+0x21034100,
0x16002a2b,
0x1301f3f3,
0xd114ff03,
0x104a4a4b,
-0x21033600,
+0x21034600,
0x16004a4b,
0x1301f7f7,
0x1004047f,
@@ -838,15 +854,15 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x21034a00,
+0x21035a00,
0x1301efef,
0x13010b0b,
0xd10cff02,
-0x21034e00,
+0x21035e00,
0x1301f3f3,
0x13012b2b,
0xd114ff02,
-0x21035200,
+0x21036200,
0x1301f7f7,
0x13014b4b,
0x1004047f,
@@ -860,24 +876,25 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x21036000,
+0x21037000,
0x1301f0f0,
0x13010b0b,
0xd10cff02,
-0x21036400,
+0x21037400,
0x1301f4f4,
0x13012b2b,
0xd114ff02,
-0x21036800,
+0x21037800,
0x1301f8f8,
0x13014b4b,
0x1004047f,
-0x51001b26,
-0xc9001b25,
+0x51001b27,
+0xc9001b26,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
0x2eff818e,
+0x91603884,
0x2401048d,
0x908d049b,
0x10253b5b,
@@ -890,7 +907,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c0389b,
+0xe114249b,
0x1f003c3c,
0xc9012508,
0xd1013c07,
@@ -898,7 +915,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c4389b,
+0xe12c249b,
0x1f013c3c,
0xc9022508,
0xd1023c07,
@@ -906,24 +923,24 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c8389b,
+0xe144249b,
0x1f023c3c,
0x10253c1c,
0x6e251ce7,
-0x2300d4dd,
+0x2300d8dd,
0x500b0c03,
0x1d000000,
-0x21039400,
+0x2103a500,
0x1f000000,
0x502b2c03,
0x1d002020,
-0x21039800,
+0x2103a900,
0x1f002020,
0x504b4c03,
0x1d004040,
-0x21039c00,
+0x2103ad00,
0x1f004040,
-0x530002ad,
+0x530002af,
0x24001da2,
0x240001c6,
0x24010186,
@@ -945,17 +962,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x2103b500,
+0x2103c600,
0x16000a0b,
0x1301f1f1,
0xd10cff03,
0x102a2a2b,
-0x2103ba00,
+0x2103cb00,
0x16002a2b,
0x1301f5f5,
0xd114ff03,
0x104a4a4b,
-0x2103bf00,
+0x2103d000,
0x16004a4b,
0x1301f9f9,
0x1004047f,
@@ -973,17 +990,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x2103d100,
+0x2103e200,
0x16000a0b,
0x1301e4e4,
0xd10cff03,
0x102a2a2b,
-0x2103d600,
+0x2103e700,
0x16002a2b,
0x1301e4e4,
0xd114ff03,
0x104a4a4b,
-0x2103db00,
+0x2103ec00,
0x16004a4b,
0x1301e4e4,
0x1004047f,
@@ -1002,19 +1019,19 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x2103ee00,
+0x2103ff00,
0x1301e4e4,
0x13010b0b,
0xd10cff02,
-0x2103f200,
+0x21040300,
0x1301e4e4,
0x13012b2b,
0xd114ff02,
-0x2103f600,
+0x21040700,
0x1301e4e4,
0x13014b4b,
0x1004047f,
-0x21044000,
+0x21045100,
0x3062001b,
0x0901f1f1,
0x0901f5f5,
@@ -1023,17 +1040,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x21040300,
+0x21041400,
0x16000a0b,
0x1301f1f1,
0xd10cff03,
0x102a2a2b,
-0x21040800,
+0x21041900,
0x16002a2b,
0x1301f5f5,
0xd114ff03,
0x104a4a4b,
-0x21040d00,
+0x21041e00,
0x16004a4b,
0x1301f9f9,
0x1004047f,
@@ -1053,15 +1070,15 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x21042100,
+0x21043200,
0x1301f1f1,
0x13010b0b,
0xd10cff02,
-0x21042500,
+0x21043600,
0x1301f5f5,
0x13012b2b,
0xd114ff02,
-0x21042900,
+0x21043a00,
0x1301f9f9,
0x13014b4b,
0x1004047f,
@@ -1075,24 +1092,25 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x21043700,
+0x21044800,
0x1301e4e4,
0x13010b0b,
0xd10cff02,
-0x21043b00,
+0x21044c00,
0x1301e4e4,
0x13012b2b,
0xd114ff02,
-0x21043f00,
+0x21045000,
0x1301e4e4,
0x13014b4b,
0x1004047f,
-0x51001b26,
-0xc9011b25,
+0x51001b27,
+0xc9011b26,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
0x2eff818e,
+0x91603884,
0x2401048d,
0x908d049b,
0x10253b5b,
@@ -1105,7 +1123,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c0389b,
+0xe114249b,
0x1f003c3c,
0xc9012508,
0xd1013c07,
@@ -1113,7 +1131,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c4389b,
+0xe12c249b,
0x1f013c3c,
0xc9022508,
0xd1023c07,
@@ -1121,24 +1139,24 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c8389b,
+0xe144249b,
0x1f023c3c,
0x10253c1c,
0x6e251ce7,
-0x2300d4dd,
+0x2300d8dd,
0x500b0c03,
0x1d010000,
-0x21046b00,
+0x21047d00,
0x1f010000,
0x502b2c03,
0x1d012020,
-0x21046f00,
+0x21048100,
0x1f012020,
0x504b4c03,
0x1d014040,
-0x21047300,
+0x21048500,
0x1f014040,
-0x691802d6,
+0x691802d7,
0x240001c6,
0x24010186,
0x10e6e6e7,
@@ -1159,17 +1177,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x21048b00,
+0x21049d00,
0x16000a0b,
0x1301f2f2,
0xd10cff03,
0x102a2a2b,
-0x21049000,
+0x2104a200,
0x16002a2b,
0x1301f6f6,
0xd114ff03,
0x104a4a4b,
-0x21049500,
+0x2104a700,
0x16004a4b,
0x1301fafa,
0x1004047f,
@@ -1187,17 +1205,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x2104a700,
+0x2104b900,
0x16000a0b,
0x1301e4e4,
0xd10cff03,
0x102a2a2b,
-0x2104ac00,
+0x2104be00,
0x16002a2b,
0x1301e4e4,
0xd114ff03,
0x104a4a4b,
-0x2104b100,
+0x2104c300,
0x16004a4b,
0x1301e4e4,
0x1004047f,
@@ -1216,19 +1234,19 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x2104c400,
+0x2104d600,
0x1301e4e4,
0x13010b0b,
0xd10cff02,
-0x2104c800,
+0x2104da00,
0x1301e4e4,
0x13012b2b,
0xd114ff02,
-0x2104cc00,
+0x2104de00,
0x1301e4e4,
0x13014b4b,
0x1004047f,
-0x21051600,
+0x21052800,
0x3062001b,
0x0901f2f2,
0x0901f6f6,
@@ -1237,17 +1255,17 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x6e2504ff,
0xd104ff03,
0x100a0a0b,
-0x2104d900,
+0x2104eb00,
0x16000a0b,
0x1301f2f2,
0xd10cff03,
0x102a2a2b,
-0x2104de00,
+0x2104f000,
0x16002a2b,
0x1301f6f6,
0xd114ff03,
0x104a4a4b,
-0x2104e300,
+0x2104f500,
0x16004a4b,
0x1301fafa,
0x1004047f,
@@ -1267,15 +1285,15 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x2104f700,
+0x21050900,
0x1301f2f2,
0x13010b0b,
0xd10cff02,
-0x2104fb00,
+0x21050d00,
0x1301f6f6,
0x13012b2b,
0xd114ff02,
-0x2104ff00,
+0x21051100,
0x1301fafa,
0x13014b4b,
0x1004047f,
@@ -1289,24 +1307,25 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x10257f04,
0x6e2504ff,
0xd104ff02,
-0x21050d00,
+0x21051f00,
0x1301e4e4,
0x13010b0b,
0xd10cff02,
-0x21051100,
+0x21052300,
0x1301e4e4,
0x13012b2b,
0xd114ff02,
-0x21051500,
+0x21052700,
0x1301e4e4,
0x13014b4b,
0x1004047f,
-0x51001b26,
-0xc9021b25,
+0x51001b27,
+0xc9021b26,
0x91002b8e,
0x1f03eeee,
0x81002b8e,
0x2eff818e,
+0x91603884,
0x2401048d,
0x908d049b,
0x10253b5b,
@@ -1319,7 +1338,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c0389b,
+0xe114249b,
0x1f003c3c,
0xc9012508,
0xd1013c07,
@@ -1327,7 +1346,7 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c4389b,
+0xe12c249b,
0x1f013c3c,
0xc9022508,
0xd1023c07,
@@ -1335,22 +1354,22 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x908d249b,
0xd11cfb04,
0x910c2b9b,
-0x81c8389b,
+0xe144249b,
0x1f023c3c,
0x10253c1c,
0x6e251ce7,
-0x2300d4dd,
+0x2300d8dd,
0x500b0c03,
0x1d020000,
-0x21054100,
+0x21055400,
0x1f020000,
0x502b2c03,
0x1d022020,
-0x21054500,
+0x21055800,
0x1f022020,
0x504b4c03,
0x1d024040,
-0x21054900,
+0x21055c00,
0x1f024040,
0xc9004108,
0x1f13ffff,
@@ -1380,8 +1399,8 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x808d0400,
0x24011b8d,
0x808d0400,
-0x91b83880,
-0x230552dd,
+0x91903880,
+0x230565dd,
0x24002000,
0x24010b8d,
0x808d0400,
@@ -1389,8 +1408,8 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x808d0400,
0x24011b8d,
0x808d0400,
-0x91983880,
-0x230552dd,
+0x91703880,
+0x230565dd,
0x24006000,
0x24010b8d,
0x808d0400,
@@ -1398,8 +1417,8 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x808d0400,
0x24011b8d,
0x808d0400,
-0x91b43880,
-0x230552dd,
+0x918c3880,
+0x230565dd,
0x24000000,
0x24010b8d,
0x808d0400,
@@ -1481,9 +1500,9 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x04a280a2,
0x24003801,
0x24000141,
-0x230218dd,
-0x91a03880,
-0x230552dd,
+0x230227dd,
+0x91783880,
+0x230565dd,
0x2401048d,
0x908d0480,
0xce2380fe,
@@ -1491,10 +1510,10 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x810c2b80,
0x69000303,
0x2401088d,
-0x2105da00,
+0x2105ed00,
0x69010303,
0x2401108d,
-0x2105da00,
+0x2105ed00,
0x69020302,
0x2401188d,
0x908d2480,
@@ -1502,18 +1521,18 @@ const uint32_t EnDatFirmwareMulti_0[] = {
0x910c2b80,
0x2400007e,
0x00e0e9e9,
-0x91a43880,
-0x230552dd,
+0x917c3880,
+0x230565dd,
0x1f13ffff,
0xd063ff00,
-0x91a83880,
-0x230552dd,
+0x91803880,
+0x230565dd,
0x0101c8c8,
0x6708c8da,
0x0b03e9e9,
-0x919c389b,
+0x9174389b,
0x60fbe903,
0x04fbe9e9,
-0x2105e900,
+0x2105fc00,
0x209d0000};
diff --git a/source/position_sense/endat/include/endat_api.h b/source/position_sense/endat/include/endat_api.h
index e29647b..4cbe1ca 100644
--- a/source/position_sense/endat/include/endat_api.h
+++ b/source/position_sense/endat/include/endat_api.h
@@ -343,6 +343,8 @@ int32_t endat_wait_initialization(struct endat_priv *priv, uint32_t timeout, uin
* to struct endat_priv instance
*
* \param[in] pruss_xchg EnDat firmware interface address
+ * \param[in] endatRxInfo EnDat Rx interface
+ * \param[in] endatChInfoGlobalAddr global address for endatRxInfo
* \param[in] pruss_cfg ICSS PRU config base address
* \param[in] pruss_iep ICSS PRU iep base address
* \param[in] slice ICSS PRU SLICE
@@ -350,7 +352,7 @@ int32_t endat_wait_initialization(struct endat_priv *priv, uint32_t timeout, uin
* \retval priv pointer to struct endat_priv instance
*
*/
-struct endat_priv *endat_init(struct endat_pruss_xchg *pruss_xchg,
+struct endat_priv *endat_init(struct endat_pruss_xchg *pruss_xchg, struct endatChRxInfo *endatRxInfo, uint64_t endatChInfoGlobalAddr,
void *pruss_cfg, void *pruss_iep, int32_t slice);
/**
diff --git a/source/position_sense/endat/include/endat_drv.h b/source/position_sense/endat/include/endat_drv.h
index 681e155..ee04ed3 100644
--- a/source/position_sense/endat/include/endat_drv.h
+++ b/source/position_sense/endat/include/endat_drv.h
@@ -149,6 +149,7 @@ struct endat_priv
int32_t channel;
uint16_t rx_en_cnt;
struct endat_pruss_xchg *pruss_xchg;
+ struct endatChRxInfo *endatChRxInfo;
int32_t has_safety;
void *pruss_cfg;
void *pruss_iep;
diff --git a/source/position_sense/endat/include/endat_interface.h b/source/position_sense/endat/include/endat_interface.h
index 42c78b4..b3eb939 100644
--- a/source/position_sense/endat/include/endat_interface.h
+++ b/source/position_sense/endat/include/endat_interface.h
@@ -90,6 +90,7 @@ extern "C" {
/** \brief additional info 1 CRC status mask (if both present) */
#define ENDAT_CRC_ADDINFO1 (0x1 << 2)
+
/* ========================================================================== */
/* Structures */
/* ========================================================================== */
@@ -99,51 +100,72 @@ extern "C" {
*
* \details Firmware per channel CRC information interface
*/
-struct crc
+typedef struct Endat_CrcInfo_s
{
- volatile uint8_t status;
- /**< CRC status,
+ volatile uint8_t errCntData;
+ /**< CRC position/data error count (will wraparound after 255) */
+ volatile uint8_t errCntAddinfox;
+ /**< CRC additional info1/2 error count (will wraparound after 255) */
+ volatile uint8_t errCntAddinfo1;
+ /**< CRC additional info1 error count (will wraparound after 255)
+ applicable only when both additional info's are present */
+ volatile uint8_t resvdInt1;
+ /**< reserved */
+}Endat_CrcInfo;
+/**
+ * \brief Structure defining EnDat channel Info
+ * \details Firmware per channel interface
+ *
+ *
+*/
+typedef struct Endat_ChInfo_s
+{
+ volatile uint8_t numClkPulse;
+ /**< position bits excluding SB, error, CRC (updated upon initialization) */
+ volatile uint8_t endat22Stat;
+ /**< encoder command set type, 1 - 2.2 supported, 0 - 2.2 not supported */
+ volatile uint16_t rxClkLess;
+ /**< receive clocks to be reduced to handle propagation delay (to be
+ updated by host, if applicable) */
+ volatile uint32_t propDelay;
+ /**< automatically estimated propagation delay */
+ Endat_CrcInfo crc;
+ /**
bit1: 1 - additional info1 success, 0 - additioanl info1 failure
bit2: 1 - additional info2 success, 0 - additioanl info2 failure */
- volatile uint8_t err_cnt_data;
- /**< CRC position/data error count (will wraparound after 255) */
- volatile uint8_t err_cnt_addinfox;
- /**< CRC additional info1/2 error count (will wraparound after 255) */
- volatile uint8_t err_cnt_addinfo1;
- /**< CRC additional info1 error count (will wraparound after 255)
- applicable only when both additional info's are present */
-};
+ volatile uint8_t resvdInt2;
+ /**< reserved */
+ volatile uint16_t resvdInt3;
+ /**< reserved */
+ volatile uint32_t recoveryTime;
+ /*< Recovery Time */
+
-/**
- * \brief Structure defining EnDat per channel interface
- *
- * \details Firmware per channel interface
- */
-struct endat_pruss_ch_info
-{
- volatile uint32_t pos_word0;
- /**< Initial (<=32) position bits received including error bits */
- volatile uint32_t pos_word1;
- /**< position bits received after the initial 32 bits (if applicable) */
- volatile uint32_t pos_word2;
- /**< additional info 1/2 (will be additional info 2 if both present) */
- volatile uint32_t pos_word3;
- /**< additional info 1 (if both additional 1 & 2 present) */
- struct crc crc;
- /**< crc information */
- volatile uint8_t num_clk_pulse;
- /**< position bits excluding SB, error, CRC (updated upon initialization) */
- volatile uint8_t endat22_stat;
- /**< encoder command set type, 1 - 2.2 supported, 0 - 2.2 not supported */
- volatile uint16_t rx_clk_less;
- /**< receive clocks to be reduced to handle propagation delay (to be
- updated by host, if applicable) */
- volatile uint32_t prop_delay;
- /**< automatically estimated propagation delay */
- volatile uint32_t resvd_int0;
- /**< reserved */
-};
+}Endat_ChRxInfo;
/**
* \brief Structure defining EnDat command interface
@@ -205,39 +227,46 @@ struct endat_pruss_config
/**
* \brief Structure defining EnDat interface
*
- * \details Firmware config, command and channel interface
+ * \details Firmware config, command interface
*
*/
struct endat_pruss_xchg
{
- struct endat_pruss_config config[3];
- /**< config interface */
- struct endat_pruss_cmd cmd[3];
- /**< command interface */
- struct endat_pruss_ch_info ch[3];
- /**< per channel interface */
- uint16_t endat_rx_clk_config;
- uint16_t endat_tx_clk_config;
- uint32_t endat_rx_clk_cnten;
- uint32_t endat_delay_125ns;
- uint32_t endat_delay_5us;
- uint32_t endat_delay_51us;
- uint32_t endat_delay_1ms;
- uint32_t endat_delay_2ms;
- uint32_t endat_delay_12ms;
- uint32_t endat_delay_50ms;
- uint32_t endat_delay_380ms;
- uint32_t endat_delay_900ms;
- volatile uint8_t endat_primary_core_mask;
- volatile uint8_t endat_ch0_syn_bit;
- volatile uint8_t endat_ch1_syn_bit;
- volatile uint8_t endat_ch2_syn_bit;
- uint32_t endat_ch0_rt;
- uint32_t endat_ch1_rt;
- uint32_t endat_ch2_rt;
- uint64_t icssg_clk;
+ struct endat_pruss_config config[3];
+ /**< config interface */
+ struct endat_pruss_cmd cmd[3];
+ /**< command interface */
+ Endat_ChInfo ch[3];
+ /**