工具/软件: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 的情况
收发器。 只在很短的时间内、但是的、可能会发生这种情况! 因此、确保 该值即使在下也确实进行传输的唯一可能序列
速度最高:
- while (!McBSP_xrdy (SPI_McBSP)); //序列安全发送1.part
- 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)相同??
从不,从不! 相信这个品牌! 采用不同的信号处理器、我拥有多年的经验、这里没有人 提供帮助
我。 这应该是一个警告!
尤其是对于内联