📄 foc.lst
字号:
548 0202 7347- LT ELPI
549 0203 5404- MPY KC ;积分修正系数,Q12
550 0204 be03 PAC
551 0205 733a- LT EPIM
552 0206 5402- MPY KI ;积分系数,Q12
553 0207 be04 APAC
554 0208 2c3c- ADD XIM,12
555 0209 9c3c- SACH XIM,4 ;更新调节器积分累计量
556 ;-----------------------PARK反变换------------------------------------------------------------------------------
557 020a bf80 LACC #0
020b 0000
558 020c 7337- LT VMREF ;T=VMREF
TMS320C24xx COFF Assembler Version 7.02 Mon Dec 18 17:13:42 2006
Copyright (c) 1987-2002 Texas Instruments Incorporated
foc.asm PAGE 14
559 020d 540f- MPY SIN ;P=VMREF*SIN(TETA_E)
560 020e 7038- LTA VTREF ;ACC=P; T=VTREF
561 020f 5410- MPY COS ;P=VTREF*COS(TETA_E)
562 0210 500f- MPYA SIN ;ACC=P; P=VTREF*SIN(TETA_E)
563 0211 9c32- SACH VBET_REF,4 ;保存VBET_REF
564 0212 bf80 LACC #0
0213 0000
565 0214 7337- LT VMREF ;T=VMREF
566 0215 5110- MPYS COS ;ACC= -VTREF*SIN(TETA_E),
567 ;P=VMREF*COS(TETA_E)
568 0216 be04 APAC ;ACC= -VTREF*SIN(TETA_E)
569 ;+VMREF*COS(TETA_E)
570 0217 9c31- SACH VALF_REF,4 ;保存VALF_REF
571 ;----------------------- SVPWM----------------------------------------------------------------------------------
572 ;-----------------------根据式(3-47)计算扇区数SECTOR-------------------------------------------------------
573 0218 bf80 LACC #0 ;P清零
0219 0000
574 021a 9041- SACL P
575 021b 1032- LACC VBET_REF ;B0
576 021c e3cc BCND B0_NEG, LEQ ;B0≤0跳转
021d 0221'
577 021e bf80 LACC #1
021f 0001
578 0220 9041- SACL P ;否则P=1
579 0221 B0_NEG
580 0221 7331- LT VALF_REF ;计算B1
581 0222 dbb7 MPY #7095 ;乘 的Q12格式
582 0223 be03 PAC
583 0224 9c0b- SACH TMP,4
584 0225 100b- LACC TMP
585 0226 3032- SUB VBET_REF
586 0227 be0a SFR ;除2
587 0228 e3cc BCND B1_NEG,LEQ ;B1≤0跳转
0229 022d'
588 022a 1041- LACC P
589 022b b802 ADD #2
590 022c 9041- SACL P ;否则P+2
591 022d B1_NEG
592 022d 100b- LACC TMP ;计算B2
593 022e 2032- ADD VBET_REF
594 022f be0a SFR ;除2
595 0230 be02 NEG ;求补
596 0231 e3cc BCND B2_NEG,LEQ ;B2≤0跳转
0232 0236'
597 0233 1041- LACC P
598 0234 b804 ADD #4
599 0235 9041- SACL P ;否则P+4
600 0236 B2_NEG
601 0236 bf80 LACC #PSECTOR ;指向表头
0237 0000"
602 0238 2041- ADD P
603 0239 ba01 SUB #1
604 023a a644- TBLR SECTOR ;得到扇区数
605 ;-----------------------根据逆阵计算T1,T2---------------------------------------------------------------
TMS320C24xx COFF Assembler Version 7.02 Mon Dec 18 17:13:42 2006
Copyright (c) 1987-2002 Texas Instruments Incorporated
foc.asm PAGE 15
606 023b bf80 LACC #DEC_MS ;逆阵数据首地址
023c 0011-
607 023d 2244- ADD SECTOR,2
608 023e 900b- SACL TMP ;产生地址指针
609 023f 000b- LAR AR0,TMP ;指向逆阵表
610 0240 7331- LT VALF_REF ;Q13格式.
611 ;计算VALF_REF *M(1,1)+VBET_REF*M(1,2)
612 0241 54a0 MPY *+ ;M(1,1)* VALF_REF, Q11
613 0242 be03 PAC ;Q11格式
614 0243 7332- LT VBET_REF ;Q11
615 0244 54a0 MPY *+ ;M(1,2)* VBET_REF, Q11
616 0245 be04 APAC ;0.5*C1,Q11
617 0246 e38c BCND CMP1BIG0,GEQ ;如果大于0继续
0247 024a'
618 0248 bf80 LACC #0 ;否则0
0249 0000
619 024a CMP1BIG0
620 024a 980b- SACH TMP ;0.5*C1,Q11格式
621 024b 730b- LT TMP ;Q11格式
622 024c 5400- MPY T1_PERIODS ;Q0
623 024d be03 PAC ;Q0格式
624 024e 9829- SACH CMP_1 ;0.5*C1*TP,Q0格式
625 024f 7331- LT VALF_REF ;计算VALF_REF*M(2,1)+VBET_REF*M(2,2)
626 0250 54a0 MPY *+ ;M(2,1) VALF_REF,Q11
627 0251 be03 PAC ;Q11格式
628 0252 7332- LT VBET_REF ;Q13格式
629 0253 54a0 MPY *+ ;M(2,2) VBET_REF,Q11
630 0254 be04 APAC ;0.5*C2,Q11
631 0255 e38c BCND CMP2BIG0,GEQ ;如果大于0继续
0256 0259'
632 0257 bf80 LACC #0 ;否则0
0258 0000
633 0259 CMP2BIG0
634 0259 980b- SACH TMP ;0.5*C2,Q11格式
635 025a 730b- LT TMP ;Q11格式
636 025b 5400- MPY T1_PERIODS ;Q0
637 025c be03 PAC ;Q0格式
638 025d 982a- SACH CMP_2 ;0.5*C2*TP,Q0格式
639 025e bf80 LACC #1000 ;T1周期值
025f 03e8
640 0260 3029- SUB CMP_1
641 0261 302a- SUB CMP_2 ;Q0格式
642 0262 e38c BCND CMP0BIG0,GEQ ;如果大于0继续
0263 0266'
643 0264 bf80 LACC #0 ;否则0
0265 0000
644 0266 CMP0BIG0
645 0266 902b- SACL CMP_0
646 0267 1f2b- LACC CMP_0,15 ;相当于右移1位,除2
647 0268 982b- SACH CMP_0 ;0.25*C0*TP
648 0269 bf80 LACC #FIRST_ ;指向第一次比较匹配的比较寄存器地址表入口地址
026a 011e"
649 026b 2044- ADD SECTOR
650 026c a62c- TBLR FIRST_TOG ;查到第一次比较匹配的比较器地址
TMS320C24xx COFF Assembler Version 7.02 Mon Dec 18 17:13:42 2006
Copyright (c) 1987-2002 Texas Instruments Incorporated
foc.asm PAGE 16
651 026d 002c- LAR AR0,FIRST_TOG ;指向该地址
652 026e 102b- LACC CMP_0
653 026f 9080 SACL * ;CMP_0送入该比较器
654 0270 bf80 LACC #SECOND_ ;指向第二次比较匹配的比较寄存器地址表入口地址
0271 0124"
655 0272 2044- ADD SECTOR
656 0273 a62d- TBLR SEC_TOG ;查到第二次比较匹配的比较器地址
657 0274 002d- LAR AR0,SEC_TOG ;指向该地址
658 0275 102b- LACC CMP_0
659 0276 2029- ADD CMP_1 ;CMP_0+CMP_1
660 0277 9080 SACL * ;送入该比较器
661 0278 bf80 LACC #CMPR3
0279 7419
662 027a 302c- SUB FIRST_TOG
663 027b bf90 ADD #CMPR2
027c 7418
664 027d 302d- SUB SEC_TOG
665 027e bf90 ADD #CMPR1
027f 7417
666 0280 900b- SACL TMP ;计算第三次比较匹配的比较器地址
667 0281 000b- LAR AR0,TMP ;指向该地址
668 0282 102b- LACC CMP_0
669 0283 2029- ADD CMP_1
670 0284 202a- ADD CMP_2 ; CMP_0+CMP_1+CMP_2
671 0285 9080 SACL * ;送入该比较器
672 0286 7980 B REST
0287 00be'
673
674 ;--------------------------------AD采样------------------------------
675 0288 bce1 ADC_measure LDP #225
676 0289 ae21 SPLK #2000H,ADCTRL2 ;start conversion
028a 2000
677 028b 8b00 NOP
678 028c CONVERSION
679 028c 4321 BIT ADCTRL2 ,BIT12 ; Wait for SEQ1 Busy bit to
680 028d e100 BCND CONVERSION ,TC ; If TC=1, keep looping.
028e 028c'
681 028f be46 RSXM ;/*读取转换结果*/
682 0290 1a28 LACC RESULT0,10
683 0291 bc06 LDP #6
684 0292 9856- SACH UDC
685 0293 bce1 LDP #225
686 0294 1a29 LACC RESULT1,10
687 0295 bc06 LDP #6
688 0296 980c- SACH IA
689 0297 bce1 LDP #225
690 0298 1a2a LACC RESULT2,10
691 0299 bc06 LDP #6
692 029a 980d- SACH IB
693 029b bce1 LDP #225
694 029c 1a2b LACC RESULT3,10
695 029d bc06 LDP #6
696 029e 9854- SACH CTRL
697 029f bce1 LDP #225
TMS320C24xx COFF Assembler Version 7.02 Mon Dec 18 17:13:42 2006
Copyright (c) 1987-2002 Texas Instruments Incorporated
foc.asm PAGE 17
698 02a0 1a2c LACC RESULT4,10
699 02a1 bc06 LDP #6
700 02a2 9855- SACH TEMPER
701 02a3 be47 SSXM
702 02a4 bce1 LDP #225
703 02a5 ae21 SPLK #4000H ,ADCTRL2 ;/*停止转换*/
02a6 4000
704 02a7 ef00 RET
705 ;-----------------------数据区------------------------------------------------------------------------------
706 0000 .data
707 0000 PSECTOR
708 0000 0001 .word 1 ;扇区数
709 0001 0005 .word 5
710 0002 0000 .word 0
711 0003 0003 .word 3
712 0004 0002 .word 2
713 0005 0004 .word 4
714 0006 0000 SINTAB .word 0 ;256个SIN函数值,Q12格式
715 0007 0065 .word 101,201,301,401,501
0008 00c9
0009 012d
000a 0191
000b 01f5
716 000c 0259 .word 601,700,799,897,995
000d 02bc
000e 031f
000f 0381
0010 03e3
717 0011 0444 .word 1092,1189,1285,1380,1474
0012 04a5
0013 0505
0014 0564
0015 05c2
718 0016 061f .word 1567,1660,1751,1842,1931
0017 067c
0018 06d7
0019 0732
001a 078b
719 001b 07e3 .word 2019,2106,2191,2276,2359
001c 083a
001d 088f
001e 08e4
001f 0937
720 0020 0988 .word 2440,2520,2598,2675,2751
0021 09d8
0022 0a26
0023 0a73
0024 0abf
721 0025 0b08 .word 2824,2896,2967,3035,3102
0026 0b50
0027 0b97
0028 0bdb
0029 0c1e
722 002a 0c5e .word 3166,3229,3290,3349,3406
TMS320C24xx COFF Assembler Version 7.02 Mon Dec 18 17:13:42 2006
Copyright (c) 1987-2002 Texas Instruments Incorporated
foc.asm PAGE 18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -