Mcal SPI调试--Apple的学习笔记

作者: applecai | 来源:发表于2022-05-08 19:02 被阅读0次

    一,前言

    还记得10年前我调试1145收发器配置spi后无法进行can通信搞了3天才发现问题。没想到10年后换了工具链,又遇到要配置1145了。预计半小时完成的,结果搞了3小时,所以值得记录。

    二,需求

    基于MCAL的demo进行spi配置项修改即可,至于Autosar工具链中1145的配置不需要改。

    三,遇到的问题

    1. 首先can无法通信,则读取1145的deviceID。通过0x7E地址期望读取值为0x74。那么怎么读取,要调用哪些函数呢?
      答:看了静态代码,直接有读取deviceID到变量中的。
    2. 读取的deviceID不正确,接着怎么办呢?
      答:直接用逻辑分析仪去看吧。结果很明显CS片选不正确。


      image.png
    3. CS片选在MCAL要怎么配置?
      答:光MCAL配置中没看出问题,为了先解决问题,那么CS就用IO口直接设置为一直为低电平吧,把IO口配置了下。看了源码code调用,用的是spi异步读取,没什么问题。


      image.png
    4. CS改成在spi配置中改成用port口配置了,看了代码,最后是会调用gpio设置pin脚的,怎么波形没变化?
      答:port口中虽然设置了输出一直为低,但是port口忘记设置为GPIO了。所以就算有控制也不起作用。把port口的cs pin脚改成gpio口后,CS终于正常了。
    5. 但是解析出来的发送数据值不是预期的?
      答:在PC逻辑分析中,将下降沿读数改成上升沿读数,那么数据值和代码赋值到spi job的一致。看来spi中此处我配置错误,修改切换数据在上升沿(即读取数据在下降沿)后,解析正常。读取1145的deviceID也正常咯,1145初始化成功,can通信也正常了~


      image.png
    6. 5/15日补充
      之前为了解决问题先用了gpio来控制CS脚,但是我得找到原因呢~
      解决cs使用接口方式不能控制的方法如下
      通过看原理及代码发现无问题,那么很大概率就是硬件PIN脚连接错误了。
      通过看datasheet发现P22.2为QSPI4_SLSO(3),后面的3是什么意思。UM中我没看到描述,于是我猜测这是和ECON0-7对应的,所以要用ECON3。那么我现在用的是ECON0,在datasheet中搜索QSPI4_SLSO(0)为P33.10脚,设置P33.10位CS功能脚后,结果P33.10果然有作用,证明我的理解是正确的。那么对于P22.2的SLSO(3)脚我需要CS选择channel3(等于用ECON3,才能通过spi接口来控制SLSO片选脚了)。
      image.png
      image.png

    四,小结

    遇到些问题也蛮好的,否则我代码可能都不会去看了,哈哈~

    相关文章

      网友评论

        本文标题:Mcal SPI调试--Apple的学习笔记

        本文链接:https://www.haomeiwen.com/subject/ppbqurtx.html