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.

[参考译文] CC1110-CC1111:1111:I2S通信中主中继器和从中继器之间的同步问题

Guru**** 1490375 points
Other Parts Discussed in Thread: TLV320AIC26, CC2510
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/601403/cc1110-cc1111-syncing-problem-between-master-and-slave-in-i2s-communication

部件号:CC1110-CC1111</s>1111
主题中讨论的其他部件:TLV320AIC26CC2510

我无法同步两个之间的主从I2S通信,有时语音很完美,但它在良好的语音和不良的语音之间随机波动。我如何才能纠正 同步问题?我能够加速时钟 I2SCLKF1 = 0x57,然后重置为 I2SCLKF1 = 0x59表示大约0.5 秒,并且会在良好语音和不良语音之间进行切换,但是我如何定位I2S同步,以便每次都能获得良好的语音。请帮助我了解 问题及其 原因以及如何解决问题。

我指的是“应用手册AN082 使用CC1110或CC2510和TLV320AIC26编解码器的单向或双向音频通信”,我的体系结构也是相同的唯一区别是数据包长度。

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

    您是在执行空中测试还是在两块板之间使用射频电缆。 我建议首先使用有线设置执行测试。 这有助于您将数据包丢失问题与其他软件问题分开。

    此致,
    /TA
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一个非常重要的问题是确保您的测试频率不是用于移动电话服务的频率。 我认为此软件的默认操作是902-928MHz (针对美国操作)。 但是,如果您在美国境外执行测试,则需要修改操作频率以反映您所在地区的ISM频段。

    如果您在与您所在区域的移动电话服务相同的频率上进行测试,CC1110将看不到"清晰信道",因此它们不会传输,或者它们的错误率非常高。

    此致,
    /TA
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复,我正在执行空气测试,目前我没有射频电缆来连接它们,在设置中,当我使用手动按钮将I2SCLKF1 = 0x59更改为I2SCLKF1 = 0x57,然后返回到I2SCLKF1 = 0x59时,问题已解决。我认为问题是 引用“Application Note AN069”的同步问题

    同步
    由于变送器和上的振荡器,可能会产生额外的复杂情况
    接收器的频率不同。 这会导致接收到的数据包进入
    有时到达的时间太短或太晚;当软件检测到这种情况将会发生时,有几次
    为了使接收器与发射器重新同步,将跳过样本(18)。 请参阅
    图5. 在此图中,'A valid'表示'A'缓冲区中的数据有效;同样,'B valid'
    表示'B'缓冲区中的数据有效。 当数据正在传输时,缓冲区将变为无效
    从RX缓冲区移出并解压缩到缓冲区A或缓冲区B–约200 usec。 '使用A'
    并且'Using B'(使用B)表示接收器当前正在A或B缓冲区中回放数据,
    。 在第一种情况('Good)中,缓冲区A在使用前将变为有效的846 usec。 英寸
    第二种情况('差'),接收器的振荡器相对于发送器偏移,例如
    在使用缓冲区A之前,会收到3.9375 毫秒。 在第三种情况('bad ')中,缓冲区A为
    在使用前收到4.7835 毫秒。 请注意,缓冲区B现在将变为无效
    被使用;确实是一种'坏'情况。 ‘s纠正此问题,软件将"向前推进" 18.
    样本以重新定位'valid'(有效)和'using (使用)'(使用)计时。

    我无法自动同步主音频和从音频,当我手动更正I2SCLKF1值时,它变得完美,语音很好,如何同步主音频和从音频?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    千斤顶,

    您是否可以使用更准确的时钟,也许可以在开始发送音频数据之前对时钟进行校准。 我认为,将钟表的速度比3-4ppm高是一个很好的起点。

    此致,
    /TA
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,我会检查一下,您能帮我理解以下代码的逻辑吗?这些代码来自双向音频通信代码示例"CodecEVM_twoway_CC1110_8kHz8bits"
    在这里,如何才能找到"坏区"和"好区"值,如0x80,0x9C,0x10和0x5F。简单地说,如何才能得到坏区和好区值,它们与时钟计时之间的任何数学关系,我已经测试了大量它们,但性能没有提高

    IF (frametime > 0x80 && frametime < 0x9C) //如果在所谓的'坏区'中
    I2SCLKF1 = 0x57; //加快I2S位时钟速度

    IF (frametime > 0x10 && frametime < 0x5F) //如果在所谓的'好区域'
    I2SCLKF1 = 0x59;
    从我的测试中,我发现好的区域和坏的区域存在偏差,我无法使用追踪和错误方法获得精确的点。