还有电特殊疑问句麻烦

她社区用户
《身边的安全隐患》说起安全,可能很多人不在意,感觉自己没有遇到过什么事故,所以对它不加理睬。还有些人可能遇到过小的麻烦,但事后没能引起足够的重视,从而导致更大的事故发生。这样的例子在我们生活中不胜枚举,看似微不足道的事情,往往却会引发一场灾难。无尽的思考将我们拉回到现实的深渊。每当看到灾难性的画面,人人都会痛心疾首;每当知道事件的原因后,才又恍然大悟。是呀,为什么总在问题出现后我们才去后悔,为什么总在事故发生后我们才去感叹?无数次这样的疑问沉重地敲打着我们的心灵,换回的却依然是毫不在乎的表情。一个毫不起眼的烟头,一根散乱的电线等等,随时都可能引发一场灾难,这些看上去的小事,放在安全来说则是一件大事。平静的生活中,其实只要我们用心去观察,用心去发现,及早解决隐患,做到安全第一,事故的发生率就会降低很多。常见的交通事故,有多少不都是因为不遵守交通法规而引起的?突发的火灾事故,有多少不都是因为乱丢烟头而发生?看似无关大局的隐患,发展到后来,往往成为灾难的罪魁祸首。记得有这样一个故事,一名英国人去做地铁,上电梯的时候闻到一股焦味,在他前面的人都没有注意到这股气味,他仔细检查了一下周围,突然发现焦味来自电梯的台阶下,因为时间紧迫,他将自己的疑虑跟执行警察说明后就离开了。可是警察根本没有在意他说的问题,乘客还在不断地涌入地铁站,人越来越多。地铁站内的焦味仍在不断加重,可是每个人都行色匆匆地赶着回家,无人理会此事,时间一分一秒地过去,所有人都没有意识到这股焦味将带来什么。终于,在半个小时之后,电梯下部电线着火烧焦,引发了大火,最终导致了英国有史以来最大的地铁爆炸,伤亡人数近千。回顾事件始末,如果当时能再多一个有心人,如果警察能根据发现者的意见及时解决问题,相信挽救的不只是一场火灾,而是上千人的生命!血的教训带给我们更多的应该是关于安全的思考和关于生命的珍惜。类似的事件,不仅生活中有,工作中也同样存在。总之,无论是在工作中,还是在生活中,安全隐患都是我们要时刻注意,时刻关心的问题。隐藏的忧患,需要我们以一种细心、认真、严谨的思维去对待,不要把平常小事不放在眼里,不要把操作规范抛在脑后,一切工作的顺利进行,一切美好生活的幸福开始,都源于我们对安全不断关注!
确实每个人身边都有很多安全隐患。
她社区用户
打开她社区 App 查看全部回复
每次来看这个话题..我都是来看翡翠手镯和3卡钻戒..因为这两样我喜欢而且没有.图中的钻戒3卡70多万当时我舍不得买..现在结婚了老公也没想给我买的意思..我也只能把这个想要的放心里..等生完宝宝自己赚钱买..别人不给我买的我就自己赚钱买..别人不对我好我就自己对自己好..老公说婚后说能管我衣食住行无忧..奢侈品要靠我自己去奋斗..也好..老公能这样了我也知足了..反正我喜欢的一定会得到..我相信三卡钻戒..翡翠手镯都会成为我家当的一部分.
(今天吃的什么菜)分享, 黑胡椒培根意面。 意大利面,也被称为意粉,是西餐正餐中最接近中国人饮食习惯的面点。 作为意大利面的法定原料,杜兰小麦是最硬质的小麦品种,具有高密度、高蛋白质、高筋度等特点,其制成的意大利面通体呈黄色,耐煮、口感好。 意面的做法多种多样,搭配的食材选择也很多。意面中主要是以白葱头调味,然后可以搭配诸如培根、鸡肉、香菇肉酱等等,再搭配一种孩子能接受的蔬菜,诸如:彩椒等就可以啦。 很节省时间的做法,几分钟营养早餐就搞定啦,学会一种也可以变化出很多种的口味的意面。 食材:意面:100克,培根:30克,白葱头:30克,胡萝卜30克,青椒:20克,玉米粒30克,意面酱:80克,盐:1/8小匙,黑胡椒碎:适量。 步骤: 1. 水烧开后,放入意面,煮至意面变软。意面煮好后,用冷水冲一下,备用。2.平底锅(推荐不沾锅)加热后,直接放培根碎进去,煸炒出油。因为培根含油量高,所以全程不用再放油了。 3.加入白葱头碎,青椒碎胡萝卜碎玉米粒,放1/8小匙的盐进去。4.把之前煮好的意面放进去,翻炒片刻加入意面酱翻炒后关火。 5.出锅前撒少许的黑胡椒碎。6.装盘,搞定!
大夏天弄的叶插,居然成功了 。
我今天买的天价芒果,好贵可是又很好吃,今年第一次买哦
不解释,只欣赏。
我们的班花怎么样?有疑问,麻烦读电大的进_电大吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:7,783贴子:
有疑问,麻烦读电大的进收藏
在电大染发会被扣分吗?会拿不到毕业证吗?我班主任叫我把头发染黑我没有听她的话去染然后今日她没有再话我但是我见到她写低了我的名字,是要扣分吗?麻烦各位电大的同学解答下我的疑问 谢谢了!
哇!好严格的老师,不过严师出高徒、、继续努力吧!!!
怎么肯能拿不到毕业证,以后补考出钱就OK了,以前染发都不管的。现在还管,出奇了。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或查看: 829|回复: 7
新入手3DS麻烦论坛前辈解答几个疑问万分感谢
在线时间2211 小时
阅读权限70
帖子猥币巴士票
猥然不动 Lv.7, 积分 5050, 距离下一级还需 4950 积分
终于入手3DS黑色日版,现在遇到2个疑问,希望大家帮忙解答:
1.ESHOP下载的游戏程序为什么默认装在主机闪存里而不是直接安装在从SD卡中?可以修改安装位置默认设置吗?
2.MII广场的擦肩传说必须至少擦肩到1个人才能进行游戏吗?我现在点开始游戏就出来一段说明然后又退回到开头菜单,到底是为什么呢?
3.上屏的3D效果我感觉开到最大有点看不清,开到一半还可以,有时候还需要眼睛适应一下才能感觉到3D,请问这个正常吗?
4.有关压屏的问题,是不是在盒盖前在中间垫一块布会好很多?我现在垫了一块贴膜送的擦布比较小比较薄可以吗?
再次感谢在线等待解答谢谢
PSV 3DSLL 双机制霸
May'n最高 M.O.V.E最高 燃曲最高
在线时间3682 小时
阅读权限80
帖子猥币巴士票
猥风八面 Lv.8, 积分 18499, 距离下一级还需 11501 积分
本帖最后由 windsome 于
19:41 编辑
1 dsware好像必须在本体,3dsware默认应该在sd卡的吧。
2 你设置了自己的mii形象了吗?我至今没擦到人,但是不影响擦肩传说,可以花2金币买勇者。
3 习惯就好。
在线时间6437 小时
阅读权限100
帖子猥币巴士票
ls正解了..我就不说了
在线时间212 小时
阅读权限50
帖子猥币巴士票
猥言大义 Lv.5, 积分 1011, 距离下一级还需 989 积分
在线时间2211 小时
阅读权限70
帖子猥币巴士票
猥然不动 Lv.7, 积分 5050, 距离下一级还需 4950 积分
感谢2楼解答,是不是至少走200步才能得到2金币才能开始游戏呢?
还有第四个问题有人解答一下吗谢谢
PSV 3DSLL 双机制霸
May'n最高 M.O.V.E最高 燃曲最高
在线时间718 小时
阅读权限40
帖子猥币巴士票
猥服出巡 Lv.4, 积分 724, 距离下一级还需 276 积分
每天1000步 10个硬币上限
在线时间3657 小时
头像被屏蔽
帖子猥币巴士票
提示: 作者被禁止或删除 内容自动屏蔽
在线时间163 小时
阅读权限40
帖子猥币巴士票
猥服出巡 Lv.4, 积分 806, 距离下一级还需 194 积分
沙发正解,楼主给云吧!
展会先锋【普通成就】
每当有游戏展会,我都有很多事情要做,根本停不下来!(参与任何游戏展会报道直播及其他相关内容制作)
正版党【光辉事迹】
不是咱要晒正版,实在是游戏太好玩(自曝拥有任意平台10款以上的正版游戏)
水元素【普通成就】
水、H2O、みず、water,额...总之怎么叫都行了
(累计发帖1000即可解锁)
常客【普通成就】
《我的业余生活》从前有一个论坛叫TGBUS…(在线时间超过1000小时)
水精灵【稀有成就】
我很喜欢水,因为这就是我存在的意义...(累计发帖10000即可解锁)
Powered by电机控制例程F280XILEG_VDC.C中的疑问?麻烦解答,谢谢! - C2000(TM) 32位实时 MCU - 德州仪器在线技术支持社区
电机控制例程F280XILEG_VDC.C中的疑问?麻烦解答,谢谢!
发表于3年前
<input type="hidden" id="hGroupID" value="38"
您好,F280XILEG_VDC.C中有几处不明白的,望您解答!下面是TI例程:&/p>
&p>void F280X_ileg2_dcbus_drv_init(ILEG2DCBUSMEAS *p)&br>{&br>&&& DELAY_US(ADC_usDELAY);&&br>& &br>&&& AdcRegs.ADCTRL1.all = ADC_RESET_FLAG; &&// Reset the ADC Module &br>&asm(& NOP &);&br>&asm(& NOP &);&&&&/p>
&p>&&& AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;&&// Power up bandgap/reference circuitry&br>&DELAY_US(ADC_usDELAY);&&&&&& &&// Delay before powering up rest of ADC &br>&&& &br>&&& AdcRegs.ADCTRL3.bit.ADCPWDN = 1;&&& &&// Power up rest of ADC&br>&DELAY_US(ADC_usDELAY);&&/p>
&p>&&& AdcRegs.ADCTRL3.bit.ADCCLKPS = 16;&&&& &&// Set up ADCTRL3 register &br>&&& AdcRegs.ADCTRL1.all = ADCTRL1_INIT_STATE;&// Set up ADCTRL1 register &br>&&& AdcRegs.ADCTRL2.all = ADCTRL2_INIT_STATE; &// Set up ADCTRL2 register &br>&AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 2;&&&&&& // Specify three conversions&br>&&& AdcRegs.ADCCHSELSEQ1.all = p-&ChS&&&& // Configure channel selection&/p>
&p>&&& AdcRegs.ADCREFSEL.all = 39;&&&&&&&&&&&&&&&& // Set up the ADC reference select register&br>&&& AdcRegs.ADCOFFTRIM.all = 65534;&&&&&&&&&&&& // Set up the ADC offset trim register&/p>
&p>&&& // Set up Event Trigger with CNT_zero enable for Time-base of EPWM1&br>&&& EPwm1Regs.ETSEL.bit.SOCAEN = 1;&&&& // Enable SOCA&br>&&& EPwm1Regs.ETSEL.bit.SOCASEL = 1;&&& // Enable CNT_zero event for SOCA&br>&&& EPwm1Regs.ETPS.bit.SOCAPRD = 1;&&&& // Generate SOCA on the 1st event&br>&EPwm1Regs.ETCLR.bit.SOCA = 1;&&&&&& // Clear SOCA flag&/p>
&p>void F280X_ileg2_dcbus_drv_read(ILEG2DCBUSMEAS *p)&br>{&br>&&&&&& int16 DatQ15;&br>&&&&&& int32 T&/p>
&p>&&&&&&& // Wait until ADC conversion is completed&br>&&&&&&& while (AdcRegs.ADCST.bit.SEQ1_BSY == 1)&br>&&&&&&& {};&/p>
&p>&&&&&&& DatQ15 = AdcRegs.ADCRESULT0^0x8000;&&&&&& // Convert raw result to Q15 (bipolar signal)&br>&&&&&&& Tmp = (int32)p-&ImeasAGain*(int32)DatQ15; // Tmp = gain*dat =& Q28 = Q13*Q15&br>&&&&&&& p-&ImeasA = (int16)(Tmp&&13);&&&&&&&&&&&& // Convert Q28 to Q15&br>&&&&&&& p-&ImeasA += p-&ImeasAO&&&&&&&&&&&& // Add offset&br>&&&&&&& p-&ImeasA *= -1;&&&&&&&&&&&&&&&&&& && && // Positive direction, current flows to motor&/p>
&p>&&&&&&& DatQ15 = AdcRegs.ADCRESULT1^0x8000;&& && // Convert raw result to Q15 (bipolar signal)&br>&&&&&&& Tmp = (int32)p-&ImeasBGain*(int32)DatQ15; // Tmp = gain*dat =& Q28 = Q13*Q15&br>&&&&&&& p-&ImeasB = (int16)(Tmp&&13);&&&&&&&&&&&& // Convert Q28 to Q15&br>&&&&&&& p-&ImeasB += p-&ImeasBO&&&&&&&&&&&& // Add offset&br>&&&&&&& p-&ImeasB *= -1;&&&&&&&&&&&&&&&&&& &&& // Positive direction, current flows to motor&br>&&br>&&&&&&& DatQ15 = (AdcRegs.ADCRESULT2&&1)&0x7FFF;&& // Convert raw result to Q15 (unipolar signal)&br>&&&&&&& Tmp = (int32)p-&VdcMeasGain*(int32)DatQ15; // Tmp = gain*dat =& Q28 = Q13*Q15&br>&&&&&&& if (Tmp & 0x0FFFFFFF)&&&&&&&&&&&&&&&&&&&&& // Limit Tmp to 1.0 in Q28&br>&&&&&&&&&& Tmp = 0x0FFFFFFF;&br>&&&&&&& p-&VdcMeas = (int16)(Tmp&&13);&&&&&&&&&&&& // Convert Q28 to Q15&br>&&&&&&& p-&VdcMeas += p-&VdcMeasO&&&&&&&&&&& // Add offset&/p>
&p>&&&&&&& p-&ImeasC = -(p-&ImeasA + p-&ImeasB);&&&&& // Compute phase-c current&/p>
&p>&&&&&&& AdcRegs.ADCTRL2.all |= 0x4040;&&&&&&&&&&&& // Reset the sequence&/p>
&p>}&&&&&&&&&&&&/p>
&p>我的问题如下:&/p>
&p>1,寄存器:(1)AdcRegs.ADCTRL1.all = ADCTRL1_INIT_STATE;&// Set up ADCTRL1 register &br>&&& AdcRegs.ADCTRL2.all = ADCTRL2_INIT_STATE; &// Set up ADCTRL2 register&/p>
&p>请问这两个控制寄存器ADCTRL1_INIT_STATE,ADCTRL2_INIT_STATE,具体代表的怎样设置呢,没找到相关的说明。&/p>
&p>(2)AdcRegs.ADCREFSEL.all = 39;&&&&&&&&&&&&&&&& // Set up the ADC reference select register&br>&&& AdcRegs.ADCOFFTRIM.all = 65534;&&&&&&&&&&&& // Set up the ADC offset trim register&/p>
&p>这两个ADC寄存器麻烦您解释下,设置的39和65534分别怎么样得来的呢?代表什么意思呢 ?谢谢,我看了下寄存器资料,但还是有疑问,谢谢!&/p>
&p>2.,第二个read函数中ImeasBGain怎么样得到的?为什么设置成Q格式为Q13呢?&/p>
&p>3,&& p-&ImeasA *= -1;&&&&&&&&&&&&&&&&&& && && // Positive direction, current flows to motor这条指令的意思?&/p>
&p>4,关于将ADC结果异或的,双极性电流与0x8000异或,单极性电压与0x7FFF异或,虽然!知道这样处理简单有效,呵呵,大概能懂意思,但还是希望您解释下,呵呵,再次感谢&/p>&div style=&clear:&>&/div>" />
电机控制例程F280XILEG_VDC.C中的疑问?麻烦解答,谢谢!
此问题已被解答
All Replies
您好,F280XILEG_VDC.C中有几处不明白的,望您解答!下面是TI例程:
void F280X_ileg2_dcbus_drv_init(ILEG2DCBUSMEAS *p){&&& DELAY_US(ADC_usDELAY);&& &&& AdcRegs.ADCTRL1.all = ADC_RESET_FLAG; &&// Reset the ADC Module &asm(& NOP &);&asm(& NOP &);&&&
&&& AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;&&// Power up bandgap/reference circuitry&DELAY_US(ADC_usDELAY);&&&&&& &&// Delay before powering up rest of ADC &&& &&& AdcRegs.ADCTRL3.bit.ADCPWDN = 1;&&& &&// Power up rest of ADC&DELAY_US(ADC_usDELAY);&
&&& AdcRegs.ADCTRL3.bit.ADCCLKPS = 16;&&&& &&// Set up ADCTRL3 register &&& AdcRegs.ADCTRL1.all = ADCTRL1_INIT_STATE;&// Set up ADCTRL1 register &&& AdcRegs.ADCTRL2.all = ADCTRL2_INIT_STATE; &// Set up ADCTRL2 register &AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 2;&&&&&& // Specify three conversions&&& AdcRegs.ADCCHSELSEQ1.all = p-&ChS&&&& // Configure channel selection
&&& AdcRegs.ADCREFSEL.all = 39;&&&&&&&&&&&&&&&& // Set up the ADC reference select register&&& AdcRegs.ADCOFFTRIM.all = 65534;&&&&&&&&&&&& // Set up the ADC offset trim register
&&& // Set up Event Trigger with CNT_zero enable for Time-base of EPWM1&&& EPwm1Regs.ETSEL.bit.SOCAEN = 1;&&&& // Enable SOCA&&& EPwm1Regs.ETSEL.bit.SOCASEL = 1;&&& // Enable CNT_zero event for SOCA&&& EPwm1Regs.ETPS.bit.SOCAPRD = 1;&&&& // Generate SOCA on the 1st event&EPwm1Regs.ETCLR.bit.SOCA = 1;&&&&&& // Clear SOCA flag
void F280X_ileg2_dcbus_drv_read(ILEG2DCBUSMEAS *p){&&&&&& int16 DatQ15;&&&&&& int32 T
&&&&&&& // Wait until ADC conversion is completed&&&&&&& while (AdcRegs.ADCST.bit.SEQ1_BSY == 1)&&&&&&& {};
&&&&&&& DatQ15 = AdcRegs.ADCRESULT0^0x8000;&&&&&& // Convert raw result to Q15 (bipolar signal)&&&&&&& Tmp = (int32)p-&ImeasAGain*(int32)DatQ15; // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&ImeasA = (int16)(Tmp&&13);&&&&&&&&&&&& // Convert Q28 to Q15&&&&&&& p-&ImeasA += p-&ImeasAO&&&&&&&&&&&& // Add offset&&&&&&& p-&ImeasA *= -1;&&&&&&&&&&&&&&&&&& && && // Positive direction, current flows to motor
&&&&&&& DatQ15 = AdcRegs.ADCRESULT1^0x8000;&& && // Convert raw result to Q15 (bipolar signal)&&&&&&& Tmp = (int32)p-&ImeasBGain*(int32)DatQ15; // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&ImeasB = (int16)(Tmp&&13);&&&&&&&&&&&& // Convert Q28 to Q15&&&&&&& p-&ImeasB += p-&ImeasBO&&&&&&&&&&&& // Add offset&&&&&&& p-&ImeasB *= -1;&&&&&&&&&&&&&&&&&& &&& // Positive direction, current flows to motor&&&&&&&& DatQ15 = (AdcRegs.ADCRESULT2&&1)&0x7FFF;&& // Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&VdcMeasGain*(int32)DatQ15; // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& if (Tmp & 0x0FFFFFFF)&&&&&&&&&&&&&&&&&&&&& // Limit Tmp to 1.0 in Q28&&&&&&&&&& Tmp = 0x0FFFFFFF;&&&&&&& p-&VdcMeas = (int16)(Tmp&&13);&&&&&&&&&&&& // Convert Q28 to Q15&&&&&&& p-&VdcMeas += p-&VdcMeasO&&&&&&&&&&& // Add offset
&&&&&&& p-&ImeasC = -(p-&ImeasA + p-&ImeasB);&&&&& // Compute phase-c current
&&&&&&& AdcRegs.ADCTRL2.all |= 0x4040;&&&&&&&&&&&& // Reset the sequence
}&&&&&&&&&&&
我的问题如下:
1,寄存器:(1)AdcRegs.ADCTRL1.all = ADCTRL1_INIT_STATE;&// Set up ADCTRL1 register &&& AdcRegs.ADCTRL2.all = ADCTRL2_INIT_STATE; &// Set up ADCTRL2 register
请问这两个控制寄存器ADCTRL1_INIT_STATE,ADCTRL2_INIT_STATE,具体代表的怎样设置呢,没找到相关的说明。
(2)AdcRegs.ADCREFSEL.all = 39;&&&&&&&&&&&&&&&& // Set up the ADC reference select register&&& AdcRegs.ADCOFFTRIM.all = 65534;&&&&&&&&&&&& // Set up the ADC offset trim register
这两个ADC寄存器麻烦您解释下,设置的39和65534分别怎么样得来的呢?代表什么意思呢 ?谢谢,我看了下寄存器资料,但还是有疑问,谢谢!
2.,第二个read函数中ImeasBGain怎么样得到的?为什么设置成Q格式为Q13呢?
3,&& p-&ImeasA *= -1;&&&&&&&&&&&&&&&&&& && && // Positive direction, current flows to motor这条指令的意思?
4,关于将ADC结果异或的,双极性电流与0x8000异或,单极性电压与0x7FFF异或,虽然!知道这样处理简单有效,呵呵,大概能懂意思,但还是希望您解释下,呵呵,再次感谢
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
e,麻烦 ti的技术员大哥和各位大神看下噢,谢谢!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
探花10196分
1. 请参考,该头文件里有对这两个寄存器值的定义。另外,关于ADC的参考值与偏移是需要根据你的系统来定的。
2. ImeasBGain也在前面那个头文件里有定义,定义时的格式就是Q13.
3. 这一句是把电流方向作了一个反向,这也是需要根据你实际的系统,可以更改。如果采样得到的电流与直接就是正向的,就没必要乘-1了。
4. 关于电压采样与变换的说明文档,请参考
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
Jay, 您好,感谢回答!
但是还有疑问,望解疑,呵呵。
1.AdcRegs.ADCCHSELSEQ1.all = p-&ChS&&&& // Configure channel selection
这句指令中ChSelect没看懂,而在PMSM3_4中应该是采样两相电流和一个直流电压,三个通道,那么程序中这句:
&ilg2_vdc1.ChSelect = 0x0610;
其中0x0610;怎么得来的呢?麻烦解释下!
2.电机控制中PWM同步的问题,以前问过Jones Chen,我后来自己验证了 例程大概如下(TI的EPWM Reference Guide(这里看的是28335的epwm reference,跟2808差不多吧应该)中第三章Controlling Dual 3-Phase Inverters for Motors(ACI and PMSM)介绍的例程也跟下面一样的,):
& SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
& // Configure ePWM4 for ADC SOC
& EPwm1Regs.ETSEL.bit.SOCAEN = 0; & & & & & & & & // Disable SOC on EPwm1A group for now - enable when ADC needed
& EPwm1Regs.ETSEL.bit.SOCBEN = 0; & & & & & & & & // Disable SOC on EPwm1B group for now - enable when ADC needed
& EPwm2Regs.ETSEL.bit.SOCAEN = 0; & & & & & & & & // Disable SOC on EPwm1A group for now - enable when ADC needed
& EPwm2Regs.ETSEL.bit.SOCBEN = 0; & & & & & & & & // Disable SOC on EPwm1B group for now - enable when ADC needed
& EPwm1Regs.ETSEL.bit.SOCASEL= 1; & & & & & & & & // EPwm1 SOCA--Zero
& EPwm1Regs.ETSEL.bit.SOCBSEL= 2; & & & & & & & & // EPwm1 SOCB--Prd
& EPwm2Regs.ETSEL.bit.SOCASEL= 2; & & & & & & & & // EPwm2SOCA--Zero
& EPwm2Regs.ETSEL.bit.SOCBSEL= 1; & & & & & & & & // EPwm2 SOCB--Prd
& EPwm1Regs.ETPS.bit.SOCAPRD = 1; & & & & & & & & // Generate pulse on 1st event
& EPwm1Regs.ETPS.bit.SOCBPRD = 1; & & & & & & & & // Generate pulse on 1st event
& EPwm2Regs.ETPS.bit.SOCAPRD = 1; & & & & & & & & // Generate pulse on 1st event
& EPwm2Regs.ETPS.bit.SOCBPRD = 1; & & & & & & & & // Generate pulse on 1st event
& EPwm1Regs.TBPRD = XXXX; & &
&EPwm2Regs.TBPRD = XXXX;
& EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; &// count up and down to trigger SOC
& EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; &// count up and down to trigger SOC
& // Setup TBCLK
& EPwm1Regs.TBPHS.half.TBPHS = 0x0000; & & & & & // Phase is 0
& EPwm1Regs.TBCTR = 0x0000; & & & & & & & & & & &// Clear counter
& EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; & & & &// Disable phase loading
& EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; & &// Sync out @ counter=zero
& EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; & & & // Clock ratio to SYSCLKOUT
& EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; & & & & &// Clock ratio to SYSCLKOUT
& EPwm2Regs.TBPHS.half.TBPHS = 240; & & & & & & &// Phase is 90
& EPwm2Regs.TBCTR = 0x0000; & & & & & & & & & & &// Clear counter
& EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; & & & & // enable phase loading//Jones added
& EPwm2Regs.TBCTL.bit.PHSDIR= 1; & & & & & & & & // count up when sync//Jones added
& EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; & &//&
& EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; & & & // Clock ratio to SYSCLKOUT
& EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1; & & & & &// Clock ratio to SYSCLKOUT
& SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
我的问题:
(1)而在安装的文件tidcs-dmc文件夹中的280x_xpwm.c中,跟上面的例程有点不同,pmsm3_4是在主程序里开始直接写
& SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
然后接着配置EPWM模块,前面没有设置&SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;;而上面给出的例程是先写SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
再配置EPWM模块;再写SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;不知道这两种模式的区别?
(2)问题2,上例程中配置的EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; & & & &// Disable phase loading
与EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; & &// Sync out @ counter=zero
这两个寄存器配置与xpwm.c中也不同,体现的是主模块epwm1的配置,xpwm.c中配置的是EPwm1Regs.TBCTL.bit.PHSEN = 1;&&与
EPwm1Regs.TBCTL.bit.SYNCOSEL = 0;(照理来说epwm1是主模块,EPWM2,EPWM3是从模块,应该配置不同吧,而xpwm.c中配置是一样的EPWM1,
EPWM2,EPWM3)原配置如下xpwm.c 中:
void F280X_PWM_Init(PWMGEN *p) {&&&&&&
&&&&&&&& // Setup Sync&&&&&&&& EPwm1Regs.TBCTL.bit.SYNCOSEL = 0;&&&&&&&&& // Pass through&&&&&&&& EPwm2Regs.TBCTL.bit.SYNCOSEL = 0;&&&&&&&&& // Pass through&&&&&&&& EPwm3Regs.TBCTL.bit.SYNCOSEL = 0;&&&&&&&&& // Pass through&&&&&&&& EPwm4Regs.TBCTL.bit.SYNCOSEL = 0;&&&&&&&&& // Pass through&&&&&&&& EPwm5Regs.TBCTL.bit.SYNCOSEL = 0;&&&&&&&&& // Pass through&&&&&&&& EPwm6Regs.TBCTL.bit.SYNCOSEL = 0;&&&&&&&&& // Pass through
&&&&&&&& // Allow each timer to be sync&#39;ed&&&&&&&& EPwm1Regs.TBCTL.bit.PHSEN = 1;&&&&&&&& EPwm2Regs.TBCTL.bit.PHSEN = 1;&&&&&&&& EPwm3Regs.TBCTL.bit.PHSEN = 1;&&&&&&&& EPwm4Regs.TBCTL.bit.PHSEN = 1;&&&&&&&& EPwm5Regs.TBCTL.bit.PHSEN = 1;&&&&&&&& EPwm6Regs.TBCTL.bit.PHSEN = 1;
也麻烦说一下为什么不同呢?两种对应的方式,问题1和问题2中对应的设置都能够达到时基同步(都能达到EPWM1主模块,EPWM2,EPWM3从模块)?两种设置的区别(是否同步的方式不同)?
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
探花10196分
1. 根据TRM上对ADCCHSELSEQ1寄存器的说明,0x0610表示选择了ADCINA0,ADCINA1和ADCINA6作为转换通道。根据转换序列和f280xileg_vdc.c中void F280X_ileg2_dcbus_drv_read(ILEG2DCBUSMEAS *p)的定义,ADCINA0是A相电流,ADCINA1是B相电流,ADCINA6是母线电压。通道的选择和序列可以根据你的实际系统进行调整理,只需要修改这里的0x0610即可。
2. ePWM时钟同步问题。
(1)对于SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC全局时基同步使能寄存器的使用,请参考下面TRM上对该寄存器的说明。红框标记为建议的设置顺序。
(2)各个PWM模块之间的同步关系。你的理解没错,ePWM2和ePWM3是由ePWM1来提供同步信号的,对于ePWM1自身是否需要同步关键在于TBPHS相位寄存器的设置。一般地,我们设置ePWM1的相位寄存器为0,那么ePWM1是否同步就无所谓了。如果ePWM1也需要调整相位,那么就需要使能它的同步。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
Jay,谢谢!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
dat_q15 = AdcRegs.ADCRESULT0^0x8000;
dat_q15 = AdcRegs.ADCRESULT1^0x8000;
dat_q15 = (AdcRegs.ADCRESULT2&&1)&0x7FFF;
您好!请问用这种方法来处理AD转换结果有没有办法进行AD校准,另外 为什么直流和交流的处理方法不一样?非常的困惑 多谢解答
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
老师您好:
&&& 关于这段程序我还有一个不懂的地方,恳请您不吝赐教,就是为什么DatQ15 = (AdcRegs.ADCRESULT0&&1)&0x7FFF要右移一位后才相与呢??下面附录部分程序,感谢您的回复!!
& DatQ15 = (AdcRegs.ADCRESULT0&&1)&0x7FFF;&& &// Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&Ch1Gain*(int32)DatQ15;&&&&& // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&Ch1Out = (int16)(Tmp&&13);&&&&&&&&&&&&&& // Convert Q28 to Q15
&&&&&&& DatQ15 = (AdcRegs.ADCRESULT1&&1)&0x7FFF;&& &// Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&Ch2Gain*(int32)DatQ15;&&&&& // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&Ch2Out = (int16)(Tmp&&13);&&&&&&&&&&&&&& // Convert Q28 to Q15
&&&&&&& DatQ15 = (AdcRegs.ADCRESULT2&&1)&0x7FFF;&& &// Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&Ch3Gain*(int32)DatQ15;&&&&& // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&Ch3Out = (int16)(Tmp&&13);&&&&&&&&&&&&&& // Convert Q28 to Q15
&&&&&&& DatQ15 = (AdcRegs.ADCRESULT3&&1)&0x7FFF;&& &// Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&Ch4Gain*(int32)DatQ15;&&&&& // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&Ch4Out = (int16)(Tmp&&13);&&&&&&&&&&&&&& // Convert Q28 to Q15
&&&&&&& AdcRegs.ADCTRL2.all |= 0x4040;&&&&&& &&&& // Reset the sequence
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
榜眼23760分
老师您好:
&&& 关于这段程序我还有一个不懂的地方,恳请您不吝赐教,就是为什么DatQ15 = (AdcRegs.ADCRESULT0&&1)&0x7FFF要右移一位后才相与呢??下面附录部分程序,感谢您的回复!!
& DatQ15 = (AdcRegs.ADCRESULT0&&1)&0x7FFF;&& &// Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&Ch1Gain*(int32)DatQ15;&&&&& // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&Ch1Out = (int16)(Tmp&&13);&&&&&&&&&&&&&& // Convert Q28 to Q15
&&&&&&& DatQ15 = (AdcRegs.ADCRESULT1&&1)&0x7FFF;&& &// Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&Ch2Gain*(int32)DatQ15;&&&&& // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&Ch2Out = (int16)(Tmp&&13);&&&&&&&&&&&&&& // Convert Q28 to Q15
&&&&&&& DatQ15 = (AdcRegs.ADCRESULT2&&1)&0x7FFF;&& &// Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&Ch3Gain*(int32)DatQ15;&&&&& // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&Ch3Out = (int16)(Tmp&&13);&&&&&&&&&&&&&& // Convert Q28 to Q15
&&&&&&& DatQ15 = (AdcRegs.ADCRESULT3&&1)&0x7FFF;&& &// Convert raw result to Q15 (unipolar signal)&&&&&&& Tmp = (int32)p-&Ch4Gain*(int32)DatQ15;&&&&& // Tmp = gain*dat =& Q28 = Q13*Q15&&&&&&& p-&Ch4Out = (int16)(Tmp&&13);&&&&&&&&&&&&&& // Convert Q28 to Q15
&&&&&&& AdcRegs.ADCTRL2.all |= 0x4040;&&&&&& &&&& // Reset the sequence
请另起一贴提问。
----------------------------------------
You have posted to a forum that requires a moderator to approve posts before they are publicly available.}

我要回帖

更多关于 别找我麻烦 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信