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).
我本来打算通过etmr的捕捉功能,捕捉下降沿,读取两个下降沿之间的tick数,根据这个数据进行软件解析。前面也有问题提到过,此方案读取的tick一直为0,不论是读下降沿count还是读周期。 后来我改成使用gpio中断,每次读取etmr的值来计数,结果和sent模块的解析类似。只是引入crc校验后,检验的失败率太高了,根据120M的时钟,120tick为1us,sent协议计数是1.5-1.84us。请问你们sent模块如何做的补偿,或者你们有软件解析的方案吗?
靠软件去解析这个波形应该没可行性,CPU loading 太高了。
SENT 是总线机制,如果可以的话,可以试一下分时复用,即当前总线空闲时,传感器再发数据
Diga 我的三个sent信号不需要触发,都是不间断发送的,tick分别是1.65us,1.65us,3us。你们评估可以实现时分复用吗?
没有可行性,如果没法主控的话,不能分时复用
Diga 这个问题我又调查了一下,目前看软件解析不准的原因是中断触发的时间不稳定,请问如何设置优先级,让中断稳定的触发?还有,我用示波器来解析,有一个参数是容差20%,这个意思是只要低于典型值的120%,就可以认为是典型值,即3us的12个tick 36us表示0,那么如果时间低于43us,我可以认为值是0吗?
Tick 是允许有误差的,SENT 里有个同步场,你需要根据同步场宽度来自适应设置 Tick 值
Diga 这些我知道,但是我测试过将误差稍微扩大一点,得到的数据就是错的。如果这个方向走不通,回到中断,我测试的时候,比如state位,值为0,12tick,宽度是36us左右,但是中断过来的宽度大概在40-42之间,这是我软件解析最大的问题,这个可以想办法调整吗?
Diga 再请教个问题,上面说过,pwm捕捉方式的中断发生时,我拉gpio测量时间宽度,结果和实际现象有差距。我前面捕捉测试pwm占空比还是很准确的,这说明只是内部中断产生的时间问题,pwm相关参数还是准确的。但是我用单边捕捉的模式时,去读取周期,或者下降沿的count,结果全是0,这个问题能解决吗?解决的话,应该有机会验证软件解析。
YTM32B1HA01 应该支持 8路 SENT Channel,可以考虑一下
Diga 上次说用dma模式,两路一次发会丢包,这个问题该怎么处理,目前测试下来中断模式不丢包
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...