- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 一些通信协议相关
后来仔细一想,问题其实很简单:我上位机与下位机通信采用的是IIC通信,正常情况下,有一个写入的顺序,先写byte14,然后byte15,一直到byte24,但是MCU去取数据的标记是第一个byte14,MCU只要侦测到byte14是0x01/0x02,不管后续的byte15-byte24有没有传输好,所以才会出现上面的现象。遇到的主要问题是,每次上位机给这些字节赋值的时候,有的时候MCU能够把byte15-byte24数据传递给buffer,但是有的时候不能够传递。最近在做一些通信协议相关的东西。
2022-09-23 15:55:16 185 1
原创 Bootloader开发01
来喽,又开始记录了。这个周三,接到领导通知,要在我们的MCU里面加入bootloader程序。说干就干,目前手头的工作进度,简单的收了个尾,就着手开始查芯片手册,找bootloader资料。今天周五,就把这两天找到的总结了一下:1:bootloader流程:1.1:MCU的flash memory里面可能有一个固定的地方,存放这一个标记位,决定着MCU重启后,到底指针指向正常的application的首地址,还是bootloader的首地址;1.2:如果这个标记位是指向bootloader的首地址
2022-03-11 10:03:07 1608 1
原创 CMCC协议开发(一)
属于再次跨行了。毕业之后跨了几次了:首先呢,做非标自动化编程,主要方向图像处理,当然了,一些气缸啊,马达啊,机械手臂啊,这些运动器件的控制咱也做,毕竟图像处理完毕,就要控制这些个运动器件去做动作了(印象最深的运作器件得说说机械手臂了,六轴机械手臂,有个问题当时,在某个点附件,需要做个翻转动作,但是这个翻转动作,10次中就有1次,动作路径跟其他9次不一样,会打到边上的架子,一脸懵,后来发现,哦,原来那个位置附件,是个关节点,手臂在那个点是拐着的,不舒服,从那个点翻转,如果位置精准,那么正常翻转;如果位置稍有
2022-03-11 09:29:22 418
原创 诡异问题一
代码是基于Silicon Labs的一款MCU。具体问题是这样的,定义了一个变量:extern volatile uint8_t dataA2PageIndex;在中断处理程序中使用:case 0x00:dataA2PageIndex = 0x00;break;case 0x01:dataA2PageIndex = 0x01;break;case 0xFF:dataA2PageIndex = 0x02;break;然后我调试发现问题了,于是在1s定时里面加了日志输出:UART_LO
2021-12-02 16:04:48 344
原创 电机驱动开发历程(十三)
接着(十二)里面讲的两个问题点:1:运动中电机停车,线圈里还存在电流,这些电流会驱使电机继续转动;2:电机内部,包括减速机等等的机械部分,以及与电机连接的外部机械,都是机械品,不可避免会有磨损等现象,出现间隙;(十二)里面说精细化控制,今天想起来,在具体一些,免得后面我忘记了。比方说,电机正常的启动加速阶段,正常控制是1ms一次,1ms调整一次。最后的减速,乃至刹车阶段,都是1ms一次,这个时候如果没到位置就停下来了,或者卡顿严重,说明减速阶段和刹车阶段,制动力道太猛了,可以调整制动力道进行调整。
2021-10-26 11:04:19 492
原创 电机驱动开发历程(十二)
好了,这个项目进入尾声了。最后一阶段,主要解决门轴到关门位置处的抖动问题。由于电机是一个特殊的执行单元,自身由线圈缠绕构成,“阻碍当前变化”是绕不开的一个特性。这个特性对于一些线性控制会比较讨厌。举个例子,我的门轴到一定的位置需要停下来不动,那么到这个位置的时候,电机线圈由残余电流,到位置下电后,线圈电流不会凭空消失的,着部分电流会驱动门轴继续往前走一段距离,但是,这个距离是我控制里面所不需要的,就会造成位置的偏差。此外,电机本身属于机械制品,长时间使用,磨损必不可少,电机出来的背隙问题,也是一个棘手
2021-09-06 10:38:32 205
原创 电机驱动开发历程(十一)
电机驱动开发历程(十一)本来想记录一下,整个开发流程,可惜没有坚持下来。。。今天写一下,把几点感想记下来,不然可能到明天就忘记了。首先,PID调速这边,针对提速阶段,三个参数数值,要达到一个提速作用,总体效果,参数可以略小,此时当前速度与设定速度差异较大,可以达到提速效果即可;然后稳速阶段,应为当前速度与设定速度相差不大,为了达到稳速所以,原先参数就不适用了,需要调高参数,让PID控制器能够正常出力调速;其次,其实也是针对上一条,有时候简单的控制也挺好使的,用简单的棒棒思想,可以达到很好的效果;第
2021-08-11 16:47:20 448
原创 电机驱动开发历程(十)
通过这两天的处理,加速阶段速度分级措施以及减速阶段点杀措施,目前的波形是这样:before:after:效果还是有一些。接下来需要做的事情:(1)点位自学习后的校正流程;(2)modbus协议数据处理;(3)PID处理减速阶段;先这样。。。...
2020-03-25 10:01:21 264
原创 电机驱动开发历程(九)
今天跑来加班,通过昨天以及前些天的努力,上位机下位机可以结合起来调试参数了。昨天试调了一下,因为上了PID算法,数据上升阶段是非常猛的,如下图(示波器观察了UVW其中一向的电流,目标速度设定为180)可以看待电流在大概50ms内迅速上升,虽然在有些场合,需要这个数据快速上升,但是电机毕竟属于外设,这么迅猛的往上升,着实担心电机承受不来。而且这种情况下还有这么个现象,以180的速度转着转着,电...
2020-03-21 16:50:16 446
原创 电机驱动开发历程(八)
这些天有些困难,困难的是我只要一发送串口命令,电机就不能重新开始运转,具体细节就是我明明给了占空比,给了方向,给了使能,并且控制方式一致,但是只要一旦接收串口命令,电机就起来不,有的时候号磁的一声响。这个问题困扰了好多天,又是架示波器量波形,就是把逻辑分析仪接起来看信号,观察下来,都能够正常输出波形,可是电机就是不转。痛定思痛之后,慢慢的缩小锁定缩小问题,竟然发现,问题出在我的串口数据处理上,...
2020-03-20 14:18:46 358
原创 电机驱动开发历程(七)
这两天有些晕乎乎的,面临的一个主要问题点是接收到串口命令修改PID参数,但是接收命令后的流程始终调试不好,电机总是以一种诡异的超高速度瞬间运行。在解决这个问题的时候有连带着其他问题,比方说编码器数据在重新找点位的之后,数据便会缩水,这个问题连带着机构上面又是发现轴的螺丝没锁紧,又是编码器的螺丝松了。当然这个问题,我程序上也是有问题,我保存数据不及时,没有一找到零点就立马保存。这些问题都解决了后...
2020-03-19 10:37:17 329
原创 电机驱动开发历程(六)
单片机这种东西,因为资源有限,有一些再PC上很好的机制运行在单片机上,就会有一些匪夷所思的现象出来。这些天一直在做PID速度调节,需要上位机下位机连携运作,可是我发现,每次上位机发送串口数据的时候,电机总是突然停止运转,并且电机发出卡一下的声音,经过调查取证,发现是串口数据接收完毕后,处理数据的时候,就这个发生问题。细细研究我的数据处理函数,就是根据接收到的数据来判断是什么命令,难道是一些特定...
2020-03-17 22:03:06 376
原创 电机驱动开发历程(五)
一个执行的代码,经受的住高速运转(或者大量数据)才是正真能够正常运行的代码。之前在一家美资车企,写了一个解析can报文的上位机工具,即将上位机的log文件,根据DBC文件的定义,转为实际意义的数据Excel表格。这些日志通常是M级别的log。刚开始做的时候,用了一个普通的excel处理方式,小数据处理起来还行,数据比较多的时候,效率超级低。后来改进了excel处理方式,效率大大提高。这个的波形...
2020-03-16 15:09:11 460
原创 电机驱动开发历程(四)
受疫情影响,这个调速的PID算法,我在家里找了资料,写好了,疫情期间没法来复工,只能自己想想,这个PID算法,有几个参数充分考虑了过调引起的震荡。今天调试了一下,发现这个写参数先得拿掉,得送基本的PID算法开始调起,实际还是有很多情况不一样的。最起码的一条,现在连基本的三个参数Kp,Ki,Kd的级别是啥都不知道,得调试出来。(这个参数是零点几呢,还是十几呢,得调试,可能才得计算计算)再附一张图...
2020-03-14 19:53:50 431
原创 电机驱动开发历程(三)
作为初步接触电机驱动开发的我,一切都很新奇。刚刚偶然发现一个现象:电机突然停止的话,会产生一个较大的电流,可能就是我们物理上讲的那样,原本电机线圈充满电流,转的好好的,突然一下子电流消失,不给电机的三个极一点缓冲,磁场会逆向阻止这件事情,另外一个角度看,能量守恒,一下子不能转了,那就只好发热了,松口气。(个人看法,大侠们请忽略,或请指教)那么,如何才能减轻这个现象,我的做法是,你这个BLDC...
2020-03-14 19:08:15 678
原创 电机驱动开发历程(二)
应该昨天写的,昨天没来得及写。周四记录的问题,主要时串口的收发问题,现在思路已经明确了:串口发数据:运用中断机制来发数据,不会影响主程序的实时采集,已经验证了,但是程序里还有个问题,就是这个机制发数据,不管fifo设置多少,每一次都只能发最多16字节的数据,很奇怪。但是我可以暂时先把我的数据压缩到16字节以内,先行测试PID算法数据,时间紧张,这个问题空闲时间顺带着一起看看;串口收数据:分...
2020-03-14 11:31:40 677
原创 电机驱动开发历程(一)
电机驱动开发历程(一)第一次写博客,简单记录一下自己的开发历程。从头开始的电机驱动,到现在位置,一些模块准备就绪,正在准备PID算法的时候,突然发现,串口数据的收/发,还有一些问题:(1)PID算法开发,需要把一些关键数据传出来,让我能够直观的观察参数是否合适。但是发数据,这个过程,需要耗用ms级别的时间,以至于编码器不能正常采集数据,导致运动不到位;(2)串口接收数据的时候,由于不知道对...
2020-03-11 18:21:14 1961
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人