核心内容摘要
芒果TVMG288.vpp:点亮你的娱乐视界,开启无限精彩
一个同步机无传感滑膜观测器模型加代码该模型基于28035芯片采用了典型的smopll方案。
这段代码是实际应用代码而不是一般的玩票代码因此具有较高的可比性不同于ti例程。
需要注意的是少数文件中的中文注释可能存在乱码问题。
至于m文件它并没有太多用处直接运行simulink模型即可。
概述本文档详细分析了基于TI DSP2803x系列微控制器的外设寄存器头文件代码。
这些头文件定义了DSP2803x芯片各个功能模块的寄存器结构和位域为底层驱动开发提供了完整的硬件抽象层接口。
代码结构总览
设备配置与基础定义DSP2803x_Device.h作为主设备头文件集成了所有外设模块的头文件并提供了基础类型定义和核心配置数据类型定义typedef int int16; typedef long int32; typedef unsigned int Uint16; typedef unsigned long Uint32; typedef float float32;关键宏定义中断管理EINT,DINT,EALLOW,EDIS位操作BIT0-BIT15目标设备选择支持
多种型号
模拟数字转换器(ADC)模块DSP2803x_Adc.h定义了12位ADC模块的完整寄存器结构主要特性16个转换通道(SOC0-SOC
灵活的触发源选择硬件过采样支持内部参考电压和温度传感器关键寄存器结构struct ADC_REGS { union ADCCTL1_REG ADCCTL1; // ADC控制寄存器1 union ADCCTL2_REG ADCCTL2; // ADC控制寄存器2 union ADCINT_REG ADCINTFLG; // 中断标志 // ... 其他寄存器 union ADCSOCxCTL_REG ADCSOC0CTL; // SOC0控制寄存器 // ... SOC1-SOC15控制寄存器 };转换控制流程配置SOCxCTL寄存器设置采集窗口和通道选择设置触发源EPWM、GPIO、软件等等待转换完成中断从ADCRESULTx读取转换结果
增强型脉宽调制(EPWM)模块DSP2803x_EPwm.h提供高精度PWM生成功能支持电机控制和电源应用核心子模块时间基准(TB)计数器和工作模式控制计数器比较(CC)占空比控制动作限定器(AQ)输出波形生成死区生成(DB)防止上下管直通跳闸区域(TZ)故障保护机制事件触发(ET)ADC同步触发关键配置示例// 配置PWM频率和相位 EPwm1Regs.TBPRD 1000; // 设置周期值 EPwm1Regs.TBPHS.half.TBPHS 0; // 相位偏移 EPwm1Regs.TBCTL.bit.CTRMODE 2; // 增减计数模式 // 配置占空比 EPwm1Regs.CMPA.half.CMPA 500; // 50%占空比 // 配置输出动作 EPwm1Regs.AQCTLA.bit.CAU 2; // 比较匹配时置高 EPwm1Regs.AQCTLA.bit.CAD 1; // 比较匹配时置低
增强型捕捉(ECAP)模块DSP2803x_ECap.h用于精确测量外部信号的时间参数一个同步机无传感滑膜观测器模型加代码该模型基于28035芯片采用了典型的smopll方案。
这段代码是实际应用代码而不是一般的玩票代码因此具有较高的可比性不同于ti例程。
需要注意的是少数文件中的中文注释可能存在乱码问题。
至于m文件它并没有太多用处直接运行simulink模型即可。
功能特性4级深度捕捉缓冲器绝对时间戳测量相对周期测量APWM模式支持工作模式捕捉模式测量输入信号的边沿时间APWM模式生成单路PWM输出
增强型正交编码器(EQEP)模块DSP2803x_EQep.h专为电机位置和速度检测设计核心功能正交编码器接口位置计数器32位单位位置定时器看门狗定时器位置比较同步
控制器局域网(ECAN)模块DSP2803x_ECan.h实现CAN
0B协议支持标准和扩展帧邮箱系统32个可配置邮箱每个邮箱可配置为发送或接收可编程验收过滤时间戳功能
通用输入输出(GPIO)模块DSP2803x_Gpio.h提供灵活的引脚复用和配置配置层次功能选择外设功能或GPIO方向控制输入/输出配置上拉控制使能/禁用内部上拉量化控制输入信号滤波系统控制与时钟管理DSP2803x_SysCtrl.h管理系统级功能时钟架构晶体振荡器或内部振荡器可编程PLL倍频外设时钟分频器低功耗模式支持代码示例// 初始化系统时钟 InitSysCtrl(); // 配置特定外设时钟 SysCtrlRegs.PCLKCR
bit.ADCENCLK 1; // 使能ADC时钟 SysCtrlRegs.PCLKCR
bit.SCIAENCLK 1; // 使能SCI-A时钟中断管理系统PIE外设中断扩展模块DSP2803xPieCtrl.h DSP2803xPieVect.h12个中断组每组8个中断可编程中断优先级向量表管理开发支持功能
内存管理// RAM函数执行支持 extern Uint16 RamfuncsLoadStart; extern Uint16 RamfuncsLoadEnd; extern Uint16 RamfuncsRunStart;
延时函数// 精确微秒延时 #define DELAY_US(A) DSP28x_usDelay(((((long double) A *
1