DSP28035 CLA配置与调试步骤

  • Post author:
  • Post category:其他


日期:20200229



1、 CLA简介

控制率加速器(CLA)是一个独立、完全可编程的32位浮点数学处理器,其低中断延迟可以即时读取ADC采样,降低了ADC采样输出延时,且不占用主CPU的处理时间,有利于提高系统响应和控制频率。

CLA程序代码可包含多大8个任务或中断服务程序,每个任务有两种触发机制:主CPU触发和外设中断信号触发:

  1. 主CPU触发:

    C28x CPU通过IACK指令来触发任务执行,可以通过主CPU软件控制。
  2. 外设中断触发:

    Task1-7可以通过ADC或者ePWM来触发,如:

    Task1:ADCINT1或EPWM1_INT;

    Task2:ADCINT2或EPWM2_INT;

    Task3:ADCINT3或EPWM3_INT;

    Task4:ADCINT4或EPWM4_INT;

    Task5:ADCINT5或EPWM5_INT;

    Task6:ADCINT6或EPWM6_INT;

    Task7:ADCINT7或EPWM7_INT;

    Task8:ADCINT8或CPU Timer0;

    为了使用CLA,需要配置两块RAM区域,用于CLA与主CPU通讯使用,分别为CPUtoCLARAM以及CLAtoCPURAM,其中CPUtoCLARAM区域数据CPU可读可写,CLA只能读不能写,CLAtoCPURAM区域数据CLA可读可写,CPU只能读不能写。

    CLA可以直接访问ePWM、HRPWM、比较器和ADC结果寄存器。



2、 CLA配置过程

配置方式对应开发环境为CCS8。



2.1、cmd的配置

与没有CLA的工程相比,带有CLA的工程需要为CLA配置一个RAM区域存放代码和数据。

在这里插入图片描述

图2-1 带有CLA的CMD文件配置-1

图2-1中,PAGE1将RAML1与RAML2区域命名为CLARAM0和CLARAM1,作为CLA的代码存储空间和数据存放空间,CLA_CPU_MSGRAM和CPU_CLA_MSGRAM作为CLA与主CPU进行数据通讯的RAM空间,用于存放交互数据。

在这里插入图片描述

图2-2 带有CLA的CMD文件配置-2

图2-2中,SECTION块为CLA部分相关的块分配地址,对应空间为PAGE中分配的CLA空间。



2.2、主程序的配置

在主程序中,需要对CLA进行初始化工作。

首先设备初始化函数DeviceInit()中使能CLA的时钟:

在这里插入图片描述

接着对CLA进行初始化:

在这里插入图片描述

配置CLA每个任务的向量地址,将程序代码搬移到CLA的RAM中运行。

在这里插入图片描述

此处设置CLA的RAM区域。

在这里插入图片描述

有些CLA的函数需要在程序启动后主动运行一次,比如数据的初始化工作,因此在配置CLA时,使能CLA应答IACK,并且强行执行一次CLA任务。这里将Task8指定响应M_INT8中断,并使用CLA1ForceTask8()函数执行一次Task8任务,完成CLA数据的初始化。

在这里插入图片描述

在这个例程中,需要运行的任务Task1由ADC1的中断触发,当ADC1完成采样后,执行Task1程序进行数据处理,所以设置Task1的中断源为ADCINT1,并使能中断响应。



2.3、CLA程序的编写

CLA中进行操作的数据在声明时,需要注明这部分数据存放在CLA映射的RAM区域中。

在这里插入图片描述

图2-3 CLA运行的变量和结构体声明

图2-3中,在声明变量和结构体的时候,需要将这些结构体和变量映射到CLA对应的RAM区域中。

在这里插入图片描述

图2-4 CLA与CPU通讯的变量声明

图2-4中,对于需要与CPU进行通讯的变量,指定存储在CPUtoCLA的RAM区域,这部分区域的数据,CPU可读可写,CLA只能读不能写。

在这里插入图片描述

图2-5 CLA Task1程序

完成变量声明后,可以编写Task的中断服务程序,例程中CLA程序直接操控了PWM输出,还可直接读取ADC采样结果寄存器AdcResult.ADCRESULT0-7.

在这里插入图片描述

图2-6 CLA Task1程序操控PWM寄存器



3、 CLA程序调试

CLA的程序不能通过仿真器打断点的形式进行调试,必须通过在程序中插入debug语句才能调试。如图2-5所示,在第115行,插入了__mdebugstop(),则程序会停在此处。CLA可支持单步运行。

添加完debug后,在开发环境中进行设置。右键点击工程选择Properties->Built->C2000 Compiler->Processor Options,Specify CLA support必须设置为cla0,如图3-1。

在这里插入图片描述

图3-1 开发环境CLA设置

编译整个程序,生成out文件,连接板子。

首先右键C28xx建立连接,Run->load->load Program,下载.out文件。

在这里插入图片描述

接着右键CLA_0建立连接,Run->load->load Symbols,下载.out文件。

点击C28XX,点三角运行程序,则程序自动停在__mdebugstop()处。

在这里插入图片描述

图3-2 选择C28xx运行

在这里插入图片描述

图3-3 程序停止在__mdebugstop()并单步运行



版权声明:本文为lijialin_bit原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。