[Seed开发板及仿真器]

SEED-DBS28377调试笔记

[复制链接]
14046|20
手机看帖
扫描二维码
随时随地手机跟帖
baisong1112|  楼主 | 2018-3-8 14:48 | 显示全部楼层 |阅读模式
本帖最后由 baisong1112 于 2018-3-9 18:18 编辑

       SEED-DBS28377套件是ARROWSEED以TI的TMS320F28377D为主芯片,结合电机控制、工业驱动产品和电力线通信等方面的需求,设计完成的完整解决方案。该套件可以同时支持4路直流无刷电机,也可以同时支持双路千瓦伺服电机,未来还会支持EtherCAT等工业以太网协议。
作为SEED-DBS28377的开发者之一,笔者在调试过程中遇到了一些关于TMS320F28377D的典型问题,现将调试时的处理方法及思路记录如下,以便大家借鉴。
A、        双核心外设的配置与使用
       TI的TMS320F28377D是双C28x核心MCU,外设丰富、性能强大。外设可以根据需要指派给指定的核心使用,但也要按照规则使用,否则就会遇到各种奇怪问题。例如我的项目是要求使用TMS320F28377D用作主控芯片,开发一套多电机控制系统。项目要求为双核心独立控制电机,即一个核心控制一台电机,项目外设分配如下:
1、 Cpu1外设:EPWM1、EPWM2、EPWM3、EPWM11、EQEP1、ADC_A、CMPSS1、CMPSS2;
2、 Cpu2外设:EPWM4、EPWM5、EPWM6、EPWM12、EQEP2、ADC_B、CMPSS3、CMPSS4;
最初的软件流程:
1、 初始化系统控制,包括:PLL、WatchDog、Peripheral Clocks;
2、 GPIO初始化,按照对应外设去设置GPIO的功能;
3、 外设初始化,按照各个外设的设计要求进行设置;
4、 中断初始化,按照中断工作需求进行设置;
5、 Cpu2的初始化过程同步骤1~4;
       编译程序通过,连接仿真器,加载out文件并运行,此时只有Cpu1的电机可以正常工作,Cpu2的电机不能工作。测试PWM4~6无输出,检查过程中我意识到TMS320F28377D中的寄存器可能不是所有都对Cpu2开放。在下表(Table  6-10)中列出的外设访问权限列表中,可以看出我的分析正确。并且Cpu2的可用外设也需要Cpu1进行分配,默认是Cpu1使用的。因此修改软件流程如下:
Ø Cpu1初始化过程
1、 初始化系统控制,包括:PLL、WatchDog、Peripheral Clocks;
0001.png
2、 GPIO初始化,按照对应外设去设置GPIO的功能,包括Cpu2使用的外设;
0002.png
3、 分配外设给Cpu2;
0003.png
4、 外设初始化,按照各个外设的设计要求进行设置;
0004.png
5、 中断初始化,按照中断工作需求进行设置;
0005.png
Ø Cpu2初始化过程进行精简
1、 外设初始化,按照各个外设的设计要求进行设置;
2、 中断初始化,按照中断工作需求进行设置;
0006.png
至此,重新编译程序。编译程序通过,连接仿真器,加载out文件并运行,此时两个永磁同步电机可同时运行。
0007.png
B、        内存分配
当项目的软件调试完成后,当然要让它脱机运行。但是当我将其烧写到Flash中后,程序运行异常。仿真时一切正常,flash启动则发生异常。
疑惑中重新看datasheet,发现TMS320F28377D内部集成多种RAM,包括:Dedicated RAM、Local SharedRAM、Global Shared RAM、CPU Message RAM和CLA Message RAM等。其中Local Shared RAM为每个核心都有的RAM空间,而Global Shared RAM则是多有核心共用的RAM空间。
于是我重新检查了cmd文件中代码段的存放情况,发现Cpu2的cmd文件把.ebss与.esysmem段放在了Global Shared RAM中,进而导致程序初始化不正常。
0008.png
将Cpu2的cmd文件修改如下,将.ebss与.esysmem段放在了Local Shared RAM中,重新编译后Cpu2脱机工作正常了。
0009.png
评论
无影踪 2018-3-15 22:10 回复TA
干货 

相关帖子

arrowdavid| | 2018-3-8 15:46 | 显示全部楼层
干货

使用特权

评论回复
DBS5728| | 2018-3-8 15:56 | 显示全部楼层
干货

使用特权

评论回复
baisong1112|  楼主 | 2018-3-9 15:41 | 显示全部楼层
希望和大家一起学习探讨。

使用特权

评论回复
michaec| | 2018-3-9 16:46 | 显示全部楼层
很好的经验,谢谢分享.

使用特权

评论回复
arrowdavid| | 2018-3-10 15:33 | 显示全部楼层
期待更多好文

使用特权

评论回复
zgjs79er| | 2018-3-12 11:38 | 显示全部楼层
值得学习!!

使用特权

评论回复
杉树林罗| | 2018-3-12 13:05 | 显示全部楼层
套件有链接吗?资料开源吗?

使用特权

评论回复
AE@HOPE| | 2018-3-12 13:21 | 显示全部楼层
值得学习!

使用特权

评论回复
华虹MCU| | 2018-3-12 14:20 | 显示全部楼层
这不是小白吗?知道我是谁吗

使用特权

评论回复
baisong1112|  楼主 | 2018-3-14 06:49 | 显示全部楼层
本帖最后由 baisong1112 于 2018-3-14 07:08 编辑
杉树林罗 发表于 2018-3-12 13:05
套件有链接吗?资料开源吗?


我们还没有将源码做成链接的形式。目前可以通过我们Arrow的销售人员与我们索取。如果你有任何问题都可以来我们的板块发帖哦。

使用特权

评论回复
baisong1112|  楼主 | 2018-3-14 06:51 | 显示全部楼层
华虹MCU 发表于 2018-3-12 14:20
这不是小白吗?知道我是谁吗

不知道,请赐教。

使用特权

评论回复
华虹MCU| | 2018-3-14 09:00 | 显示全部楼层
baisong1112 发表于 2018-3-14 06:51
不知道,请赐教。

一起踢过球,一起吃过饭喝过酒,一起旅过游

使用特权

评论回复
baisong1112|  楼主 | 2018-3-18 10:38 | 显示全部楼层
华虹MCU 发表于 2018-3-14 09:00
一起踢过球,一起吃过饭喝过酒,一起旅过游

好久不见,有技术问题欢迎询问,来北京找我啊。

使用特权

评论回复
619888476| | 2018-3-21 21:18 | 显示全部楼层
学习

使用特权

评论回复
zgjs79er| | 2018-3-22 09:28 | 显示全部楼层
好贴,需要好好学习。

使用特权

评论回复
VKwang| | 2018-4-12 22:16 | 显示全部楼层
等待更新

使用特权

评论回复
baisong1112|  楼主 | 2018-4-13 13:40 | 显示全部楼层

使用特权

评论回复
VKwang| | 2018-4-15 20:41 | 显示全部楼层
baisong1112 发表于 2018-4-13 13:40
https://bbs.21ic.com/icview-2490718-1-1.html
第二部移步。

收到

使用特权

评论回复
SfyEEr| | 2019-8-10 15:54 | 显示全部楼层
cpu1执行(MemCfgRegs.GSxMSEL.bit.MSEL_GSx=1)指令可以将Global Shared RAM分配给cpu2使用,就不会出现B的错误了,如同外设一样这些Global Shared RAM也是默认给cpu1用的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

56

帖子

0

粉丝