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.

TM4C1294KCPDT: 启用EPI模块的时候读取信号出现IO灌电流过大导致单片机发热,是否配置原因?

Part Number: TM4C1294KCPDT
Other Parts Discussed in Thread: ADC1175

场景:启用TM4C1294KCPDT的EPI配置为hostbus16,EPI0S0到EPI0S15用做数据线,连接到缓冲器16t245上(245另外一侧就是adc的d0-d8)。EPI0S30配置为CS,直接连接到ADC1175的时钟上。(硬件连线问题我只找到这么一种时序能对上adc的要求时序)

问题:245输出的高电平会被拉低同时还夹杂着有一些脉冲(见最下面的图 );如果adc只输出高电平的信号(例如0xff),可以看到245的输出高电平被拉低到2.7V,和测试波形中的高电平的幅值一样。这时候单片机会发热。

如果保持epi模块开启,只是epi0s0到spi0s15全部取消并配置为gpio输入,则不会出现这种情况。我判断是与epi的配置有关,但是还可能有别的原因吗?或者说是否是epi配置有什么问题呢,我找了好久实在没找出来。。。

另外,但是这时候数据是能正常收到的,数据对应也是正确的,,只是会大幅度发热。

下面是我的epi模块初始化代码:

//初始化EPI接口
static inline void ADCInterfaceInit()
{
    //IO配置为对应信号功能已经在pinmux里面了
    //这里的接口就是EPI
    MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_EPI0);
    while(!SysCtlPeripheralReady(SYSCTL_PERIPH_EPI0));
 
    //EPIDividerSet(EPI0_BASE, 10);//这个好像用不上。。。说是给片选用的但是前面说明是能决定外部总线速度的,总之先写上再说。
    EPIModeSet(EPI0_BASE,EPI_MODE_HB16);
    //配置主机总线:地址不复用
    EPIConfigHB16Set(EPI0_BASE,EPI_HB16_MODE_ADDEMUX|EPI_HB16_CSCFG_CS,0);
    EPIAddressMapSet(EPI0_BASE,EPI_ADDR_PER_BASE_A|EPI_ADDR_PER_SIZE_256B);//设置地址映射,这里好像用不上,按照手册提示设置一个baseA,,大小设置为256b,设置完地址之后可以通过这里设置的映射访问外部内存或者外设。
    while(HWREG(EPI0_BASE + EPI_O_STAT) & EPI_STAT_INITSEQ);//等待配置结束
}
在配置为epi0s0-s15中的一个数据线上的信号:(其中红色是片选(接到ADCCLK),黄色的是在一个单片机引脚上测得的数据线的信号)