今天FU6832L电机开发板终于到了,这是一款我完全没用过的,说是8051+ME的双核MCU。我很是好奇,很少见把电机驱动一些硬件完全继承在MCU上的。
具体官方说:FU6832系列 是一款 集成电机控制引擎 (ME)和 8051内核 的 高性能 电机驱动专用芯片, ME集成FOC、 MDU、 LPF、 PI、 SVPWM/SPWM等诸多硬件模块,可硬件自动完成电机 FOC/BLDC运算控制 ; 8051内核 用于参数配置和日常事务处理, 双核 并行 工作实现各种高性能电机控制。
听起来,很不错,想法很大胆~废话不多说,先亮照:
除板子外,还有独立的
仿真器哦!由于手头
电源有限。我用CH340 TTL转USB接口给板子供了点。仿真器的VDD与板子的VDD没有连接。据指导文档说,2者电压不兼容,可能会烧毁仿真器。
板子做工细腻,
PCB布局很合理,用料也舍得。板上出电机驱动及电流霍尔采样部分,其余的外设通过接口引出,像IIC,SPI,UART等~
下面,我们到
论坛或者官网下载资料。也不知道是不是这款MCU还比较新,感觉匹配资料并不是那么很完整。
我们先去官网下载对应的:
主要下载芯片规格书,MDK支持包,BSP软件包,板子原理图等。这里,大家自行下载,就不一一列出了。
下面,我们开始搭建软件环境。这里我们使用MDK C51来编译。先配置KEIL的一些支持文件
(在KeilConfig.rar压缩文件里面):
解压下来:
按照里面的说明书,操作。
其中对应添加的那句语句,必须在C51那个下面(如果你安装了ARM与C51集在一起,需要仔细查看位置)
下面,我们新建工程就能知道对应的芯片支持了,仿真器也能找到对应配置:
当然DEMO工程,我们偷个懒,不重空白写起。我们对官方给的BSP例子,进行精简~
仅保留GPIO配置,一些电机PWM等相关的先去掉,毕竟是新手么,得熟悉一下。
我们准备写个LED闪烁的基本例程:
板子上有个指示ERR的灯,对应P44:
电路:
然后代码:
- void GPIO_Init(void)
- {
- //ERR LED-->P44
- SetBit(P4_OE , P04);
- SetBit(P4_PU , P04);
- GP44 = 1; //默认关闭LED
-
- }
我们对于24M的时钟,写一个软延时:
- void Delay1ms() //@24.000MHz
- {
- unsigned char i, j;
- i = 24;
- j = 85;
- do
- {
- while (--j);
- } while (--i);
- }
- void delay_ms(unsigned int nms)
- {
- while(nms--){Delay1ms();}
- }
main.C里面while循环调用:
- void main(void)
- {
- unsigned int i=0;
- GPIO_Init();
- UART1_Init();
- //timer2_Init();
-
- //EA=1;
- while(1)
- {
- GP44=~GP44;
- delay_ms(500);
- }
- }
下载程序前。下载器与板子连接:
然后MDK里面仿真器配置均正确了,但是点下载,却一直不成功:
,试了几次,放弃尝试用独立的下载工具(独立工具仅支持BIN格式),进行下载:
下载成功,但是MDK C51里面的HEX如何转成bin文件呢?
我们这里使用一个小工具:
解压下来,把这个EXE放到一个固定路径里面。
我这里放的是KEIL的目录:
然后我们在魔术棒的配置user里面加上一行指令(hex2bin路径+空格+要转换的HEX路径):
具体参考(https://blog.csdn.net/WangShiRuManWoRuLi/article/details/104372224)
生成了BIN:
然后,点MDK里面的下载,也能正常下载了:
复位查看LED闪烁:
好了,开箱就到这里。