📄 svpwm.lst
字号:
C:\tic2xx\c2000\cgtools\bin\dspa.exe SVPWM.asm SVPWM.obj -gls -v2xx
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:49 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
SVPWM.asm PAGE 1
1 ;=====================================================================
2 ; Filename : SVPWM.asm
3 ; Module names: SVPWM
4 ; Initialization routines: SVPWM_INIT
5 ; Description: 判断扇区,做SVPWM计算,
6 ; 给出CMPR1_BUFF,CMPR2_BUFF,(两个比较寄存器的值),ACTRA_BUFF(空间矢量的扇区值),
7 ; 为下一周期做准备。
8 ; input:Ualfa0,Ubeta0(Q11)
9 ; output:CMPR1_BUFF,CMPR2_BUFF,ACTRA_BUFF
10 ;
11 ; Modify: 2004.6.18
12 ;=====================================================================
13 .include "f2407.h"
14 .global SVPWM,SVPWM_INIT ;function call
15 .global PROTECT ;PROTECT function call
16
17 .global Ualfa0,Ubeta0,SECTOR
18 .global SVPWM_C1,SVPWM_C2
19 .global CMPR1_BUFF,CMPR2_BUFF,ACTRA_BUFF
20 .global TEMP,TEMP1
21 .global A,B,C,TX1,TX2
22
23 ;=====================================================================
24 0000 SVPWM_INIT:
25 ;=====================================================================
26 0000 bc04 LDP #DP_DATA
27
28 0001 ae00! SPLK #3648,SVPWM_C1 ;按照Udc=514v时表示为22000.
0002 0e40
29 0003 ae00! SPLK #2106,SVPWM_C2
0004 083a
30
31 ; SPLK #3211,SVPWM_C1 ;按照Udc=514v时表示为25000.
32 ; SPLK #1854,SVPWM_C2
33
34 ; SPLK #2675,SVPWM_C1 ;按照Udc=514v时表示为30000.
35 ; SPLK #1545,SVPWM_C2
36
37 ; SPLK #2450,SVPWM_C1 ;SVPWM_C1=sqrt(3/8)*Tpwm/Udc,按照Udc=514v时表示为32767(7FFFH)最大.
38 ; SPLK #1414,SVPWM_C2 ;SVPWM_C2=sqrt(1/8)*Tpwm/Udc,Tpwm=FA0H(半个PWM周期)
39 0005 ef00 RET
40 ;=====================================================================
41 0006 SVPWM:
42 ;=====================================================================
43 ;----------------------------------------------------------------
44 ;Name : 计算扇区。
45 ;Description: 根据《电力电子技术》浙大人的文章。
46 ;Para : input:Ualfa0,Ubeta0
47 ; output:SECTOR(扇区号)
48 ;Func : Calculate sector
49 ;Modify : 2004.6.18
50 ;---------------------------------------------------------------
51 0006 bf01 SPM 1
52 0007 be47 SETC SXM
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:49 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
SVPWM.asm PAGE 2
53 ;----------------------------------------
54 ;首先计算A,B,C
55 0008 bc04 LDP #DP_DATA
56 0009 7300! LT Ualfa0
57 000a ae00! SPLK #376CH,TEMP ;sqrt(3)/4=0.433=376CH(Q15)
000b 376c
58 000c 5400! MPY TEMP
59 000d 8d00! SPH TEMP ;TEMP=sqrt(3)/4*Ualfa0
60 000e 1000! LACC Ubeta0
61 000f be0a SFR
62 0010 be0a SFR
63 0011 be02 NEG
64 0012 9000! SACL TEMP1 ;TEMP1= -Ubeta0/4
65 ;----------------------------------------
66 0013 1000! LACC Ubeta0
67 0014 e304 BCND A1,GT
0015 001a'
68 0016 ae00! SPLK #0,A
0017 0000
69 0018 7980 B START_B
0019 001c'
70 001a A1:
71 001a ae00! SPLK #1,A
001b 0001
72
73 001c START_B: ;计算B
74 001c 1000! LACC TEMP1
75 001d 2000! ADD TEMP
76 001e e304 BCND B1,GT
001f 0024'
77 0020 ae00! SPLK #0,B
0021 0000
78 0022 7980 B START_C
0023 0026'
79 0024 B1:
80 0024 ae00! SPLK #2,B
0025 0002
81
82 0026 START_C: ;计算C
83 0026 1000! LACC TEMP1
84 0027 3000! SUB TEMP
85 0028 e304 BCND C1,GT
0029 002e'
86 002a ae00! SPLK #0,C
002b 0000
87 002c 7980 B CAL_S
002d 0030'
88 002e C1:
89 002e ae00! SPLK #4,C
002f 0004
90 ;----------------------------------------
91 0030 CAL_S:
92 0030 1000! LACC A
93 0031 2000! ADD B
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:49 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
SVPWM.asm PAGE 3
94 0032 2000! ADD C
95 0033 9000! SACL TEMP ;TEMP=A+2B+4C
96 0034 8b88 MAR *,AR0
97 0035 0000! LAR AR0,TEMP ;AR0=A+2B+4C
98 ;----------------------------------------
99 ;开始判断扇区
100 0036 7c01 SBRK #1 ;AR0=AR0-1
101 0037 7b90 BANZ SECTOR_AR0_2
0038 0044'
102 0039 1000! LACC Ualfa0 ;扇区II
103 003a e38c BCND SECTOR_2,GEQ
003b 0040'
104 003c ae00! SPLK #3,SECTOR
003d 0003
105 003e 7980 B START_CAL_T
003f 006c'
106 0040 SECTOR_2:
107 0040 ae00! SPLK #2,SECTOR
0041 0002
108 0042 7980 B START_CAL_T
0043 006c'
109 0044 SECTOR_AR0_2:
110 0044 7b90 BANZ SECTOR_AR0_3
0045 004a'
111 0046 ae00! SPLK #8,SECTOR ;扇区VI
0047 0008
112 0048 7980 B START_CAL_T
0049 006c'
113 004a SECTOR_AR0_3:
114 004a 7b90 BANZ SECTOR_AR0_4
004b 0050'
115 004c ae00! SPLK #1,SECTOR ;扇区I
004d 0001
116 004e 7980 B START_CAL_T
004f 006c'
117 0050 SECTOR_AR0_4:
118 0050 7b90 BANZ SECTOR_AR0_5
0051 0056'
119 0052 ae00! SPLK #5,SECTOR ;扇区IV
0053 0005
120 0054 7980 B START_CAL_T
0055 006c'
121 0056 SECTOR_AR0_5:
122 0056 7b90 BANZ SECTOR_AR0_6
0057 005c'
123 0058 ae00! SPLK #4,SECTOR ;扇区III
0059 0004
124 005a 7980 B START_CAL_T
005b 006c'
125 005c SECTOR_AR0_6:
126 005c 7b90 BANZ SECTOR_ERROR
005d 0069'
127 005e 1000! LACC Ualfa0 ;扇区V
128 005f e38c BCND SECTOR_6,GEQ
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:49 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
SVPWM.asm PAGE 4
0060 0065'
129 0061 ae00! SPLK #7,SECTOR
0062 0007
130 0063 7980 B START_CAL_T
0064 006c'
131 0065 SECTOR_6:
132 0065 ae00! SPLK #6,SECTOR
0066 0006
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -