这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 基于DSP2407产生带死区的6个PWM脉冲的源代码

共1条 1/1 1 跳转至

基于DSP2407产生带死区的6个PWM脉冲的源代码

助工
2014-12-03 20:20:22     打赏

File Name: Pulse.c
Diion: Pulse for thyristor. The zero-crossing signal of power
is inputed from the capture of 2407, which generate the
pulse and control its phase.
Copy Right: Guoguo
**********************************************************************/
/*include register definition of 2407*/
#include "Reg_2407_C.h"
/*include varable and I/O address definition of 2407*/
#include "Pulse.h"
main()
{
CPU_Init();
EV_Init();
IOport_Init();

asm(" CLRC INTM ");

/*i = 0;/*tt*/
/**T1CON |= 0x0040;/*tt*/
*T2CON |= 0x0040; /* Enable T2 */
while(1)
{
/*------------------------------------------------------------------------*/
/* Pulse generation. P1 is started from the zero-crossing of Uca. */
/* Pulse width is 90 degree. Order: P1-P2-P3-P4-P5-P6-P1 */
/* ___________ ___________ ___________ ___ */
/* |_____1_____|___|_____3_____|___|_____5_____|___|_1_ */
/* ___ ___________ ___________ ___________ */
/* |_6_|___|_____2_____|___|_____4_____|___|_____6_____| */
/* | | | | | | | | | | | | | | */
/* 0 30 60 90 120 150 180 210 240 270 300 330 360 30 */
/* */
/* 0 is the zero-crossing of Uca. 30 degree: i=125 */
/*------------------------------------------------------------------------*/
switch(i)
{
case 0: {*PADATDIR=0x0C040; *PBDATDIR=0x0F08; break;}
case 125: {*PADATDIR=0x0C040; *PBDATDIR=0x0F00; break;}
case 250: {*PADATDIR=0x0C0C0; *PBDATDIR=0x0F00; break;}
case 375: {*PADATDIR=0x0C080; *PBDATDIR=0x0F00; break;}
case 500: {*PADATDIR=0x0C080; *PBDATDIR=0x0F01; break;}
case 625: {*PADATDIR=0x0C000; *PBDATDIR=0x0F01; break;}
case 750: {*PADATDIR=0x0C000; *PBDATDIR=0x0F03; break;}
case 875: {*PADATDIR=0x0C000; *PBDATDIR=0x0F02; break;}
case 1000: {*PADATDIR=0x0C000; *PBDATDIR=0x0F06; break;}
case 1125: {*PADATDIR=0x0C000; *PBDATDIR=0x0F04; break;}
case 1250: {*PADATDIR=0x0C000; *PBDATDIR=0x0F0C; break;}
case 1375: {*PADATDIR=0x0C000; *PBDATDIR=0x0F08; break;}
default: {break;}
}
}
}
interrupt void cap_isr(void)
{
unsigned int EVAIFRC_temp;

EVAIFRC_temp = *EVAIFRC;

if(!(EVAIFRC_temp & 0x0004)) /* CAP3 interrupt-go down; else return */
{
asm(" CLRC INTM ");
return;
}

i = 0;

*EVAIFRC = *EVAIFRC|0x0004;

asm(" CLRC INTM ");

*T1CON |= 0x0040;
*T1CNT = 0x0000;
*T2CNT = 0x0000;

return;
}
interrupt void T1P_isr(void) /* T1 period interrupt: 40/3us */
{
int flag;
flag = *EVAIFRA;
if(!(flag & 0x0080))
{
asm(" CLRC INTM ");
return;
}

*EVAIFRA = *EVAIFRA|0x0080;

i++;
/*if(i>=1500) i=0;/*tt*/ 

asm(" CLRC INTM ");

return;
}
interrupt void Phantom(void)
{
asm(" CLRC INTM ");
return;
}





  图-1 AVST_HSPPv2并行计算平台


  对于多处理器高速并行计算系统,功耗是至关重要的,所以对系统要求计算性能大幅度提升的同时,必须考虑多处理器的系统架构才可以把系统功耗控制在一个相对合理的范围。由于处理器内核功耗和主频的平方近似成正比,这就意味着3个1GHz的处理器的功耗是1个3GHz处理器功耗的30%,TMS320C6474处理器内嵌了3个可以工作在1GHz/1.2GHz的C64x+高性能DSP内核,每个DSP内核独享92KB的L1片内高速SRAM,三个DSP内核共享3MB的L2片内高速SRAM,同时凭借TI独有的SmartReflexTM技术使得该处理器具有每MIPS仅需0.15mW的业内最高电源效率。


  芯片互联,启动同步以及多内核通信和管理是多处理器系统设计所面临的最大挑战,AVST的这款开发平台选择了SRIO总线做为多处理器之间的物理互联方式,这是一种高性能的多处理器互联方式,1x模式下可以用很少的IO资源提供理论峰值高达3.125Gbps的传输带宽。该平台选用了一颗高性能的SRIO交换芯片作为12颗DSP处理器和1颗FPGA芯片的数据交换中心,可以支持12路1x的SRIO链接和2个4x的SRIO数据链接。同时,借助TI公司的CCS集成开发环境和DSP BIOS实时内核,可以高效的完成对三核心DSP程序的精确仿真和调试工作。





  图-2 AVST_HSPPv12并行计算平台系统框图


  多核多片系统将成为嵌入式中高端产品的主流解决方案,奥维视讯会继续保持和TI高度的战略合作伙伴关系,为客户提供优质的原创设计和解决方案。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]