From 854ea6f6c253d76a40c614e0df46cb128812d7c3 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Fri, 28 Nov 2025 18:25:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=88=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - логики дма (только по полному заполнению) - фильтров - расчетов действующих значений - параметров (сатурация, сделан параметр время нарастания пуска Tnt, добавлен параметр скважность пачки импульсов) --- .../Drivers/STM32_SIMULINK/stm32_matlab_dma.c | 66 +++++- MATLAB/app_wrapper/app_io.c | 8 +- MATLAB/upp_r2023.slx | Bin 88604 -> 87818 bytes UPP/AllLibs/MyLibs | 2 +- UPP/AllLibs/PeriphGeneral | 2 +- UPP/Core/Configs/mylibs_config.h | 12 +- UPP/Core/Configs/upp_config.h | 42 ++-- UPP/Core/Configs/upp_defs.h | 3 +- UPP/Core/PowerMonitor/adc_tools.c | 2 +- UPP/Core/PowerMonitor/power_monitor.c | 17 +- UPP/Core/PowerMonitor/power_monitor.h | 7 +- UPP/Core/Src/main.c | 1 + UPP/Core/Src/stm32f4xx_it.c | 11 +- UPP/Core/Src/tim.c | 2 +- UPP/Core/UPP/angle_control.c | 21 +- UPP/Core/UPP/angle_control.h | 2 +- UPP/Core/UPP/pwm_thyristors.c | 25 ++- UPP/Core/UPP/pwm_thyristors.h | 3 +- UPP/Core/UPP/upp_errors.c | 4 +- UPP/Core/UPP/upp_errors.h | 1 + UPP/Core/UPP/upp_io.c | 2 +- UPP/Core/UPP/upp_io.h | 5 +- UPP/Core/UPP/upp_main.c | 50 +++-- UPP/Core/UPP/upp_main.h | 2 + UPP/Core/UPP/upp_params.c | 210 ++++++++++++++---- UPP/Core/UPP/upp_params.h | 15 +- UPP/MDK-ARM/UPP.uvoptx | 113 +++------- UPP/MDK-ARM/UPP.uvprojx | 4 +- UPP/UPP.ioc | 2 +- 29 files changed, 419 insertions(+), 215 deletions(-) diff --git a/MATLAB/MCU_STM32_Matlab/Drivers/STM32_SIMULINK/stm32_matlab_dma.c b/MATLAB/MCU_STM32_Matlab/Drivers/STM32_SIMULINK/stm32_matlab_dma.c index 7a85299..f6bb6fd 100644 --- a/MATLAB/MCU_STM32_Matlab/Drivers/STM32_SIMULINK/stm32_matlab_dma.c +++ b/MATLAB/MCU_STM32_Matlab/Drivers/STM32_SIMULINK/stm32_matlab_dma.c @@ -95,16 +95,76 @@ void DMA_Sim_Transfer(DMA_TypeDef* DMAx, uint32_t stream) stream_sim->current_index++; - // Проверяем завершение передачи + // Определяем какой регистр использовать (LISR или HISR) в зависимости от потока + volatile uint32_t* lisr_reg = NULL; + volatile uint32_t* hisr_reg = NULL; + uint32_t tcif_mask = 0; + uint32_t htif_mask = 0; + + // Настраиваем маски флагов в зависимости от потока + if (DMAx == DMA1) { + lisr_reg = &DMA1->LISR; + hisr_reg = &DMA1->HISR; + } +#ifdef DMA2 + else if (DMAx == DMA2) { + lisr_reg = &DMA2->LISR; + hisr_reg = &DMA2->HISR; + } +#endif + + // Устанавливаем маски для конкретного потока + switch (stream) { + case 0: + case 4: + tcif_mask = DMA_FLAG_TCIF0_4; htif_mask = DMA_FLAG_HTIF0_4; break; + case 1: + case 5: + tcif_mask = DMA_FLAG_TCIF1_5; htif_mask = DMA_FLAG_HTIF1_5; break; + case 2: + case 6: + tcif_mask = DMA_FLAG_TCIF2_6; htif_mask = DMA_FLAG_HTIF2_6; break; + case 3: + case 7: + tcif_mask = DMA_FLAG_TCIF3_7; htif_mask = DMA_FLAG_HTIF3_7; break; + }; + + // Проверяем и выставляем флаги + if (stream_sim->current_index == stream_sim->buffer_size / 2) { + // Половинное заполнение - выставляем флаг HTIF + if (stream < 4) { + *lisr_reg |= htif_mask; // Потоки 0-3 в LISR + } + else { + *hisr_reg |= htif_mask; // Потоки 4-7 в HISR + } + + // Вызываем обработчик прерывания + //DMA_Call_IRQHandller(DMAx, stream); //todo + } + if (stream_sim->current_index >= stream_sim->buffer_size) { + // Полное заполнение - выставляем флаг TCIF + if (stream < 4) { + *lisr_reg |= tcif_mask; // Потоки 0-3 в LISR + } + else { + *hisr_reg |= tcif_mask; // Потоки 4-7 в HISR + } + stream_sim->transfer_complete = 1; + if (stream_sim->circular_mode) { stream_sim->current_index = 0; - } else { + // В циклическом режиме не сбрасываем флаги - они должны быть сброшены программно + } + else { stream_sim->transfer_enabled = 0; stream_sim->enabled = 0; - DMA_Call_IRQHandller(DMAx, stream); } + + // Вызываем обработчик прерывания + DMA_Call_IRQHandller(DMAx, stream); } } diff --git a/MATLAB/app_wrapper/app_io.c b/MATLAB/app_wrapper/app_io.c index fa2bff6..8a51993 100644 --- a/MATLAB/app_wrapper/app_io.c +++ b/MATLAB/app_wrapper/app_io.c @@ -84,6 +84,12 @@ void Write_PowerMonitor(real_T* Buffer, int ind_port) WriteOutputArray(upp.pm.measured.final.I[2], ind_port, nn++); WriteOutputArray(upp.pm.measured.final.Fmean, ind_port, nn++); } + + { //20-21 + WriteOutputArray(upp.pm.isr_cnt, ind_port, nn++); + WriteOutputArray(upp.pm.slow_cnt, ind_port, nn++); + } + } @@ -123,7 +129,7 @@ void app_readInputs(const real_T* Buffer) { MB_INTERNAL.param.angle.PID_Kp = ReadInputArray(1, 4) * 10000; MB_INTERNAL.param.angle.PID_Ki = ReadInputArray(1, 5) * 10000; MB_INTERNAL.param.angle.PID_Kd = ReadInputArray(1, 6) * 10000; - MB_INTERNAL.param.angle.PID_ExpAlpha = ReadInputArray(1, 7) * 65535; + MB_DATA.HoldRegs.pui_params.Tnt = ReadInputArray(1, 7) * 1000; MB_INTERNAL.param.nominal.U = ReadInputArray(1, 8) * 10; MB_INTERNAL.param.nominal.I = ReadInputArray(1, 9) * 10; diff --git a/MATLAB/upp_r2023.slx b/MATLAB/upp_r2023.slx index 3864d757f655c396b7ba758f2a934ed07b1dbcd8..1e5c793a744ed09f297307ea64b9f487d114dce4 100644 GIT binary patch delta 76341 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%0AviFm9l2yAuw*o#MvW<2eBuMsYSy8UORDp zx_+r$U1zg~tSzK*)6CNwZasV09VO^bQ;>|-{m~ME!3l$4MA%85WHrKh09Y?mS%w}c z(WUF@Avv1lX7#+SvW5vn%l5ysx8NII%i!;1-M6quq;l-Wk<=%vuzxHXj>zaN0Ln2! z?){EcwA$hCjEkf$eo$+-+o&6czaMZulSc+U1%eXpx0V3kti%!yu#45`opLP>#571~ zUnvm=Dhlu~mn$OY3c*aMe6r~F(jJY#A%|B59?<}`bRgs_`)@Bs$rZ?PR9@}WL()sM zjO3JT;Gs{{F37j2%Ibccja7#`igHV-i|U2-QGioy2i4eabZTZY#0EOg%(g}82mKFK zlo0M$z~nk&R<(( z^`y;bHs(l6kBnzNy+}~rnP@b+ro6`9d9&h6uP35xUIbDv>g9h|0?Pq@?PAF(|a3)I!{!ip`Ay zij%*Fh-DdqZ(Z-aM>J|vs#QmFjZ!zT+C&kvY>F6&o)$@o502*g!ha8`c|Ea_folnF z+(fy$1kKLA+s_Y%?W*1+A)LvZ#Qf{M@Xi+tl48h|!dR%%1?o)}H4`pv6o}-@19`M? zW2$@i=P}fvdZg@bT8i)yS4MA6LsZdX?F$3OqxAFn8)OQMD2Br zdSh|jvR2_daE|EAcXyUhFs1b5YsLQ#)F|(p0t(H0d^K(S6Ugzz8-Ff|w0@a_v$ zMvt(8U#4-L$n-CiRLt!8*Oerm6$$NymCt|A=n!EYukN#-f1jS7=~KiN^ZCpNlc(&@ zATj-oEA|?u?j}u-r$b+u<}}}2DaeBIsW7gRWo-p8{A|= zb$C#g-r^FgThw%AF2(c!N!fKsI)9nKy$Gnfro5Ddk-17p@hwes>$)ldmt}0!sNdiq zMQo%`!Vl9hw(@K`yz?C5P2hA>qHWi3NAq|7+_(r|M3!8s0;G1Ap{LK~_^H!Xn0wv< z3OvM?`6_Qou&TeC3607HJAkMb_l`i?trna$6^dZX5G zoPnCJJ(})549OR?b^FF~7j2GxjB|-MiF#T%<{ZRsPg3YNMhEhPwpPIdr$d1Y6Bd9h zq)MR!O9GPn`Vfpo^0UK5%;rL3)U>MOB;o$b8Io+C_x0``lE#7I()(DF6cK=*pbP;M8PFx9{_q^L2e?y)r2?rry#{p?5W~oB{*-b}t5q)U zoCCN)HZ{lYwoSVigPN_gf={Pnd8uT)27C?qoj8OJ>|Jpf=Tg9x7eyCwm^%n3Aw}kY zIbldc!yuA?D;o>e0Xo}b7YCaFJ_KX2ff5Zb(*G1skI|Whe(8e@2xhoJ5{7!>hNevj zXfLZRQlFhI$AB$3Nn(OKD5Z*}g;Ns9WCGBgU`czYzXMsB{xqvYgAofGwde%&*eU2` z0nJDhWg)9XTfl*mipUA%3sj^N1=o%smujipr)zt0?Fx~xNH71Dy@hsI{4%+58Zn+3 z#0@C^qP)gpBvxU!lj;1@5P|0u&(!$?tc?)VIiNS;aa9P!S8?@rf&}Sr5e20X{|pEf zz~*XIRq_`JZ@tjxT5Mi>9`0$YVeu>%=8rr9X8f4#rRX|e{>41W(w8svAW=;EtlLmT ziS!SyZQiUe6|%HK7+*6uoEo~!@?zg+j((5NgZC=5pA~tsH~8fR4AM7)+ToHuA^5Iq zxkW2mYO>(@M~^)gsX->?{AQxJTkWT=Lom>FzP*7O6$C#KbK0t5oYilw0@gwOdCM`@ERTZ zs#jqc<17QgMSKSKo&=rv*R8x9W4-rShR@matp5 zwh_Yug6}nFuA>Nekzr3H$6tW%hg07PC8Zy0pnDJoC5$nxP!d6_#@A3<2hN3T{43Ej z_ZA*n9WtADvuL1@UyeMla0x`zu22)iJJE;0@66r5jlEMxzq9I~^Dz~s-N(bXFry$c zC*k@kCR2yNYGJr1+Y_f?M#4GGMJ;a&v?6`@Il;tbfnQ6J@d(HUm|zhT_H>3n$^>k30kJ& z%f8gMb{_pY@R8RaF@sa7eeJwCa2#`4TldGv9ztqPa8dPV`6>CU;@uPO=xYTaHtSYF?1yOmz1q=%||!=R|suR_^^{` z;Ss{2)XpWbyiaeAA^wgy>vN%m;kfRQ+AA+{>q2Ux!#+$l#{Er(8iC`u?novA*ZK{w z)Gws=`A}U)MB_Wtft9ZH3;wRJrhKtuYv7%k1B#y^(7%Q6%RPm|CC%NI>Acep@3upx z5P*70AdoHFZ0||;c1$ZrT#@|uYt9<32MLP>bw@+sNB%4E^nZ8CDb}>iOL;f=f(II1345 zNbKl}^JtzkE?eUOz!hrGA;a)p?kjtnqeCRtlUno zd$41n($b_bzU)KG41tkwz#NSMF?CF*GUMmeHN-(cy^=v`PSGf&KZE8(isOTW@50Ha zcnFNKq6Pn{2Vr*OGKy8#9BSMj@AUP{9XQq3t8eg98mlZi+`fZuSoWn8k{Yurr&sb$RaDy$do-9;KM2en=B7TJ*CB^^Zgk z)}c6)D0_4Irx1V7PP8FOr|bsu0;gzH!%d-#K1jp!$a0uCsG{H1 zfIz4lxxwPgA};Blu|xMqxV2x6EbR+&+Tb(wkFlc*xsATU-$zS(-G)1VlN zwkVn5O*MgTKE$h;(IV=yBqfx%+i?*NOz`-mJ)*Bf;Y&1%iKerBW$6TLW`XYq-xE z99*WfSxX%d=uyGjt-Rau{{0Fi0x2{LM7c8e0v@JqzDxi+dZ1JUb(E#j=+)?*4c3Sk zRbNefNUJ#^&t41<;taakaI-ps%|XndN&7Wz5W3RHh6Sp6%G^0CxTi@WTgO3*(pHRi zc>0u0O9!T&(p0|;&M-k+{jLt$A{)B`fwQ7LyT;|(6-X0h52%>LJ6hq*K53xY!(17F z>eU8-;~twTl`HB{<-0ZP(ae=x@MMMd$Jqd-iRudkHv^kv$6)&@s$E#n9k++sR93bY z66-XJ!{Rc`23e?eI9PY!A4~T&2^D@#<7-3(xf3lcKLUR&7KLf=cmGv!Z<7dr<*-O> z*|_Z3#rs>z3%Fy7J&gJO^eIF(hajRJM&Dto+mkDf;*x$;^renS-g5wJ5@v+l!R2Rg zPrpz8W=lRuzZWsxR21BCYrh{U74;$R(Ibl?H-o#1im-vp?T%yc zuP5Lb7U9jZbs((s1Gf+V&2{1LoBarM)a;iW(N_Rw0=N!#ZP5x>$b(f+@aHtclAgim z(8PETRUfkGjXrnAp1kwzFJyL3>(7vMm?bIAY(~I5j_(`Mz_pvjpC3Ol&eUMt3#!F* z9}@Y6pyM!cy9VmcHJE6Doymu&0j(k8j{`q6OBPmusRLakq}ew0hPXGc09brN7*ci6 ziooOr0q}94pg+0eORM>P>$#ZuugF>nBG5tZ`3&)D@6@vb)tjc)M3ApixqEmF+wnY9 z2D8O94Cb#05(k%_gI;{8NIPZ5)I8(Y&pc668jq~Bq-Uj6qItFx+D*~^7FcvGaYc*4 z`k)2J4&mhn*FVE8N?BIHX}m)K;vafQ$#2@j0zm3);-ZzU_RTv=tqy0;l4FY^vRV=v zpdFoUj#8qz*Q{+YHREp^XhXvXW*3U*Qt46m+kbbl7I-7)Q8FtG6C2;7xtH#BJ_1id zLer;OI9=pn$`4Gh@cRDsB60q=gJg86>dN>taaW{b5g0Fbcph?ivV|~J2B+Q0I*8-r z0@7qhchjrT2$AYmL-0BTO zros_HpkD8#bDfyZeVnXoEp<=R{TlYrIVxn$*c$n#WJr_pFMYWKynJPXbS2gx&M0M* zcMRKLqz|D>1dfk>kd=N2rie+pTG6987~q7JYT3nLJ#UBP0X(L!5>uoPQ7JgV(;uZ`y{ArL0|U%g zo5B+?KKw`b{u~epSJgu61$+0a|6#H~;+Schf=x%t#nepPes~q8BF0x${-3VCGOCVd z+jehUg1bYojaz~QcL?t8!5xB26WrZ{ySuxS5S#!zIKc@T+#lzBcf51YtzSJyt+A@B zy1IK*)tYO*4=sY2fMKG*>{64}f5S`n(MI^WPQ*tF5{EyHSDD@o*SB`ixwNvicHT_# z^n7=ebKwApj84Dp`~gqt7h4fTk(yb6eIuNY{HAtzu3+$g0DNUiV2ig?oYwJ=>G%OE zL6NJmr=DfA`V5z!;*ofLvER32v^DUT9vmhX8=gsqazs|iiw~c?k2OcBNP?GJTq%u% zcY0tj`tt1#t}|}x?|T-?^1A?nwt!FwVt<@w-g!=JL^nkMbj%iOjUcrctr?-lU&(w!{cxsEa@z z`ji#;QR9r}g^tMc>p|wFW^7HhU++d)3T*TvG93@VY@D00IhPeIh}q4Bde~J)AwJE{ zG~rDBnR89SJ{vhYEh(>8K36J zVhAutG%3S95|FcMC&igYAc%YYv7j|f2c>Hi0NCSMjn&2+!GX~@cB{A*P8Bq@IO6c+ z*DB+UC7G}*o%=T$Z+7~?)ht{zxWDh+;oihKM>W1f40A}MyvD`kLSWp)D%BbpHw#~y zX!lm810p&JL_A%)lD8T9um#&VY)p6(j6{@nLTsIFf)~nsF>U6?IQ|fWX;ftL8&NZS zzHJc4*>PdP`q@hSxcx?37znctK4I5=cP0wWO(cp6#reEtqga$2CNS0SB^GTOH6t~F zWKl&jO~I*l6tOYJ>NdeBKgv8(b%Hxy6K?yo39PLq4~q@@)BO#`+st-V%pbDGD}yj) ze=-k2kP?r%D+rjpfzC+r{}S>kB2MqkJHU-7q>&lpR0E~j&4Aai_LXVQN z1K^a*ji_pAqaN+xy~By8yHT`bOo6-qV3_C_0b;zB9uQ_rfoWy>p;@>jT-AzvVjFGt zfR3`e5$Bz~R+P3iN-4j3YnYHQU2y`ijd{2n4fvdjYJotNdxb7GMS8Ib! z=^&>z zG>B5eur!t{3jczQzEW;SlH7WS|F{D;oZ2g>YjV8MBPE!Yw<}q{O_<-5Il*pzbQMHA zJNeXy55WwL2|R0DmWDz4=+O1?#D~`_@Am*qFz%O}O(cd{^Kc6oN`FF=?%gxEG{8Gq z3bn^%fSp5|rf-I!!h9rQsqhi^4+o3pj$%RiCn)`U_)-1o&^F!o@vbPuSnqR}#C#ME zHSId{zZeiP9BXD~nOnhxiPs}zdHLn?etDV@07)?i2VfzG*6Lyf9GP9`ZQ|t1XW}5=@&~ls6xS-z%zu8F z0Qp1}oxjVLwS!L^2n!Sdn}NzH8tu7u417Kt4kCGW9oA&Q7MEO??Zf%4K$ifrH&)G0 zZ)rcVpCg&Oh;Wi@V{+kDQsbVvwnY_qy9b1X(@e_OtCzqp4S;Q`0+89Y)YIPw%xO zu8NDgy*doW(0=I%@`f%iWkSgxJ4Q5^%uwv z1O*V0y*UDlU?t8db(nST`3=RY$Pn%Id@XU8G3GPt%uM>945Woa;?r@tbdRFJ9fz>r z343q1I&Ob#d7K(`0sObX9DRb+U%6K?R3IH@K-*@cUM({qwtE(?`6QJt&#(70)iHkw z@-dW4L3y#pdSKyUq|~I_)mOyBXB6FU|Ky;5Ho3it1{HG;b9cV`w!RkT~UMwIgTfgl77E>h8lG4np?i0b{& zpG?#vmt+Ke&31j4&_4V;bgx!@FUY|NyQw~ah^Dx=uO|q+*+tBtU-!2k}z9-r|o3U`M0ai`|;h_N+Q z79;9YW%2SSo6UFy^81>dFYKYj_$bj268mm>Za_No#)OQq2-)US(<)JQh7d(k zU7E;#b+=_`4Rg(fcdj~OH%2w}!{m*Bv};wyqn{i)DOCbXJnh|?N-wqHpx=;9?>L&) zsBXZ3W*_Yoc0$2d`#`-iIoP+6sAl_j@xS`LEo~g0^hAT?=h#^}XmWM>)d|;|s^3iq zzrmoE87`>+Qm+LpY!M-v5<1|7smTF;xqglojZf!Llzhb|HQ93b3KaAv_pd~x5;l{9 zCeoB|T3&Vy9|-$y1_XM-DLg+Yd}cv`D%Ke;BrQT%Cx0ZHmbQO@ccFI4#%>|=F2Eas z?!t`7z=-GKds=?b%e!>Qz*nGIjvxrmrDKdk9Lp>Q+~JDH=$4betO{)*GZs&C-w56A zevkGzT_enDMeVWJY+<|!na?O3AA(qdm+Ui7SZ$n03D>G^nvrPWSP65M1x4Idq3dge zkm~^x=~Ln|!RU(O&F}5u^@^jPN8H0I+aMG>cqf-*en+-pu~%V`_weQ*riG?ow2Jyc za23&jQ^n5S{4ini0&c!@kcQ&h`-Lsxmv)Mi!N-o(3Q11TQM8-qDfBaJU|=a1R@3@! zx=kOWTNn2xbR&t0h7;cwb&*bNcafjZ5Z`y4y8~uSLU!mZ;VubPK`@1bJSW&ZIg^2_ zy-&ZdLH;H#ID?sJd?1CS+tJ3>y#5ic<>MeQez!I^t`Z(IBiOF|tfy7%n{ur0^r835 zPO;&hU95-}^$`gdcFsxM;# z@@%_vsADS+CjBBNTh$Ws9(3CqFIxc_K&!g?aGjlg>u-;y*8uMfq)fW-#!@nC6$zY8 z<9?k-nB$QCS(hdST0^|xj#|@fJhmukUfmn`FKx;NG3OG=x5b9s=-^ei3JfZ;`*h@7CF1r z+{=EcxxOmoS7a;sTMbt`Uh();+%7cO!P|9#lLgT`djV_uu0k z-0?wSjVo6hrrn!K$L}$fRKM_aSysmF;mw{!TB`TIX`o=ntYAYGF`vw!Qit}zIC*oR z*o^6V6HiEQ_4uJNDiu~H7qnrJBl1eEzxBg}r<`wUUEaddZ`SBp~P{Q5K47u$*d!6BmI z>pm-*vLYS1eP9zhF>hn`QfrH?jSHWOa%P6q#hrBqfE$n$;<0R9+!zjQ9oAZoTSOo6 z$@bJuKF$8YBtz=`@P<5#0t4>2%Twf}ojHfs2R#%qXIQY_b_g zA9c;wOK~pdN!_3yHP|Hp7=2DoUMZjZ;iiim%)W$#>XzRhnHWd;SEPZry||+B{|Y4ngHP# z{*pPQa@W|9gt4-ui28F~?0T=SJ*7B~f3gXljWwgY*Kb#t(c`{Vz;NVpzuA&GL11{I z1W)OREZtH5{I*k3?&)0g!`m7bFSiG*r!|7f2JSDTPTZd*YkA(*V|^(097UEN?3L~? z`#Q~`=|Z`tKe7y}MVvQyz~JST_CdtI$urcTI}nh^7^ooJVi05mP@wSKa|O{)$dwh? zIRP>n^Gbb{HT{`VKpkcq)6EIcls9V-e!;8~X4ZxEzHv^aAn)w7E~s=a|L8j!>Cj)Y z71yrTlkeY5lpg0WG|Yo@V=>AKtLUQ-!~BTXm1=Y3Pd;7XMZGsOSx9<56YpV_P*Uv2 zxMB8sB$fhS4yK{X@umLFDLvGsay){6A(|??S`%2tIV)j%00P%)->^Sx2pPO{kyn_Q zB_dBW-aw9MQ$_W$kU_QHtG*SnEz5)cHojR~wCc~)Xy}fsAzy2y)7voqp-_n0QHAs7 zJ2jW_)n{bMl4E;r(W@(|u2cL+eC**DGf~lZzBDk;8qRRbpDJNL7QRc7ygCd*%a_jW z7;!tnSe`vs900abxbSvZf){(Tgt`oIEx>ZGYRjK24(HT6UpdBa?KEa958 z2zx-|nIR&=7~l@k@S z`gOV+UK}0~RxjV{lDs%4wFfNnYMM)XlC=CJNZka!J6@>`R;OyUhLu)B!36E4!IfVrW=MY zZz2PlM*yqlxg{gYtv-#>wV}{qKf=#EeK!|1L8pu893ik1O{p8V2-j6Kays38foK(^ zR~Nk`E$Gk2I3JDEzVZ1PzSo)m$T}c=JNK^b9wSO{Wm09~0IO3l9H9r&@=dSvAy&UX z_(UjRRh~95sE2FdDLrM&>+!yN_~s`)Z8BhA%Nnh#C!It zor7N6c8H)GE~rJX3pFwN&X;+*sKn~i>^I$_D(a3B@D9EaT=&^No&Y=0z#av=cMUR6 z-5DeIwVVARhGY-a$+MpqdoHHxpXkjLH+kE!|4fy%Q_}F`pgI2dgfeOsZHcEVYYl+G zf{m$09;MWpdFXRMEuE6MAk-e^t(!X$t8paE*y;;eV)-69)l!Cshx?U0@Q7J{=#N3( zp)NAwwqA+RDq+u?YR%TRg#9y-QJBrg5AWSBD=lv-KHAygnsia}2gb zr2gCGhkY>K@8`}sG;ekd4#5?4Y8|)$(MPMpiJ3 zdqn54QVmydPrYuxH5!C%rxFm!?hGEu;t{JjDpQ1dQSJD(>-?5dc7`qHlQITq_vt-j zb0~y?i^t=OG&UpM%yvWW8RX^;z0{hNVH;(r)szy~oLqcrccIo@pHBih6n@!>I2;iOqP- zI%dgE3>DJki7y$zeNB(P+&}TQrE4qhb7d^R|jtu3oGr(P_MO&xJqi z-wNVCc_3bi=F?J(4Myw>!M$_!K@EBc_(MWc9+Y>ARwC3ysi>|hhniK zEN_?y_?Ii1=FvU6IdK2V#wftMsQmx?yaU@2`nhuGwdz7rcfUk@;=$1LOP&= za@D1B)eN9XX&+M@vz`L)av4y~@x4f)Fqq>UXiA0|h}yyd4JGQ&A#!G7lG0=6kDkiUW|}9hndNKj`4;|IE-o*$+!E?n#PSPJ z#BG=8_3-BIEc@DAhYXD)H=bw8DqQxBxJf2ECnza6LAVSYg+qf`c0vaS%p_q&pvVZY zFW=#lvI!Qujx&Ld)jpPKn zahWewyN2R6Ym0`26j>3rXVAp{jw71Lg@yDcqE~j>!@3;s(D zDOynFf(3D$hTpROe4*bK4Ph_bQ+Al$#aI1>+o2$AX`m(uJC^68YXS`^BsY>B_|*`( zZy_(P`a3@3D__Uk(}1H{JtF%XEFj^68ex`~72h$z;-*NlrmRURr2Mcv$_Oy;@Uu~~;s^{>K=r%4cbe_181l@O>8Qccf7ebQBUL4dTe;|Z z6>uM<_*b)`~uTA@YqC(0Cqe0H7vZ^`tzfsmhT<|G%1^rF_9#QLeD*Qj}S zHA@_pbcRXncI)b?MsM$5i}kNLFPsMUp5FKoFhFhpdjYSWFe6%ougB`*Wn|r2{&Kb$ z&+|Pz3hv*8&{mgywd;W>w zpaWbtD+GTBC|+RfyS!2Wd!`$}$F2AIP)f+p9`$^Y+v#o|%{R%{9*3s`e39Kf^o_u! z8l}YE5%x73lLr)XuOOB1gfQBHLnL3~p9hg~gnKa+v|10)3PfsBXC_-F4WQ2xNMihU z8eC%bc-#yEf;PXMmkKePuV{ggdS8zJ}2npPS))?0K>x$ zl-NJ_ILvCUM(@gSNo%zV`F3D+f1Ss;_$iX9EMlSBNM7O!Te?V%?_}k1wUzMP`w?ty zw!?Y(2C@{9&ks5qlnz|{!k3wa=YsXzdYKHGdijI zvMs+q-}ibDd}99imMrp;A*ST=jdenwsj$B`Gd_*s%l)0ZvQPL((zDgAMVR-eQhc=K zLPY@T)95OEyf86Y`ykx?TrGSQZIP5@;?eY?R(*ZHdPSk)1L*RT#GO2ouSq$&2P#&4 zQ)Kb?p9LlIHwTIGW(*BaKD6EhJ)e!B5+D4P;fk_BS4dUhV$FVwL^EaMoSzh7uk?VS zqIxkgY5em~>tO$+kYBe?i|XTX8JVIet5U1M&3z(z&ut08@^}?c5H#qNX4Ys&s;yN!d~r{~c(OvM%7e&BJuof~@1NLTVxs+p zbdiN*Uz|~Wux7@h^m?C}TRP+PLFc$r-Dc4-Bspr;E&qOW=2e2qE~rKeBCNuWX~k-uvyL6P#J9u%C;-E zl)jAJJzZ@(H*hQSGGO4@d+L-~wXCd50W1>U1X?pI1`b}`FM!$-_cvxD_b)N zj3jfiQ*zW~DA(G^BP)?iFuairy)S_&iHslR$F3{ty%!%g>7@CtSd z0Sk}SLz$E=7~?%&T`9x_8K$T~2?)z5dCA0)yefE;_XUJMJsdx;T8A}Z`l(m%~&Hq6|EGWsLI)^TcuG2FQU=&7!ohh ziY>cQ;E#K=EvHlpYxeHl%{y7LfFQ$Wcq16 z3PTXBm}^=Rl>(LBS@lpTYgEjq4`$lm%SoBOpjiZ4dLB+&8KK9Dm2|<>{&tIO4w&Oz zH_wI`OxohXBtcEt&ne*KCHl4*{EVwilj#|*BBsZ(nZCR>n9|?m-tmA4qZV-o=xVU1 zpoUZamXT&+-;nuToQ=StA=M~$>FSc6>3M)l$3@HD@|q~aqaPZ#SyiT)bFGFb#jWo3 z&TmRRvjfjIzoBtSg4_2(BoOK{HKjnkYZig3$}wQLu5o9jk4G%B%-tLnQ=-f6s`UmE#hBpPj}J0WhQx7+wQCA#Wn~hGt+>sM1hb&GK zSQ6N>CMYMVT1L}ocy?gpVXHSx*D!TUlXko~wAe87Ce8jXvJ7c6+cqg(3`M&$x5`I8p9#-l4gcz*1{F%3sdh``b} zOaGc6Y>3LOv#nZNRQ*vCiF!FByF@BkKji)SSg6HUS59@5a6`X*01iB-Dg`H1y96t| zskWnLlB`lNrq>9s=QLMS91^GX-offh+l!xT(Ldw$H4IMiw1z{(Glj#`XH;mqOyU`* z8Tzb#n+TbZFK+j($3F{7)W3@YML1fn5qI5^)0!uWrpzQ${M_sRzLz7k=i<%)9@aEBMl5)SJJpTYkbWLY%!EK>fNY2LE14WdDvs{rx<7}>Po60ZI z%1A9H0hO2FU@HHyHBW}cN3IDnL|YCvkxrI zuY)gp5!pY=uOtWNEtaZ(^L&c@U3x<<%Vtsk(UAw=hSCQP=Myc9A(G~DMsMnlneE^Z z0u}rhRg^9+uP%s@oEw1 z{+7NseV%O62KxH`E??Wy!}hH9{V+ay{VZo59PIs-QfP}?=-144AbPNbO3s8jQJziOQai}}FLm|`2!=t3uAvf!Y8 zH)xNJohMJ@$PNuL&w#ad(b1+cuHwVs8nMAu2HN!67BFJ&b;Wrj;Qj7erG40J@`yH=BCX=n7LRfsK-Gd+V1Ve0C)WI!1mHX zq42Wg#y^=25KjbHwhph+_}38_m25pgo=-KT;4il%qk2iu$w~b7wH2vRn>#j*6V)H4 zl)Msq0p<>^mYWA7(9I6!NMbYTd6xOg(YY@QRJ*`>6Pmr*zPa_Q(e{oG>D&OM+v zuo2nNzi}e9I|m+s7Dha=qn;e8{P53$hxJ)$C~c%my^9_O>Mynkiiq@o-Ee!>NtbeG z!S^l~l03{Hi2HoD=3hu``(#EC=QR=9@A@+kz;PUIova)BR{zPzvwhmL=LmkZg|Cr9 zw?E%L3yMR6>EmlE+!DYOzhM(>%jT7y{Jg{!ySZF=f!=l z(d{o3?5VFN*N=-n9uH)LxOQ4nBs_;mlI8TBZs4TG>Gp#SMMqc2b4`8XuFr5k<0}6I z-cS40O{n<_HIL%g-pHJGAo@}e`mDkj#y@^CLnyV1Vj4BVxr=W( zxb>xI0g$&Q$tq{@Gj+!^F{9vAZ+@b zvOZi*(t!+r(sL);J(bJTP)#8R$YF2yK&@Y>QPkyWJo&!m z@5?#Vkrs}IQyf3HInJ&9{o;f#T=65E-`+2(}zHEjMa-}i5JCQEeOU2 z{I-zGG0nZ-q0(PCMZ{9{*4U}ttY1Y_%Qb@+#r7>KQxtX=*gNXi({$dA_5Pv&Mcz%X zNoU?D(O>7CGfT`pj9)ugN{Y{H-=BofgrLXH-wE;p6a6hn%7*0@H`(N)|8U)G5Pkw7 zt3A1pE;>#;ed8J1hgv9Ntd_b9tw4k0Zar%89>{NAlGf0F$GUx3q{6q=r+qdHy?@z0 zS+t5A{Ttz>bg+5aQ2S(HDSq5=>F_J)%P^Qvjm$-27yJi2K;Nfvg=?9l&)s`a3QA_Vz@sv|Jn%g*s zc5*0{sEn?yD)dY;q8IcVn>>s7mt34#TB~<;ow8vx2^HtBs}v{>vR0zn&Dk%;L>6>h zQ%^X7XYNi1L4` zUl~cSg*hb6Ng2#ZmTVq1$bkg{-5r8JuZI6F|5%t6gOa|u5T!wt!5pwVE&m2dryPiB z%qn0;SoHRPYF$)bYxz3=0lohMrrrO5H>$57qW2%5^Dofa{|_ip1rw0{FICC^)9~8h zzs!i!E>*$!WdF*x^-r>`|9gLPhyQpJQG50FABy|`HOsmAmlv zYzq9pFDR1M0?^VvX@D`w{yz`w_2H5Hm#Z-Za9V-}SPIq$37od10hWPHM+PTV1QDkR zYl3-TGf@5kNt$4av};W;F>EC&IIR;6Oq|A|1!jcd#Yof90!zdAV5b#mff@dX^E9mm z#)FZ-P21A~Gm-r#LLLMn_^-B2h{0)2q+r4{Y3Vxlfevtl`FFlc0Ut(agG#j1QLH_@%PF)a)@W1SmMAMFR Vz;DqhUnip-G6)o|@UN-%{{XT@49oxk delta 77175 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

$@w0*=lW_g%7oTRIb8kkT5Dem(%pB`F`hu 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

k7mojM@KScSC!Z1`B*YZdtK#=))A17ej}-X1 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

>f&mipcKjwB2t%rWMSqW?3xP=`t-is zEGs&5qC#id;RpL_AR?2fKVh7*Y0t1Aa*seYqN3CBv671&%s4*06dJ)P_MVk`2x~V` zg-WmXrY)X`*;cG! z0fQ}PnhJ1#Is!_1S2E8mA;n?2Q9fKd;8Y!-ox3kQ63C|Z8yuRHCh#T0+>XC^weL}) zi8}Zl>WO|cg1(%`h3;koVltvGB;#L8wO_0j0}0}atWRU0z!;}bLA^y=T^SCZ{0&1- zJRr_L5eDB+-$-w%UyU3>s-H*nElC{F8alkw*YgFhQ#I~mE&G0J&@@hKi&~^5fxm$V zgwF;DV$OUK+Ind~%|TOs;E%ugDnFr29xoDCrA6iGb_!qzy8nHJfHy*uy4?#W4-~qC zRkwN9>>LP%S0b2`X6-)yec&sEdcG8Ji)mhMoLAj<&C54<&-F^|@8t zjqnG}CX5ksT+LT$i?$#Ect)Np4c`+OxnOj;<}e6*%)w2Lhh?VfOWocXczq~Au%5Us zO#0ph*%KO(sd$B}?kpTW;K3o`z+>L|&b)&(DlhI3ypX^xfwM^V_N~g z3~j=%dci;T^L*9kJJ?(~O!{*DC2%h&wIxh*hP5SZcxAJ5Ll}<83(F1F^}_ZBl&g4} zKX}48*M17z@)^=^_J{O?U0x2b{7m>g?aYq3=Dr$snluhd4j5oQ#W&+!xmcjBYk~d$ z5I%^khy1>tQWDNi^$2kd=!O%5?<$^cg1;4sGrW2@!DDYvX)sOh#|ik z{&W=mf}ko=68~o0j+1ypcnACZLO9FWoDxS6`Ru@aWka&FO#Vs${to|)C;fcnMX`=> z7A9dpWD9@TdEr%3Iz8Q)R#UnWB$GqG-XX#tZSoRG{7`tX9Pvi+s-Gv|j~o9&YE3Flfj@k8SYbMJiuBc$ zcw`U1X+OOVFOhizUyQ!ic#@pDcW)yriGCJtKy{Tz&zhc=k3LB{>?IokU=%;^(Nu3` zJSF5N&(=+n3%Zi5J$ag83jNyBjJW76e8_9*Y&9X8b`1|9z>WBuR`Av>;h8?<8FLEs z{$cs)756Us)gciTi@cq<8UN;u>Kg~iqgR|Cf>jhb-n?e2zuFWUL8jS~1*%cKOvB?KZBF#A&h0Cvv6|Eu$Qp?_ekgc~o1rtv5Mz=ZVw zJ-i^Ze~Cu^A*%6_zYu@}076CoZ1di^M*tyzZdFAl-``yen;lR005N#h0OB>K$d{OPmn`pARV-#9{^$i4WxqbtGrLn z5d2SPm=JFjpg2^4|Njc8kS&#WQY+H8M5}kw$@d3E@L#0M0RRY|Do_eKCI|ols=YrP z-}kca(B;AZBTXX$Q6Zd4z>km;B;W_Me{J8H-djb;e=xj6nm`fd^iTjGI1T{7`4{m& z$Iehd0ue4`;>)`|-#a-}4k|=L4JZjkj}FOJ14={LV?p-SfV4#a+0X?G02opL0C@jn z{BJMZI6#OI*88}m)PWy~{@+aj008cP;ZzBM5I=k%2ok0Kem@)pAT8=ZDJTv>$X|7! z9F(RgL|y|(L-?Qdf_FRKcXGo2wikoMYXF(V{y#4DyGQ+R`*$P};=uoZ{xz!-5R2%4 p-B}#~0Q6rxW)eV1ttb!=M@bI${muDjuLBvN4-o*6Q2M8%{{vV3i3b1x diff --git a/UPP/AllLibs/MyLibs b/UPP/AllLibs/MyLibs index 513f56f..30fdbc3 160000 --- a/UPP/AllLibs/MyLibs +++ b/UPP/AllLibs/MyLibs @@ -1 +1 @@ -Subproject commit 513f56fe7dbf0fa8e6a075c22e138c908a01d33f +Subproject commit 30fdbc35ddb1a72a5102aece8863921af0e4078d diff --git a/UPP/AllLibs/PeriphGeneral b/UPP/AllLibs/PeriphGeneral index 11c00f1..c0733a1 160000 --- a/UPP/AllLibs/PeriphGeneral +++ b/UPP/AllLibs/PeriphGeneral @@ -1 +1 @@ -Subproject commit 11c00f1e0c94ebd2cae77e17453005e32dfe5a3c +Subproject commit c0733a1d31ebd7b334dee6b1a8c2b00767fdbfca diff --git a/UPP/Core/Configs/mylibs_config.h b/UPP/Core/Configs/mylibs_config.h index 11c8233..b92e13c 100644 --- a/UPP/Core/Configs/mylibs_config.h +++ b/UPP/Core/Configs/mylibs_config.h @@ -97,12 +97,14 @@ #define BENCH_TIME_ENABLE ///< Включить бенч времени -#define BENCH_TIME_MAX_CHANNELS 5 ///< Максимальное количество каналов измерения +#define BENCH_TIME_MAX_CHANNELS 6 ///< Максимальное количество каналов измерения -#define BT_SLOWCALC 0 -#define BT_ADC 1 -#define BT_PWM 2 -#define BT_SYSTICK 3 +#define BT_SLOWCALC_PRD 0 +#define BT_SLOWCALC 1 +#define BT_ADC 2 +#define BT_ADC_PRD 3 +#define BT_PWM 4 +#define BT_SYSTICK 5 /** GEN_CONFIG * @} */ diff --git a/UPP/Core/Configs/upp_config.h b/UPP/Core/Configs/upp_config.h index 94aae73..aac2abc 100644 --- a/UPP/Core/Configs/upp_config.h +++ b/UPP/Core/Configs/upp_config.h @@ -62,6 +62,7 @@ /* Параметры ПУИ */ #define PUI_Iref_PERCENT_DEFAULT 1.5 #define PUI_Tnt_MS_DEFAULT 300 +#define PUI_Tnt_CalcAlpha(...) FilterExp_CalcAlpha95(__VA_ARGS__) ///< Уровень в процентах, до куда нарастет ток за время Tnt #define PUI_Umin_PERCENT_DEFAULT 0.8 #define PUI_Umax_PERCENT_DEFAULT 1.2 #define PUI_Imax_PERCENT_DEFAULT 0.99 @@ -83,7 +84,6 @@ #define ANGLE_PID_KP_COEF_DEFAULT 0.0001 #define ANGLE_PID_KI_COEF_DEFAULT 0.0001 #define ANGLE_PID_KD_COEF_DEFAULT 0 -#define ANGLE_REF_TAU_COEF_DEFAULT 20.0 /* Параметри мониторинга сети */ #define PM_EXP_TAU_COEF_DEFAULT 0.05 @@ -99,8 +99,9 @@ #define ZERO_CROSS_DEBOUNCE_CNT_DEFAULT 2*100 // (2.5 * 100 = 2.5 мс) /* Параметры ШИМ для тиристоров */ -#define PWM_THYR_FREQUENCY_HZ_DEFAULT 5000 -#define PWM_THYR_PULSE_NUMBER_DEFAULT 5 +#define PWM_THYR_FREQUENCY_HZ_DEFAULT 16000 +#define PWM_THYR_DUTY_PERCENT_DEFAULT 0.5 +#define PWM_THYR_PULSE_NUMBER_DEFAULT 20 /** //UPP_PARAMS_DEFAULT * @} @@ -115,11 +116,11 @@ */ /* Периоды обновления всякого */ -#define PM_ADC_PERIOD_US 30 ///< Период опроса АЦП в мкс -#define PM_SLOW_PERIOD_US 500 ///< Период обновления медленных расчетов в мкс (чтобы делилось на @ref PM_ADC_PERIOD_US) -#define PM_TEMP_SLOW_PERIOD_MS 1000 ///< Период опроса АЦП в мс -#define PM_F_SLOW_PERIOD_MS 40 ///< Период обновления частоты в мс -#define UPP_INIT_BEFORE_READY_MS 2000 ///< Сколько сканировать сеть, перед выставлением состояния готовности +#define PM_ADC_PERIOD_US 25 ///< Период опроса АЦП в мкс +#define PM_SLOW_PERIOD_US 500 ///< Период обновления медленных расчетов в мкс (чтобы делилось на @ref PM_ADC_PERIOD_US) +#define PM_TEMP_SLOW_PERIOD_MS 1000 ///< Период обновлениия (фильтрации) датчиков температуры в мс +#define PM_F_SLOW_PERIOD_MS 40 ///< Период обновления (фильтрации) частоты в мс +#define UPP_INIT_BEFORE_READY_MS 2000 ///< Сколько сканировать сеть, перед выставлением состояния готовности /* Частоты таймеров в МГц*/ #define PWM_TIM1_FREQ_MHZ 180 ///< Частота тиков таймера ШИМ (1-4 каналы) @@ -128,19 +129,32 @@ #define ADC_TIM3_FREQ_MZH 90 ///< Частота тиков таймера АЦП #define ANGLE_TIM2_FREQ_MHZ 90 ///< Частота тиков таймера отсчета угла открытия тиристоров +/** //UPP_COMPILED_PARAMS + * @} + */ // ===== ОТЛАДОЧНЫЕ ШТУКИ ДЛЯ 417 ====== #if defined(STM32F417xx) + +// У старой платы УПП другие диапазоны датчиков +#undef ADC_U_MAX_V_DEFAULT +#undef ADC_I_MAX_A_DEFAULT + +#define ADC_U_MAX_V_DEFAULT 707.11 +#define ADC_I_MAX_A_DEFAULT 424.26 + + + +// У 417 меньше частота поэтому меняем прескалер #undef PWM_TIM1_FREQ_MHZ #undef PWM_TIM8_FREQ_MHZ #undef US_TIM5_FREQ_MHZ #undef ADC_TIM3_FREQ_MZH #undef ANGLE_TIM2_FREQ_MHZ -// У 417 меньше частота поэтому меняем прескалер #define PWM_TIM1_FREQ_MHZ 168 ///< Частота тиков таймера ШИМ (1-4 каналы) #define PWM_TIM8_FREQ_MHZ 168 ///< Частота тиков таймера ШИМ (5-6 каналы) #define US_TIM5_FREQ_MHZ 84 ///< Частота тиков микросекундного таймера @@ -148,9 +162,10 @@ #define ANGLE_TIM2_FREQ_MHZ 84 ///< Частота тиков таймера отсчета угла открытия тиристоров #define HAL_PWREx_EnableOverDrive() HAL_ERROR -#endif -// ===== ОТЛАДОЧНЫЕ ШТУКИ ДЛЯ MATLAB ====== +#endif //defined(STM32F417xx) + +// ===== ОТЛАДОЧНЫЕ ШТУКИ ДЛЯ MATLAB ====== #if defined(MATLAB) #undef UPP_INIT_BEFORE_READY_MS @@ -158,8 +173,5 @@ #define UPP_INIT_BEFORE_READY_MS 100 ///< Сколько сканировать сеть, перед выставлением состояния готовности -#endif -/** //UPP_COMPILED_PARAMS - * @} - */ +#endif //defined(MATLAB) #endif //_UPP_CONFIG_H_ diff --git a/UPP/Core/Configs/upp_defs.h b/UPP/Core/Configs/upp_defs.h index dd055dc..c0afca5 100644 --- a/UPP/Core/Configs/upp_defs.h +++ b/UPP/Core/Configs/upp_defs.h @@ -158,8 +158,7 @@ typedef struct { /* Перерасчеты в тики */ #define ANGLE_PERIOD_MS(_freq_) (((float)1/(_freq_*2))*1000) ///< Период обновления частоты в тиках @ref PM_SLOW_PERIOD_CNT -/* Расчет коэффициента альфа для экспоненциального фильтра */ -#define CALC_TAU_COEF(tau, TsUs) (((float)TsUs/1000000) / (((float)TsUs/1000000) + (tau))) +#define SQRT2 1.4142135 /* Дефайны для "удобного" доступа к структурам */ #define PARAM_INTERNAL MB_INTERNAL.param diff --git a/UPP/Core/PowerMonitor/adc_tools.c b/UPP/Core/PowerMonitor/adc_tools.c index f959c46..a84dfc9 100644 --- a/UPP/Core/PowerMonitor/adc_tools.c +++ b/UPP/Core/PowerMonitor/adc_tools.c @@ -104,7 +104,7 @@ HAL_StatusTypeDef ADC_Start(ADC_Periodic_t *adc, float PeriodUs) HAL_TIM_Base_Stop(adc->htim); // Запускаем таймер который будет запускать опрос АЦП с заданным периодом - __HAL_TIM_SET_AUTORELOAD_FORCE(adc->htim, TIM_MicrosToTick(PeriodUs, ADC_TIM3_FREQ_MZH-1)); + __HAL_TIM_SET_AUTORELOAD_FORCE(adc->htim, TIM_MicrosToTick(PeriodUs, ADC_TIM3_FREQ_MZH)); res = HAL_TIM_Base_Start(adc->htim); if(res != HAL_OK) diff --git a/UPP/Core/PowerMonitor/power_monitor.c b/UPP/Core/PowerMonitor/power_monitor.c index 9c82526..1f70473 100644 --- a/UPP/Core/PowerMonitor/power_monitor.c +++ b/UPP/Core/PowerMonitor/power_monitor.c @@ -162,15 +162,17 @@ void PowerMonitor_SlowCalc(PowerMonitor_t *hpm) /* Средниее напряжение фазы */ uphase_mean = fabsf(meas->slow.U[i]); - meas->final.U[i] = Filter_Process(&hpm->exp[EXP_UBA+i], uphase_mean); + uphase_mean = Filter_Process(&hpm->exp[EXP_UBA+i], uphase_mean); + meas->final.U[i] = uphase_mean*PI/2/SQRT2; /*PI/2 - получить амплитудное, SQRT2 - получить действующее */ /* Средний ток фазы */ iphase_mean = fabsf(meas->slow.I[i]); - meas->final.I[i] = Filter_Process(&hpm->exp[EXP_IC+i], iphase_mean); + iphase_mean = Filter_Process(&hpm->exp[EXP_IC+i], iphase_mean)*PI/2; + meas->final.I[i] = iphase_mean*PI/2/SQRT2; /*PI/2 - получить амплитудное, SQRT2 - получить действующее */ /* Реальные единицы измерения (Вольты/Амперы) */ - meas->real.I[i] = meas->slow.I[i]*i_base; - meas->real.U[i] = meas->slow.U[i]*u_base; + meas->real.I[i] = meas->final.I[i]*i_base; + meas->real.U[i] = meas->final.U[i]*u_base; } /* Получение средней частоты по трем фазам */ meas->final.Fmean = fmean / 3; @@ -186,12 +188,13 @@ void PowerMonitor_SlowCalc(PowerMonitor_t *hpm) /* Расчет амплитуд трехфазной сети */ - float uamp = vector_abs_linear_calc(meas->slow.U[U_BA], meas->slow.U[U_AC]); - float iamp = vector_abs_phase_calc(meas->slow.I[I_A], meas->slow.I[I_C]); + float uamp = vector_abs_linear_calc(meas->slow.U[U_BA], meas->slow.U[U_AC])/SQRT2; /* SQRT2 - получить действующее */ + float iamp = vector_abs_phase_calc(meas->slow.I[I_A], meas->slow.I[I_C])/SQRT2; /* SQRT2 - получить действующее */ meas->final.Uamp = Filter_Process(&hpm->exp[EXP_U], uamp); meas->final.Iamp = Filter_Process(&hpm->exp[EXP_I], iamp); - + + hpm->slow_cnt++; } /** diff --git a/UPP/Core/PowerMonitor/power_monitor.h b/UPP/Core/PowerMonitor/power_monitor.h index ee343ff..b0a4872 100644 --- a/UPP/Core/PowerMonitor/power_monitor.h +++ b/UPP/Core/PowerMonitor/power_monitor.h @@ -80,11 +80,11 @@ typedef struct float I[3]; ///< Ток }slow; - /** @brief Реальные величины - обновляются кто где, и содержат значения в В/А */ + /** @brief Реальные величины - обновляются в main в @ref PowerMonitor_SlowCalc, и содержат значения в В/А */ struct { - float U[3]; ///< Напряжение (обновляется в прерывании АЦП) - float I[3]; ///< Ток (обновляется в прерывании АЦП) + float U[3]; ///< Напряжение (Действующее) + float I[3]; ///< Ток (Действующее) }real; }PowerMonitor_Measured_t; @@ -104,6 +104,7 @@ typedef struct PowerMonitor_Flags_t f; ///< Флаги мониторинга uint32_t isr_cnt; + uint32_t slow_cnt; }PowerMonitor_t; extern PowerMonitor_t pm; diff --git a/UPP/Core/Src/main.c b/UPP/Core/Src/main.c index 64019f9..e231ae7 100644 --- a/UPP/Core/Src/main.c +++ b/UPP/Core/Src/main.c @@ -80,6 +80,7 @@ int main(void) __HAL_FREEZE_TIM8_DBGMCU(); __HAL_FREEZE_TIM11_DBGMCU(); __HAL_FREEZE_TIM12_DBGMCU(); + __HAL_FREEZE_TIM14_DBGMCU(); /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ diff --git a/UPP/Core/Src/stm32f4xx_it.c b/UPP/Core/Src/stm32f4xx_it.c index 526ec8a..974357c 100644 --- a/UPP/Core/Src/stm32f4xx_it.c +++ b/UPP/Core/Src/stm32f4xx_it.c @@ -238,6 +238,10 @@ void TIM2_IRQHandler(void) void TIM8_TRG_COM_TIM14_IRQHandler(void) { /* USER CODE BEGIN TIM8_TRG_COM_TIM14_IRQn 0 */ + if (__HAL_TIM_GET_FLAG(&htim8, TIM_FLAG_UPDATE) != RESET) { + UPP_PWM_Handle(); + } + #ifndef MATLAB // в матлабе нет htim14, т.к. это систем тики /* USER CODE END TIM8_TRG_COM_TIM14_IRQn 0 */ HAL_TIM_IRQHandler(&htim8); @@ -253,11 +257,14 @@ void TIM8_TRG_COM_TIM14_IRQHandler(void) void DMA2_Stream0_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream0_IRQn 0 */ - + // Вторая половина буфера (Transfer Complete) + if (DMA2->LISR & DMA_LISR_TCIF0) { + UPP_ADC_Handle(); + } /* USER CODE END DMA2_Stream0_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc3); /* USER CODE BEGIN DMA2_Stream0_IRQn 1 */ - UPP_ADC_Handle(); + /* USER CODE END DMA2_Stream0_IRQn 1 */ } diff --git a/UPP/Core/Src/tim.c b/UPP/Core/Src/tim.c index 97a009e..1f5a7d0 100644 --- a/UPP/Core/Src/tim.c +++ b/UPP/Core/Src/tim.c @@ -209,7 +209,7 @@ void MX_TIM3_Init(void) Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; - sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_ENABLE; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) { Error_Handler(); diff --git a/UPP/Core/UPP/angle_control.c b/UPP/Core/UPP/angle_control.c index 1d4e3ff..6efb442 100644 --- a/UPP/Core/UPP/angle_control.c +++ b/UPP/Core/UPP/angle_control.c @@ -21,12 +21,6 @@ HAL_StatusTypeDef Angle_Init(Angle_Handle_t *hangle) hangle->htim = &angletim; - // Инициализация ПИД - float kp = to_float(PARAM_INTERNAL.angle.PID_Kp, 10000); - float ki = to_float(PARAM_INTERNAL.angle.PID_Ki, 10000); - float kd = to_float(PARAM_INTERNAL.angle.PID_Kd, 10000); - float ref_alpha = to_float(PARAM_INTERNAL.angle.PID_ExpAlpha, 65535); - Angle_PID_Init(hangle, kp, ki, kd, ref_alpha); // Инициализация каналов HAL_TIM_OC_Start_IT(hangle->htim, ANGLE_CHANNEL_1); @@ -43,7 +37,14 @@ HAL_StatusTypeDef Angle_Init(Angle_Handle_t *hangle) float angle_min = to_float(PARAM_INTERNAL.angle.Angle_Min, 65535); hangle->f.Initialized = 1; - return HAL_OK; + + // Инициализация ПИД + float kp = to_float(PARAM_INTERNAL.angle.PID_Kp, 10000); + float ki = to_float(PARAM_INTERNAL.angle.PID_Ki, 10000); + float kd = to_float(PARAM_INTERNAL.angle.PID_Kd, 10000); + float ref_alpha = PUI_Tnt_CalcAlpha(to_float(PARAM_PUI.Tnt, 1000), PM_SLOW_PERIOD_US); + + return Angle_PID_Init(hangle, kp, ki, kd, ref_alpha);; } @@ -52,10 +53,10 @@ HAL_StatusTypeDef Angle_Init(Angle_Handle_t *hangle) * @param hangle Указатель на таймер * @param kp, ki kd Коэффициенты регулятора */ -void Angle_PID_Init(Angle_Handle_t *hangle, float kp, float ki, float kd, float alpha) +HAL_StatusTypeDef Angle_PID_Init(Angle_Handle_t *hangle, float kp, float ki, float kd, float alpha) { if(assert_upp(hangle)) - return; + return HAL_ERROR; // Сам ПИД регулятор hangle->pid.Kp = kp; @@ -67,6 +68,8 @@ void Angle_PID_Init(Angle_Handle_t *hangle, float kp, float ki, float kd, float FilterExp_Init(&hangle->refFilter, alpha); Filter_Start(&hangle->refFilter); Filter_Process(&hangle->refFilter, 0); + + return HAL_OK; } /** diff --git a/UPP/Core/UPP/angle_control.h b/UPP/Core/UPP/angle_control.h index 9b72f8b..6017e54 100644 --- a/UPP/Core/UPP/angle_control.h +++ b/UPP/Core/UPP/angle_control.h @@ -44,7 +44,7 @@ typedef struct /* Инициализация Таймера для рассчета угла открытия. */ HAL_StatusTypeDef Angle_Init(Angle_Handle_t *hangle); /* Инициализация ПИД регулятора. */ -void Angle_PID_Init(Angle_Handle_t *hangle, float kp, float ki, float kd, float alpha); +HAL_StatusTypeDef Angle_PID_Init(Angle_Handle_t *hangle, float kp, float ki, float kd, float alpha); // ====== УПРАВЛЕНИЕ ========== /* Управление углом через ПИД регулятор */ diff --git a/UPP/Core/UPP/pwm_thyristors.c b/UPP/Core/UPP/pwm_thyristors.c index dc47ed3..e9f8245 100644 --- a/UPP/Core/UPP/pwm_thyristors.c +++ b/UPP/Core/UPP/pwm_thyristors.c @@ -59,7 +59,10 @@ HAL_StatusTypeDef PWM_Init(PWM_Handle_t *hpwm) PWM_SetHalfWave(hpwm, UPP_PHASE_B, UPP_WAVE_UNKNOWED); PWM_SetHalfWave(hpwm, UPP_PHASE_C, UPP_WAVE_UNKNOWED); - PWM_SetConfig(hpwm, PARAM_INTERNAL.pwm.PhaseMask, PARAM_INTERNAL.pwm.Frequency, PARAM_INTERNAL.pwm.PulseNumber); + PWM_SetConfig(hpwm, PARAM_INTERNAL.pwm.PhaseMask, + PARAM_INTERNAL.pwm.Frequency, + to_float(PARAM_INTERNAL.pwm.Duty, 100), + PARAM_INTERNAL.pwm.PulseNumber); HAL_TIM_PWM_Start(&hpwm1, PWM_CHANNEL_1); HAL_TIM_PWM_Start(&hpwm1, PWM_CHANNEL_2); @@ -154,7 +157,6 @@ HAL_StatusTypeDef PWM_Stop(PWM_Handle_t *hpwm, UPP_Phase_t Phase, uint8_t force_ { // в первую очередь выключаем канал, потом выставим режим каналов __HAL_TIM_MOE_DISABLE(&hpwm1); - // в первую очередь выключаем канал, потом выставим режим каналов __HAL_TIM_MOE_DISABLE(&hpwm2); @@ -197,7 +199,7 @@ HAL_StatusTypeDef PWM_Stop(PWM_Handle_t *hpwm, UPP_Phase_t Phase, uint8_t force_ * @param Frequency Частота в ГЦ * @return HAL Status. */ -HAL_StatusTypeDef PWM_SetConfig(PWM_Handle_t *hpwm, uint8_t PhaseMask, uint16_t Frequency, uint8_t PulseNumber) +HAL_StatusTypeDef PWM_SetConfig(PWM_Handle_t *hpwm, uint8_t PhaseMask, uint16_t Frequency, float Duty, uint8_t PulseNumber) { if(assert_upp(hpwm)) return HAL_ERROR; @@ -210,16 +212,19 @@ HAL_StatusTypeDef PWM_SetConfig(PWM_Handle_t *hpwm, uint8_t PhaseMask, uint16_t hpwm->Config.PhaseMask.all = PhaseMask; hpwm->Config.PulseNumber = PulseNumber; hpwm->Config.Frequency = Frequency; + hpwm->Config.Duty = Duty; // Высставление периодов __HAL_TIM_SET_AUTORELOAD(&hpwm1, TIM_FreqToTick(Frequency, PWM_TIM1_FREQ_MHZ-1)); __HAL_TIM_SET_AUTORELOAD(&hpwm2, TIM_FreqToTick(Frequency, PWM_TIM8_FREQ_MHZ-1)); - // Скважности 50/50 - __HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_1, __HAL_TIM_GET_AUTORELOAD(&hpwm1)/2); - __HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_2, __HAL_TIM_GET_AUTORELOAD(&hpwm1)/2); - __HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_3, __HAL_TIM_GET_AUTORELOAD(&hpwm1)/2); - __HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_4, __HAL_TIM_GET_AUTORELOAD(&hpwm1)/2); - __HAL_TIM_SET_COMPARE(&hpwm2, PWM_CHANNEL_5, __HAL_TIM_GET_AUTORELOAD(&hpwm2)/2); - __HAL_TIM_SET_COMPARE(&hpwm2, PWM_CHANNEL_6, __HAL_TIM_GET_AUTORELOAD(&hpwm2)/2); + // Скважности + uint32_t pwm1_duty_ccr = (float)__HAL_TIM_GET_AUTORELOAD(&hpwm1)*(1-Duty); + uint32_t pwm2_duty_ccr = (float)__HAL_TIM_GET_AUTORELOAD(&hpwm2)*(1-Duty); + __HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_1, pwm1_duty_ccr); + __HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_2, pwm1_duty_ccr); + __HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_3, pwm1_duty_ccr); + __HAL_TIM_SET_COMPARE(&hpwm1, PWM_CHANNEL_4, pwm1_duty_ccr); + __HAL_TIM_SET_COMPARE(&hpwm2, PWM_CHANNEL_5, pwm2_duty_ccr); + __HAL_TIM_SET_COMPARE(&hpwm2, PWM_CHANNEL_6, pwm2_duty_ccr); // Сброс счетчиков таймера и запуск заного diff --git a/UPP/Core/UPP/pwm_thyristors.h b/UPP/Core/UPP/pwm_thyristors.h index c35c208..ee1075b 100644 --- a/UPP/Core/UPP/pwm_thyristors.h +++ b/UPP/Core/UPP/pwm_thyristors.h @@ -74,6 +74,7 @@ typedef struct { }PhaseMask; ///< Какими каналами управлять uint8_t PulseNumber; ///< Сколько импульсов отправить в пакете для открытия тиристоров uint16_t Frequency; ///< Частота импульсов + float Duty; ///< Скважность импульсов } PWM_ThyrConfig_t; /** @@ -100,7 +101,7 @@ HAL_StatusTypeDef PWM_Start(PWM_Handle_t *hpwm, UPP_Phase_t Phase); /* Остановить ШИМ. */ HAL_StatusTypeDef PWM_Stop(PWM_Handle_t *hpwm, UPP_Phase_t Phase, uint8_t force_stop_all); /* Установка частоты ШИМ. */ -HAL_StatusTypeDef PWM_SetConfig(PWM_Handle_t *hpwm, uint8_t PhaseMask, uint16_t Frequency, uint8_t PulseNumber); +HAL_StatusTypeDef PWM_SetConfig(PWM_Handle_t *hpwm, uint8_t PhaseMask, uint16_t Frequency, float Duty, uint8_t PulseNumber); /* Установка полуволны для слежения. */ HAL_StatusTypeDef PWM_SetHalfWave(PWM_Handle_t *hpwm, UPP_Phase_t Phase, UPP_HalfWave_t halfwave); /* Установка полярности шим. */ diff --git a/UPP/Core/UPP/upp_errors.c b/UPP/Core/UPP/upp_errors.c index 0afb1c0..d5a269b 100644 --- a/UPP/Core/UPP/upp_errors.c +++ b/UPP/Core/UPP/upp_errors.c @@ -19,7 +19,7 @@ UPP_Errors_t errors; static UPP_ErrorType_t UPP_SelectCommonError(void); -static int setError(int condition, int flag, int *timer, int delay); +__STATIC_FORCEINLINE int setError(int condition, int flag, int *timer, int delay); void UPP_Errors_Program(void); void UPP_Errors_Power(void); void UPP_Errors_Ranges(void); @@ -225,7 +225,7 @@ static UPP_ErrorType_t UPP_SelectCommonError(void) } -static int setError(int condition, int flag, int *timer, int delay) +__STATIC_FORCEINLINE int setError(int condition, int flag, int *timer, int delay) { if (condition) { if (*timer < delay) diff --git a/UPP/Core/UPP/upp_errors.h b/UPP/Core/UPP/upp_errors.h index 96d2985..c314ffc 100644 --- a/UPP/Core/UPP/upp_errors.h +++ b/UPP/Core/UPP/upp_errors.h @@ -145,6 +145,7 @@ typedef struct struct { + uint16_t angle_reinit_err; uint16_t adc_reinit_err; uint16_t zc_reinit_err; uint16_t pwm_reinit_err; diff --git a/UPP/Core/UPP/upp_io.c b/UPP/Core/UPP/upp_io.c index 529fad7..41aa5ce 100644 --- a/UPP/Core/UPP/upp_io.c +++ b/UPP/Core/UPP/upp_io.c @@ -29,7 +29,7 @@ static void UPP_DO5_Write(int state); */ void UPP_IO_Init(void) { - /* Дискретне выходы */ + /* Дискретные выходы */ UPP_DO.CEN = &UPP_CEN_Write; UPP_DO.Ready = &UPP_RDO3_Write; UPP_DO.Work = &UPP_RDO2_Write; diff --git a/UPP/Core/UPP/upp_io.h b/UPP/Core/UPP/upp_io.h index 7d369d6..3fecb4b 100644 --- a/UPP/Core/UPP/upp_io.h +++ b/UPP/Core/UPP/upp_io.h @@ -10,7 +10,10 @@ #define _UPP_IO_H #include "mylibs_include.h" - +#define DIN_Pusk_GPIO_Port DIN1_GPIO_Port +#define DIN_Pusk_Pin DIN1_Pin +#define DIN_MestDist_GPIO_Port DIN2_GPIO_Port +#define DIN_MestDist_Pin DIN2_Pin typedef struct { diff --git a/UPP/Core/UPP/upp_main.c b/UPP/Core/UPP/upp_main.c index 87e0742..36a4ed5 100644 --- a/UPP/Core/UPP/upp_main.c +++ b/UPP/Core/UPP/upp_main.c @@ -16,7 +16,7 @@ UPP_t upp; HAL_StatusTypeDef res; // сюда сохраняется результат от выполения всяких функций float dbg_iref = 2; -int dbg_polarity = 0; +int dbg_polarity = 1; /** * @brief Инициализация УПП. @@ -60,17 +60,12 @@ int UPP_App_Init(void) * @return 0 - если ОК, >1 если ошибка. */ int UPP_PreWhile(void) -{ - UPP_Params_ControlInternal(); - - if(Angle_SetRange(&upp.hangle, 0.0, 0.8) != HAL_OK) - return 1; +{ + UPP_Params_Control(); if(PowerMonitor_Start(&upp.pm) != HAL_OK) return 1; - - UPP_DO.CEN(ENABLE); return 0; } @@ -86,19 +81,26 @@ int UPP_While(void) if(upp.pm.f.runSlow) { static uint32_t slow_cnt = 0; + upp.Timings.slow_calc_prd_us = BenchTime_Period(BT_SLOWCALC_PRD, angletim.Instance->CNT, HAL_MAX_DELAY)/ANGLE_TIM2_FREQ_MHZ; BenchTime_Start(BT_SLOWCALC, angletim.Instance->CNT, HAL_MAX_DELAY); - res = HAL_IWDG_Refresh(&hiwdg); + res = HAL_IWDG_Refresh(&hiwdg); // если не вызываются медленные расчеты - что-то не то сбрасываемся по watchdog // Медленные расчеты - PowerMonitor_SlowCalc(&upp.pm); + PowerMonitor_SlowCalc(&upp.pm); #ifdef UPP_SIMULATE_I // симулируем токи - upp.pm.measured.final.Iamp = upp.hangle.Iref/2; + upp.pm.measured.final.Iamp = upp.hangle.Iref/2; // Защиты // При симуляции тока не включаем его проверку PowerMonitor_Protect(&upp.pm, 0); #else // Защиты // Определенные защиты по току включаем только в после разгона PowerMonitor_Protect(&upp.pm, (fabsf(upp.hangle.Iref - dbg_iref) < 0.1)); #endif + // Обрабока ошибок и выставление итоговой Ошибки + UPP_Errors_Handle(); + // Контроль парамеров + UPP_Params_Control(); + + #ifndef UPP_DISABLE_ERROR_BLOCK @@ -224,13 +226,10 @@ int UPP_While(void) */ void UPP_Tick(void) { + // Начинаем все проверять только после того как уйдем из режима инициализации if(upp.workmode == UPP_Init) return; - // Обрабока ошибок и выставление итоговой Ошибки - UPP_Errors_Handle(); - // - UPP_Params_ControlInternal(); if(GPIO_Read_Switch(&UPP_DIN.Pusk)) { @@ -244,10 +243,16 @@ void UPP_Tick(void) -// ПРЕРЫВАНИЯ stm32f4xx_it.c +//================ ПРЕРЫВАНИЯ stm32f4xx_it.c =================== +/** + * @brief @ref DMA2_Stream0_IRQHandler + */ void UPP_ADC_Handle(void) { + upp.Timings.isr_adc_prd_us = BenchTime_Period(BT_ADC_PRD, angletim.Instance->CNT, HAL_MAX_DELAY)/ANGLE_TIM2_FREQ_MHZ; BenchTime_Start(BT_ADC, angletim.Instance->CNT, HAL_MAX_DELAY); + + if(upp.pm.f.inIsr) { ERR_PRIVATE.overrun_fast_calc = 1; @@ -282,6 +287,9 @@ void UPP_ADC_Handle(void) upp.Timings.isr_adc_us = BenchTime_End(BT_ADC, angletim.Instance->CNT)/ANGLE_TIM2_FREQ_MHZ; upp.pm.f.inIsr = 0; } +/** + * @brief @ref TIM1_UP_TIM10_IRQHandler @ref + */ void UPP_PWM_Handle(void) { BenchTime_Start(BT_PWM, angletim.Instance->CNT, HAL_MAX_DELAY); @@ -289,6 +297,9 @@ void UPP_PWM_Handle(void) upp.Timings.isr_pwm_us = BenchTime_End(BT_PWM, angletim.Instance->CNT)/ANGLE_TIM2_FREQ_MHZ; } +/** + * @brief @ref HAL_TIM_OC_DelayElapsedCallback + */ void UPP_Angle_Handle(void) { UPP_Phase_t phase = Angle_Handle(&upp.hangle); @@ -315,7 +326,9 @@ void UPP_Angle_Handle(void) } } -// Callback по совпадению CCRx +/** + * @brief Callback по совпадению CCRx c CNT + */ void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef* htim) { if (htim == upp.hangle.htim) @@ -323,6 +336,9 @@ void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef* htim) UPP_Angle_Handle(); } } +/** + * @brief @ref HAL_TIM_PeriodElapsedCallback + */ void HAL_IncTick(void) { BenchTime_Start(BT_SYSTICK, angletim.Instance->CNT, HAL_MAX_DELAY); diff --git a/UPP/Core/UPP/upp_main.h b/UPP/Core/UPP/upp_main.h index 22a261c..112354d 100644 --- a/UPP/Core/UPP/upp_main.h +++ b/UPP/Core/UPP/upp_main.h @@ -39,7 +39,9 @@ typedef struct struct { + uint32_t slow_calc_prd_us; uint32_t slow_calc_us; + uint32_t isr_adc_prd_us; uint32_t isr_adc_us; uint32_t isr_pwm_us; uint32_t isr_systick_us; diff --git a/UPP/Core/UPP/upp_params.c b/UPP/Core/UPP/upp_params.c index c0377ed..b37e83a 100644 --- a/UPP/Core/UPP/upp_params.c +++ b/UPP/Core/UPP/upp_params.c @@ -1,26 +1,105 @@ /** ****************************************************************************** * @file upp_params.c -* @brief Модуль определябщий поведение УПП +* @brief Модуль проверяющий параметры УПП ****************************************************************************** * @details -******************************************************************************/ +* ИНСТРУКЦИЯ ПО ДОБАВЛЕНИЮ НОВЫХ ПАРАМЕТРОВ: +* +* 1. Добавить новый параметр в соответствующую структуру в файле параметров: +* - PARAM_PUI для параметров от ПУИ (пульт управления и индикации) +* - PARAM_INTERNAL для внутренних параметров УПП +* +* 2. В функции UPP_Params_ControlInternal() или UPP_Params_ControlPUI(): +* a. Объявить временную переменную для хранения текущего значения +* b. Проверить изменение параметра (можно с помощью __CheckParamX() функции) +* c. Обновить параметр в соответствующем модуле новым параметром если он изменился +* +* 3. В функции UPP_Params_SetDefault() добавить установку значения по умолчанию +* +* 4. При необходимости добавить сатурацию параметра в UPP_Params_Saturate() +* +* Пример добавления простого параметра: +* +* // В UPP_Params_ControlInternal(): +* float new_param = module.param; +* if(__CheckParamF(&new_param, PARAM_INTERNAL.new_param, 1000)) +* { +* module_update = 1; +* } +* +* // В блоке обновления модуля: +* if(module_update) +* { +* if(Module_SetParam(&module, new_param) == HAL_OK) +* module_update = 0; +* } +* +* // В UPP_Params_SetDefault(): +* PARAM_INTERNAL.new_param = NEW_PARAM_DEFAULT * 1000; +* +****************************************************************************** +*/ #include "upp_main.h" // всё остальное по работе с УПП +#define SATURATE_U16(value, min, max) \ + value = ((value) < (min) ? (min) : ((value) > (max) ? (max) : (value))) -static int __CheckSimpleParamF(float *paramDist, uint16_t paramSrc, float Coef); -static int __CheckSimpleParamU32(uint32_t *paramDist, uint16_t paramSrc, float Coef); -static int __CheckSimpleParamU16(uint16_t *paramDist, uint16_t paramSrc); -static int __CheckSimpleParamU8(uint8_t *paramDist, uint16_t paramSrc, float Coef); +static int __CheckParamF(float *paramDist, uint16_t paramSrc, float Coef); +static int __CheckParamU32(uint32_t *paramDist, uint16_t paramSrc, float Coef); +static int __CheckParamU16(uint16_t *paramDist, uint16_t paramSrc); +static int __CheckParamU8(uint8_t *paramDist, uint16_t paramSrc, float Coef); static void __AngleSetLimit(void); + +/** + * @brief Контроль параметров УПП. + * @return HAL Status. + */ +void UPP_Params_Control(void) +{ + /* Проверяем параметры на корректный диапазон */ + UPP_Params_Saturate(); + /* Чекаем изменились ли параметры от ПУИ */ + UPP_Params_ControlPUI(); + /* Чекаем изменились ли внутренние параметры */ + UPP_Params_ControlInternal(); +} +/** + * @brief Контроль параметров от ПУИ. + * @return HAL Status. + */ +void UPP_Params_ControlPUI(void) +{ + if(upp.call->go) // при запущеном УПП ничего не меняем + return; + + /* Tnt Уставка на скорость нарастания пускового тока Iref */ + float angle_ref_alphaPUI = PUI_Tnt_CalcAlpha(to_float(PARAM_PUI.Tnt, 1000), PM_SLOW_PERIOD_US); + float angle_ref_alpha = upp.hangle.refFilter.alpha; + if(angle_ref_alpha != angle_ref_alphaPUI) + { + angle_ref_alpha = angle_ref_alphaPUI; + if(Angle_PID_Init(&upp.hangle, + upp.hangle.pid.Kp, + upp.hangle.pid.Ki, + upp.hangle.pid.Kd, + angle_ref_alpha) != HAL_OK) + ERR_PRIVATE_CNT.angle_reinit_err++; + } + + +} + + + + /** * @brief Контроль внутренних параметров УПП. * @return HAL Status. */ void UPP_Params_ControlInternal(void) { - __AngleSetLimit(); if(upp.call->go) // при запущеном УПП ничего не меняем return; @@ -36,7 +115,6 @@ void UPP_Params_ControlInternal(void) float angle_pid_kp = upp.hangle.pid.Kp; float angle_pid_ki = upp.hangle.pid.Ki; float angle_pid_kd = upp.hangle.pid.Kd; - float angle_ref_alpha = upp.hangle.refFilter.alpha; // временная переменная для параметров каналов АЦП float adc_channel_max[ADC_NUMB_OF_REGULAR_CHANNELS] = {0}; uint16_t adc_channel_zero[ADC_NUMB_OF_REGULAR_CHANNELS] = {0}; @@ -46,6 +124,7 @@ void UPP_Params_ControlInternal(void) // временная переменная для параметров ШИМ uint8_t pwm_phase_mask = upp.hpwm.Config.PhaseMask.all; uint16_t pwm_freq = upp.hpwm.Config.Frequency; + float pwm_duty = upp.hpwm.Config.Duty; uint8_t pwm_pulse_num = upp.hpwm.Config.PulseNumber; // временная переменная для параметров Мониторинга сети float pm_alpha = upp.pm.exp[0].alpha; @@ -53,31 +132,26 @@ void UPP_Params_ControlInternal(void) // Параметры регулятора Угла открытия - if(__CheckSimpleParamF(&angle_max, PARAM_INTERNAL.angle.Angle_Max, 65535)) + if(__CheckParamF(&angle_max, PARAM_INTERNAL.angle.Angle_Max, 65535)) { alpha_update = 1; } - if(__CheckSimpleParamF(&angle_min, PARAM_INTERNAL.angle.Angle_Min, 65535)) + if(__CheckParamF(&angle_min, PARAM_INTERNAL.angle.Angle_Min, 65535)) { alpha_update = 1; } - if(__CheckSimpleParamF(&angle_pid_kp, PARAM_INTERNAL.angle.PID_Kp, 10000)) + if(__CheckParamF(&angle_pid_kp, PARAM_INTERNAL.angle.PID_Kp, 10000)) { alpha_update = 1; } - if(__CheckSimpleParamF(&angle_pid_ki, PARAM_INTERNAL.angle.PID_Ki, 10000)) + if(__CheckParamF(&angle_pid_ki, PARAM_INTERNAL.angle.PID_Ki, 10000)) { alpha_update = 1; } - if(__CheckSimpleParamF(&angle_pid_kd, PARAM_INTERNAL.angle.PID_Kd, 10000)) + if(__CheckParamF(&angle_pid_kd, PARAM_INTERNAL.angle.PID_Kd, 10000)) { alpha_update = 1; - } - if(__CheckSimpleParamF(&angle_ref_alpha, PARAM_INTERNAL.angle.PID_ExpAlpha, 65535)) - { - alpha_update = 1; - } - + } // Параметры АЦП @@ -87,56 +161,72 @@ void UPP_Params_ControlInternal(void) adc_channel_zero[i] = upp.pm.adc.Coefs[i].lZero; // Максимальное измеряемое напряжение - if(__CheckSimpleParamF(&adc_channel_max[i], PARAM_INTERNAL.adc.ADC_Max[i], 10)) + if(__CheckParamF(&adc_channel_max[i], PARAM_INTERNAL.adc.ADC_Max[i], 10)) { adc_channel_update[i] = 1; } // Значение АЦП при нулевом входе - if(__CheckSimpleParamU16(&adc_channel_zero[i], PARAM_INTERNAL.adc.ADC_Zero[i])) + if(__CheckParamU16(&adc_channel_zero[i], PARAM_INTERNAL.adc.ADC_Zero[i])) { adc_channel_update[i] = 1; } } // Параметры алгоритма перехода через ноль - if(__CheckSimpleParamF(&zc_hysteresis, PARAM_INTERNAL.zc.Hysteresis, 10000)) + if(__CheckParamF(&zc_hysteresis, PARAM_INTERNAL.zc.Hysteresis, 10000)) { zc_update = 1; } - if(__CheckSimpleParamU16(&zc_debounce, PARAM_INTERNAL.zc.DebouneCouner)) + if(__CheckParamU16(&zc_debounce, PARAM_INTERNAL.zc.DebouneCouner)) { zc_update = 1; } // Параметры ШИМ токов - if(__CheckSimpleParamU8(&pwm_phase_mask, PARAM_INTERNAL.pwm.PhaseMask, 1)) + if(__CheckParamU8(&pwm_phase_mask, PARAM_INTERNAL.pwm.PhaseMask, 1)) { pwm_update = 1; } - if(__CheckSimpleParamU16(&pwm_freq, PARAM_INTERNAL.pwm.Frequency)) + if(__CheckParamU16(&pwm_freq, PARAM_INTERNAL.pwm.Frequency)) { pwm_update = 1; } - if(__CheckSimpleParamU8(&pwm_pulse_num, PARAM_INTERNAL.pwm.PulseNumber, 1)) + if(__CheckParamF(&pwm_duty, PARAM_INTERNAL.pwm.Duty, 100)) { pwm_update = 1; - } + } + if(__CheckParamU8(&pwm_pulse_num, PARAM_INTERNAL.pwm.PulseNumber, 1)) + { + pwm_update = 1; + } + // Параметры мониторинга - if(__CheckSimpleParamF(&pm_alpha, PARAM_INTERNAL.pm.mean_alpha, 65535)) + if(__CheckParamF(&pm_alpha, PARAM_INTERNAL.pm.mean_alpha, 65535)) { for(int i = 0; i < EXP_ALL; i++) { Filter_ReInit(&upp.pm.exp[i], pm_alpha); + Filter_Start(&upp.pm.exp[i]); } } // Обновление регулятора угла открытия + __AngleSetLimit(); if(alpha_update) { - Angle_SetRange(&upp.hangle, angle_min, angle_max); - Angle_PID_Init(&upp.hangle, angle_pid_kp, angle_pid_ki, angle_pid_kd, angle_ref_alpha); + if(Angle_SetRange(&upp.hangle, angle_min, angle_max) == HAL_OK) + { + if(Angle_PID_Init(&upp.hangle, angle_pid_kp, angle_pid_ki, angle_pid_kd, upp.hangle.refFilter.alpha) == HAL_OK) + { + alpha_update = 0; + } + else + ERR_PRIVATE_CNT.angle_reinit_err++; + } + else + ERR_PRIVATE_CNT.angle_reinit_err++; } // Обновление АЦП конфигов for(int i = 0; i < ADC_NUMB_OF_REGULAR_CHANNELS; i++) @@ -160,7 +250,7 @@ void UPP_Params_ControlInternal(void) // Обновление ШИМ конфигов if(pwm_update) { - if(PWM_SetConfig(&upp.hpwm, pwm_phase_mask, pwm_freq, pwm_pulse_num) == HAL_OK) + if(PWM_SetConfig(&upp.hpwm, pwm_phase_mask, pwm_freq, pwm_duty, pwm_pulse_num) == HAL_OK) { pwm_update = 0; } @@ -178,6 +268,46 @@ void UPP_Params_ControlInternal(void) */ void UPP_Params_Saturate(void) { + SATURATE_U16(PARAM_PUI.Iref, 100, 500); +// SATURATE_U16(PARAM_PUI.Tnt, 50, 5000); + SATURATE_U16(PARAM_PUI.Umin, 5, 99); + SATURATE_U16(PARAM_PUI.Umax, 100, 120); + SATURATE_U16(PARAM_PUI.Imax, 5, 99); + SATURATE_U16(PARAM_PUI.Imin, 0, 40); + SATURATE_U16(PARAM_PUI.TiMax, 500, 10000); + SATURATE_U16(PARAM_PUI.Tdelay, 5, 60); + SATURATE_U16(PARAM_PUI.Interlace, 0, 1); + + SATURATE_U16(PARAM_INTERNAL.setpoints.TemperatureWarn, 0, 90); + SATURATE_U16(PARAM_INTERNAL.setpoints.TemperatureErr, 0, 90); + + SATURATE_U16(PARAM_INTERNAL.nominal.PhaseNumber, 0, 3); + SATURATE_U16(PARAM_INTERNAL.nominal.U, 0, ADC_U_MAX_V_DEFAULT*10); + SATURATE_U16(PARAM_INTERNAL.nominal.U_deviation_plus, 0, 100*100); + SATURATE_U16(PARAM_INTERNAL.nominal.U_deviation_minus, 0, 100*100); + SATURATE_U16(PARAM_INTERNAL.nominal.F, 40*100, 60*100); + SATURATE_U16(PARAM_INTERNAL.nominal.F_deviation_plus, 0, 100*100); + SATURATE_U16(PARAM_INTERNAL.nominal.F_deviation_minus, 0, 100*100); + SATURATE_U16(PARAM_INTERNAL.nominal.I, 0, ADC_I_MAX_A_DEFAULT*10); + + SATURATE_U16(PARAM_INTERNAL.adc.ADC_Max[ADC_CHANNEL_UBA], 0, ADC_U_MAX_V_DEFAULT*10); + SATURATE_U16(PARAM_INTERNAL.adc.ADC_Max[ADC_CHANNEL_UAC], 0, ADC_U_MAX_V_DEFAULT*10); + SATURATE_U16(PARAM_INTERNAL.adc.ADC_Max[ADC_CHANNEL_IC], 0, ADC_I_MAX_A_DEFAULT*10); + SATURATE_U16(PARAM_INTERNAL.adc.ADC_Max[ADC_CHANNEL_IA], 0, ADC_I_MAX_A_DEFAULT*10); + SATURATE_U16(PARAM_INTERNAL.adc.ADC_Zero[ADC_CHANNEL_UBA], 1848, 2248); + SATURATE_U16(PARAM_INTERNAL.adc.ADC_Zero[ADC_CHANNEL_UAC], 1848, 2248); + SATURATE_U16(PARAM_INTERNAL.adc.ADC_Zero[ADC_CHANNEL_IC], 1848, 2248); + SATURATE_U16(PARAM_INTERNAL.adc.ADC_Zero[ADC_CHANNEL_IA], 1848, 2248); + + SATURATE_U16(PARAM_INTERNAL.pwm.PhaseMask, 0, 7); + SATURATE_U16(PARAM_INTERNAL.pwm.Frequency, 1000, 40000); + SATURATE_U16(PARAM_INTERNAL.pwm.PulseNumber, 1, 50); + + SATURATE_U16(PARAM_INTERNAL.zc.Hysteresis, 0, 0.1*100); + SATURATE_U16(PARAM_INTERNAL.zc.DebouneCouner, 0, 1000); + + + SATURATE_U16(PARAM_INTERNAL.angle.PulseLengthReserve, 50, 1000); } /** @@ -215,7 +345,7 @@ void UPP_Params_SetDefault(int pui_default, int internal_default) PARAM_INTERNAL.nominal.F_deviation_minus = NOM_F_DEVIATION_MINUS_PERCENT_DEFAULT*100; PARAM_INTERNAL.nominal.I = NOM_I_A_DEFAULT*10; - PARAM_INTERNAL.pm.mean_alpha = CALC_TAU_COEF(PM_EXP_TAU_COEF_DEFAULT,PM_SLOW_PERIOD_US)*65535; + PARAM_INTERNAL.pm.mean_alpha = FilterExp_CalcAlpha(PM_EXP_TAU_COEF_DEFAULT,PM_SLOW_PERIOD_US)*65535; PARAM_INTERNAL.adc.ADC_Max[ADC_CHANNEL_UBA] = ADC_U_MAX_V_DEFAULT*10; PARAM_INTERNAL.adc.ADC_Max[ADC_CHANNEL_UAC] = ADC_U_MAX_V_DEFAULT*10; @@ -226,9 +356,10 @@ void UPP_Params_SetDefault(int pui_default, int internal_default) PARAM_INTERNAL.adc.ADC_Zero[ADC_CHANNEL_IC] = ADC_I_ZERO_DEFAULT; PARAM_INTERNAL.adc.ADC_Zero[ADC_CHANNEL_IA] = ADC_I_ZERO_DEFAULT; - PARAM_INTERNAL.pwm.PhaseMask = 7; // (все три фазы) - PARAM_INTERNAL.pwm.Frequency = (float)PWM_THYR_FREQUENCY_HZ_DEFAULT; - PARAM_INTERNAL.pwm.PulseNumber = PWM_THYR_PULSE_NUMBER_DEFAULT; + PARAM_INTERNAL.pwm.PhaseMask = 7; // (все три фазы) + PARAM_INTERNAL.pwm.Frequency = PWM_THYR_FREQUENCY_HZ_DEFAULT; + PARAM_INTERNAL.pwm.Duty = PWM_THYR_DUTY_PERCENT_DEFAULT*100; + PARAM_INTERNAL.pwm.PulseNumber = PWM_THYR_PULSE_NUMBER_DEFAULT; PARAM_INTERNAL.zc.Hysteresis = ZERO_CROSS_HYSTERESIS_PERCENT_DEFAULT*100; PARAM_INTERNAL.zc.DebouneCouner = ZERO_CROSS_DEBOUNCE_CNT_DEFAULT; @@ -237,7 +368,6 @@ void UPP_Params_SetDefault(int pui_default, int internal_default) PARAM_INTERNAL.angle.PID_Kp = ANGLE_PID_KP_COEF_DEFAULT*10000; PARAM_INTERNAL.angle.PID_Ki = ANGLE_PID_KI_COEF_DEFAULT*10000; PARAM_INTERNAL.angle.PID_Kd = ANGLE_PID_KD_COEF_DEFAULT*10000; - PARAM_INTERNAL.angle.PID_ExpAlpha = CALC_TAU_COEF(ANGLE_REF_TAU_COEF_DEFAULT,PM_SLOW_PERIOD_US)*65535; PARAM_INTERNAL.angle.Angle_Max = ANGLE_MAX_PERCENT_DEFAULT*65535; PARAM_INTERNAL.angle.Angle_Min = ANGLE_MIN_PERCENT_DEFAULT*65535; PARAM_INTERNAL.angle.PulseLengthReserve = ANGLE_PULSE_LENGTH_RESERVE_PERCENT_DEFAULT*100; @@ -266,7 +396,7 @@ static void __AngleSetLimit(void) * @param Coef Коэффициент для приведения float к uint16_t: uint16_t = float*coef, float = uint16_t/coef * @return 0 - параметры совпадают, 1 - параметр был обновлен на paramSrc. */ -static int __CheckSimpleParamF(float *paramDist, uint16_t paramSrc, float Coef) +static int __CheckParamF(float *paramDist, uint16_t paramSrc, float Coef) { if(paramDist == NULL) return 0; @@ -289,7 +419,7 @@ static int __CheckSimpleParamF(float *paramDist, uint16_t paramSrc, float Coef) * @param Coef Коэффициент для приведения uint32_t к uint16_t: uint16_t = uint32_t*coef, uint32_t = uint16_t/coef * @return 0 - параметры совпадают, 1 - параметр был обновлен на paramSrc. */ -static int __CheckSimpleParamU32(uint32_t *paramDist, uint16_t paramSrc, float Coef) +static int __CheckParamU32(uint32_t *paramDist, uint16_t paramSrc, float Coef) { if(paramDist == NULL) return 0; @@ -311,7 +441,7 @@ static int __CheckSimpleParamU32(uint32_t *paramDist, uint16_t paramSrc, float C * @param paramSrc Значение для сравнения с uint16_t параметром * @return 0 - параметры совпадают, 1 - параметр был обновлен на paramSrc. */ -static int __CheckSimpleParamU16(uint16_t *paramDist, uint16_t paramSrc) +static int __CheckParamU16(uint16_t *paramDist, uint16_t paramSrc) { if(paramDist == NULL) return 0; @@ -335,7 +465,7 @@ static int __CheckSimpleParamU16(uint16_t *paramDist, uint16_t paramSrc) * @param Coef Коэффициент для приведения uint32_t к uint16_t: uint16_t = uint8_t*coef, uint8_t = uint16_t/coef * @return 0 - параметры совпадают, 1 - параметр был обновлен на paramSrc. */ -static int __CheckSimpleParamU8(uint8_t *paramDist, uint16_t paramSrc, float Coef) +static int __CheckParamU8(uint8_t *paramDist, uint16_t paramSrc, float Coef) { if(paramDist == NULL) return 0; diff --git a/UPP/Core/UPP/upp_params.h b/UPP/Core/UPP/upp_params.h index 22a3db6..82684a1 100644 --- a/UPP/Core/UPP/upp_params.h +++ b/UPP/Core/UPP/upp_params.h @@ -65,9 +65,10 @@ typedef struct /* Параметры ШИМ */ struct { - uint16_t PhaseMask; ///< Битовяя маска на какие фазы подавать ШИМ: 0 бит - a, 1 бит - b, 2 бит - c - uint16_t Frequency; ///< Частота ШИМ для пачки импульсов на тиристоры [Герцы] - uint16_t PulseNumber; ///< Количесво импульсов в пачке [Количество] + uint16_t PhaseMask; ///< Битовяя маска на какие фазы подавать ШИМ: 0 бит - a, 1 бит - b, 2 бит - c + uint16_t Frequency; ///< Частота ШИМ для пачки импульсов на тиристоры [Герцы] + uint16_t Duty; ///< Скважность ШИМ для пачки импульсов на тиристоры [Проценты] + uint16_t PulseNumber; ///< Количесво импульсов в пачке [Количество] }pwm; /* Параметры Угла */ @@ -87,16 +88,20 @@ typedef struct uint16_t PID_Kp; ///< Пропорциональный коэфициент ПИ регулятора угла [x 10000] uint16_t PID_Ki; ///< Интегральный коэфициент ПИ регулятора угла [x 10000] uint16_t PID_Kd; ///< Интегральный коэфициент ПИ регулятора угла [x 10000] - uint16_t PID_ExpAlpha; ///< Коэффициент сглаживающего фильтра задания регулятора [0..1 x 65535] }angle; }UPP_PrvtParams_t; - +/* Контроль параметров УПП. */ +void UPP_Params_Control(void); +/* Контроль параметров от ПУИ. */ +void UPP_Params_ControlPUI(void); /* Контроль внутренних параметров УПП. */ void UPP_Params_ControlInternal(void); +/* Контроль параметров УПП на корректные значения. */ +void UPP_Params_Saturate(void); /* Установка параметров на дефолтные значения */ void UPP_Params_SetDefault(int pui_default, int internal_default); diff --git a/UPP/MDK-ARM/UPP.uvoptx b/UPP/MDK-ARM/UPP.uvoptx index 2702d77..3504953 100644 --- a/UPP/MDK-ARM/UPP.uvoptx +++ b/UPP/MDK-ARM/UPP.uvoptx @@ -322,59 +322,10 @@ 0 ST-LINKIII-KEIL_SWO - -U005600373433510237363934 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131123 -TC168000000 -TT10000000 -TP21 -TDS800D -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2 + -U005600373433510237363934 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131123 -TC168000000 -TT10000000 -TP21 -TDS800D -TDT1 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2 - - - 0 - 0 - 407 - 1 -

134233766
- 0 - 0 - 0 - 0 - 0 - 1 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c - - \\Debug_F417\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c\407 - - - 1 - 0 - 136 - 1 -
134256344
- 0 - 0 - 0 - 0 - 0 - 1 - ../Core/Src/stm32f4xx_it.c - - \\Debug_F417\../Core/Src/stm32f4xx_it.c\136 -
- - 2 - 0 - 27 - 1 -
0
- 0 - 0 - 0 - 0 - 0 - 0 - .\startup_stm32f417xx.s - - -
- + 0 @@ -456,6 +407,21 @@ 1 \\Debug_F417\../Core/UPP/upp_io.c\UPP_DIN.Pusk.Sw_FilterDelay + + 16 + 1 + hadc3 + + + 17 + 1 + upp.hangle.Iref + + + 18 + 1 + upp.pm.measured.final.U[0] + @@ -466,7 +432,7 @@ 1 2 - MB_DATA + MB_DATA,0x0A 2 @@ -523,6 +489,11 @@ 2 upp.pm.measured.slow.U[0] + + 13 + 2 + upp,0x0A + 0 @@ -530,7 +501,7 @@ 0 1 - 1 + 0 0 0 0 @@ -569,41 +540,17 @@ 0 - `upp.pm.zc.Channel[0].HalfWave - 0000000000000000000000000000000000000040000000000000000000000000000000007570702E706D2E7A632E4368616E6E656C5B305D2E48616C66576176650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000001000000000000000000F03F1400000000000000000000000000000000000000FC9E0008 + `upp.pm.measured.final.U[0] + 008000000000000000000000000000000000F03F000000000000000000000000000000007570702E706D2E6D656173757265642E66696E616C2E555B305D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000001000000000000000000F03F140000000000000000000000000000000000000020B20008 - System Viewer\DBG - 35902 - - - System Viewer\GPIOE - 35898 - - - System Viewer\GPIOG - 35899 - - - System Viewer\TIM1 - 35901 - - - System Viewer\TIM14 - 35903 - - - System Viewer\TIM2 - 35900 - - - System Viewer\TIM5 + System Viewer\ADC3 35905 - System Viewer\TIM8 + System Viewer\DMA2 35904 @@ -1227,7 +1174,7 @@ MyLibs - 0 + 1 0 0 0 @@ -1515,7 +1462,7 @@ PeriphGeneral - 1 + 0 0 0 0 diff --git a/UPP/MDK-ARM/UPP.uvprojx b/UPP/MDK-ARM/UPP.uvprojx index 45f9920..70d41f4 100644 --- a/UPP/MDK-ARM/UPP.uvprojx +++ b/UPP/MDK-ARM/UPP.uvprojx @@ -1122,11 +1122,11 @@ 0 1 1 - 4101 + 4096 1 BIN\UL2CM3.DLL - + "" () diff --git a/UPP/UPP.ioc b/UPP/UPP.ioc index 322dd2f..5d60256 100644 --- a/UPP/UPP.ioc +++ b/UPP/UPP.ioc @@ -488,7 +488,7 @@ TIM2.OCMode_2=TIM_OCMODE_TIMING TIM2.OCMode_3=TIM_OCMODE_TIMING TIM3.IPParameters=TIM_MasterSlaveMode,TIM_MasterOutputTrigger TIM3.TIM_MasterOutputTrigger=TIM_TRGO_UPDATE -TIM3.TIM_MasterSlaveMode=TIM_MASTERSLAVEMODE_ENABLE +TIM3.TIM_MasterSlaveMode=TIM_MASTERSLAVEMODE_DISABLE TIM5.IPParameters=Prescaler TIM5.Prescaler=90-1 TIM8.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3