有没有办法如何降低显卡频率BL转会频率

伊布的风评急转直下其实原因就一个,转会次数多,没有多少队蜜给他说话_虎扑
即使是历史巨星也需要有人不断的吹捧他们的名声就像欧文,当年要是回英格兰是去利物浦终老,即使以后踢得再差,风评也不至于现在这样同样转会次数多,当年被骂成足球娼妓的维耶里,起码也有国米球迷的认同伊布踢了这么多球队,现在能为他说话的也就是少数米兰和曼联球迷了按这个趋势来说,除非伊布能在世界杯有什么逆天发挥,他的风评基本会是一直走低
说伊布风评急转直下?肯定是认识伊布比较晚伊布从国米到巴萨到米兰明明是先被黑出翔后来慢慢大家觉得其实奉先还真的挺牛逼 张狂但是真性情就算最近有点小非议也远不及当初
“我不喜欢所以不对”的观点是话题区主流价值观。伊布是live as he wishes to live,嫌他打嘴炮的人是ask him to live as they wish to live,到底谁更道德正确。
引用6楼 @ 发表的
关键还是实力不行,大罗玩转死敌不比伊布狠?风评根本不受影响。
大罗嘴没这么碎过哦
要没世界杯这事,其实也还好。。。
这其实就是个人英雄主义的典型人物,巅峰时叱咤风云,一旦风光不再就被人黑成渣,连中立者都不替他说话
引用22楼 @ 发表的
“我不喜欢所以不对”的观点是话题区主流价值观。伊布是live as he wishes to live,嫌他打嘴炮的人是ask him to live as they wish to live,到底谁更道德正确。
我觉得你这个说法超级无聊如果伊布有吹牛逼的自由,球迷也有嫌弃他能力不如嘴皮子的自由话题区的价值观从头到尾就只有一个:强者为尊
说一句,伊布其实不是在吹牛逼,其实是在调侃,就像我说我是你爸爸我就是么?
拜托有点幽默感吧,另外伊布风评好不好是你说的?怎么就急转直下了啊,人家球迷可不少,起码我身边有不少巴萨的,米兰的伊布球迷
关键在于吹逼能力大大超越自我,时间长了肯定不行。
伊布从来都是这么个德行。人家不过是年纪大了踢出的好球少了没人吹了。 加上本身说话太装逼。所以喜欢的人没素材吹。而黑子会在每次的新闻贴里狂黑。黑来黑去无非是欧冠软脚虾。说他软那也得是看跟谁比。毕竟伊布也不是路人。 水平在那呢。都快退役的岁数了。风评基本定性了。风评下不下也抹杀不了曾经的成绩。
就是嘴大,去年从曼联出去后声望已经重回到很高的地步了
结果伤好就开始大嘴了,而且不像以前有实力支撑,这几次明明自己实力已经不行的情况下还强行装B就不怪别人踩了
看到瑞典进世界杯几率小就退出,结果爆种进了,又要来摘桃子,瑞典那些历史名将哪个像他这么不堪不要脸的?
米兰球迷里讨厌他的也很多,当年在尤文和国米时没少对喷。
我是伊布拉希莫维奇,你谁?
引用1楼 @ 发表的
主要还是因为嘴大
说对了~如果是质疑伊布实力的,我都会反驳一下。但是你天天牛皮吹上天,我真的不能帮你圆?
咱们看的是足球,又不是偶像剧,何必把粉丝那一套带到足球世界里来。况且风评什么的,你看伊布本人在意不?
大家在现实生活中是不是也很讨厌吹牛逼的人?我听着觉得挺好玩的,因为没啥利害关系
维埃里也四处流浪
以前觉得他真性情,现在觉得他完全是故意说一些狂妄的话来凸显他的人设,但是没把握好尺度狂过头了,给人的感觉就是得意忘形了。
要不去米兰专区问问?
简单来讲就是目中无人偏偏自己硬战又没有拿的出的表现,所以缺点无限放大
你需要登录后才可以回复,请
其他人正在看您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
BLHeli电调篇.ppt 20页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
BLHeli电调篇
你可能关注的文档:
··········
··········
XRotor Micro 系列穿越机专用电调简介 BLHeli是什么? BLHeli是一个第三方的开源组织,做电调程序的,它针对很多家的电调都编写相应的BLHeli程序,所以市面上才会有各种各样的电调都在使用BLHeli程序;
简单来说,BLHeli谁都可以使用,我们的BLHeli电调即是非好盈程序的电调,即我们的电调硬件是我们设计生产的,软件是使用的BLHeli这个组织编写的软件,所以理论上来说,电调的功能是不受我们控制的,BLHeli有什么功能,我们就有什么功能。所以简单来说,我们和其他家做bLHeli电调的,基本上就是在拼硬件和用料。 One-Shot125,One-shot42,MultiShot是什么? 这三种都是由飞控发出,并且由电调接收并识别的油门信号,专业的来说: One-Shot125的油门信号范围为:125-250us One-Shot42的油门信号范围为:42-80us MultiShot的油门信号范围为:5-25us (再说的专业点,我们的电调是脉宽调制的,上面的范围就是脉宽范围) 说回简单的,这些数字意味着什么,这些数字越小,就意味着油门越窄,单位时间内,可以发送的次数就越多,次数越多,就意味着频率越快,频率越快,就意味着速度越快,所以,再说的简单点,就是这三种油门的速度相比较普通油门,速度更快,而且这三个油门的速度依次为:MultiShot & One-Shot42 & One-Shot125 BLHeli-S是什么? BLHeli-S是BLHeli最新的一版固件(版本代号16.1),与我们的电调固件升级类似; 该固件实现了One-Shot125,One-shot42,MultiShot三种油门的全部兼容(BLHeli以前的固件版本是不支持One-shot42,MultiShot油门的,只有一些特殊的修改过的版本支持 )。 不过该使用固件需要全新的硬件,即现在市售的所有厂家的BLHeli电调是不支持使用该固件的,若想使用,只能更换全新的硬件。
BLHeli电调篇 型号: XRotor micro 20A BLHeli
XRotor micro 30A BLHeli
XRotor micro 35A BLHeli 型号 持续电流 瞬时电流(10秒) BEC 电池节数 重量 体积 (长*宽*高) XRotor micro 20A BLHeli 20A 30A 无 2-4S 6.8g 24*13.9*5.5mm XRotor micro 30A BLHeli 30A 40A 无 2-4S 6.8g 24*13.9*5.5mm XRotor micro 35A BLHeli 35A 50A 无 3-6S 9.5g 36.5*16.7*5.5mm BLHeli特点:
1.尺寸与体积优势明显,很小,比市场上同级别电调更小。
2.用料更好:48MHz的F396主控芯片,顶级进口Mosfet芯片(20A,35A为进口日本东芝mosfet,30A为美国仙童mosfet),三合一IC驱动,进口无极性陶瓷电容,3盎司铜箔,4层板;这些用料带来的好处就是大大降低发热,效率更高,反应更快,响应极速;
3.原生支持BLHeli固件,可通过信号线轻松在线升级,刷写更简单。如使用cleanflight固件的飞控,可直接使用飞控连接BLheli调参软件,一次性轻松设置4个电调参数。
4.支持Damped Light,(该技术与我们的同步整流技术类似),支持One-Shot125,( One-Shot42和MultiShot油门需要用户自行升级固件获得支持)普通油门信号最高可支持500Hz,更快刷新速度。兼容市面各种飞控。
5.油门信号线为双绞线,有效降低油门信号在铜线内传输所产生的串扰,令飞行更加稳定。
那我们比其他家的BLHeli电调好在那里? 用料:主控芯片F396比F390新 用料:我们用到了顶级的美国仙童mosfet 用料:我们PCB板是4层的,3盎司铜箔 总之就是用料比别家的好。
程序大家都是一样的使用的BLHeli,所以在功能上大家都是一样的没有可比性。 产品图片: 应用范围: XRotor Micro 20A BLHeli:130-250mm轴距穿越机 XRotor Micro 30A BLHeli:130-280mm轴距穿越机 XRotor Micro 35A BLHeli:150-330mm轴距穿越机
好盈程序电调篇 型号: XRotor micro 20A
XRotor micro 30A
XRotor micro 35A 好盈程序电调特点:
正在加载中,请稍后...查看: 566|回复: 12
虽然每天都能看到这样的贴.但是还是要说转会太低能了....
在线时间 小时
低能低能低能低能 玩这游戏4年多了...从来没有改变过
我去买人家队员永远是100M或者身价的4~5倍
电脑买我小牛.核心.开个身价就要买.我都懒的理它.SB球员有的还会不满.我怎么没见我开身价给电脑.电脑球员不满啊... 太不科学了......这不仅是在侮辱我的球员.还是在侮辱玩家的智商
在线时间 小时
借楼主签名一用
在线时间 小时
是的&&郁闷的 :ljh037)
在线时间 小时
沙发很亮....
在线时间 小时
支持LZ。期待11改进
在线时间 小时
转会频率太低,不知道五大联赛全开,大数据库,会怎么样? 出价系统实在是傻
在线时间 小时
ai的确很傻,我都已经准备重点培养的对象,他却开价几m
在线时间 小时
看人品,有时候小牛可以2倍身价麦出,有时很低,看人品...
在线时间 小时
& & 主动卖的话.有点实力的一般都是卖2倍的身价.不过大部分球员最多也就2倍了.多一毛他都不要.主是是电脑来买人开的价钱太奇葩了....它知道用身价来买你的人.可是它自己确要用高自己身价的4倍在那卖人.
以豪门做参照.其实只要每年只给20~30M转会费.就能做到电脑和玩家一样2倍身价就能买大部分球星的功能了.
现在动不动就给60~70 100多的.直接不科学不现实
在线时间 小时
为了抑制转会频率,不然频率太高,两赛季之后就面目全非了,谁也不想这样吧?
在线时间 小时
& & 转会频率我觉得可以用更科学的方法解决
比如减少转会资金.只给10M.一样只能买1~2个人
& &&&或者新买来的球员因为不适合地区 球队 战术等个方面原因 会比旧的队员踢的烂很多 也就是加强球队磨合的效果!
现在说是说有磨合适应的效果在.可是来一个能力强的.跟本看不出来!
在线时间 小时
开档转会资金也不多,只是几个赛季之后钱就不是钱了
主要是因为48月分期太霸道了,只要出四分之一的钱就可以买到球员。不然也不会动辄上亿
在线时间 小时
磨合还是很重要很明显的&&我用皇马买来了尤文的迭戈&&个人能力没得说吧&&准备给前场来个超级替补&&结果大半个赛季过了得分就没超过七的&&放了两次假&&直到第二个赛季才慢慢爆发了&&跟卡卡等人轮换&&不时有精彩表现
Powered by【必联BL-150SM】必联(B-LINK) BL-150SM 台式机无线接收器 笔记本随身WiFi发射 USB无线网卡 WiFi穿墙【行情 报价 价格 评测】-京东
必联BL-150SM
PLUS会员专享价
您购买此商品可享受专属价
选择新地址
请选择套餐内容
¥暂无报价
规格与包装
商品名称:必联BL-150SM
商品编号:1154451
商品毛重:40.00g
商品产地:中国大陆
接口:USB接口
速率:150M
类别:单频网卡
天线:外置
连接方式:无线
适用范围:住宅家用
双频免驱网卡
智能APP路由
免驱动云网卡
双频千兆路由
稳定穿墙网卡
铁壳千兆交换机
品牌必联 B-LINK
型号BL-150SM
类型无线网卡
外置天线有,不可拆卸
在输入功率相等的条件下,实际天线与理想的辐射单元在空间同一点处所产生的信号的功率密度之比。
无线速率150Mbps
频率范围是指无线解码器在规定的失真度和额定输出功率条件下的工作频带宽度,即无线解码器的最低工作频率至最高工作频率之间的范围。
安全特性WPA/WPA2
支持系统Windows XP/VISTA/7/8/8.1
采用芯片MTK MT7601
特性可支持B-LINK随身WIFI软件
BL-150SM 随身WIFIx1 驱动光盘X1 快速安装手册X1
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,并非原价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
您好!可以的,感谢您对京东的支持!祝您购物愉快!
您好!建议您咨询下电视厂商,看家里的电视兼容什么样芯片的网卡,如果是兼容MTK7601芯片的就可以。感谢您对京东的支持!祝您购物愉快!
您好!出现这样的情况,非常抱歉!对不起!解决方法有如下几种:1.申请换新,2.找客服发送一个安装驱动给你,3.申请退货。建议咚咚上找我们客服协商处理,感谢您对京东的支持!祝您购物愉快!
您好!建议您电话联系:,或者微信关注“必联电子”公众号,以便直接快速的与技术客服沟通,尽快解决问题。感谢您对京东的支持!祝您购物愉快!
您好!既可以用光盘安装驱动,也可以在网上下载驱动。感谢您对京东的支持!祝您购物愉快!
您好!用来做WiFi发射,实现手机零流量上网的前提是:家里的电脑是联网的,并且是插得网线连接的。这时候将BL-150SM设置成WiFi发射模式,即可满足您的需求。做WiFi发射不需要用什么密码,只是在设置发射出来的WiFi时,需要自己设置一个WiFi名称和密码。感谢您对京东的支持!祝您购物愉快!
您好!随身WiFi发射模式,请用这个驱动:http://www.b-link.net.cn/download-detail.php?DId=203 ; 无线网卡接收模式,请用这个驱动:http://www.b-link.net.cn/download-detail.php?DId=204
感谢您对京东的支持!祝您购物愉快!
您好!请问亲是想实现什么样的功能呢?无线网卡一般是插在电脑上接收WiFi让台式电脑不用拉网线上网,或者是插在已经联网的电脑上发射WiFi使用。感谢您对京东的支持!祝您购物愉快!
您好!都可以用,建议你买BL-H8,你咨询的BL-150SM天线是2dBi的,BL-H8的天线是5dBi。感谢您对京东的支持!祝您购物愉快!
您好!将无线网卡插在台式电脑上,可以让电脑不用拉网线,接收家里的WiFi上网。如果电脑是有线连接,可以用无线网卡来做WiFi发射,从而让手机WiFi上网。感谢您对京东的支持!祝您购物愉快!
心中疑惑就问问买过此商品的同学吧~
iframe(src='//www.googletagmanager.com/ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')查看: 9763|回复: 167
BLHeli 杂谈和研究讨论
我就随便讲讲我所知道的BLHeli历史吧。
然后有源码上的问题可以问,我尽量回答。
我在论坛的权限不高,一小时只能回三篇,
所以只能慢慢说。
BLheli 是欧洲一位神人S君写的最早是在
华科耳的10a ESC上实现的。是基于atmel
8位的芯片。代码实现参考了德国另外一位
高手的无刷C代码。但是因为用atmel汇编写的,程序是完全独立的。
那个时候 atmega8 芯片是锁住的,刷程序
很麻烦,要先焊下来然后换个新的芯片上去。
去除保护位需要用到一个高电压编程,是个并
口,要接10多条线才能把那个保护位去掉,
而且需要比较高级的编程板子。S君都是直接
换个新的上去。我还做过一个接这么多脚的转
接板,但是也很麻烦就是了。
那时候基于atmel的blheli基本上没有什么人玩,
要焊芯片下来需要热风枪。事情发生转变是在
S君把blheli移植到 silabs的芯片上去。当时的
电调是xp7a和xp3a这些。推动这个的另外一个
爆发点事地平线的mcpx小直升机,当时无福翼
的小飞机第一次做这么小,非常火。但是马力
欠缺,很多人DIY改无刷。silabs的电调不要
焊下来可以直接刷blheli,一下子被大家追捧起来。
先写这么多吧。TBD。
顶起来,Bl确实好用,响应很快
哈哈,我先来个问题吧,blheli的启动过程能详细讲讲么。
能改个c语言版本吗?
giantwjt88 发表于
能改个c语言版本吗?
哈哈,顶你!
喜欢楼主,顶你!
lz。& &这个星球上还有一个。bldc的开源sw。&&名字叫。 simok。 有谁知道能不能讲下历史
先说一下C语言的版本,我自己写过一些。在这个silabs的8051上并不合适,f330只有4k的代码量。8051实在太过古老,用C来生成的代码不是很优化,因为8051有很多很奇葩的设计。例如只有一个数字运算寄存器A,什么东西都和这个A搞。只有一个16位指针dptr寄存器。很多设计对C很不友好。使用C生成的代码在8051上比手写汇编大概多50%左右。BLHeli支持的很多电调是只有4K代码,汇编用起来都很勉强所以C没办法完全替代blheli的功能。atmel的架构就好很多,arm的就更好了。用C可以生成比较好的机器代码。另外无刷的C代码,在atmel和arm平台上是有的,没有blheli那么流行就是了。
楼主,silabs的blheli源码哪里能有
lz。& &这个星球上还有一个。bldc的开源sw。&&名字叫。 simok。 有谁知道能不能讲下历史 ...
这个分享一个网址,我去看一下
哈哈,我先来个问题吧,blheli的启动过程能详细讲讲么。
另外有人问BLHeli那里可以下到源码,这个一直就没有变过。
最新的 BLHeli永远在 github 里面 bitdump 下面的 BLHeli
我没有权限发链接,大家在 github 里面 找一下 BLHeli 就是了。
不会用 Git 的同学好好学习一下,绝对神器,值得花时间学一下。
在 Git 里面包含了历史旧的版本,如果有人对旧版本感兴趣或者
由于某种兼容问题需要找一下旧版本,git clone 一下然后找一下
历史里面就有旧版本。
先说一下,BLHeli 比较新的版本有个 BLHeli S 分支,那个还
比较新,我讲的是 Silabs 目录里面旧点的那个。新的那个应该
大体上也差不多。
程序入口在 reset: 和 pgm_start:
启动要初始化硬件 gpio crossbar 这些琐碎事情就不值得多讲
了,自己看看源码没有什么很含糊的。初始化都比较顺序执行。
初始化以后就是检测输入信号类型,是 PPM 还是 pwm 这些。
检测完以后发出 BB 叫。如果是高油门进入遥控器编程模式。
然后就是等油门信号启动马达,这个在 run1:
大家会注意到blheli 里面反复有 com3com4 这类的代码入口,
长的都差不多。这个是需要讲解一下,我当时也费了点时间理解。
无刷电机有 3 根线头 ABC。这样任意两个线通电有 3 种组合,
AB, BC, CA。然后电流还有反向 BA, CB, AC 一共是
6种排列方式。这个就对应代码里面的 com1 ... com6,就是
6种状态。做完6个就回到开始完成一个电信号的周期,但是
这个时候通常马达还没有转一圈,因为马达有超过3组线圈,
有重复系数是 N。所以电信号走完一圈马达走了 1/N 圈。
BLHeli 的启动就是个盲目启动,按照一定时间周期把这个 6
个相位顺序走一遍。如果运气好的话马达就开始转起来了。
如果运气不好的话电调就冒一阵青烟某些 fet 烧调了,这个
在开始调新电调程序的时候还挺常见的。特别是新手不会用
限流电源的时候。顶级高手据说可以从 fet 烧糊的味道辨别出
是N fet 还是 P fet 烧了。
BLHeli 的启动其实做得比较简单,有很多可以改进的方式。
做完这个 6 个相位的盲目起转之后, BLHeli 试图检测过零点
电压,如果检测到,说明马达已经获得一定的转速,然后切换
到下一个相位状态。马达运转的基本原理就是使这样,很简单。
ComXComY 里面就有打开和关闭那些 FET 的代码。
另外注意的是,上面的 P FET 在一个com相位周期里面是不变的,
下面的 N fet 是通过时钟来打开和关闭的。N fet 做 PWM 来控制
马力大小。
在新的 BLHeli S 分支里面,比较大大一个改动就是 PWM 用硬
件电路来做而不是使用时钟中断来切换。这样显然效率可以高
一些做更细分的 PWM。
lz&&simok 源码& &是否知道
lz&&simok 源码& &是否知道
你说的是 0x.ca/tgy “SimonK's tgy “ 那个电调程序把。 知道是知道,但是没有那么熟。
这个程序是限制在 atmel 的芯片上。你如果对这个程序的历史感兴趣,那个是国外另外
一个比较大的遥控飞行器论坛上发起来的,早期的讨论都有。
BLHeli 启动感觉还可以
帮楼主发一下链接
RCG上的讨论:
另外有人问BLHeli那里可以下到源码,这个一直就没有变过。
最新的 BLHeli永远在 github 里面 bitdump 下 ...
我用BLheli-S的电调程序确实效果好很多,可以在很低速度下运行。
感觉这些电调无论BLHELI或者非BLHELI,只要电机一堵转就很容易烧MOS管了。。硬件保护不行
感觉这些电调无论BLHELI或者非BLHELI,只要电机一堵转就很容易烧MOS管了。。硬件保护不行 ...
此话怎讲?
此话怎讲?
我用好赢铂金的电调驱动无刷电机,电机的机构做的不好有时候卡住。这个时候电调如果要顺利启动电机是基本不行的(被卡住了),感觉电调本身的电流保护做的不好还是怎样,经常就是电调电机都发烫,甚至有青烟飘起。排除电机被卡主的问题之后,再启动电机,电调是没有任何反应的。同一个电机,换另一个电调就好了。将电调自身拆了,可以检查出某个臂中的MOS管烧了。
当然,BLHELI还未试过。。好赢铂金40A那个应该不是BLHELI的
怀念德国的那个开源电调始祖kz.
感觉这些电调无论BLHELI或者非BLHELI,只要电机一堵转就很容易烧MOS管了。。硬件保护不行 ...
这个是由与硬件上电调没法检测到电流的大小决定的。
当马达不转的时候,就没有反向电动势,这个电流主要
是消耗在导线的电阻上。一般马达的电阻都很小,所以
就容易烧。
BLHeli 是用开环控制的启动的,就是依次转换 6 个
相位,尤其容易有这个卡转电流大的问题。
其他商业电调如何解决这个问题我不是很清楚,知道
的可以说一下。
BLHeli 里面有个马达启动的马力配置,如果吧马力减少就
可以减少电流,不那么容易烧,启动对应的力也小些。
来个源码详细解说?主要是思路
简单的思路前面已经讲了一些了。
更仔细的最好是看了源码再来有针对性的问,不然都是快餐那种讲解没有什么用的。
永远是雾里看花那种。
这个是由与硬件上电调没法检测到电流的大小决定的。
当马达不转的时候,就没有反向电动势,这个电流主要
商业电调感觉除了FOC之外都没这个电流保护功能。。而且比较蛋疼的是,那种好赢铂金40A电调的MOS管感觉都不好买到。
型号如下:4934N
BLHeli 的后续历史。
BLHeli 的发展由一个很大的帮助就是上位机的配置程序。这个是论坛里的数字兄完成
的。因为 BLHeli 是汇编写的,而且那个配置内存的数据不时会改变,所以对应的配置
程序需要经常更新。这点数字兄还是做得很好。
除了这个以外,大家开始都依赖于 silabs 的编程器,好在编程器本身不太贵。
后来就有人研究除了如何用 C2 协议自己往 Silabs 的单片机里面读写程序。这个其实
时有文档和示范程序的,只不过示范程序在 silabs 的MCU 上跑。需要移到其他更常用
的MCU 例如 arduino 用的 AVR 这些。
然后有人搞出了用 arduino 来刷 BLHeli。这个进一步方便了使用 BLHeli。
后面就是软件不断更新换代了。这里值得提议一下的是,如果国内有厂家用 BLHeli
希望得到比较好的支持,最好的一件事是应该发一些电调给S君。提供 pin 脚影射这些。
S君发布新的 BLHeli 的时候也可以有东西可以测试一下。
BLHeli 和& &simok ,还有一个openbldc&&使用STM32写的
openbldc 看上去不错,不过似乎已经有好几年没有开发更新了。
我用BLheli-S的电调程序确实效果好很多,可以在很低速度下运行。
支持s的电调买得到吗?好像只有一个型号,淘宝买不到
1.请问大神是这个顺序吗?
过零& Wt_Comm_Start_L & Wt_Adv_Start_L & Wt_Zc_Scan_Start_L& Wt_ZC_Tout_Start_L &换向
能解释一下这几个参数吗?
2.&&SKIP是什么意思呀?
3.&&WRAP是什么意思呀?
顶一下子好
yat 发表于
BLHeli 和& &simok ,还有一个openbldc&&使用STM32写的
搜不到simok的github& &方便发一下吗??
1.请问大神是这个顺序吗?
过零& Wt_Comm_Start_L & Wt_Adv_Start_L & Wt_Zc_Scan_Start_L& Wt_ZC_Tout_Sta ...
赞,终于有人肯看看程序来问问题而不是泛泛的给我个详细
解释如何工作的吧。
先说简单的吧。那个 wrap 我没有找到这个边量,一般 wrap 的意思就是
计数器数到头又从新开始了。就是计数器溢出了。 BLHeli 里面通常用的
wrap 时指这个计数器或者整数的溢出。
SKIP 我只找到 RCA 用那个 SKIP。 RCA 时用来检测输入信号类型的。
BLHeli 可以兼容 PPM, PWM, 反极性的 PPM。 哦对了, BLHeli 当时
一个很流行的原因时,用来做 MCPX 的尾巴部无刷的电机,配合那个 xp3a。
V1 MCPX 有点比较奇特的是尾巴 PWM 是 8K 的。当时就没有什么好办法
转成 ppm, 通常更新是 400Hz。BLHeli可以直接用 8K 的PWM 不需要转换
信号(转换损失些精度和增加延时)。
那个 SKIP 似乎就是有信号,但是检测不到有效信号以后(确认 PPM 或
PWM)。这个时候有可能是在一个有效信号的中间,有些噪音什么的。
跳过一些时间来继续检测。
然后就是比较难理解的过零检测的几个 timeout。你列的顺序是对的。
首先那个几个边量都是使用 timer 3. 那 timer 3 中断都在干什么的呢?
;**** **** **** **** **** **** **** **** **** **** **** **** ****
; Timer3 interrupt routine
; No assumptions
;**** **** **** **** **** **** **** **** **** **** **** **** ****
t3_int:& & & & ; Used for commutation timing
& & & & clr & & & & EA& & & & & & & & & & & & & & & & ; Disable all interrupts
& & & & anl& & & & EIE1, #7Fh& & & & & & & & ; Disable timer3 interrupts
& & & & mov& & & & TMR3RLL, #0FAh& & & & & & & & ; Set a short delay before next interrupt
& & & & mov& & & & TMR3RLH, #0FFh
& & & & clr& & & & Flags0.T3_PENDING & & & & ; Flag that timer has wrapped
& & & & mov& & & & TMR3CN, #04h& & & & & & & & ; Timer3 enabled and interrupt flag cleared
& & & & setb& & & & EA& & & & & & & & & & & & & & & & ; Enable all interrupts
& & & & reti
所以很简单, timer 3 就是清除掉那个 T3.PENDING 的 bit field。
setup_comm_wait:
& & & & clr& & & & EA
& & & & anl& & & & EIE1, #7Fh& & & & & & & & ; Disable timer3 interrupts
& & & & mov& & & & TMR3CN, #00h& & & & & & & & ; Timer3 disabled and interrupt flag cleared
& & & & mov& & & & TMR3L, Wt_Comm_Start_L
& & & & mov& & & & TMR3H, Wt_Comm_Start_H
& & & & mov& & & & TMR3CN, #04h& & & & & & & & ; Timer3 enabled and interrupt flag cleared
& & & & ; Setup next wait time
& & & & mov& & & & TMR3RLL, Wt_Adv_Start_L
& & & & mov& & & & TMR3RLH, Wt_Adv_Start_H
& & & & setb& & & & Flags0.T3_PENDING
& & & & orl& & & & EIE1, #80h& & & & & & & & ; Enable timer3 interrupts
& & & & setb& & & & EA& & & & & & & & & & & & & & & & ; Enable interrupts again
wait_for_comm_wait:
& & & & jnb Flags0.T3_PENDING, ($+5)& & & & & & & & & & & &
& & & & ajmp& & & & wait_for_comm_wait& & & & & & & & & & & & & & & & & & & &
& & & & ; Setup next wait time
& & & & mov& & & & TMR3RLL, Wt_Zc_Scan_Start_L
& & & & mov& & & & TMR3RLH, Wt_Zc_Scan_Start_H
& & & & setb& & & & Flags0.T3_PENDING
& & & & orl& & & & EIE1, #80h& & & & & & & & & & & & ; Enable timer3 interrupts
& & & & ret
wait_advance_timing:& & & &
& & & & jnb& & & & Flags0.T3_PENDING, ($+5)
& & & & ajmp& & & & wait_advance_timing
& & & & ; Setup next wait time
& & & & mov& & & & TMR3RLL, Wt_ZC_Tout_Start_L
& & & & mov& & & & TMR3RLH, Wt_ZC_Tout_Start_H
& & & & setb& & & & Flags0.T3_PENDING
& & & & orl& & & &
BLHeli 把 ZC 到 下个 ZC 这个相位周期切成 4 份。
前面每份 1/4 时间。 ZC_wait 短点,1/8. ZC scan 长点, 3/8
那个 Wt_Comm_Start 应该是 ZC 发生后,等待切换到下个相位的时间,差不多 1/4 时间。
然后就换相位
Wt_Adv_Start_ 是等 一个 1/4 时间 (刚换相位有假的过零点,需要跳过)
Wt_ZC_scan 是等 另外一个 1/8 时间
然后才开始扫描 ZC,等待 ZC 发生。
然后3/8 时间差不多就有 ZC
ZC 应该在 Wt_ZC_Tout 发生以前。
大概就是这样,欢迎补充指正。
mcps的无刷已经有官方版的,几年前,同事毕业后给地平线做的第一个项目。都过去了~~ 公司里现在都搞FOC了
搜不到simok的github& &方便发一下吗??
github.com/sim-/tgy
mcps的无刷已经有官方版的,几年前,同事毕业后给地平线做的第一个项目。都过去了~~ 公司里现在都搞FOC了 ...
mcpx 无刷搞太晚啦。
请问BLHeli 的油门检测呢?有经过处理没有?还有里面的PID函数在哪里用到?
突然想问楼主,以前看到过一个兼容睿斯凯的开源接收机,但是一直没有找到项目主页。使用AVR+CC2500制作的,不知道楼主知不知道地址在哪?
请问BLHeli 的油门检测呢?有经过处理没有?还有里面的PID函数在哪里用到?
油门检测就是那个RCA 处理啊,当然要经过处理了。
不然如何知道是 ppm 还是 pwm。 arm 的事后需要油门
给些量然后变化一下。如果油门一下打太多就进入编程
PID 是那个锁转速的模式,主要是用在直升机上的主旋翼
上。那些 CP 的旋翼一但 pitch 高了,阻力大了转速就下来
了,那个恒定转速可以帮助飞控锁定尾巴。
突然想问楼主,以前看到过一个兼容睿斯凯的开源接收机,但是一直没有找到项目主页。使用AVR+CC2500制作的, ...
那个项目是在 rcgroup 吧。我记得是没有完全开源。
作者后来给容睿斯凯写固件分成去了。
我有空可以找找。
突然想问楼主,以前看到过一个兼容睿斯凯的开源接收机,但是一直没有找到项目主页。使用AVR+CC2500制作的, ...
我想你说的是这个:自己加 http 和 三个w。
rcgroups.com/forums/showthread.php?t=2124647
里面有 RX 有 Hex 文件但是没有源码。
还是源码后来删掉了我就不知道了。
谢谢楼主,楼主太厉害了。
请问楼主在哪个城市,有机会的话想当面拜访一下。我在深圳
前段时间研究了一下BLHELI,
我看的是14版本的源代码,对于一个入门的人来说,感觉就是他的参数太多,跳来跳去,不容易看;
现在正在研究一下ESC32,请问楼主研究过这个吗?
楼主真是个大好人。
前段时间看BLHELI代码的时候,有好多问题,苦于找不到高手问,看看停停,看来我又要好好看一遍了。
hanhanlili 发表于
前段时间研究了一下BLHELI,
我看的是14版本的源代码,对于一个入门的人来说,感觉就是他的参数太多,跳来 ...
ESC32是什么的??分享下网站去看下
前段时间研究了一下BLHELI,
我看的是14版本的源代码,对于一个入门的人来说,感觉就是他的参数太多,跳来 ...
看大的系统代码要学会整理主线分层次处理细节。
很多参数是为了干特定的事情的。用到再仔细看,
什么地方定义和修改,什么地方使用。
关键把主线整理清楚然后,才填充细节。一开始被细节
淹没就没法看下去了。
ESC32 看上去不错,似乎是 stm32 的,那里能买到
吗?我曾经想自己搭一个容易调试的 ESC。这个ESC32
挺接近,好东西。
ESC32是什么的??分享下网站去看下
autoquad.org/wiki/wiki/aq-esc32/esc32-version-3/
helislayer 发表于
先说一下C语言的版本,我自己写过一些。在这个silabs的8051上并不合适,f330只有4k的代码量。8051实在太过 ...
blheli的github中没有原理图的吗??
blheli的github中没有原理图的吗??
没有,只有pin脚的分配。BLHeli 只是个固件程序。
不是完整的 ESC 硬件项目。
我想你说的是这个:自己加 http 和 三个w。
rcgroups.com/forums/showthread.php?t=2124647
我居然沦落到了伸手党。。感谢您
autoquad.org/wiki/wiki/aq-esc32/esc32-version-3/
像ESC32这些原理图是不开源的吗?
1.& & & & Comm_Period4x_H和Comm_Period4x_L存的是60度的换向时间吗?能具体说说这个变量吗?
2.启动功率设置:从Requested_Pwm=1逐渐增加到Pwm_Limit=0X32来启动吗?
3.& & & & startup phase阶段每次过零的时候要检测10次比较器的输出结果;正常转动的时候Comm_Period4x_H的值越小,检测次数就越小,是不是速度越低,检测次数就越多,速度越高,检测次数就越少?
4.14.4版本里面有个编程参数是PWM dither是什么意思呢?
5.OneShot125和PWM以及PPM是什么关系?
1.& & & & Comm_Period4x_H和Comm_Period4x_L存的是60度的换向时间吗?能具体说说这个变量吗?
2.启动功率设置:从 ...
还有demag compensation,这个怎么调节最好啊?大电机选大,小电机选小?是不是在程序里面就是消磁时间的长短啊?
1.& & & & Comm_Period4x_H和Comm_Period4x_L存的是60度的换向时间吗?能具体说说这个变量吗?
2.启动功率设置:从 ...
1. Comm_Period4x 就是 60 度时间 4 倍的值,你看使用的地方是用来检测
ZC 的时间是不是合理的。应该时越小越快。电机受到阻力会变慢,还有一些
其他因素,反正这个就是允许变慢 4 倍。
2: 有个 set_startup_pwm 你看一下,我的理解时启动用固定的功率启动的。
转起来以后才开始用 request pwm
3: 检测次数是和检测多可靠有关,应该和转动速度关系不大,检测10次时间
也超级短的。里面有个机制是如果发现检测到无效的就增加检测次数。
就是加入一个随机噪音在比较小的信号里面防止对有规律的小误差对系统相应做
出有规律的误差控制。你找一下有个 Random 变量。
5. 就是输入信号的类型。 PPM 100% 信号是 2.5ms 的,这个限制了最高刷
新频率是 400Hz。如果你要传 6 个通道,那 PPM 刷就更慢了,所以有 OneShot
就是更短的脉宽方便一次传多个通道信号。例如教练和学徒一起操作那种 Buddy
box 两个发射器通常用这种更短的 ppm 来通信。PWM 就是可以直接用到马达线
圈的信号,不需要对脉宽进行解释。高低电比例就是油门比例。
还有demag compensation,这个怎么调节最好啊?大电机选大,小电机选小?是不是在程序里面就是消磁时间的 ...
demag 对应的是对 ZC 比较的次数。如果 demag 大,就是比较器
不是那么可靠,因为ZC 信号被减弱需要多次比较。
首先谢谢老师!
mov& & & & Temp1, #Pgm_Enable_PWM_Input& & & & & & & & ; Check if PWM input is enabled
& & & & mov& & & & A, @Temp1
& & & & jnz& & & & test_for_oneshot& & & & & & & & & & & & & & & & ; If it is - proceed
& & & & setb& & & & Flags2.RCP_PPM& & & & & & & & & & & & & & & & & & & & ; Set PPM flag
& & & & mov& & & & A, Flags3& & & & & & & & & & & & & & & & & & & & & & & & ; Clear pwm frequency flags
& & & & anl& & & & A, #NOT((1 SHL RCP_PWM_FREQ_1KHZ)+(1 SHL RCP_PWM_FREQ_2KHZ)+(1 SHL RCP_PWM_FREQ_4KHZ)+(1 SHL RCP_PWM_FREQ_8KHZ)+(1 SHL RCP_PWM_FREQ_12KHZ))
& & & & mov& & & & Flags3, A
test_for_oneshot:& & & &
& & & & ; Test whether signal is OneShot125
& & & & clr& & & & Flags2.RCP_PPM_ONESHOT125& & & & & & & & ; Clear OneShot125 flag
& & & & mov& & & & Rcp_Outside_Range_Cnt, #0& & & & & & & & ; Reset out of range counter
1.Pgm_Enable_PWM_Input这个是做什么用的?
2.不管是PWM还是PPM都要进入test_for_oneshot?
anl& & & & A, #((1 SHL RCP_PWM_FREQ_1KHZ)+(1 SHL RCP_PWM_FREQ_2KHZ)+(1 SHL RCP_PWM_FREQ_4KHZ)+(1 SHL RCP_PWM_FREQ_8KHZ)+(1 SHL RCP_PWM_FREQ_12KHZ))
PWM信号有这么高的频率吗?
首先谢谢老师!
mov& & & & Temp1, #Pgm_Enable_PWM_Input& & & & & & & & ; Check if PWM input is enabled
& & & & mov& & & & A, @Temp1
不要叫我老师,我就是和大家一起探讨一下。
很多东西也是你问了我才去看的。
那个 enable pwm 就是决定是否检测 pwm/ppm。
传统 ESC 用 servo 信号都是 ppm 的。BLHeli
有个配置选项。
PWM 有 8K 16K 这么高,例如mcpx v1 尾巴就是
8k 的。频率对声音也有影响。人耳朵觉得1K 的pwm
发出的声音比较刺耳。
pca_int_ppm_max_checked:
& & & & mov& & & & A, Temp5& & & & & & & & & & & & & & & & & & & & & & & & ; Multiply throttle value by gain
& & & & mov& & & & B, Ppm_Throttle_Gain
& & & & mul& & & & AB
& & & & xch& & & & A, B
& & & & mov& & & & C, B.7& & & & & & & & & & & & & & & & & & & & & & & & ; Multiply result by 2 (unity gain is 128)
& & & & rlc& & & & A
& & & & mov& & & & Temp1, A& & & & & & & & & & & & & & & & & & & & & & & & ; Transfer to Temp1/2
& & & & mov& & & & Temp2, #0
& & & & jc& & & & pca_int_ppm_limit_after_mult
& & & & jmp& & & & pca_int_limited& & & & & & & &
PCA中断里面的:
Ppm_Throttle_Gain这个是通道数目吗/?
怎么是脉宽乘以通道数呢?
后面的注释是什么意思呢?
谢谢高手。
pca_int_ppm_max_checked:
& & & & mov& & & & A, Temp5& & & & & & & & & & & & & & & & & & & & & & & & ; Multiply throttle value by gain
& & & & mov& & & & B, Ppm_Throttle_G ...
不是啊,那个 Gain 就是个比例系数。
从 RCA 上面采样出来 PPM 有多少个timer 时钟的个数,
需要乘一个比例系数得到油门的多少。
我的理解就是时钟sample 个数和油门的比例关系。
这个gain 对 oneshot 那种就比较大,表示很短的ppm
就可以表示 100% 油门。
请问大侠:以下的时间分别是什么时间?没有看太明白,请大致解释一下。谢谢!!
Wt_Adv_Start_L 和 Wt_Adv_Start_H
Wt_Comm_Start_L 和 Wt_Comm_Start_H
Wt_Zc_Scan_Start_L 和 Wt_Zc_Scan_Start_H
Wt_ZC_Tout_Start_L 和 Wt_ZC_Tout_Start_H
请问大侠:以下的时间分别是什么时间?没有看太明白,请大致解释一下。谢谢!!
Wt_Adv_Start_L 和 Wt_Adv_ ...
请看 34 楼有人问过了。
请看 34 楼有人问过了。
看了,非常感谢,不过还是有点晕,我的理解是这样的,请问是吗?
& && (过零or& Wt_ZC_Tout_Start_L)& Wt_Comm_Start_L &换向& Wt_Adv_Start_L & Wt_Zc_Scan_Start_L &(过零or& Wt_ZC_Tout_Start_L)...
还有 Wt_Zc_Scan_Start_L 有什么作用?Wt_Adv_Start_L之后直接ZC_scan可以吗?
看了,非常感谢,不过还是有点晕,我的理解是这样的,请问是吗?
& && (过零or& Wt_ZC_Tout_Start_L)& Wt ...
过早ZC_Scan 可能读到错误的 ZC,要避开换相以后横流的那个假 ZC。
我没有做过实验如果过早的ZC_Scan 会发生什么事。
这个问题的确切答案是我还不知道。只是我能看出它是这么用的。
PCA中断检测脉冲,定时器2配合做一些超时处理,定时器2中断又分低字节(128us)和高字节(32ms)Rcp_Timeout_Cntd怎么在低字节和高字节中断中都可能要被减1呢?
Rcp_Skip_Cntd这个变量主要是干什么的?
PCA中断检测脉冲,定时器2配合做一些超时处理,定时器2中断又分低字节(128us)和高字节(32ms)Rcp ...
Rcp_Timeout_Cntd 主要是数有几个脉冲不能确定是什么类型的信号。
或者应该有脉冲没有来。 ppm 和 pwm 都是有固定的更新频率的。
那个脉从检测比较长因为变话范围很大。 的和高对应的就是不同时间
Rcp_Skip_Cntd, 就是在检测到脉冲以后,有一段时间不再检测脉从。
我看了看,只有 ppm 是不用这么做的,只有 pwm 这么搞。那我猜就是,
因为 pwm 是直接接马达的,而且刷新频率比较高。这个估计是去抖动
之类的。ppm 的信号区间比较短,所以抖动不在有效信号里面。
pwm 允许很短的信号。所以一个 pwm刚结束不应该马上有另一个
信号进来。所以我猜是去抖动之类的。
楼主再讲讲PI闭环控制部分(governor)。谢谢
楼主再讲讲PI闭环控制部分(governor)。谢谢
你先读读代码然后问些有意思的问题嘛。
楼主能说下 INITIAL_RUN_PHASE 是个什么过程,不能STARTUP_PHASE 直接转正常?
楼主能说下 INITIAL_RUN_PHASE 是个什么过程,不能STARTUP_PHASE 直接转正常?
那个是给螺旋桨空中换方向用的,在空中换方向和从静止
启动不太一样。
program_by_tx_checked,这个函数有什么作用?
Timer2_X每32毫秒加1,然后给Prev_Comm_X,主要是启动阶段用的,注释说Store extended timestamp as previous commutation
请问这个是做什么用的?
program_by_tx_checked,这个函数有什么作用?
这个不是函数,就是一个代码入口。就是说前面已经
检查过用遥控来给 ESC 换配置。有个编程模式。
到这个入口就是编程模式已经做完了(或者没有进入)。
Timer2_X每32毫秒加1,然后给Prev_Comm_X,主要是启动阶段用的,注释说Store extended timestamp as p ...
因为启动的时候转很慢,那个换相时间会超过 8 位整数可以表示的。
那就需要用 16 位整数来表示。 Timer2_X 就是那个16 位整数的高
字节位而已。
如果硬件只有 8 位 timer,你如何用溢出中断来做个 16 位 timer?
就是这么回事。
楼主这段代码能帮忙分析下吗?
init_start_bidir_done:
& & & & sbr& & & & Flags1, (1&&MOTOR_SPINNING)& & & & ; Set motor spinning flag
& & & & sbr& & & & Flags1, (1&&STARTUP_PHASE)& & & & ; Set startup phase flag
& & & & sts& & & & Startup_Cnt, Zero& & & & & & & & & & & & ; Reset counter
& & & & xcall comm5comm6& & & & & & & & & & & & & & & & ; Initialize commutation
& & & & xcall comm6comm1& & & & & & & & & & & & & & & &
& & & & xcall initialize_timing& & & & & & & & & & & & ; Initialize timing
& & & & xcall calc_next_comm_timing& & & & & & & & ; Set virtual commutation point
& & & & xcall initialize_timing& & & & & & & & & & & & ; Initialize timing
& & & & xcall calc_next_comm_timing& & & &
& & & & xcall initialize_timing& & & & & & & & & & & & ; Initialize timing
& & & & rjmp& & & & run1
<font color="#6528111 发表于
楼主这段代码能帮忙分析下吗?
init_start_bidir_done:
& & & & sbr& & & & Flags1, (1
这段代码调用的函数都有名字,
我重复一次也没有意思。你看了这段
代码有什么具体理解上的问题?
会问正确的问题也是学习重要的一个
BLHELI有支持F850芯片的吗?
如果有的话 是哪几个电调型号呢?
谢谢楼主!
BLHELI有支持F850芯片的吗?
如果有的话 是哪几个电调型号呢?
谢谢楼主!
这个我就不清楚了。
BLheli 有文档支持的电调, 在 BLHeli 的 Silabs 目录
BLHeli supported SiLabs ESCs.pdf
里面有照片,你可以去找找有没有你想要的 F850.
F850和F330有什么差别呢?
F850 2块钱左右,F330&&4块钱左右,我看资源都一样呀?
这个我就不清楚了。
BLheli 有文档支持的电调, 在 BLHeli 的 Silabs 目录
我又来伸手党了。。。。我一直在找SPracing F3开源的主页,但是找到几个都没找到他的原理图,我想自己做飞控,丢了几架飞机了,嫌太贵了。。
还在瞎BB啊我以为结贴了
楼主搞过直流减速电机的驱动吗?
是不是有专门的驱动芯片就可以了?
请问IDLE在程序中怎么理解呀?
我又来伸手党了。。。。我一直在找SPracing F3开源的主页,但是找到几个都没找到他的原理图,我想自己做 ...
他那个不是真的开源,是开别人的源。
其实你只要找 Naze32 的硬件,比较早的版本有原理图,
v5 以后就没有了。然后把stm32F103换成 F3 的pin 兼容
就基本上差不多了。mpu6050 换成有 spi 的。
直流电机用两个 H 桥就可以了啊。
顶多反向驱动。
IDLE 就是没有油门输入吧。
wait_for_comm:
& & & & ; Update demag metric
& & & & mov& & & & Temp1, #0
& & & & jnb& & & & Flags0.DEMAG_ENABLED, ($+8); If demag disabled - branch
& & & & jnb& & & & Flags0.DEMAG_DETECTED, ($+5)
& & & & mov& & & & Temp1, #1
& & & & mov& & & & A, Demag_Detected_Metric& & & & ; Sliding average of 8, 256 when demag and 0 when not. Limited to minimum 120
& & & & mov& & & & B, #7
& & & & mul& & & & AB& & & & & & & & & & & & & & & & & & & & ; Multiply by 7
& & & & mov& & & & Temp2, A
& & & & mov& & & & A, B& & & & & & & & & & & & & & & & & & & & ; Add new value for current demag status
& & & & add& & & & A, Temp1& & & & & & & & & & & & & & & &
& & & & mov& & & & B, A
& & & & mov& & & & A, Temp2
& & & & mov& & & & C, B.0& & & & & & & & & & & & & & & & ; Divide by 8
& & & & rrc& & & & A& & & & & & & & & & & & & & & & & & & &
& & & & mov& & & & C, B.1
& & & & rrc& & & & A
& & & & mov& & & & C, B.2
& & & & rrc& & & & A
& & & & mov& & & & Demag_Detected_Metric, A
& & & & clr& & & & C
& & & & subb& & & & A, #120& & & & & & & & & & & & & & & & ; Limit to minimum 120
& & & & jnc& & & & ($+5)
& & & & mov& & & & Demag_Detected_Metric, #120
& & & & clr& & & & C
& & & & mov& & & & A, Demag_Detected_Metric& & & & ; Check demag metric
& & & & subb& & & & A, Demag_Pwr_Off_Thresh
& & & & jc& & & & wait_for_comm_wait& & & & & & & & ; Cut power if many consecutive demags. This will help retain sync during hard accelerations
& & & & setb& & & & Flags0.DEMAG_CUT_POWER& & & & ; Set demag power cut flag
& & & & All_pwmFETs_off
& & & & Set_Pwms_Off
wait_for_comm_wait:& & & & & & & & & & & & & & & & ;等待换向
& & & & jnb Flags0.T3_PENDING, ($+5)& & & & & & & & & & & &
& & & & jmp& & & & wait_for_comm_wait& & & & & & & & & & & & & & & & & & & &
& & & & ; Setup next wait time
& & & & mov& & & & TMR3RLL, Wt_Zc_Scan_Start_L& & & & & & & & ;换向后等待下次过零
& & & & mov& & & & TMR3RLH, Wt_Zc_Scan_Start_H
& & & & setb& & & & Flags0.T3_PENDING
& & & & orl& & & & EIE1, #80h& & & & & & & & & & & & ; Enable timer3 interrupts
& & & & ret
楼主你好,这段代码中的 demag metric 是个什么变量?
这个120最小值代表什么意思?
wait_for_comm:
& & & & ; Update demag metric
& & & & mov& & & & Temp1, #0
先说一下我的理解这个 Demag 是怎么回事。
说得不对的欢迎大家补充。
这个 Demag 是指,当马达的电感比较大的时候,如果你换了
相,但是由于有电感的原因,线拳里面的磁场需要时间才能泻
去。电感类似电容,只不过电感趋向与保持电流的恒定。所以
如果马达电感比较大的话,换相以后原来的磁场还要持续一段
时间。这段时间就添加在换相需要的时间里,先等原来的磁场
消退,然后新的换相的磁场充满。
这个引发的效果就是,电感比较大的马达突然加速的话,那个
预测的换相时间会不准,因为马达运转速度慢,产生的反向电
动势小,突然给大电流抵消不掉都变成磁场了。这个时候就容
易发生卡盾的情况。
那这个 demag 的策略就是,在换相前的一段时间里,提前关
闭FET。这样就给一段时间让磁场消退。到换相点的时候,希
望刚好磁场消退差不多了,给新的电流就可以作用上去。当然
提前多少时间可以关闭是比较关键的,需要动态调整。这个就
那个 demag metric。
你看到的这个变量在程序里影响的就是什么时候断电。
最小 120 就是如果 demag 提前关闭量太小,就不用提前关闭了。
先说一下我的理解这个 Demag 是怎么回事。
说得不对的欢迎大家补充。
多谢楼主的回复,在楼主的解释下我已经有个一知半解了。
另外我觉得Demag这个消磁时间内也会有很强的感生电动势,会让比较器翻转,让我们误判为过零事件,我们也要越过这个时间后再去读比较器的结果。
楼主,我这样理解对吧?
小小苹果 发表于
多谢楼主的回复,在楼主的解释下我已经有个一知半解了。
另外我觉得Demag这个消磁时间内也会有很强的感生 ...
当然,开始过零监测是要在这个后面,避免检查到上个相位产生的电流。有个预测的换相时间,到差不多时间才开始监测过零的。这个程序代码里面有体现,主要在T2计时器上体现。一开始就监测过零容易误判。
楼主,他每次检测比较器是否过零点的时刻是在定时器1计数值大于120的时刻后,但是pwm的频率只有16k(周期62.5us)的话,我测过薪西达2200kv反电动势的时间在100us~920us,这样的话,假设现在反电动势的时间是120us,相当于对比较器的过零点检测只有两次,假如过零点发生在第一次检测后的话,下一次虽然检测到了,但是会有一个pwm的误差,那换相还能正确吗?
这是我看了blheli程序的看法,不知是否正确?如有不对之处望指点
浪子怀海 发表于
楼主,他每次检测比较器是否过零点的时刻是在定时器1计数值大于120的时刻后,但是pwm的频率只有16k(周期62 ...
我觉得你理解对,但是什么地方说了120的单位是1us呢?没准那个120的单位是循环或者其他什么时间单位的。
我觉得你理解对,但是什么地方说了120的单位是1us呢?没准那个120的单位是循环或者其他什么时间单位的。 ...
120就是pwm计数的个数 = 62.5/256 * 120,
& & & & mov& & & & Temp2, #120
pwm_wait:& & & & & & & & & & & & & & & & & & & & & & & &
& & & & clr& & & & C
& & & & mov& & & & A, TL1
& & & & subb& & & & A, Temp2
IF DAMPED_MODE_ENABLE==0& & & & & & & & & & & & & & & &
& & & & jc& & & & comp_wait_on_comp_able& & & & & & & & ; Re-evaluate pwm cycle for slower escs
IF DAMPED_MODE_ENABLE==1& & & & & & & & & & & & & & & & ; Assume same pwm cycle for fast escs
& & & & jb& & & & Flags1.DIRECT_STARTUP_PHASE, ($+5)
& & & & jc& & & & pwm_wait
& & & & jc& & & & comp_wait_on_comp_able& & & & & & & & ; Re-evaluate pwm cycle during direct start& & & && &重新评估pwm周期期间直接开始
就是这个地方读取比较器的输出
TL1,在定时器0中断中清零
120就是pwm计数的个数 = 62.5/256 * 120,
& & & & mov& & & & Temp2, #120
不好意思最近比较忙每有机会看代码。
我刚才去看了一下代码,你看到是什么版本啊?
我在最新的 git 里面没有找到你贴的代码。有可能
你看到代码已经很老被改写了。
SiLabs]$ grep pwm_wait *
grep: Hex files: Is a directory
[ SiLabs]$
你看我搜索了一下 Silabs 目录就没有 pwm_wait 这个结果。
我刚才更新了一下 git,也没有。
我也没有搜到,另外请教楼主个问题:
t3_int:& & & & ; Used for commutation timing
& & & & clr & & & & IE_EA& & & & & & & & & & & & ; Disable all interrupts
& & & & anl& & & & EIE1, #7Fh& & & & & & & & ; Disable timer3 interrupts
& & & & mov& & & & TMR3RLL, #0FAh& & & & & & & & ; Set a short delay before next interrupt
& & & & mov& & & & TMR3RLH, #0FFh
& & & & clr& & & & Flags0.T3_PENDING & & & & ; Flag that timer has wrapped
& & & & anl& & & & TMR3CN0, #07Fh& & & & & & & & ; Timer3 interrupt flag cleared
& & & & setb& & & & IE_EA& & & & & & & & & & & & ; Enable all interrupts
& & & & reti
wait_advance_timing:& & & &
& & & & jnb& & & & Flags0.T3_PENDING, ($+5)
& & & & jmp& & & & wait_advance_timing
& & & & ; Setup next wait time
& & & & mov& & & & TMR3RLL, Wt_ZC_Tout_Start_L
& & & & mov& & & & TMR3RLH, Wt_ZC_Tout_Start_H
& & & & setb& & & & Flags0.T3_PENDING
& & & & orl& & & & EIE1, #80h& & & & ; Enable timer3 interrupts
第一段程序内,每次 T3 溢出中断后,TMR3RLL和TMR3RLH重装寄存器里都要写入这个延时很短的值。为什么?
第二段程序内,等待T3 溢出中断后, 把这个Wt_ZC_Tout_Start_L时间写入TMR3RLL寄存器,也改变不了当前的溢出等待时间吧。为什么不直接写TMR3L和TMR3H呢?
我也没有搜到,另外请教楼主个问题:
t3_int:& & & & ; Used for commutation timing
& & & & clr & & & & IE_EA& & & & & & & & & & & & ; Disable all ...
t3 中断这个我可以看出来的就是会反复清除
T3_PENDING 这个 bit。我想这个很短时间和
你后面问的问题相关。
直接写TMR3L和TMR3H 是有race condition
冲突风险。因为你写寄存器计数器的时候不是
原子操作的。写低的时候低的就开始跑了,没
准写高的时候低的已经触发了。
所以他的策略是用这个很短的时间来装入
TMR3LH TMR3LL, 我想 MCU 应该是有
某种保护机制确保同时把 TMR3LH TMR3LL
装入到计数器不会只装了一半。
当然你也可以停止计数器然后装入然后再开始。
用的策略不一样。
楼主,请教下 pgm _comm_Timing& &和&&DEMAG_DETECTED&&起什么作用?
楼主,请教下 pgm _comm_Timing& &和&&DEMAG_DETECTED&&起什么作用?
DEMAG 这个作用就是检测到换相时间和预计不符合的时候,
提前关闭FET 的通电好让线圈有一个提前的时间泻掉电流。
Pgm_comm_timing 就是从编程器或者那个 BLHeli 配置
工具预先设定的换相需要的初始时间。给启动这些时候用。
跑起来了这个换相时间就是动态决定的了。
浏览过的版块
阿莫电子论坛, 原"中国电子开发网"
, 原www.ourdev.cn, 原www.ouravr.com

我要回帖

更多关于 降低gui更新频率 的文章

 

随机推荐