跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1L系列
  4. YTM32B1LE0 IIS

YTM32B1LE0 IIS

已定时 已固定 已锁定 已移动 YTM32B1L系列
31 帖子 2 发布者 477 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • S 离线
    S 离线
    sfuyuan
    写于2024年11月11日 01:56 最后由 编辑
    #1

    采用spi+tmu模拟iis异常 目前问题是信号失真严重,上面是sck信号,下面是tum产生的信号。中间非常长的低电平是发送完一整包数据后,似乎需要50微秒作用才能继续发送第二包,
    abecbb2b53f08d9705dbead1f75536d.jpg 这个是通过硬件响应配置的spi发送开始和结束时tum进行反转。似乎反应也不是很及时,我们需要输出一个连续且标准的正弦波,这个时间能不能调整让信号对其,让iis正常工作这个程序是直接放在循环里去跑的。87c1533b-185e-4cca-ac2c-0b09a5d0d320-image.png ea6112a6-9876-4642-b99a-b19d69d592d6-image.png

    1 条回复 最后回复
    0
    • S 离线
      S 离线
      sunxuehu
      写于2024年11月11日 02:05 最后由 sunxuehu 编辑 2024年11月11日 10:06
      #2

      您好,可以按照以下的方式排查:

      1. SPI_DRV_MasterTransfer()的transferByteCount参数应该是整个音频数据包的长度
      2. 是否已经使用了DMA的方式
      3. 修改底层代码,减小帧间距,修改如下位置,将这个三个传入的参数值减小

      image.png

      S 1 条回复 最后回复 2024年11月11日 02:32
      0
      • S 离线
        S 离线
        sfuyuan
        写于2024年11月11日 02:23 最后由 编辑
        #3

        57112a158e8c054f0970e44914f6259.png您好这个现象是已经调整过这个了,已经启用的dma,这个sck的帧间隔是正常的,也是一整包数据发送。中间那个50微秒的间隔是发送第二包数据的间隔,是第二次一整包数据的间隔即while第二次循环,下面那个波形是tum进行反转我设置的是硬件触发,但是实际上似乎一整包数据传输完成后反应并没有那么及时

        S 1 条回复 最后回复 2024年11月11日 02:26
        0
        • S 离线
          S 离线
          sfuyuan
          在 2024年11月11日 02:26 回复了 sfuyuan 最后由 编辑
          #4
          此主題已被删除!
          1 条回复 最后回复
          0
          • S 离线
            S 离线
            sunxuehu
            写于2024年11月11日 02:31 最后由 编辑
            #5

            您好,把如下的值调小(SCK结束后到PCS拉高的时间配置),因为TMU收到的是帧完成的trigger,PCS拉高才算一帧结束了
            image.png

            S 2 条回复 最后回复 2024年11月11日 02:38
            0
            • S 离线
              S 离线
              sfuyuan
              在 2024年11月11日 02:32 回复了 sunxuehu 最后由 编辑
              #6

              sunxuehu 57112a158e8c054f0970e44914f6259.png 波形是已经调整过的,现在的情况是失真比较严重,应该是信号没有对齐,波形上中间的一段低电平不是发送中产生的,是我一整包数据发送完在发送第二包的时候有一段间隔,已经启用的dma,另外结束tmu的触发也是设置的硬件触发,跟spi的也对不上16e07d65-3490-4528-8803-68309e3263a0-image.png 37093740-04b7-4476-b340-85436f676e40-image.png

              1 条回复 最后回复
              0
              • S 离线
                S 离线
                sfuyuan
                在 2024年11月11日 02:38 回复了 sunxuehu 最后由 编辑
                #7

                sunxuehu 我要把3个都配置为0吗549e87ccf22caddd314531095bb8c30.jpg 配置为0后,每一个字节的数据的会这样,每一整包的数据50ms依旧存在,这样配置似乎sck的整体频率就不对了

                1 条回复 最后回复
                0
                • S 离线
                  S 离线
                  sfuyuan
                  在 2024年11月11日 03:01 回复了 sunxuehu 最后由 编辑
                  #8

                  sunxuehu 您好,没啥效果,你们有没有用这个芯片模拟的实例测试下看看,我目前的就是加上那个19的延时,可以驱动音频芯片,但是失真严重,如果把延时去掉,就会跟图片的一样频率都不对了,音频芯片完全驱动不了。

                  1 条回复 最后回复
                  0
                  • S 离线
                    S 离线
                    sunxuehu
                    写于2024年11月11日 03:01 最后由 sunxuehu 编辑 2024年11月11日 11:03
                    #9

                    50us的时间间隔由以下主要的时间组成(建议把PCS的信号线引出观察PCS的高低才是决定一个帧的开始或者结束)

                    1. SCK结束到PCS拉起的时间(这里主要会导致您贴的示波器途中SCK和TMU trigger之间的距离),缩短方式SPI_CLK_SCKPCS(x)
                    2. TMU trigger后产生后到下一帧开始的时间主要由:帧间隔时间(和代码执行时间相重合,哪个时间长是哪个)/代码执行时间+PCS拉低到SCK开始的时间(用SPI_CLK_PCSSCK(x)缩短时间);
                    3. 当然,调节以上方式都是在不影响一包数据中的帧间隔,即在一包数据的帧与帧之间的间隔时间(SCKPCS + FMDLY + PCSSCK)基本等于1bit时间才能保证不失真。
                      注意:请问下是否只有一包的最后一帧才会出现TMU由严重的延时
                    S 1 条回复 最后回复 2024年11月11日 03:13
                    0
                    • S 离线
                      S 离线
                      sunxuehu
                      写于2024年11月11日 03:08 最后由 编辑
                      #10

                      但是比较奇怪的是TMU的trigger时间有点延时过长了,如果这样的话,理论上LRCK会出现严重的偏移

                      1 条回复 最后回复
                      0
                      • S 离线
                        S 离线
                        sunxuehu
                        写于2024年11月11日 03:11 最后由 sunxuehu 编辑 2024年11月11日 11:11
                        #11

                        示波器的channel2是LRCK?

                        1 条回复 最后回复
                        0
                        • S 离线
                          S 离线
                          sfuyuan
                          在 2024年11月11日 03:13 回复了 sunxuehu 最后由 编辑
                          #12

                          sunxuehu 硬件上没有配置PCS的线,就三根线,即SCK,DAT,和tum。1d25d0ae-eeee-41f0-ac7e-607ae31997cc-image.png 是的示波器的2是LRCLK,1是sck,因为产生严重的失真,猜测就是一个是LRCLK和sck的响应偏移太大,另外就是每一包数据间隔太长导致不停偏移

                          1 条回复 最后回复
                          0
                          • S 离线
                            S 离线
                            sunxuehu
                            写于2024年11月11日 03:19 最后由 sunxuehu 编辑 2024年11月11日 11:21
                            #13

                            这个不会,你可以看下在一包的数据里面的LRCLK是否会有偏移,最后一帧那个不是延时,只是在一包数据发送完后开始新的一包的初始化状态,SCLK那个时候没有启动,是没关系的。还有就是LRCLK不是TMU出来的,是eTMR出来的

                            1 条回复 最后回复
                            0
                            • S 离线
                              S 离线
                              sunxuehu
                              写于2024年11月11日 03:21 最后由 编辑
                              #14

                              可以将一包的数据和音频信号一起拉出来看下,是什么样的失真

                              S 1 条回复 最后回复 2024年11月11日 03:47
                              0
                              • S 离线
                                S 离线
                                sfuyuan
                                在 2024年11月11日 03:47 回复了 sunxuehu 最后由 编辑
                                #15

                                sunxuehu abecbb2b53f08d9705dbead1f75536d.jpg 意思是这个没有影响?只要下一包的LRCLK根sck没有偏移就可以?我

                                1 条回复 最后回复
                                0
                                • S 离线
                                  S 离线
                                  sunxuehu
                                  写于2024年11月11日 05:28 最后由 编辑
                                  #16

                                  是的,LRCLK只是判断是左右声道

                                  S 1 条回复 最后回复 2024年11月11日 05:36
                                  0
                                  • S 离线
                                    S 离线
                                    sfuyuan
                                    在 2024年11月11日 05:36 回复了 sunxuehu 最后由 编辑
                                    #17

                                    sunxuehu 但是现在我的LRCLK和BCLK上下边沿完全没办法对其,我应该怎么调整,数据是通过spi发送的跟spi的时钟是对齐的

                                    1 条回复 最后回复
                                    0
                                    • S 离线
                                      S 离线
                                      sunxuehu
                                      写于2024年11月11日 05:47 最后由 sunxuehu 编辑 2024年11月11日 13:51
                                      #18

                                      完全对齐是不可能的,因为只有在SPI的帧结束了才会发送trigger到TMU,再路由到eTMR , 将SCKPCS(帧结束段,CLK结束到PCS拉高的时间)的时间等价到PCSSCK(PCS拉低到CLK开始的时间)或帧间隔的时间,看看这种方式有没有改善

                                      image.png

                                      S 1 条回复 最后回复 2024年11月11日 06:05
                                      0
                                      • S 离线
                                        S 离线
                                        sfuyuan
                                        在 2024年11月11日 06:05 回复了 sunxuehu 最后由 编辑
                                        #19

                                        sunxuehu 另外就是有没有办法缩短那个50微秒的间距,就是每一整包数据的间隔,波形的数据本身就比较短,是靠循环发送同一个波形去执行的,现在每个正弦波的数据中间隔了50微秒,这个我要如何解决,程序里只有一个while在一直循环发送数据cbef7036-e6af-46c7-8063-2c4b7b9047dc-image.png

                                        1 条回复 最后回复
                                        0
                                        • S 离线
                                          S 离线
                                          sunxuehu
                                          写于2024年11月11日 06:10 最后由 sunxuehu 编辑 2024年11月11日 14:10
                                          #20

                                          目前推测耗时最多的是代码的执行时间,如果代码没开优化等级的话,可以开一下

                                          S 2 条回复 最后回复 2024年11月11日 06:17
                                          0

                                          3/31

                                          2024年11月11日 02:23

                                          topic:navigator.unread, 28
                                        • 云途论坛规则/Yuntu Forum Rules

                                          发帖前请查看

                                        • YCT离线License申请流程

                                          帮助没办法联网的电脑使用YCT

                                        • YT CONFIG TOOL调查问卷

                                          帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                                        • demo
                                          11
                                          can
                                          8
                                          lin stack
                                          5
                                          yt-link
                                          5
                                          vscode
                                          3
                                          adc模块
                                          2
                                          i2c
                                          2
                                          uuid
                                          2
                                          Online Users
                                          • 登录

                                          • 登录或注册以进行搜索。
                                          3 / 31
                                          • 第一个帖子
                                            3/31
                                            最后一个帖子
                                          0
                                          • 版块
                                          • 最新
                                          • 标签
                                          • 热门