Tool/software:
Hello everyone,
We are capturing two different signal and then calculate its period and duty via N2HET pins. However, when the coming signal frequency is lower than 140 Hz, we cannot receive period value correctly and it can be 0 sometimes. I am sharing our N2HET Ram Command organization below. What could be the reason about that?
static hetINSTRUCTION_t het1PROGRAM[58U] =
{
/* CNT: Timebase
* - Instruction = 0
* - Next instruction = 1
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = na
* - Reg = T
*/
{
/* Program */
0x00002C80U,
/* Control */
0x01FFFFFFU,
/* Data */
0xFFFFFF80U,
/* Reserved */
0x00000000U
},
/* PWCNT: PWM 0 -> Duty Cycle
* - Instruction = 1
* - Next instruction = 2
* - Conditional next instruction = 2
* - Interrupt = 1
* - Pin = 0
*/
{
/* Program */
0x000055C0U,
/* Control */
(0x00004006U | (uint32)((uint32)0U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* DJZ: PWM 0 -> Period
* - Instruction = 2
* - Next instruction = 3
* - Conditional next instruction = 41
* - Interrupt = 2
* - Pin = na
*/
{
/* Program */
0x00007480U,
/* Control */
0x00052006U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PWCNT: PWM 1 -> Duty Cycle
* - Instruction = 3
* - Next instruction = 4
* - Conditional next instruction = 4
* - Interrupt = 3
* - Pin = 1
*/
{
/* Program */
0x000095C0U,
/* Control */
(0x00008006U | (uint32)((uint32)1U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* DJZ: PWM 1 -> Period
* - Instruction = 4
* - Next instruction = 5
* - Conditional next instruction = 43
* - Interrupt = 4
* - Pin = na
*/
{
/* Program */
0x0000B480U,
/* Control */
0x00056006U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PWCNT: PWM 2 -> Duty Cycle
* - Instruction = 5
* - Next instruction = 6
* - Conditional next instruction = 6
* - Interrupt = 5
* - Pin = 2
*/
{
/* Program */
0x0000D5C0U,
/* Control */
(0x0000C006U | (uint32)((uint32)2U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* DJZ: PWM 2 -> Period
* - Instruction = 6
* - Next instruction = 7
* - Conditional next instruction = 45
* - Interrupt = 6
* - Pin = na
*/
{
/* Program */
0x0000F480U,
/* Control */
0x0005A006U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PWCNT: PWM 3 -> Duty Cycle
* - Instruction = 7
* - Next instruction = 8
* - Conditional next instruction = 8
* - Interrupt = 7
* - Pin = 3
*/
{
/* Program */
0x000115C0U,
/* Control */
(0x00010006U | (uint32)((uint32)3U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* DJZ: PWM 3 -> Period
* - Instruction = 8
* - Next instruction = 9
* - Conditional next instruction = 47
* - Interrupt = 8
* - Pin = na
*/
{
/* Program */
0x00013480U,
/* Control */
0x0005E006U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PWCNT: PWM 4 -> Duty Cycle
* - Instruction = 9
* - Next instruction = 10
* - Conditional next instruction = 10
* - Interrupt = 9
* - Pin = 4
*/
{
/* Program */
0x000155C0U,
/* Control */
(0x00014006U | (uint32)((uint32)4U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* DJZ: PWM 4 -> Period
* - Instruction = 10
* - Next instruction = 11
* - Conditional next instruction = 49
* - Interrupt = 10
* - Pin = na
*/
{
/* Program */
0x00017480U,
/* Control */
0x00062006U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PWCNT: PWM 5 -> Duty Cycle
* - Instruction = 11
* - Next instruction = 12
* - Conditional next instruction = 12
* - Interrupt = 11
* - Pin = 5
*/
{
/* Program */
0x000195C0U,
/* Control */
(0x00018006U | (uint32)((uint32)5U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* DJZ: PWM 5 -> Period
* - Instruction = 12
* - Next instruction = 13
* - Conditional next instruction = 51
* - Interrupt = 12
* - Pin = na
*/
{
/* Program */
0x0001B480U,
/* Control */
0x00066006U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PWCNT: PWM 6 -> Duty Cycle
* - Instruction = 13
* - Next instruction = 14
* - Conditional next instruction = 14
* - Interrupt = 13
* - Pin = 6
*/
{
/* Program */
0x0001D5C0U,
/* Control */
(0x0001C006U | (uint32)((uint32)6U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* DJZ: PWM 6 -> Period
* - Instruction = 14
* - Next instruction = 15
* - Conditional next instruction = 53
* - Interrupt = 14
* - Pin = na
*/
{
/* Program */
0x0001F480U,
/* Control */
0x0006A006U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PWCNT: PWM 7 -> Duty Cycle
* - Instruction = 15
* - Next instruction = 16
* - Conditional next instruction = 16
* - Interrupt = 15
* - Pin = 7
*/
{
/* Program */
0x000215C0U,
/* Control */
(0x00020006U | (uint32)((uint32)7U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* DJZ: PWM 7 -> Period
* - Instruction = 16
* - Next instruction = 17
* - Conditional next instruction = 55
* - Interrupt = 16
* - Pin = na
*/
{
/* Program */
0x00023480U,
/* Control */
0x0006E006U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* ECNT: CCU Edge 0
* - Instruction = 17
* - Next instruction = 18
* - Conditional next instruction = 18
* - Interrupt = 17
* - Pin = 9
*/
{
/* Program */
0x00025440U,
/* Control */
(0x00024007U | (uint32)((uint32)9U << 8U) | (uint32)((uint32)1U << 4U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* ECNT: CCU Edge 1
* - Instruction = 18
* - Next instruction = 19
* - Conditional next instruction = 19
* - Interrupt = 18
* - Pin = 11
*/
{
/* Program */
0x00027440U,
/* Control */
(0x00026007U | (uint32)((uint32)11U << 8U) | (uint32)((uint32)1U << 4U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* ECNT: CCU Edge 2
* - Instruction = 19
* - Next instruction = 20
* - Conditional next instruction = 20
* - Interrupt = 19
* - Pin = 13
*/
{
/* Program */
0x00029440U,
/* Control */
(0x00028007U | (uint32)((uint32)13U << 8U) | (uint32)((uint32)1U << 4U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* ECNT: CCU Edge 3
* - Instruction = 20
* - Next instruction = 21
* - Conditional next instruction = 21
* - Interrupt = 20
* - Pin = 15
*/
{
/* Program */
0x0002B440U,
/* Control */
(0x0002A007U | (uint32)((uint32)15U << 8U) | (uint32)((uint32)1U << 4U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* ECNT: CCU Edge 4
* - Instruction = 21
* - Next instruction = 22
* - Conditional next instruction = 22
* - Interrupt = 21
* - Pin = 20
*/
{
/* Program */
0x0002D440U,
/* Control */
(0x0002C007U | (uint32)((uint32)20U << 8U) | (uint32)((uint32)1U << 4U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* ECNT: CCU Edge 5
* - Instruction = 22
* - Next instruction = 23
* - Conditional next instruction = 23
* - Interrupt = 22
* - Pin = 21
*/
{
/* Program */
0x0002F440U,
/* Control */
(0x0002E007U | (uint32)((uint32)21U << 8U) | (uint32)((uint32)1U << 4U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* ECNT: CCU Edge 6
* - Instruction = 23
* - Next instruction = 24
* - Conditional next instruction = 24
* - Interrupt = 23
* - Pin = 22
*/
{
/* Program */
0x00031440U,
/* Control */
(0x00030007U | (uint32)((uint32)22U << 8U) | (uint32)((uint32)1U << 4U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* ECNT: CCU Edge 7
* - Instruction = 24
* - Next instruction = 25
* - Conditional next instruction = 25
* - Interrupt = 24
* - Pin = 23
*/
{
/* Program */
0x00033440U,
/* Control */
(0x00032007U | (uint32)((uint32)23U << 8U) | (uint32)((uint32)1U << 4U)),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Duty 0
* - Instruction = 25
* - Next instruction = 26
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 0
*/
{
/* Program */
0x00034E00U | (uint32)((uint32)1U << 6U) | (uint32)(0U),
/* Control */
0x00000000U | (uint32)((uint32)1U << 26U),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Period 0
* - Instruction = 26
* - Next instruction = 27
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 0 + 1
*/
{
/* Program */
0x00036E80U | (uint32)((uint32)1U << 6U) | (uint32)((0U) + 0U),
/* Control */
0x00000000U | (uint32)((uint32)1U << 26U),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Duty 1
* - Instruction = 27
* - Next instruction = 28
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 2
*/
{
/* Program */
0x00038E00U | (uint32)((uint32)1U << 6U) | (uint32)(0U),
/* Control */
0x00000000U | (uint32)((uint32)1U << 26U),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Period 1
* - Instruction = 28
* - Next instruction = 29
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 2 + 1
*/
{
/* Program */
0x0003AE80U | (uint32)((uint32)1U << 6U) | (uint32)((0U) + 0U),
/* Control */
0x00000000U | (uint32)((uint32)1U << 26U),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Duty 2
* - Instruction = 29
* - Next instruction = 30
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 4
*/
{
/* Program */
0x0003CE00U | (uint32)((uint32)1U << 6U) | (uint32)(0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Period 2
* - Instruction = 30
* - Next instruction = 31
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 4 + 1
*/
{
/* Program */
0x0003EE80U | (uint32)((uint32)1U << 6U) | (uint32)((0U) + 0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Duty 3
* - Instruction = 31
* - Next instruction = 32
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 6
*/
{
/* Program */
0x00040E00U | (uint32)((uint32)1U << 6U) | (uint32)(0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Period 3
* - Instruction = 32
* - Next instruction = 33
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 6 + 1
*/
{
/* Program */
0x00042E80U | (uint32)((uint32)1U << 6U) | (uint32)((0U) + 0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Duty 4
* - Instruction = 33
* - Next instruction = 34
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 24
*/
{
/* Program */
0x00044E00U | (uint32)((uint32)1U << 6U) | (uint32)(0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Period 4
* - Instruction = 34
* - Next instruction = 35
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 24 + 1
*/
{
/* Program */
0x00046E80U | (uint32)((uint32)1U << 6U) | (uint32)((0U) + 0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Duty 5
* - Instruction = 35
* - Next instruction = 36
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 26
*/
{
/* Program */
0x00048E00U | (uint32)((uint32)1U << 6U) | (uint32)(0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Period 5
* - Instruction = 36
* - Next instruction = 37
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 26 + 1
*/
{
/* Program */
0x0004AE80U | (uint32)((uint32)1U << 6U) | (uint32)((0U) + 0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Duty 6
* - Instruction = 37
* - Next instruction = 38
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 28
*/
{
/* Program */
0x0004CE00U | (uint32)((uint32)1U << 6U) | (uint32)(0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Period 6
* - Instruction = 38
* - Next instruction = 39
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 28 + 1
*/
{
/* Program */
0x0004EE80U | (uint32)((uint32)1U << 6U) | (uint32)((0U) + 0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Duty 7
* - Instruction = 39
* - Next instruction = 40
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 30
*/
{
/* Program */
0x00050E00U | (uint32)((uint32)1U << 6U) | (uint32)(0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* PCNT: Capture Period 7
* - Instruction = 40
* - Next instruction = 57
* - Conditional next instruction = na
* - Interrupt = na
* - Pin = 30 + 1
*/
{
/* Program */
0x00072E80U | (uint32)((uint32)1U << 6U) | (uint32)((0U) + 0U),
/* Control */
0x00000000U,
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 0 -> Duty Cycle Update
* - Instruction = 41
* - Next instruction = 42
* - Conditional next instruction = 2
* - Interrupt = 1
* - Pin = 0
*/
{
/* Program */
0x00054201U,
/* Control */
(0x00004007U | (uint32)((uint32)1U << 22U) | (uint32)((uint32)0U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
80128U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 0 -> Period Update
* - Instruction = 42
* - Next instruction = 3
* - Conditional next instruction = 41
* - Interrupt = 2
* - Pin = na
*/
{
/* Program */
0x00006202U,
/* Control */
(0x00052007U),
/* Data */
159872U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 1 -> Duty Cycle Update
* - Instruction = 43
* - Next instruction = 44
* - Conditional next instruction = 4
* - Interrupt = 3
* - Pin = 1
*/
{
/* Program */
0x00058203U,
/* Control */
(0x00008007U | (uint32)((uint32)1U << 22U) | (uint32)((uint32)1U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
80128U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 1 -> Period Update
* - Instruction = 44
* - Next instruction = 5
* - Conditional next instruction = 43
* - Interrupt = 4
* - Pin = na
*/
{
/* Program */
0x0000A204U,
/* Control */
(0x00056007U),
/* Data */
159872U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 2 -> Duty Cycle Update
* - Instruction = 45
* - Next instruction = 46
* - Conditional next instruction = 6
* - Interrupt = 5
* - Pin = 2
*/
{
/* Program */
0x0005C205U,
/* Control */
(0x0000C007U | (uint32)((uint32)1U << 22U) | (uint32)((uint32)2U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
80128U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 2 -> Period Update
* - Instruction = 46
* - Next instruction = 7
* - Conditional next instruction = 45
* - Interrupt = 6
* - Pin = na
*/
{
/* Program */
0x0000E206U,
/* Control */
(0x0005A007U),
/* Data */
159872U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 3 -> Duty Cycle Update
* - Instruction = 47
* - Next instruction = 48
* - Conditional next instruction = 8
* - Interrupt = 7
* - Pin = 3
*/
{
/* Program */
0x00060207U,
/* Control */
(0x00010007U | (uint32)((uint32)1U << 22U) | (uint32)((uint32)3U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
80128U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 3 -> Period Update
* - Instruction = 48
* - Next instruction = 9
* - Conditional next instruction = 47
* - Interrupt = 8
* - Pin = na
*/
{
/* Program */
0x00012208U,
/* Control */
(0x0005E007U),
/* Data */
159872U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 4 -> Duty Cycle Update
* - Instruction = 49
* - Next instruction = 50
* - Conditional next instruction = 10
* - Interrupt = 9
* - Pin = 4
*/
{
/* Program */
0x00064209U,
/* Control */
(0x00014007U | (uint32)((uint32)1U << 22U) | (uint32)((uint32)4U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
80128U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 4 -> Period Update
* - Instruction = 50
* - Next instruction = 11
* - Conditional next instruction = 49
* - Interrupt = 10
* - Pin = na
*/
{
/* Program */
0x0001620AU,
/* Control */
(0x00062007U),
/* Data */
159872U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 5 -> Duty Cycle Update
* - Instruction = 51
* - Next instruction = 52
* - Conditional next instruction = 12
* - Interrupt = 11
* - Pin = 5
*/
{
/* Program */
0x0006820BU,
/* Control */
(0x00018007U | (uint32)((uint32)1U << 22U) | (uint32)((uint32)5U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
80128U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 5 -> Period Update
* - Instruction = 52
* - Next instruction = 13
* - Conditional next instruction = 51
* - Interrupt = 12
* - Pin = na
*/
{
/* Program */
0x0001A20CU,
/* Control */
(0x00066007U),
/* Data */
159872U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 6 -> Duty Cycle Update
* - Instruction = 53
* - Next instruction = 54
* - Conditional next instruction = 14
* - Interrupt = 13
* - Pin = 6
*/
{
/* Program */
0x0006C20DU,
/* Control */
(0x0001C007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)6U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
80128U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 6 -> Period Update
* - Instruction = 54
* - Next instruction = 15
* - Conditional next instruction = 53
* - Interrupt = 14
* - Pin = na
*/
{
/* Program */
0x0001E20EU,
/* Control */
(0x0006A007U),
/* Data */
159872U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 7 -> Duty Cycle Update
* - Instruction = 55
* - Next instruction = 56
* - Conditional next instruction = 16
* - Interrupt = 15
* - Pin = 7
*/
{
/* Program */
0x0007020FU,
/* Control */
(0x00020007U | (uint32)((uint32)0U << 22U) | (uint32)((uint32)7U << 8U) | (uint32)((uint32)3U << 3U)),
/* Data */
80128U,
/* Reserved */
0x00000000U
},
/* MOV64: PWM 7 -> Period Update
* - Instruction = 56
* - Next instruction = 17
* - Conditional next instruction = 55
* - Interrupt = 16
* - Pin = na
*/
{
/* Program */
0x00022210U,
/* Control */
(0x0006E007U),
/* Data */
159872U,
/* Reserved */
0x00000000U
},
/* WCAP: Capture timestamp
* - Instruction = 57
* - Next instruction = 0
* - Conditional next instruction = 0
* - Interrupt = na
* - Pin = na
* - Reg = T
*/
{
/* Program */
0x00001600U,
/* Control */
(0x00000004U),
/* Data */
0x00000000U,
/* Reserved */
0x00000000U
},
};