Digital Power Starter Kit 3 Firmware
dsPIC33C Boost Converter Voltage Mode Control Example
npnz16b.inc
1 ;LICENSE / DISCLAIMER
2 ; **********************************************************************************
3 ; Microchip Technology Inc. and its subsidiaries. You may use this software
4 ; and any derivatives exclusively with Microchip products.
5 ;
6 ; THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
7 ; EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
8 ; WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
9 ; PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION
10 ; WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.
11 ;
12 ; IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
13 ; INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
14 ; WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
15 ; BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
16 ; FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS
17 ; IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF
18 ; ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
19 ;
20 ; MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE
21 ; TERMS.
22 ; **********************************************************************************
23 ; **********************************************************************************
24 ; SDK Version: PowerSmartâ„¢ Digital Control Library Designer v0.9.14.676
25 ; CGS Version: Code Generator Script v3.0.8 (03/12/2021)
26 ; Author: M91406
27 ; Date/Time: 04/01/2021 23:47:39
28 ; **********************************************************************************
29 
30 ;------------------------------------------------------------------------------
31 ; Define status flags bit positions
32  .equ NPNZ16_STATUS_ENABLED, 15 ; bit position of the ENABLE control bit
33  .equ NPNZ16_STATUS_INVERT_INPUT, 14 ; bit position of the INVERT_INPUT control bit
34  .equ NPNZ16_STATUS_SWAP_SOURCE, 13 ; bit position of the SWAP_SOURCE control bit
35  .equ NPNZ16_STATUS_SWAP_TARGET, 12 ; bit position of the SWAP_TARGET control bit
36  .equ NPNZ16_STATUS_AGC_ENABLED, 11 ; bit position of the AGC_ENABLED control bit
37  .equ NPNZ16_STATUS_USAT, 1 ; bit position of the UPPER_SATURATION_FLAG status bit
38  .equ NPNZ16_STATUS_LSAT, 0 ; bit position of the LOWER_SATURATION_FLAG status bit
39 
40 ;------------------------------------------------------------------------------
41 ; NPNZ16b_s data structure address offset declarations for data structure addressing
42  .equ Status, 0 ; controller object status word at address-offset = 0
43  .equ ptrSourceRegister, 2 ; parameter group Ports.Source: pointer to source memory address
44  .equ SourceNormShift, 4 ; parameter group Ports.Source: bit-shift scaler of normalization factor
45  .equ SourceNormFactor, 6 ; parameter group Ports.Source: Q15 normalization factor
46  .equ SourceOffset, 8 ; parameter group Ports.Source: value of source input signal/value offset
47  .equ ptrAltSourceRegister, 10 ; parameter group Ports.AltSource: pointer to alternate source memory address
48  .equ AltSourceNormShift, 12 ; parameter group Ports.AltSource: bit-shift scaler of normalization factor
49  .equ AltSourceNormFactor, 14 ; parameter group Ports.AltSource: Q15 normalization factor
50  .equ AltSourceOffset, 16 ; parameter group Ports.AltSource: value of alternate source input signal/value offset
51  .equ ptrTargetRegister, 18 ; parameter group Ports.Target: pointer to target memory address
52  .equ TargetNormShift, 20 ; parameter group Ports.Target: bit-shift scaler of normalization factor
53  .equ TargetNormFactor, 22 ; parameter group Ports.Target: Q15 normalization factor
54  .equ TargetOffset, 24 ; parameter group Ports.Target: value of target output signal/value offset
55  .equ ptrAltTargetRegister, 26 ; parameter group Ports.AltTarget: pointer to alternate target memory address
56  .equ AltTargetNormShift, 28 ; parameter group Ports.AltTarget: bit-shift scaler of normalization factor
57  .equ AltTargetNormFactor, 30 ; parameter group Ports.AltTarget: Q15 normalization factor
58  .equ AltTargetOffset, 32 ; parameter group Ports.AltTarget: value of alternate target output signal/value offset
59  .equ ptrControlReference, 34 ; parameter group Ports.ConrolReference: pointer to control reference variable/register memory address
60  .equ ptrACoefficients, 36 ; parameter group Filter: pointer to A-coefficients array start address
61  .equ ptrBCoefficients, 38 ; parameter group Filter: pointer to B-coefficients array start address
62  .equ ptrControlHistory, 40 ; parameter group Filter: pointer to control history array start address
63  .equ ptrErrorHistory, 42 ; parameter group Filter: pointer to error history array start address
64  .equ ACoefficientsArraySize, 44 ; parameter group Filter: size of the A-coefficients array
65  .equ BCoefficientsArraySize, 46 ; parameter group Filter: size of the B-coefficients array
66  .equ ControlHistoryArraySize, 48 ; parameter group Filter: size of the control history array
67  .equ ErrorHistoryArraySize, 50 ; parameter group Filter: size of the error history array
68  .equ normPreShift, 52 ; parameter group Filter: value of input value normalization bit-shift scaler
69  .equ normPostShiftA, 54 ; parameter group Filter: value of A-term normalization bit-shift scaler
70  .equ normPostShiftB, 56 ; parameter group Filter: value of B-term normalization bit-shift scaler
71  .equ normPostScaler, 58 ; parameter group Filter: control loop output normalization factor
72  .equ PTermScaler, 60 ; parameter group Filter: P-Term coefficient scaler
73  .equ PTermFactor, 62 ; parameter group Filter: P-Term coefficient fractional factor
74  .equ AgcScaler, 64 ; parameter group GainControl: bit-shift scaler of Adaptive Gain Control Modulation factor
75  .equ AgcFactor, 66 ; parameter group GainControl: Q15 value of Adaptive Gain Control Modulation factor
76  .equ AgcMedian, 68 ; parameter group GainControl: Q15 value of Adaptive Gain Control Modulation nominal operating point
77  .equ ptrAgcObserverFunction, 70 ; parameter group GainControl: function pointer to observer function updating the AGC modulation factor
78  .equ MinOutput, 72 ; parameter group Limits: minimum clamping value of primary control output
79  .equ MaxOutput, 74 ; parameter group Limits: maximum clamping value of primary control output
80  .equ AltMinOutput, 76 ; parameter group Limits: minimum clamping value of alternate control output
81  .equ AltMaxOutput, 78 ; parameter group Limits: maximum clamping value of alternate control output
82  .equ ptrADCTriggerARegister, 80 ; parameter group ADCTriggerControl: pointer to ADC trigger A register memory address
83  .equ ADCTriggerAOffset, 82 ; parameter group ADCTriggerControl: value of ADC trigger A offset
84  .equ ptrADCTriggerBRegister, 84 ; parameter group ADCTriggerControl: pointer to ADC trigger B register memory address
85  .equ ADCTriggerBOffset, 86 ; parameter group ADCTriggerControl: value of ADC trigger B offset
86  .equ ptrDProvControlInput, 88 ; parameter group DataProviders: pointer to external variable/register the most recent, raw control input will be pushed to
87  .equ ptrDProvControlInputComp, 90 ; parameter group DataProviders: pointer to external variable/register the most recent, compensated control input will be pushed to
88  .equ ptrDProvControlError, 92 ; parameter group DataProviders: pointer to external variable/register the most recent control error will be pushed to
89  .equ ptrDProvControlOutput, 94 ; parameter group DataProviders: pointer to external variable/register the most recent control output will be pushed to
90  .equ ptrExtHookStartFunction, 96 ; parameter group ExtensionHooks: pointer to external extension function which will be called by this controller at the beginning after evaluating the enable flag. This function call will be bypassed when the controller is disabled.
91  .equ ExtHookStartFunctionParam, 98 ; parameter group ExtensionHooks: 16-bit wide function parameter variable or pointer to a parameter variable or data structure of extension function
92  .equ ptrExtHookSourceFunction, 100 ; parameter group ExtensionHooks: pointer to external extension function which will be called by this controller after the most recent controller input has been read and compensated but before the most recent error is calculated.
93  .equ ExtHookSourceFunctionParam, 102 ; parameter group ExtensionHooks: 16-bit wide function parameter variable or pointer to a parameter variable or data structure of extension function
94  .equ ptrExtHookPreAntiWindupFunction, 104 ; parameter group ExtensionHooks: pointer to external extension function which will be called by this controller after the most recent compensation filter result has been computed and before anti-windup clamping is applied
95  .equ ExtHookPreAntiWindupFunctionParam, 106 ; parameter group ExtensionHooks: 16-bit wide function parameter variable or pointer to a parameter variable or data structure of extension function
96  .equ ptrExtHookPreTargetWriteFunction, 108 ; parameter group ExtensionHooks: pointer to external extension function which will be called by this controller before the most recent controller output is written to target, after the value has passed through anti-windup clamping.
97  .equ ExtHookPreTargetWriteFunctionParam, 110 ; parameter group ExtensionHooks: 16-bit wide function parameter variable or pointer to a parameter variable or data structure of extension function
98  .equ ptrExtHookEndOfLoopFunction, 112 ; parameter group ExtensionHooks: pointer to external extension function which will be called by this controller after the compensation loop computation has been completed. This function call will be bypassed when the controller is disabled.
99  .equ ExtHookEndOfLoopFunctionParam, 114 ; parameter group ExtensionHooks: 16-bit wide function parameter variable or pointer to a parameter variable or data structure of extension function
100  .equ ptrExtHookExitFunction, 116 ; parameter group ExtensionHooks: pointer to external extension function which will be called by this controller after the compensation loop computation has been completed, regardless of the loop execution being bypassed or not
101  .equ ExtHookExitFunctionParam, 118 ; parameter group ExtensionHooks: 16-bit wide function parameter variable or pointer to a parameter variable or data structure of extension function
102  .equ usrParam0, 120 ; parameter group Advanced: generic 16-bit wide, user-defined parameter #1 for user-defined, advanced control options
103  .equ usrParam1, 122 ; parameter group Advanced: generic 16-bit wide, user-defined parameter #2 for user-defined, advanced control options
104  .equ usrParam2, 124 ; parameter group Advanced: generic 16-bit wide, user-defined parameter #3 for user-defined, advanced control options
105  .equ usrParam3, 126 ; parameter group Advanced: generic 16-bit wide, user-defined parameter #4 for user-defined, advanced control options
106  .equ usrParam4, 128 ; parameter group Advanced: generic 16-bit wide, user-defined parameter #5 for user-defined, advanced control options
107  .equ usrParam5, 130 ; parameter group Advanced: generic 16-bit wide, user-defined parameter #6 for user-defined, advanced control options
108  .equ usrParam6, 132 ; parameter group Advanced: generic 16-bit wide, user-defined parameter #7 for user-defined, advanced control options
109  .equ usrParam7, 134 ; parameter group Advanced: generic 16-bit wide, user-defined parameter #8 for user-defined, advanced control options
110 
111 ;------------------------------------------------------------------------------
112 ;end of include of NPNZ16b_s data structure and global constants
113 
114 ; **********************************************************************************
115 ; Download latest version of this tool here: https://areiter128.github.io/DCLD
116 ; **********************************************************************************