Slamtec思岚breakout板子的丝印错误

这两天终于开始玩机器人了, 电机驱动, 导航, 定位, 激光测距, 想想都兴奋呢.

手上有一个斯岚的开发套件, 就是这么个东西:

整个东西由几个部分组成, 激光雷达, 底盘, 两个带霍尔编码的减速电机, 电池轮子就不说了, 驱动轮子的是一个STM32F103VET6, 加一个电机驱动板, 整个东西, 算一个套件吧, 在斯岚的官方网站上:

 

我第一反应就是, 这个东西叫套装吧...Mini是个什么鬼? 不管了.

 

ok, 我找到了breakout板子的原理图的跟电机驱动板连接的引脚定义部分:

ok, 凭直觉, 左右轮子, 分别由MOTO_RF/LF_EN跟MOTO_RB/LB_EN来定义正转反转, 然后由两个PWM来分别控制电机转速, 对吧, 很多电机驱动板, 也就是这么做的, 包括我手上两个其他的淘宝驱动板, 基本都这样.

 

ok, 古怪的部分开始了, 今天我试着把官网上下载的固件(包括源码编译后的hex)按manual里面写的, boot0上拉后, 从串口灌进去了, 结果, 电机不转, 其他都正常, 试着重新刷了debug跟release的版本, 包括官网的hex直接灌进去, 一样, 而且有个多色指示灯不亮, 感觉固件不对, 有没有跑起来呢到底? 试着把代码改了改, 加进去debug输出, 包括修改开机beep声, 发现stm32是在正常运行的, slamcore也是正常的, 都可以通过windows上位机去连接, 问题只是, 1. 指示灯不亮, 2 通过上位机没法让机器人跑起来了.

 

接着开始尝试打斯岚公司网站公布的电话, 一直忙线, 我只好发了个邮件给support, 没想到, 对方的工程师很快就回复了邮件, 告诉我, 你用的固件/源码对应的不是所谓套件, 而应该是mini, 而mini的固件暂时没有在官网公开......

Mini是个什么鬼???

 

吃完午饭, 试着刷supporter邮件里的固件, great! 一切正常了....

接着我试着研究STM32的Moto驱动部分的代码, 先是挂着逻辑分析仪, 想看看各个引脚怎么工作, 按照breakout板子的丝印:

就不拍照了, 实际丝印如上图, 基本上, 可以得出结论, 最下面两个PWM是左右电机的速度控制口, 接着我用了大约一个小时的时间, 挂逻辑分析仪, 发现这几个引脚真的....定义有问题....

 

问了一下小波, 他的想法是, 如果你用电压表量出来是低电平, 但是挂逻辑分析仪是高电平, 这个口可能是input, 不是output?

 

Are you kdding me???

B_EN或者F_EN是输入?

 

把电机驱动板拿起来对着光线仔细看了看, 我靠, 不对劲啊, 两个F_EN接的是跟两个ENCD分明接到了电机的两个霍尔编码器输出上了啊...

 

结合了一下mini的源码有关moto的引脚定义部分代码, 才知道, 原来, 代码没问题, 驱动板没问题...唯一有问题的就是丝印啊, 而且查阅Mini的手册发现, 原来可能这个版本的电机驱动, 是拿两个反向的PWM信号给一颗L9110的电机控制IC来直接控制电机的正转反转...

我滴天哪...

看了一下代码, 下面是实际的马达驱动用引脚定义:

驱动PWM左右: PB8, PB9, PE13, PE14

编码器输入: PD2, PD3, PD4, PD6

接下来, 我要尝试将马达部分的代码移植到开发板上去.

 

posted @ 2017-04-13 18:12  Montauk  阅读(496)  评论(0编辑  收藏  举报