此讲以Elmos 521.42芯片来讲解DSI3(没有用带DSI3外设的MCU)
521.42芯片是DSI3转SPI信号的转换芯片,所以调试DSI3前需要将MCU与521.42的SPI通信调通。
1:SPI调试
根据521.42Datasheet说明SPI传输属性如下:
1) CS脚在传输开始时有高变低(低有效,但不能一直拉低,通信结束后需要拉高一段时间,此芯片有此规定,具体参数就不贴出来了,贴出来凑字数也没有意义,视你用的芯片而定)
2) MSB先出、SCK转低时读MOSI、SCK转高时传MISO、传输完SCK置低、16位模式
以上想说的是,SPI遵循521.42要求设定就可以了,如何验证SPI通信是否正常呢,那就看写521.42寄存器的时候SPI同步回传的数据从第二笔数据开始依次对应的是你发的数据。(如下图格式)
针对521.42 SPI如果调试不通的话,那就排查排查,比如521.42需要配置的CLKREF(500K PWM)和其它外围电路设计是否正确,最多还有个Reset,其它也没有啥了。
2:DSI3 CRM 格式讲解和关键配置点
首先老方式,需要先来讲解下CRM 格式。不然太白话文了,没人看啊。先来个图凑凑
这张图上可以看出,传输和响应的格式是完全不一样的,那我们就需要来先说明下这两个格式的解析方式。
1)Master -> Slave 传输
在尝试解析传输命令的时候,你得先去百度了解下曼彻斯特编码。这我就不贴过来了,贴过来也是充字数的,百度还比我说的明白~~~算了,还是贴个解释的链接吧一篇文章让你读懂-曼彻斯特编码_0101XX0101的博客-CSDN博客_曼彻斯特编码
解析呢我们就以8us的为例,起始段肯定就是电压由高变低咯,那第一个bit从哪里开始呢,下图的这个也就一眼可以看出来了,起始的低4us(1bit time的一半时间)开始计算。那接下来就是按个的数每个bit了,这个没啥偷懒的方法,慢慢数吧,反正也就32bit。
当然了,下图你也可以看出来低电压不是0V,因为高低的电压差是2V。
一样的,我们也来贴个波形图。偷个懒,就解析下前面16bit
读出来二进制就0011 1101 0000 0000 =》 0x3D00 正常解析
2)Slave -> Master 响应
格式解析还是需要贴一下的,表示下我也看了的~~~
那对不对还是需要来个波形图验证下的嘛。。。
白线是手动划分的,一共分八段,为啥手动呢,呃呃呃,工具有点Low没办法啊。
因为是用的普通碳棒测电流,所以这里只能用电流引起的电压变化反推电流值。啥意思呢,也好理解,就是默认高电压的时候,也就是默认的没有通信时候的电流,那电压低一阶的是对应的电流 I ,电压低两阶的是对应电流 2 * I 。
按照上面换算的方法解读出来的数据如下:
102-211-110-110-110-110-110-110-120
那查表对应的数据就是:21 00 00 0C 这个好理解。当然第一讲也说了,毕竟是用电压碳棒测量的,所以你需要多放大几倍才能看的出来变化。。。文章来源:https://www.toymoban.com/news/detail-468596.html
好吧,第二讲就先到这里了,这里是讲述的是正常调试信息,那第三讲就开始来讲述DSI3遇到的坑吧,相信大家遇到问题的时候也是调试不通,正所谓一通百通。文章来源地址https://www.toymoban.com/news/detail-468596.html
到了这里,关于DSI3协议 CRM模式通信讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!