【原创】在Vivado HLS中如何优化程序的执行速度
在前面的博文里,我们已经介绍了如何用VivadoHLS把一个C程序快速转换为RTL并导出(请参考http://blog.chinaaet.com/detail/35964),但是当时,我们并没有太关心转换之后代码的效率和执行速度问题。今天我们以含有for循环的程序来说明,代码的执行速度是如何优化的。首
发表于 2014/7/27 17:24:15
阅读(11217)
【原创】TI C2833x介绍---HRPWM(18)-HRPWM的寄存器
HRPWM本身的寄存器,除了配置寄存器HRCNFG以外,剩下的就是两个状态寄存器了,一个是在比较值调整模式下用到的计数比较寄存器A的高分辨率寄存器CMPAHR,用来保存MEP校正之后的比较值;另一个是在周期值调整模式下用到的时间基准高分辨率寄存器TBPHSHR,用来保存MEP校正
发表于 2014/3/7 21:36:14
阅读(2958)
【原创】TI C2833x介绍---HRPWM(17)-HRPWM的寄存器
HRPWM的寄存器并不多,所以除了SFO库的使用需要花点时间了解以外,寄存器的配置是比较容易的。首先看它的配置寄存器HRCNFG。HRCNFG是EALLOW保护的,它的各个位的含义是:位名称值含义15-4Reserved这么多都是保留位,看来以后的升级版本可以加入很多的功能HR
发表于 2014/2/20 21:28:14
阅读(3376)
【原创】TI C2833x介绍---HRPWM(16)
总结一下HRPWM的所有寄存器如下:寄存器名称地址偏移量长度(x16)/是否含有影子寄存器描述时间基准寄存器TBCTL0x00001/0时基控制寄存器TBSTS0x00011/0时基状态寄存器TBPHSHR0x00021/0时基相位高分辨率寄存器TBPHS0x00031/0时基相位寄存器TBCNT0x00041/0时基计数寄存器T
发表于 2014/1/19 10:24:43
阅读(3341)
【原创】TI C2833x介绍---HRPWM(15)
脉宽调制PWM的本质就是把基波/调制波信号用三角载波(或者其它更新奇的载波,例如抛物线形式的载波)进行叠加、调制,从而得到脉宽可变的方波波形。一般情况下载波的频率远高于调制波的频率,所以如果我们使用一个低通滤波器或者限波器等滤除载波频率的话,基本上就能复
发表于 2014/1/3 21:36:32
阅读(4006)
【原创】TI C2833x介绍---HRPWM(14)
下面用一个Buck变换器的小例子说明HRPWM的使用;Buck变换器的示意图为:既然是Buck变化,那开关频率自然是非常高的,具体的参数是:1.SYSCLOCKOUT=100MHz2.PWM
发表于 2013/12/30 20:24:02
阅读(4638)
【原创】TI C2833x介绍---HRPWM(13)
上次我们提到了因为MEP的校正需要3个或者6个时钟周期才能完成,所以在占空比特别小的情况下,MEP可以调整的最小占空比是受到限制的,就是说在传统的PWM波形的占空比小于3个或者6个系统时钟周期时MEP是无法对其进行任何校正。但是假如我们反过来思考的话:在PWM处于关断
发表于 2013/12/21 15:21:23
阅读(3280)
【原创】TI C2833x介绍---HRPWM(12)
因为MEP的计算、校正等需要一定的时钟周期,所以在PWM开始产生之后,MEP并不能立即作用在传统的PWM波形上对其进行校正。在不启用SFO对MEP的预定标因子进行实时校正的话,在传统PWM开始产生之后,MEP需要等待3个系统时钟周期才能开始起作用;如果启用了SFO校正的话,则需
发表于 2013/12/14 16:20:29
阅读(3123)
【原创】TI C2833x介绍---HRPWM(11)
调用SFO的库进行MEP预定标因子的实时修正,在把相关的头文件、库文件(例如SFO.h、SFO_TI_Build_fpu.lib)添加近工程之后,一般情况下可以按照下面的步骤进行:1.main函数中初始化系统时钟、GPIO、外设控制、IER、IFR、中断向量表、使能中断等。2.关闭各个ePWM模块间的
发表于 2013/12/7 22:55:51
阅读(5417)
【原创】TI C2833x介绍---HRPWM(10)
上次我们用一个例子描述了怎么根据需要的占空比计算对应的CMPA和CMPAHR寄存器的值,并分析了它的精度。在计算过程中,我们假设MEP的分辨率(最小步长)是180ps,所以在系统时钟为100MHz的情况下,每个系统时钟周期可以调整的MEP个数=10ns/180ps=55,定义为MEP预定标因子
发表于 2013/11/29 20:08:27
阅读(6477)
【原创】TI C2833x介绍---HRPWM(9)
因为CMPAHR是高8位有效的寄存器,所以为了把它的值限制在1-255的范围内,需要给计算出的MEP加上1.5的偏移量。至于这里的偏移量为什么是加1.5而不是其它的数,在器件手册中并没有提及,目前也没有什么很合理的解释,暂且留作一个问题以后深究;不过如果不是打破沙锅问到
发表于 2013/11/21 20:04:52
阅读(3843)
【原创】TI C2833x介绍---HRPWM(8)
通过前面的图示和说明,我们已经知道了通过修改CMPA和CMPAHR寄存器的值进行配合,可以尽可能地保证输出PWM波形的精度。图示可能造成一种误区,就是先产生了传统的PWM波形,然后进行MEP修正才产生了HRPWM波形;实际情况是没有这种延迟的,而且为了快速处理,需要我们建立
发表于 2013/11/15 21:56:25
阅读(3438)
【原创】TI C2833x介绍---HRPWM(7)
在典型的电力电子、电机的控制应用(例如开关电源SMPS、数字电机控制(即TIC2000相关的技术文档中常提到的DMC)、不间断电源UPS等)中,数字型的控制器(例如PID调节器、双极点滤波器、超前/滞后校正等)一般使用标么值或者百分制的方法进行参数的表达,这样很容易在不
发表于 2013/11/9 21:18:29
阅读(3387)
【原创】TI C2833x介绍---HRPWM(6)
前面提到了与HRPWM里面与MEP功能有关的扩展寄存器中,相关的操作都是通过写8位的寄存器实现的,所以MEP可以按照255个离散的脉冲位置位置上调节传统PWM的边沿位置(2的8次方为256,显然MEP=0的时候相当于没有任何调整),配合时基TB
发表于 2013/10/27 17:57:53
阅读(6650)
【原创】TI C2833x介绍---HRPWM(4)
从前面提到的微边沿定位MEP的原理也可以看出,如果需要产生高分辨率的HRPWM波形,首先要有基于传统方法输出的PWM波形,然后再进行MEP原理;所以首先要根据需要输出的PWM开关频率(既然使用HRWPM了,当然开关频率也很高了,例如200kHz)和PWM极性配置(脉冲是高有效还是
发表于 2013/10/12 16:51:24
阅读(4445)