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/TMS320VC5509A:SPI 模式上的 McBSP 芯片错误

Guru**** 2589265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/639082/ccs-tms320vc5509a-mcbsp-chip-bug-on-spi-mode

器件型号:TMS320VC5509A

工具/软件:Code Composer Studio

这只是 TI5509/55xx/5509A 芯片中众所周知的库和硅酮虫的其中一个、这些芯片早就应该熟悉

到目前为止,TI 的开发部门的工作进展非常少,但在论坛中却从未受到过这样的对待。 (TI 只是让我们失望!)

我将描述一个我搜索了五年的错误、它总是每天给我的客户和我的产品造成问题。  

损坏巨大! 我在 TI 的任何文档或论坛上都找不到它。

 

TI 从未处理过我的任何问题、更不用说我在其库或 CHIP_BUG 中对我的报告的合格答案或处理了

更糟糕的是 、在他们目前的开发领域、他们目前一直在销售的 CCS3.3芯片不受支持。 基本调试过程

 不再可用、(在5509a..) 因为它会花费一些时间.. 以确保向下兼容性。 在这里必须这样说!

美国的开发人员始终处于孤立状态。 没有人仔细检查过我对这些错误的准确描述:"我会转发这一条..."、

但是,之后再也没有反应了,从来没有解决过问题--我已经用这种芯片工作了20多年了!

这个额外的(一个 mor 未解决。。。) 错误描述了 McBSP 的 SPI 模式-我猜对于所有芯片、也是66xx 和55xx、但 我只在上进行了测试

5509A。

我还描述了在同一芯片的 USB_Controller 中传输链接列表时发生的错误。  我知道这是一个库错误-

"TI" USB_LIB 中的"可能不是可重入中断函数"。 多年来,生产者一直没有反应或治疗。

今天仍然是错误的!  以下错误:  

 

如果您有时怀疑在5509A 或所有其他 McBSP 的 CLKSTP=03配置 SPI 主站模式下出现读或写错误

对于这个品牌、您可能大部分都是正确的!  至少当芯片5509A 的运行频率接近其200MHz 的限制频率时(对于 ME 192 MHz)、您永远不应该!!

如果您真的需要知道芯片的 McBSP 状态、请相信它的一个标志! (特别是使用#inline)  

 

然后、在使用常用驱动程序进行写入时、该错误会导致接收器阵列中的数据移位或未写入的"最后一个单元格"、尤其是与结合使用时

使用 DMA。 如果您知道这种罕见的错误可能 全部大于1000次,那么您在这里是正确的! 我的标签如下所示:"正在保存错误

TI 的 McBSP SPI、错误:McBSP_xrdy McBSP_xempty McBSP_rrdy " 即使我刚刚在中发送了数据、可能会发生"xempty"标志为 true 的情况

收发器。 只在很短的时间内、但是的、可能会发生这种情况! 因此、确保 该值即使在下也确实进行传输的唯一可能序列

速度最高:

  1. while (!McBSP_xrdy (SPI_McBSP));       //序列安全发送1.part
  2. while (!McBSP_xempty (SPI_McBSP)); //序列确保发送第二个部分的安全

    在 McBSP_write16之后,只有一个问题2“xempty”(没有先前的 xrdy)会立即导出

有时为  真!!、即使这些数据尚未被"发现"-因此、在较新的接收器中有一个"更多"的值、而不是什么

我们已经考虑过了。 与 McBSP_SPI 接收器中的错误相同:同样、我的搜索和一些错误、TI 也不提供任何帮助-即使在这种情况下也是如此

寻求帮助! 只有 „这种销售,忘记它”…

当 DMA 发送传输的数据时、该错误会发生很多、而在命令(命令+例如 FLASH "dummy"写入)之前、该错误也是常见的

之前 仅从 DSP_Core (本机代码)发送。 为了在任何情况下确保 McBSP_SPI 确实传输了命令和

现在可以 为数据启动 DMA、为了 确保接收器数据不会被移位、绝对需要执行以下序列

按一个地址、就像每个大于1000 次的写入/读取 一样、具有完全的速度。  在 命令序列的最后一个 Tranceiver 字节(此处为虚拟字节)之后

在启动 DMA 之前、按照这个顺序绝对有必要满足以下要求:

 

…μ A    (CPU)命令序列的最后一部分…

 McBSP_write16 (SPI_McBSP,( ((command<<8)&0xFF00)|(ushort)((dest_adr>16)));

while (!McBSP_xrdy (SPI_McBSP));

McBSP_write16 (SPI_McBSP、(ushort) dest_adr & 0xFFFF);/* Prime McBSP DXR *

while (!McBSP_xrdy (SPI_McBSP));       // Sequenz„仅用于 shure " Data out 1.Part

while (!McBSP_xempty (SPI_McBSP)); // Sequenz„only for shure”数据输出2.part

(请参阅注释、为什么两个单独的都是 ERROR_READY、也有人是真正的运输者…)

 DMA_START (SPI_Storage_xmt_DMA);//现在:启用 DMA 通道以开始传输

 

接收器也会出现同样的问题! 如果我想确保它真的是空的、我在启动 DMA 之前问:

 

McBSP_write16 (SPI_McBSP,( ((command<<8)&0xFF00)|(ushort)((dest_adr>16)));

while (!McBSP_rdy (SPI_McBSP));      //序列 „仅用于 shure "数据真的输出1.Part

while (McBSP_rdy (SPI_McBSP))      //序列 „仅用于清除”数据真的输出 2.部分

McBSP_read16 (SPI_McBSP);      //虚拟读取

 

否则、我就不得不忍受 TI 固有的错误、而且没有人会这样做! 永远会照顾你!!  

销售人员、忘却…   我没有找到描述此错误的单个来源或文档。  

注意:读取/写入错误 McBSP SPI。

 

为什么20年前我选择 AMD_DSP -它是否与 Microsoft 和 x86_64 Intel (而不是 Motorola 68xx)相同??

从不,从不! 相信这个品牌! 采用不同的信号处理器、我拥有多年的经验、这里没有人 提供帮助

我。 这应该是一个警告!

 

 

 

尤其是对于内联 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们将对此进行研究。

    此致、
    Yordan