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.

[参考译文] CCS/TMS320C6748:HPI

Guru**** 2541440 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/616556/ccs-tms320c6748-hpi

器件型号:TMS320C6748

工具/软件:Code Composer Studio

  • FPGA 配置 过程:
  1. 初始化过程: HPIC 配置 ,将16‘h0060写入 HPIC 两次;
  2. HPIA 配置 , 将地址32'h80010000写入 HPIA ( 第一个半字为 16'h8001,第二个半字为16'h0000);   
  3. 将数据写入 HPID (第一个16位、然后第二个16位);  
  4. 步骤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。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将其转发给系统专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,期待您的好消息
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    误差校正:DSP 上 HPI 的时钟为75M。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们 希望 有人能帮助 我们

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    很抱歉耽误你的时间-我很感谢你为你的问题发表的详细的帖子。
    对此、我需要询问、HPI 外设方面的专业知识有限。
    您能看到以下主题是否有帮助

    e2e.ti.com/.../362381

    我相信您正在写入共享 RAM? 不过、看看是否需要更改寻址?

    此致
    Mukul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    感谢 你的帮助。

    是的、我们将写入共享 RAM。   32'h80010000是第一个地址。它将通过设置进行更改。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么要将0x0060写入 HPIC? 这看起来不像读取保留位时的有效值。 如果 HPIRST 仍读数为1、则"All-0"值为0x0048或0x00C8。 我缺少什么吗?

    您是否尝试从 DSP 侧写入 HPIRST 位以引起复位? 您可以通过写入1、然后写入0来测试它、以查看是否有任何变化。

    请使用不同的地址、以便您可以确认地址位不会被反转。 无论采用哪种方式、0x8001都是相同的。

    类似地、在观察 CCS 中的寄存器的同时、尝试 HCCNTL[1:0]的所有四个组合。 并使用有趣的地址和数据来确认这些行是否正确。

    确认您已执行《HPI 用户指南》初始化部分中的所有步骤。

    HRDYn 信号不是确认信号、而是等待信号。 在写入 HPIC 或 HPIA 时、HRDYn 通常没有理由变为高电平导致等待条件。 这两个寄存器都是内部寄存器、没有任何东西会阻碍它们的访问、无论是读取还是写入。 当写入数据时、当第二个半字被写入时、HRDYn 通常会有一个短暂的停顿、这是因为数据被发送到内部逻辑以引起写入或读取的时间。 在读取的情况下、如果需要很长时间才能从外部存储器等慢速位置获取数据、HRDY 可能会在几个周期内处于高电平。

    在等待专家答复时,这些都是要考虑的一些想法。

    此致、
    RandyP
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Randyp

    感谢 你的帮助。

    我们已将 HPIC 值更改为  0x0048、它解决了我们的问题。

    此致