📄 imvc07_a.lst
字号:
d:\tic2xx\c2000\cgtools\bin\DSPA.EXE D:\Imvc\IMVC07_a.asm D:\Imvc\IMVC07_a.obj -v2xx -q -x -s
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Mon May 28 09:55:02 2007
Copyright (c) 1987-1999 Texas Instruments Incorporated
D:\Imvc\IMVC07_a.asm PAGE 1
1 ;*****************************************************************************
2 ; File Name : IMVC07_a.asm
3 ; Project : IMVC speed control on ACPM750 AC Power Module Kit with
4 ; TMS320LF2407 DSP controller
5 ;=============================================================================
6 ; Target Sys : MSK2407 DSP board + ACPM750 v3.2 power module
7 ; Description : Implementation of controllers, coordinates transformation,
8 ; measurement, PWM command a.o. functions
9 ; Originator/s: Technosoft Ltd.
10 ; Status : OK
11 ;=============================================================================
12 ; Copyright ?2000 Technosoft
13 ;=============================================================================
14 ;=============================================================================
15 ; Include files
16 ;=============================================================================
17 .include "IMVC07_a.h"
18 .include "vect240x.h"
19 ;=============================================================================
20 ; Code section
21 ;=============================================================================
22 0000 .text
23
24 ;=============================================================================
25 ; Routine Name: _init_pi_reg_id
26 ; -----------------------------
27 ; Description: Setup of id current, PI controller variables
28 ; -----------------------------
29 ; Calling Convention: extern void init_pi_reg_id();
30 ;=============================================================================
31 .global _init_pi_reg_id
32 ;=============================================================================
33 0000 _init_pi_reg_id:
34 0000 bc00- LDP #_i_d
35 0001 bf80 LACC #0
0002 0000
36 0003 9042- SACL _id_1
37 0004 9041- SACL _id_ref_1
38 0005 901a- SACL _i_d
39 0006 9021- SACL _i_d_ref
40 0007 9043- SACL _e_id_1
41 0008 9044- SACL _I_id_1_high
42 0009 9045- SACL _I_id_1_low
43 000a 901c- SACL _u_d_ref
44 000b 9046- SACL _ud_ref_low
45 000c ef00 RET
46
47 ;=============================================================================
48 ; Routine Name: _pi_reg_id
49 ; ------------------------
50 ; Description: Implements id current PI controller
51 ;
52 ; OVM=1
53 ; dyi=sat(yi-yim1)
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Mon May 28 09:55:02 2007
Copyright (c) 1987-1999 Texas Instruments Incorporated
D:\Imvc\IMVC07_a.asm PAGE 2
54 ; dyri=sat(yri-yrim1)
55 ; ei=sat(eim1+dyri-dyi)
56 ; dyri=ei-eim1+dyi
57 ; Pi=satsfl(Kps*dyri-Kps*dyi)
58 ; uim1=ui=sat(Pi+Iim1+uim1)
59 ; Iim1=satsfl(Kis*ei)
60 ; yrim1=yrim1+dyri
61 ; yim1=yi
62 ; eim1=ei
63 ; OVM=0
64 ; ------------------------
65 ; Calling Convention: extern void _pi_reg_id();
66 ;==============================================================================
67 ; +--------------------------------------------------------------------------+
68 ; | Input global variables:
69 ; +--------------------------------------------------------------------------+
70 ; | _i_d_ref | reference value of i_d current at step i (yri)
71 ; | _i_d | feedback value of i_d current at step i (yi)
72 ; | _Kps_id | scaled Kp coeff: Kps = Kp / (2^scalKp) so that
73 ; | | -1 < Kps < +1
74 ; | _sf_P_id | sf_P_id = scalKp
75 ; | _Kis_id | scaled Ki coeff: Kis = Ki / (2^scalKi) so that
76 ; | | -1 < Kis < +1
77 ; | _sf_I_id | sf_I_id = scalKi
78 ; | _i_d_ref_1 | reference value of i_d current at step i-1 (yrim1)
79 ; | _i_d_1 | feedback value of i_d current at step i-1 (yim1) |
80 ; | _e_id_1 | error at step i-1
81 ; | _I_id_1_high | integral term at step i-1, (16 MSB) |
82 ; | _I_id_1_low | integral term at step i-1, (16 LSB)
83 ; +--------------------------------------------------------------------------+
84 ; | Input local variables:
85 ; +--------------------------------------------------------------------------+
86 ; | dif_id_ref | difference between actual and old reference
87 ; | dif_id | difference between actual and old feedback |
88 ; | e_id | error at step i
89 ; +--------------------------------------------------------------------------
90 ; | Output global variables:
91 ; +--------------------------------------------------------------------------+
92 ; | _u_d_ref | output of the regulator (16 MSB)
93 ; | _ud_ref_low | output of the regulator (16 LSB)
94 ; +--------------------------------------------------------------------------+
95 ;-----------------------------------------------------------------------------
96 .global _pi_reg_id
97 ;=============================================================================
98 000d _pi_reg_id:
99 000d be47 SETC SXM
100 000e bc00- LDP #_i_d
101 000f be43 SETC OVM ; set overflow protection mode
102
103 0010 6a1a- LACC _i_d,16
104 0011 6542- SUB _id_1,16
105 0012 9807- SACH dif_id ; dyi=sat(yi-yim1)
106
107 0013 6a21- LACC _i_d_ref,16
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Mon May 28 09:55:02 2007
Copyright (c) 1987-1999 Texas Instruments Incorporated
D:\Imvc\IMVC07_a.asm PAGE 3
108 0014 6541- SUB _id_ref_1,16
109 0015 9806- SACH dif_id_ref ; dyri=sat(yri-yrim1)
110
111 0016 6507- SUB dif_id,16 ; ACC=dyri-dyi
112 0017 6143- ADD _e_id_1,16
113 0018 9808- SACH e_id ; ei=sat(eim1+dyri-dyi)
114
115 0019 6543- SUB _e_id_1,16
116 001a 6107- ADD dif_id,16
117 001b 9806- SACH dif_id_ref ; dyri=ei-eim1+dyi
118
119 001c 733d- LT _Kps_id
120 001d 5406- MPY dif_id_ref ; Kps*dyri
121 001e be03 PAC
122 001f 5407- MPY dif_id ; Kps*dyi
123 0020 be05 SPAC ; Kps*dyri-Kps*dyi
124 0021 SATSFL _sf_P_id ; ACC=Pi=satsfl(Kps*dyri-Kps*dyi) in Q31 format
1 0021 83a0 sar AR3, *+
1 0022 80ab sar AR0, *+,AR3
1 0023 033e- LAR AR3, _sf_P_id
1 0024 bf08 LAR AR0, #satvals12
0025 0026-
1 0026 8be0 MAR *0+
1 0027 6180 ADD *,16
1 0028 6580 SUB *,16
1 0029 6580 SUB *,16
1 002a 6189 ADD *,16,AR1
1 002b 0b3e- RPT _sf_P_id
1 002c be09 SFL
1 002d 8b90 mar *-
1 002e 0090 lar AR0, *-
1 002f 0380 lar AR3, *
125 0030 be46 CLRC SXM
126 0031 2045- ADD _I_id_1_low
127 0032 2046- ADD _ud_ref_low
128 0033 be47 SETC SXM
129 0034 6144- ADD _I_id_1_high,16
130 0035 611c- ADD _u_d_ref,16
131
132 0036 sat_reg_out C_SAT_U_D_REF ; macro that saturates regulator's output
1 0036 bf9f ADD #C_SAT_U_D_REF,15
0037 3334
1 0038 bfaf SUB #C_SAT_U_D_REF,15
0039 3334
1 003a bfaf SUB #C_SAT_U_D_REF,15
003b 3334
1 003c bf9f ADD #C_SAT_U_D_REF,15
003d 3334
133
134 003e 981c- SACH _u_d_ref ; uim1=ui=sat(Pi+Iim1+uim1)
135 003f 9046- SACL _ud_ref_low
136
137 0040 733f- LT _Kis_id
138 0041 5408- MPY e_id
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Mon May 28 09:55:02 2007
Copyright (c) 1987-1999 Texas Instruments Incorporated
D:\Imvc\IMVC07_a.asm PAGE 4
139 0042 be03 PAC ; Kis*ei
140 0043 SATSFL _sf_I_id ; ACC=Iim1=satsfl(Kis*ei)
1 0043 83a0 sar AR3, *+
1 0044 80ab sar AR0, *+,AR3
1 0045 0340- LAR AR3, _sf_I_id
1 0046 bf08 LAR AR0, #satvals12
0047 0026-
1 0048 8be0 MAR *0+
1 0049 6180 ADD *,16
1 004a 6580 SUB *,16
1 004b 6580 SUB *,16
1 004c 6189 ADD *,16,AR1
1 004d 0b40- RPT _sf_I_id
1 004e be09 SFL
1 004f 8b90 mar *-
1 0050 0090 lar AR0, *-
1 0051 0380 lar AR3, *
141 0052 9844- SACH _I_id_1_high ; Iim1=satsfl(Kis*ei)
142 0053 9045- SACL _I_id_1_low
143
144 0054 6a41- LACC _id_ref_1,16
145 0055 6106- ADD dif_id_ref,16
146 0056 9841- SACH _id_ref_1 ; yrim1=yrim1+dyri
147
148 0057 101a- LACC _i_d
149 0058 9042- SACL _id_1 ; yim1=yi
150
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -