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

YunTu Forum

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

YTM32B1LE0 IIS

已定时 已固定 已锁定 已移动 YTM32B1L系列
31 帖子 2 发布者 466 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 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
                                        • S 离线
                                          S 离线
                                          sfuyuan
                                          在 2024年11月11日 06:17 回复了 sunxuehu 最后由 编辑
                                          #21

                                          sunxuehu 2cabdf9e26d725380ab1336922f9614.jpg 这个是SCK跟LR在每次发完的波形,19a3f394deb726e88d9eb7bfbb199ce.jpg 这个是sck跟dat每次发送完的波形这个看着是正常的,00df4443fcfa260b8910fe66f59fcc0.jpg 这个是sck跟dat的波形对其情况,看着也是正常的,2f07e82d738c629811a555a67db04a1.jpg 这个是SCK跟lr的对其情况,差个几十纳秒把,应该也能算正常。

                                          1 条回复 最后回复
                                          0

                                          11/31

                                          2024年11月11日 03:11

                                          topic:navigator.unread, 20
                                        • 云途论坛规则/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
                                          • 登录

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