https://e2e.ti.com/support/processors-group/processors/f/processors-forum/616556/ccs-tms320c6748-hpi
器件型号:TMS320C6748工具/软件:Code Composer Studio
- FPGA 配置 过程:
- 初始化过程: HPIC 配置 ,将16‘h0060写入 HPIC 两次;
- HPIA 配置 , 将地址32'h80010000写入 HPIA ( 第一个半字为 16'h8001,第二个半字为16'h0000);
- 将数据写入 HPID (第一个16位、然后第二个16位);
- 步骤2和3 循环。
图1.
如图1所示,
Port0是 DSP 的反馈:UHPI_HRDY;
Port1是 DSP 的反馈:UHPI_HINT;
端口2 是 FPGA 部件 的输出:UHPI_HR/W,值为0,表示写入操作;
端口3是 FPGA 部件 的输出:hds1, hsd2的值为 1;
端口4是 对 FPGA 上 DSP 内部 信号的仿真:内部 HSTRB,当 UHPI_HCS 等于 0时,内部 HSTRB 等于 hds1;
端口5是 FPGA 部件 的输出:UHPI_HCS,值为0;
端口6是 FPGA 部件 的输出:UHPI_HWIL;
端口[8:7]是 FPGA 部件 的输出:UHPI_HNTL[1:0];
端口[24:9]是 输出:UHPI_HD[15:0]。
问题:
写入 HPIC 时、它工作正常。 该值已写入 DSP 寄存器(可从 CCS 中看到)
但是、写入 HPIA 时、DSP 似乎不确认写入操作(UHPI_HRDY 保持低电平)。 因此 HPIA 写入不正确。
然后、在写入 HPID 时、DSP 进行确认(UHPI_HRDY 在第二个半字上升、然后再次下降至低电平)。 但该值不会写入 RAM 地址、因为 HPIA 不正确。
因此、我们的问题是、HPIC 和 HPID 的时序是正确的、但 HPIA 无法写入。
DSP 配置 :
图2.
0x01E1000C 是 GPIO 使能寄存器、等于0、这意味着 HPI 的功能
0x01E10010是 GPIO 方向1寄存器,设置为0,这意味着 HD 是 DSP 的输入
0x01E10030为 HPIC、可被正常写入。
0x01E10034是 HPIAW,不能写入。
0x01E10038是 HPIAR、不能写入
PINMUX_REG_13/PINMUX_REG_14 PINMUX_REG_15 PINMUX_REG_16启用 HPI 的功能
CFGCHIP1的 HPIENA 已启用、HPIBYTEAD 被设置为字地址(字节地址也被设置一次)
注意: FPGA 上 HPI 的时钟 为40M、芯片范围 采样 时钟为200M; DSP 上 HPI 的时钟为 40M 75M。

