TMS320F280025C: 能否解释一下为什么红框内,0x1地址的与0x0地址的数据打包了,但是0x3地址的数据却没有和0x2的地址打包,并且也没有报错呢

Part Number: TMS320F280025C

能否解释一下为什么红框内,0x1地址的与0x0地址的数据打包了,但是0x3地址的数据却没有和0x2的地址打包,并且也没有报错呢

  • 感谢您对TI产品的关注!
    关于你的咨询,我们正在确认你的问题,稍后回复您。

  • 此屏幕截图是从哪里截取的? 您能提供链接参考吗? 

  • 就是025的设计文档里的截图

  • 谢谢,我已将此信息转发给相应的所有者。 请等待后续回复。

  • 使用dw_mode=8 bit,每当写入奇数地址时,它都会触发一个16位写封装前一个偶数数据字节。 该表需要一些更新:无论何时写入地址0x1,它都会触发B1XX的16位写入,XX是较低半字节中的旧数据;同样,无论何时写入地址0x3,它都会触发B3XX的16位写入。

    仅当写入的连续字节超出对齐的16位边界时才会生成错误。

    希望它能澄清您的问题。

    我们将更新TRM,以明确说明这一点。

  • 如果当前来的是地址0x1的数据,但是并没有来0x0地址的,那么怎么封装呢,这是否意味着我需要记录所有的偶数地址的数据呢,比如我搞一个寄存器,将所有的偶数地址的数据存入这个寄存器,如果后续有奇数地址来,就在这个大的寄存器中寻找该奇数地址的前一个偶数地址的数据。这是我的第一个问题。
    第二个问题就是,对于mailbox模式,dw_mode 为8bit 和16bit 两种情况,分别是怎么映射到hic 的内部寄存器的,比如h2dbuf0(0x40),您能举出我写这个寄存器所需要给的地址嘛(针对8bit和16bit的情况)

  • 还有一个问题就是,如果是direct mode ,外部主机读,会不会有出错的可能呢,是保证外部主机一定不会读错,还是硬件这边会加以判断,如果出错和外部主机写一样,记录错误的地址

  • 还有,目前我测试该板子,感觉有点疑惑,想问一下对于外部主机访问hic内部寄存器,针对16bit,这个地址就是文档所给的吗,还是说有其他映射关系呢?

  • 关于第一个问题,16位写入的正确方法是先写入偶数地址,然后再写入奇数地址。 例如,应首先写入B0 (这不会触发16位写入),然后写入B1 (此事件将触发B1B0的16位写入)

    关于第二个问题,邮箱寄存器将作为任何其他寄存器访问,您可以参考名为"读取的数据包装和解包"的表格。 我不知道您所面临的确切问题,能否举个例子?