【综述】DSP处理器芯片

server/2024/9/23 11:16:31/

文章目录

DSP-toc" style="margin-left:40px;">TI DSP

C2000-toc" style="margin-left:40px;">C2000系列

TMS320F28003X

典型应用

开发工具链

参考资料


DSP" style="margin-left:0;text-align:justify;">TI DSP

        TI C2000系列 控制领域

        TI C5000系列 通信领域

        TI C6000系列 图像领域

C2000" style="margin-left:0;text-align:justify;">C2000系列

        第三代集成了C28浮点DSP内核,采用了65nm工艺上一代180nm

        第四代正在规划中,将内置C29 DSP内核,性能提高2至3倍

TMS320F28003X

        C2000F28003X包括一个120MHz主频的32C28 浮点DSP,以及一个120MHz主频的CLA。CLA (Control Law Accelerator,控制率加速器)独立于C28x CPU工作,时钟频率与CPU相同,可执行算法以及周期性的计算工作。通过增加平行的处理单元CLA,拓展了C28x CPU的性能。

典型应用

        电机控制示例如下:

void PWMA_config(void)
{P_SW2 |= 0x80;		//SFR enable   PWM1   = 0;PWM1_L = 0;PWM2   = 0;PWM2_L = 0;PWM3   = 0;PWM3_L = 0;P1n_push_pull(0x3f);PWMA_PSCR = 3;		// 预分频寄存器, 分频 Fck_cnt = Fck_psc/(PSCR[15:0}+1), 边沿对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)), 中央对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)*2).PWMA_DTR  = 24;		// 死区时间配置, n=0~127: DTR= n T,   0x80 ~(0x80+n), n=0~63: DTR=(64+n)*2T,  //				0xc0 ~(0xc0+n), n=0~31: DTR=(32+n)*8T,   0xE0 ~(0xE0+n), n=0~31: DTR=(32+n)*16T,PWMA_ARR    = 255;	// 自动重装载寄存器,  控制PWM周期PWMA_CCER1  = 0;PWMA_CCER2  = 0;PWMA_SR1    = 0;PWMA_SR2    = 0;PWMA_ENO    = 0;PWMA_PS     = 0;PWMA_IER    = 0;PWMA_CCMR1  = 0x68;		// 通道模式配置, PWM模式1, 预装载允许PWMA_CCR1   = 0;		// 比较值, 控制占空比(高电平时钟数)PWMA_CCER1 |= 0x05;		// 开启比较输出, 高电平有效PWMA_PS    |= 0;		// 选择IO, 0:选择P1.0 P1.1, 1:选择P2.0 P2.1, 2:选择P6.0 P6.1, 
bit4: ENO3P,  bit3: ENO2N,  bit2: ENO2P,  bit1: ENO1N,  bit0: ENO1PPWMA_CCMR2  = 0x68;		// 通道模式配置, PWM模式1, 预装载允许PWMA_CCR2   = 0;		// 比较值, 控制占空比(高电平时钟数)PWMA_CCER1 |= 0x50;		// 开启比较输出, 高电平有效PWMA_PS    |= (0<<2);	// 选择IO, 0:选择P1.2 P1.3, 1:选择P2.2 P2.3, 2:选择P6.2 P6.3, 
bit4: ENO3P,  bit3: ENO2N,  bit2: ENO2P,  bit1: ENO1N,  bit0: ENO1PPWMA_CCMR3  = 0x68;		// 通道模式配置, PWM模式1, 预装载允许PWMA_CCR3   = 0;		// 比较值, 控制占空比(高电平时钟数)PWMA_CCER2 |= 0x05;		// 开启比较输出, 高电平有效PWMA_PS    |= (0<<4);	// 选择IO, 0:选择P1.4 P1.5, 1:选择P2.4 P2.5, 2:选择P6.4 P6.5, PWMA_BKR    = 0x80;		// 主输出使能 相当于总开关PWMA_CR1    = 0x81;		// 使能计数器, 允许自动重装载寄存器缓冲, 边沿对齐模式, 向上计数,  bit7=1:写自动重装载寄存器缓冲(本周期不会被打扰), =0:直接写自动重装载寄存器本(周期可能会乱掉)PWMA_EGR    = 0x01;		//产生一次更新事件, 清除计数器和与分频计数器, 装载预分频寄存器的值
}void StepMotor(void) 
{switch(step){case 0:  // AB  PWM1, PWM2_L=1PWMA_ENO = 0x00;	PWM1_L=0;	PWM3_L=0;Delay_500ns();PWMA_ENO = 0x01;		// 打开A相的高端PWMPWM2_L = 1;				// 打开B相的低端ADC_CONTR = 0x80+10;	// 选择P0.2作为ADC输入 即C相电压CMPCR1 = 0x8c + 0x10;	//比较器下降沿中断break;case 1:  // AC  PWM1, PWM3_L=1PWMA_ENO = 0x01;	PWM1_L=0;	PWM2_L=0;	// 打开A相的高端PWMDelay_500ns();PWM3_L = 1;				// 打开C相的低端ADC_CONTR = 0x80+9;		// 选择P0.1作为ADC输入 即B相电压CMPCR1 = 0x8c + 0x20;	//比较器上升沿中断break;case 2:  // BC  PWM2, PWM3_L=1PWMA_ENO = 0x00;	PWM1_L=0;	PWM2_L=0;Delay_500ns();PWMA_ENO = 0x04;		// 打开B相的高端PWMPWM3_L = 1;				// 打开C相的低端ADC_CONTR = 0x80+8;		// 选择P0.0作为ADC输入 即A相电压CMPCR1 = 0x8c + 0x10;	//比较器下降沿中断break;case 3:  // BA  PWM2, PWM1_L=1PWMA_ENO = 0x04;	PWM2_L=0;	PWM3_L=0;	// 打开B相的高端PWMDelay_500ns();PWM1_L = 1;				// 打开C相的低端ADC_CONTR = 0x80+10;	// 选择P0.2作为ADC输入 即C相电压CMPCR1 = 0x8c + 0x20;	//比较器上升沿中断break;case 4:  // CA  PWM3, PWM1_L=1PWMA_ENO = 0x00;	PWM2_L=0;	PWM3_L=0;Delay_500ns();PWMA_ENO = 0x10;		// 打开C相的高端PWMPWM1_L = 1;				// 打开A相的低端adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11);ADC_CONTR = 0x80+9;		// 选择P0.1作为ADC输入 即B相电压CMPCR1 = 0x8c + 0x10;	//比较器下降沿中断break;case 5:  // CB  PWM3, PWM2_L=1PWMA_ENO = 0x10;	PWM1_L=0;	PWM3_L=0;	// 打开C相的高端PWMDelay_500ns();PWM2_L = 1;				// 打开B相的低端ADC_CONTR = 0x80+8;		// 选择P0.0作为ADC输入 即A相电压CMPCR1 = 0x8c + 0x20;	//比较器上升沿中断break;default:break;}if(B_start)		CMPCR1 = 0x8C;	// 启动时禁止下降沿和上升沿中断
}

开发工具链

        底层软件库、软件demo、工具链,示例如下:

参考资料

        TMS320F28003x Real-Time Microcontrollers datasheet.pdf


http://www.ppmy.cn/server/21121.html

相关文章

vue项目使用百度地图

打开百度地图开放平台 百度地图开放平台 | 百度地图API SDK | 地图开发 在控制台新建应用 复制访问应用的ak 可修改地图样式 使用部分 <!-- 引入地图 --><div class"main-aside"><div id"b-map-container"></div></div> …

制作Android分区镜像

1 python生成一个sector数据 def get_oem_bootmode(): # Header size SECTOR_SIZE_IN_BYTES 512 header [0 for i in \ range(SECTOR_SIZE_IN_BYTES)] # magic # The ord() built-in function in # Python converts a character # into …

RESTful风格

RESTful风格 1、REST概念 REST(英文: Representational State Transfer,简称REST, 意思:表述性状态转换&#xff0c;描述了一个架构样式的网络系统&#xff0c;比如web应用)。 它是一种软件架构风格、 设计风格&#xff0c;而不是标准&#xff0c;只是提供了一组设计原则和约…

提示词优化的自动化探索:Automated Prompt Engineering

编者按&#xff1a; 作者在尝试教授母亲使用 LLM 完成工作任务时&#xff0c;意识到提示词的优化并不像想象中简单。提示词的自动优化对于经验并不丰富的提示词撰写者很有价值&#xff0c;他们没有足够的经验去调整和改进提供给模型的提示词&#xff0c;这引发了对自动化提示词…

docker安装【zookeeper】【kafka】【provectuslabs/kafka-ui】记录

目录 1.安装zookeeper:3.9.2-jre-172.安装kafka:3.7.03.安装provectuslabs/kafka-ui &#xff08;选做&#xff09;新环境没有jdk&#xff0c;安装jdk-17.0.10备用 mkdir -p /export/{data,apps,logs,conf,downloads}cd /export/downloadscurl -OLk https://download.oracle.…

uniapp 阿里云点播 其他功能

详细记录 阿里云播放器 基础功能 官方文档 继 根据业务开发了其他功能 大家可以结合 上一篇 基础阿里云播放器使用 使用

MySQL 数据库远程访问问题

在默认的情况下&#xff0c;MySQL 是不能远程访问的&#xff0c;当我们修改了用户名可以接受远程访问后&#xff0c;还是没有办法接受远程访问。 还有一个配置的地方需要验证。 mysqld.cnf 配置文件 mysqld.cnf 配置文件对访问的地址可能会有限制。 配置文件的地址为&#…

怎么选合适的图纸加密软件?迅软DSE加密软件功能、安全与易用性并存

利用加密软件进行图纸加密&#xff0c;确保企业的图纸信息能够得到有效保护&#xff0c;防止非法访问和数据泄露。 一、挑选图纸加密软件的注意事项&#xff1f; 用户反馈&#xff1a;参考其他用户的反馈和评价&#xff0c;了解软件在实际使用中的表现和潜在问题。兼容性&…