DSI3协议:深入解析CRM模式通信

此讲以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 这个好理解。当然第一讲也说了,毕竟是用电压碳棒测量的,所以你需要多放大几倍才能看的出来变化。。。

好吧,第二讲就先到这里了,这里是讲述的是正常调试信息,那第三讲就开始来讲述DSI3遇到的坑吧,相信大家遇到问题的时候也是调试不通,正所谓一通百通。

物联沃分享整理
物联沃-IOTWORD物联网 » DSI3协议:深入解析CRM模式通信

发表评论