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.

TMS320F28335: XINTF外部端口使用问题

Part Number: TMS320F28335


使用28335上的XINTF端口与FPGA进行通信时,在dsp将一个指针指定到0x4002地址上,在主程序中对该指针进行幅值操作,理论上dsp应该会自动拉低xzcs0选区线,并在XA[19:0]上送相应地址,但我测的时候发现 XA0一直为高电平,且XZCS0选区线也为高电平。(在进行此操作前已经对xintf外部接口进行初始化,使用的数据宽度为16位)

  • 你好,我需要查看下相关资料,稍后回复您。

  • 可以分享下你的程序吗?

  • 您好,我之前是使用万用表测的该引脚,对比其他地址位的引脚它一直是3.3V,但是今天写了一个使用偶数地址发指令给FPGA,发现FPGA也是可以响应的。

    代码如下

    #include "DSP2833x.Device.h"

    #include "DSP2833x_Examples.h"

    unsigned int * openlight=(unsigned int *) 0x4002;

    int main(void)
    {

         InitSysCtrl();

         EALLOW;
         GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0; // GPIO5 = GPIO5
         GpioCtrlRegs.GPADIR.bit.GPIO18 = 1;
         EDIS;

         DINT;
             InitPieCtrl();

             // Disable CPU interrupts and clear all CPU interrupt flags:
             IER = 0x0000;
             IFR = 0x0000;
             // Initialize the PIE vector table with pointers to the shell Interrupt
             InitPieVectTable();
             InitXintf();
             while(1)
             {
                     * openled=0x400a;
             }

    return 0;

    }

    FPGA的程序如下

    inital

    begin 

    led_1=1'b0;

    end

    always@(posedge CLK_IN)

    begin

    if(XADD==16'h0x4002&&XZCS0==1'b0)

    begin  led_1<=1'b1;end

    end

  • * openled=0x400a;

    你好,这个指针的目的是什么?

    发现FPGA也是可以响应的。

    所以问题是出在地址上对吗?

  • *openled=0x400a的作用是对XZCS0中的0x400a进行写操作,那么XZCS0 XWE0引脚会对应拉低,地址线上会相应拉低拉高对应0x4002,数据线DB上会发送0x400a,这样在fpga程序中就可以判断DSP是否给其发送了指令来做出相应

  • 是对XZCS0中地址为0x4002的地址进行操作

  • 可以使用其他的地址试一下吗?如果软件没问题,那可能原先是没有连接好?