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.

TMS320F280025C: HIC使用问题

Part Number: TMS320F280025C
Other Parts Discussed in Thread: C2000WARE

1、HIC模块GCR寄存器配置非0xA值时,外部主机无法访问HIC模块可写寄存器?

2、数据接口配置为8位时,外部连续偶地址写HIC寄存器,写入数据与手册相关介绍不一致。

  • 您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

  • HIC模块GCR寄存器配置非0xA值时,外部主机无法访问HIC模块可写寄存器?

    是的,此字段可以阻止外部主机向邮箱寄存器和device region写入数据。

    2、数据接口配置为8位时,外部连续偶地址写HIC寄存器,写入数据与手册相关介绍不一致。

    请问您指的写入数据和手册介绍不一致具体是什么含义?能否提供一个例子?

  • 1、第1个问题,按您说的,那就与手册介绍不一致呀,手册是说非0xA值,还可以写HIC中外部主机可写的寄存器。

    2、第2个问题,例如:地址0x40写数据,接着0x44写数据,此时第一个数还未完成打包,第二个数的地址却超过了第一个数打包地址的边界,就触发了错误,手册上是说丢弃第一个写的数,实际测试是保留下来了。

  • 1、第1个问题,按您说的,那就与手册介绍不一致呀,手册是说非0xA值,还可以写HIC中外部主机可写的寄存器。

    您好,感谢您的指正,手册在这里写得不是很清楚,我们将在下次版本更新时修订这一点。简言之,如果 GCR 具有非 0xA 值,主机将不能访问寄存器或器件区域。

    2、第2个问题,例如:地址0x40写数据,接着0x44写数据,此时第一个数还未完成打包,第二个数的地址却超过了第一个数打包地址的边界,就触发了错误,手册上是说丢弃第一个写的数,实际测试是保留下来了。

    您是指,当您尝试在packing边界之外的非连续地址时,您看到第一次写入仍然有效,而不是被丢弃?

  • 您好!请问与0025c例程对通的emif程序能提供下吗?

    The example demonstrates the following sequences
    //! 1. Sending a message to the Host using Device to Host buffer,Passing a token
    //! which triggers an interrupt at the Host.
    //! 2. Waits for the Host to clear the interrupt.
    //! 3. Then waits for a message from Host which contains the code 0x1 in
    //! buffer index 0 and index 1 contains the Base address to be configured
    //! 4. Configures the base address for Page 0
    //! 5. Sends a message to Host after that is configured
    //! 6. After this step the external host can use the address 0-0xFF
    //! to access the Base address region in System memory

    这是指邮箱模式下的例程吗?那0-FF能访问0025c的外设空间?

  • 帮您跟进下问下哈,有答复会尽快给到您。

  • 非常感谢您!主要是用贵公司例程时发现跟理解的有点没对应上。

  • 您好,

    是的

    关于这个问题工程师需要确认下是否正常,有确定的答案会尽快给到您。

     关于示例,c2000ware ex., 'hic_ex2_config_8bit_adc' 是使用邮箱模式的,其对应的Emif代码位于 <C2000Ware InstallDir>\driverlib\f2838x\examples\c28x\emif\CCS\emif_ex8_8bit_asram_hic_adc

    如 TRM 和app note所示,邮箱模式下,访问仅限于 HIC 寄存器空间。 主机设备的 CPU 或者 DMA 应访问所需要的外设,并且将数据复制到 HIC 邮箱寄存器中(或者从 HIC 邮箱寄存器中复制)。

  • 嗯嗯~收到!感谢!主要是第一个对例程的说明,跟手册说的感觉没对应上,期待您后续的解答。

  • 您好,很抱歉回复晚了。从初始分析来看,第一次写入似乎是不会被忽略的。 我们正在尝试通过内部仿真进行确认,预计在 2-3 天内给到您新的反馈。 

  • 您好,工程师在不同的配置下重新实验过,结果是如果第二次写入超出了封装边界,第一个写入会被忽略。 您能否提供以下信息,以便我们更好地解决您的问题:

    1. 主机和器件之间的 IO 连接
    2. 配置选项: HICMODECR、 HICHOSTCR
    3. 从主机放置的访问

    十分感谢!

  • 1.emif端口连接,8bits,按照官方文档提供的端口信号连接关系做的。

    2.MODECR=0xF40 HOSTCR未配置

    3. 8bits-16bits pack:写地址40,41,42,44,45,此时报错44,45与44打包的16位数据的低8位是42的数;

    写地址40,42,41,43,不报错,41与40打包,43与42打包。

  • 感谢您提供的详细信息。 工程师正在做实验,有新的结果会尽快给到您。

    此外,方便说下您为什么尝试这些ilegal序列吗? 封装逻辑错误功能旨在捕捉应用开发过程中的任何意外缺失。

  • 第一次使用,所以想了解多一点!正如您所说,想了解下出错时的容忍程度,以便系统的设计。

  • 抱歉回复晚了,我们进行了仿真实验,当序列: 40,41,42,4445 被启动时,写入 41 会被提交,并且packing在地址 44 处被违反。 此时会生成错误和相应的中断。 此时应该停止针对该错误的进一步事务处理,并且任何超过该点的写入都会导致意外写入,因为状态机已经处于错误状态。 您的该问题就是由于写入 45 的尝试超出了该点,因此导致了一个目标写入。

  • 是的!也就是说不管后续怎样,系统正常工作就改认为错了需要打断正常操作是吗?不应该存在说错误容忍的可能?

  • 您好,在您提到的序列中,只有当地址 0x44 被发送时,才会违反封装,错误也是在这个时候产生的。因此封装和错误处理是如预期一般正常工作的。 是这样的对吗?

    只有被写入的数据是地址 0x42,是因为地址 0x45 的写入发生在错误条件之后,如果存在超出错误条件的访问,就无法保证是否会发生错误。