This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28377D: 使用EMIF1与FPGA通讯,芯片异常发烫

Part Number: TMS320F28377D

使用的是EMIF1接口与FPGA IO口直连,PIN脚仅使用7地址位、16数据位、RENCS2CLK,在与FPGA通讯过程,FPGA与DSP芯片均会发热异常。

如果FPGA处理一下,在CS高(数据无效)期间,将FPGA的16个数据口置为高阻态,FPGA与DSP芯片都发热正常,如果在CS高(数据无效)期间,将FPGA的16个数据口置为低电平,FPGA与DSP芯片均会发热异常。

在整个交互过程,DSP只读取数据,理论下数据口都应该是输入模式的,为何改变下FPGA的IO口空闲状态发热就正常了呢?是不是哪里需要配置EMIF数据口空闲状态?

附上,EMIF配置及读取数据代码。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void InitEMIF(void)
{
EALLOW;
//
// Grab EMIF1 For CPU1
//
Emif1ConfigRegs.EMIF1MSEL.all = 0x93A5CE71;
//
//Disable Access Protection (CPU_FETCH/CPU_WR/DMA_WR)
//
Emif1ConfigRegs.EMIF1ACCPROT0.all = 0x0;
//
// Commit the configuration related to protection. Till this bit remains set
// content of EMIF1ACCPROT0 register can't be changed.
//
Emif1ConfigRegs.EMIF1COMMIT.all = 0x1;
//
// Lock the configuration so that EMIF1COMMIT register can't be
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma DATA_SECTION(CpuToCla1ADCBuffer,"CpuToCla1MsgRAM");
volatile Uint32 CpuToCla1ADCBuffer[MEM_BUFFER_SIZE];
#define MEM_BUFFER_SIZE 22
Uint16 temp=0;
Uint16 *dst;
Uint16 *src;
dst = (Uint16 *)CpuToCla1ADCBuffer;
src = (Uint16 *)ASRAM_CS2_START_ADDR;
for(temp=0;temp<MEM_BUFFER_SIZE*2;temp++)
{
*dst++ = *src++;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

x 出现错误。请重试或与管理员联系。