快捷搜索:  

我没用过ti28335上,28335我给你说一下

广告

dsp28335上,28335我没用过。dsp28335属于TI公司的DSPC2000系列产品,dsp28335主要是用于电气控制领域,和工业产品,比如变频器控制、伺服控制等,也可以当作普通MCU使用,请教DSP28335输出类似下面的pwm波形程序,28335的话,我给你说一下我调试的经验吧。

1、请教DSP28335输出类似下面的pwm波形程序,具体实现或者方法都可以

这个挺简单的吧不知道你的DSP设置情况,我就说下我怎么设置吧。我设置的DSP频率是150M,你要发的PWM波周期是20KHz,设置连续增减模式,计数的最大值应该设为150M/40k3750,你在设置比较值,如果占空比是50%,就设一半。然后你设个计数值,确定是什么时候开通哪个PWM,定义个flag就可以了,设置为012,到了你的PWM长度就加1,到3时清0,等于0开PWM1,

2、请问大神一些关于DSP28335烧写的一些问题

bootloader没有配置对,需要配置为bootfromflash。这样的问题确实挺让人头痛的,往往这种情况还不报错,非常让人郁闷。28335我没用过。如果你用的是2812我能立即给你解决了。28335的话,我给你说一下我调试的经验吧。1.看看编译的时候有没有错误。如果有错的话,对应的去网上搜一下,往往都能找到一些方法。

先查查硬件有没有问题。3.例程跑通之后,将你的程序改小,然后将程序刷进去看看。一般就是按例程那样先一个模块一个模块的跑。如果加上某个模块不工作了,你看看有没有明显错误。如果没有,单独跑一下这个模块。如果单独可以跑的话。很有可能是cmd段分配和ccs设置的问题了。你可以试试在项目中右击,选择Properties(Alt+Enter),

3、关于DSP28335的CPU定时器的配置问题

CPUFreqInMHz是DSP的实际工作频率,这个参数的单位是MHz,PeriodInUSec是要定时的时间长度,单位是微秒定时值=定时长度/(CPU的周期)=定时长度×CPU的频率Timer>RegsAddr>PRD.alltemp向定时器周期寄存器赋值Timer>RegsAddr>TPR.all0;Timer>RegsAddr>TPRH.all0;上面两句是配置定时器预定标寄存器,每个定时器源时钟周期TIM(定时器计数器)减一Timer>RegsAddr>TCR.bit.TSS1;//1Stoptimer,

4、dsp28335上,有些空间写得是“保留”,这部分空间能用吗?怎么使用?

保留就是不让你用的意思。没用过这款dsp,一般程序代码放在哪个位置,手册上是会有推荐的,也有例子程序,地址分配有特定文件指定,编译链接时编译器就会遵从。保留的空间有可能就是空的,也就是你把数据写入,但读不出来,为什么老纠结保留空间,用一般的配置编程序,当你对DSP有深入的认识以后再仔细琢磨吧。保留的设备(不一定仅是内存)一般用于系统内部资源访问、调试、未来扩展和不公开资源,这部分之所以标注为Reserved,是不希望用户使用的,当然有的你用了也没什么效果,但据我所知,更早期的TIDSP在程序访问或者试图读写保留内存时会引起系统故障中断,芯片把你访问保留内存的操作当成你程序跑飞的一种现象来反应。

5、DSP28335s/w软件触发

对于28335的话,可以在EPWM配置模块添加下面的语句://adcEPwm1Regs.ETSEL.bit.SOCAEN1;//EnableSOConAgroupEPwm1Regs.ETSEL.bit.SOCASEL2;//TBPRDEPwm1Regs.ETPS.bit.SOCAPRD1;这是默认EPWM1来触发AD转换(目前我程序里用的就是这个)。

6、当dsp28335中存在两个程序时怎么运行

dsp28335中存在两个程序时运行方法:用两个中断,分别是PWM1中断(3,1)和QEP1中断(5,1),其中PWM1中断的优先级要比QEP1中断优先级高,且PWM1中断为不可被抢占中断,QEP1中断为可被抢占中断。dsp28335属于TI公司的DSPC2000系列产品,dsp28335主要是用于电气控制领域,和工业产品,比如变频器控制、伺服控制等,也可以当作普通MCU使用。

您可能还会对下面的文章感兴趣: