Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
完全对齐是不可能的,因为只有在SPI的帧结束了才会发送trigger到TMU,再路由到eTMR , 将SCKPCS(帧结束段,CLK结束到PCS拉高的时间)的时间等价到PCSSCK(PCS拉低到CLK开始的时间)或帧间隔的时间,看看这种方式有没有改善
sunxuehu 另外就是有没有办法缩短那个50微秒的间距,就是每一整包数据的间隔,波形的数据本身就比较短,是靠循环发送同一个波形去执行的,现在每个正弦波的数据中间隔了50微秒,这个我要如何解决,程序里只有一个while在一直循环发送数据
目前推测耗时最多的是代码的执行时间,如果代码没开优化等级的话,可以开一下
sunxuehu 这个是SCK跟LR在每次发完的波形, 这个是sck跟dat每次发送完的波形这个看着是正常的, 这个是sck跟dat的波形对其情况,看着也是正常的, 这个是SCK跟lr的对其情况,差个几十纳秒把,应该也能算正常。
@sunxuehu测试过开更高级的优化了,开了程序就没反应了,目前程序啥也没有执行,就是循环执行发送函数优化等级为2的话就是50u秒
您好,可以排查以下内容:
sunxuehu 回调函数是空函数,用io测试,![6eae2794-f0ff-475e-a9d3-58092314974f-image.png](https://yt-static-media.oss-cn-hangzhou.aliyuncs.com/nodebb/269/97ccdb9c-e612-443d-9f5 d-f4e125d93465.png) 这个函数的执行时间是10微秒
sunxuehu 这个函数执行时间是40微秒I2S_DRV_MasterSend
实际代码需要这些时间重新发送一包数据,这个应该不会影响音频的失真吧
sunxuehu 目前的情况确实是有点问题,主要原因是我们不需要输出声音,就是单纯的一个正弦波,来驱动振子一个数组的话就几百个字节,中间穿插了50微秒就会导致信号频率都变掉了,一次性发送10个正弦波,似乎就会失真,即发得少没办法识别发的多又会失真。目前是执行这个发送函数是需要这么长的时间没办法消除对吗?
把10个正弦波的数据打包一次性发完不行么,时间长的问题可以改善,但是根除不了
sunxuehu 就是一次性是个一起发的,只发一个根本驱动不了,按我前面发的波形我看应该是每啥太大问题,或者是不是发送的数据计算有问题,这里在重新计算,你们能否也提供一组8k采样率下50hz的正弦波数据,我们只需要输出这样的波形就行。我这里对比测试一下
我们这边没有音频数据
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...