12
返回列表 发新帖
楼主: stefanz

[已解决] imx6d用EIM总线连接554芯片扩展串口,发送数据时EIM数据线有...

[复制链接]

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24879
最后登录
2025-7-20
发表于 2019-1-24 11:55:47 | 显示全部楼层
OK, 这样,把电路上的33R排阻都去掉,包括数据线的,给16C554断电。然后发数据,看看波形。
很多客户在WEIM上扩展网络,FPGA,串口,我support了8年了,还是第一次遇到这个奇怪的问题。
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

35

帖子

0

中级会员

Rank: 3Rank: 3

积分
234
最后登录
2020-9-16
 楼主| 发表于 2019-1-24 14:11:17 | 显示全部楼层
小恩GG 发表于 2019-1-24 11:55
OK, 这样,把电路上的33R排阻都去掉,包括数据线的,给16C554断电。然后发数据,看看波形。
很多客户在WEIM ...

我问了很多人都是第一次见这种问题。
会不会是EIM速率太高导致的,我们这边配置的66MHz的时钟。先尝试把速率降低做个实验。然后在将554和排阻去掉,单独使用EIM发送数据。
如果怀疑是554芯片影响的话,我之前将EXAR的554芯片换成pin对pin的NXP554芯片,也是同样的锯齿波。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2019-2-21 21:56
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    14

    帖子

    0

    注册会员

    Rank: 2

    积分
    107
    最后登录
    2019-12-31
    发表于 2019-1-24 17:51:03 | 显示全部楼层
    本帖最后由 alee2alee 于 2019-1-24 17:57 编辑
    小恩GG 发表于 2019-1-24 11:55
    OK, 这样,把电路上的33R排阻都去掉,包括数据线的,给16C554断电。然后发数据,看看波形。
    很多客户在WEIM ...

    Hi,小恩GG
    我是stefanz的同事.我补充一下软件对EIM的配置
    1. Imx6qdl.dtsi (arch\arm\boot\dts)
    2. weim: weim@021b8000 {
    3.         compatible = "fsl,imx6q-weim";
    4.         reg = <0x021b8000 0x4000>;
    5.         interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
    6.         clocks = <&clks IMX6QDL_CLK_EIM_SLOW>;
    7. };
    复制代码
    1. Imx6qdl-sabresd.dtsi (arch\arm\boot\dts)
    2. pinctrl_weim: weimgrp {
    3.         fsl,pins = <
    4.                 MX6QDL_PAD_EIM_OE__EIM_OE_B                        0xb0b1
    5.                 MX6QDL_PAD_EIM_RW__EIM_RW                        0xb0b1
    6.                 MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B                0xb060
    7.                 MX6QDL_PAD_EIM_D16__EIM_DATA16                0x1b0b0
    8.                 MX6QDL_PAD_EIM_D17__EIM_DATA17                0x1b0b0
    9.                 MX6QDL_PAD_EIM_D18__EIM_DATA18                0x1b0b0
    10.                 MX6QDL_PAD_EIM_D19__EIM_DATA19                0x1b0b0
    11.                 MX6QDL_PAD_EIM_D20__EIM_DATA20                0x1b0b0
    12.                 MX6QDL_PAD_EIM_D21__EIM_DATA21                0x1b0b0
    13.                 MX6QDL_PAD_EIM_D22__EIM_DATA22                0x1b0b0
    14.                 MX6QDL_PAD_EIM_D23__EIM_DATA23                0x1b0b0

    15.         MX6QDL_PAD_EIM_DA7__EIM_AD07                0xb0b1
    16.                 MX6QDL_PAD_EIM_DA6__EIM_AD06                0xb0b1
    17.                 MX6QDL_PAD_EIM_DA5__EIM_AD05                0xb0b1
    18.                 MX6QDL_PAD_EIM_DA4__EIM_AD04                0xb0b1
    19.                 MX6QDL_PAD_EIM_DA3__EIM_AD03                0xb0b1
    20.                 MX6QDL_PAD_EIM_DA2__EIM_AD02                0xb0b1
    21.                 MX6QDL_PAD_EIM_DA1__EIM_AD01                0xb0b1
    22.                 MX6QDL_PAD_EIM_DA0__EIM_AD00                0xb0b1
    23.         >;
    24. }

    25. &weim {
    26.         pinctrl-names = "default";
    27.         pinctrl-0 = <&pinctrl_weim>;
    28.         #address-cells = <2>;
    29.         #size-cells = <1>;
    30.         status = "okay";
    31.         
    32.         /* <cs-number> 0 <physical address of mapping> <size> */
    33.         ranges = <0 0 0x28000000 0x02000000>, /* 32MB CS0 */
    34.                         <1 0 0x2A000000 0x02000000>, /* 32MB CS1 */
    35.                         <2 0 0x2C000000 0x02000000>, /* 32MB CS2 */
    36.                         <3 0 0x2E000000 0x02000000>; /* 32MB CS3 */
    37.         fsl,weim-cs-gpr = <&gpr>;
    38.         assigned-clock-rates = <66000000>;
    39.         
    40.         imx-weim@0,0 {
    41.                 compatible = "fsl,imx6q-weim";
    42.                 reg = <0 0 0x04000000>;
    43.                 #address-cells = <1>;
    44.                 #size-cells = <1>;
    45.                 bank-width = <2>;
    46.                 /* CSxGCR1, CSxGCR2, CSxRCR1, CSxRCR2, CSxWCR1, CSxWCR2. */
    47.                 fsl,weim-cs-timing = <0x00e10089 0x00001130 0x01010000 0x00000000 0x06040600 0x00000000>;
    48.         };
    49.         
    50.         imx-weim@1,0 {
    51.                 compatible = "fsl,imx6q-weim";
    52.                 reg = <1 0 0x04000000>;
    53.                 #address-cells = <1>;
    54.                 #size-cells = <1>;
    55.                 bank-width = <2>;
    56.                 /* CSxGCR1, CSxGCR2, CSxRCR1, CSxRCR2, CSxWCR1, CSxWCR2. */
    57.                 fsl,weim-cs-timing = <0x00e10089 0x00001130 0x02010000 0x00000000 0x06040600 0x00000000>;
    58.         };
    59. }
    复制代码


    以上是我们在设备树中对WEIM相关的配置,不知道配置是否正确,此外我还想问下.在去掉554芯片之后软件如何对WEIM进行配置,并且发送数据,是否有参考代码
    谢谢小恩哥哥



    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24879
    最后登录
    2025-7-20
    发表于 2019-1-28 15:37:43 | 显示全部楼层
    >>目前发现一个现象,通过并联一个100pf电容到地,这个锯齿赋值从0.8V将到0.2V。这个难道是板上其它杂波串扰?

    不错,调试很有效果!

    如果是在数据线与GND加100pF电容有效,这说明与线上的33R电阻构成的RC滤波器,对这个LOW电平时候的锯齿有滤波作用。这是个好的发现,那么你可以看看锯齿的频率大小,调整一下这个电容的值大小,应该可以把0.2V幅度的频率波滤掉。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    35

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    234
    最后登录
    2020-9-16
     楼主| 发表于 2019-2-16 15:09:48 | 显示全部楼层
    小恩GG 发表于 2019-1-28 15:37
    >>目前发现一个现象,通过并联一个100pf电容到地,这个锯齿赋值从0.8V将到0.2V。这个难道是板上其它杂波串 ...

    新年好,小恩GG。关于EIM扩展554串口应用,EIM的数据总线是否需要做等长处理?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24879
    最后登录
    2025-7-20
    发表于 2019-2-18 11:28:42 | 显示全部楼层
    >>关于EIM扩展554串口应用,EIM的数据总线是否需要做等长处理?
    对于并行接口的应用,一般我们都这样设计PCB:
    --数据线等长
    --地址线等长
    --控制线等长。

    甚至,PCB layout允许的情况下,会把上面的三种BUS,全部同时等长处理,也就是说三种BUS长度都相同。 但是,一般来说这样比较极端一些,多数情况是不那么容易做的。所以,分别等长处理,但是彼此差距不大就行了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    35

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    234
    最后登录
    2020-9-16
     楼主| 发表于 2019-2-18 15:10:17 | 显示全部楼层
    小恩GG 发表于 2019-2-18 11:28
    >>关于EIM扩展554串口应用,EIM的数据总线是否需要做等长处理?
    对于并行接口的应用,一般我们都这样设计PC ...

    了解到imx6EIM总线时钟配置有两种:66M和133M,速度不高。然后我们的布线没有做等长处理,数据线最大相差154mil,地址线最大相差133mil。

    我们板卡上的锯齿波问题,以及有概率约50%通信时多接收一个0字节,会不会是因为没做等长引起的?在这种低速情况下等长处理的范围是多少?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24879
    最后登录
    2025-7-20
    发表于 2019-2-20 10:49:48 | 显示全部楼层
    1. 锯齿波的问题。
    理论上,锯齿波问题,应该和是否等长是无关的。 之前说过,用100pF对地滤波时,有明显的改善,甚至说几乎去掉了。所以,和等长更没有关系。
    2. 误差
    基本上,66M,133MHz时,怎么也要控制在+/- 50mil之内。
    如果加上过孔及层叠产生的影响,甚至在+/-20 mil之内最好。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    35

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    234
    最后登录
    2020-9-16
     楼主| 发表于 2019-2-20 14:45:34 | 显示全部楼层
    小恩GG 发表于 2019-2-20 10:49
    1. 锯齿波的问题。
    理论上,锯齿波问题,应该和是否等长是无关的。 之前说过,用100pF对地滤波时,有明显的 ...

    误差问题,我们下一版会做等长处理。
    锯齿波问题还是很困扰我们,加滤波电容应该是走投无路的办法了,因没有见过会在数据总线上加滤波电容的,其他人也不认同这个办法。您能不能帮忙看下本帖子13楼,这是我们驱动工程师对EIM总线的配置,是否能看出问题?还有,如何去掉554芯片单独使用EIM总线发送数据?能否指导下。
    总之,我们是想找到这个问题的原因,提高板卡的稳定性。谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24879
    最后登录
    2025-7-20
    发表于 2019-2-21 17:37:28 | 显示全部楼层
    今天看了你们的代码,我仔细地考虑了一下,所以给你回复有点晚!
    >>驱动工程师对EIM总线的配置,是否能看出问题?
    EIM_DA0~EIM_DA15,这些线,是数据和地址复用的,也就是说发完地址,再发数据。554芯片上你使用的是EIM_D16~EIM_D31中的8为数据线,和DA0~DA2三位做为地址线。(其实,地址线也可以用最高的三位,比如:A23,A24,A25)

    那么,EIM端配置,要是8bit 非复用模式,而且是低8bit。所以,请对照一下寄存器里配置的值对不对。


    另外,从imx-weim.txt ( Documentation/devicetree/bingdings/bus里)里看,没有这个节点:assigned-clock-rates = <66000000>; 有clocks = <&clks 196>。

    在核对一下,也不要着急做新版,这一版总要弄出来一个原因。

    >>关于锯齿波的情况。
    其实数据,地址线是不是要加滤波电容,不能能别人没有用,我们就不能用。我曾经做SSI音频时,接了个4G,打电话时,噪音非常大。就在TX线上,加了一个15pF电容,立刻就好了。

    >>不接554,发数据。(不过,也不用做这个实验了,必要性不大)
    当你的CS定好之后,对应的MEM空间就定了。比如你的UARTA,占3位地址线,那就可以有8个寄存器,而寄存器的地址,就应该映射到了CSx对应的内存空间里。所以,你只要往这个内存空间里写数据,并且控制一下WE或者OE的触发,数据就应该可以出来了。

    总的来说,想法子加一下滤波电容,调起来,看看数据,554收发是否是对的。然后,再开始下一个版本设计。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 16:45 , Processed in 0.115959 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表