• 驱动开发之基本



    0、先弄明白模块每个管脚的最基本功能;

    1、注意模块每个管脚的初始状态电平;
    失误案例:一款SPI Flash(winbond W25Q32FV)驱动开发,初始化后,读、写、擦除操作都不成功。
    出现问题:初始化后两个具有控制属性的管脚没有置于正确的电平状态,导致后面Flash的各种操作失败。

    2、初始化的上电时序,须按照模块datasheet描述的时序进行操作;
    失误案例:热敏打印机(PT48F)初始化过程中,机器整机掉电。
    时序要求:VH的上电需要在VDD之后,系统上电的过程中STB信号须处于无效状态。
    出现问题:初始化过程中,STB信号没有置于无效状态,导致整机瞬间掉电重启。

    3、一般情况下,管脚信号需要探测 模块端 和 主MCU端;
    注意:怀疑软件问题,就先探测主MCU端;怀疑硬件问题,就先探测模块端;

    5、细分模块每个管脚/功能的控制,先确保主MCU端对每个管脚/功能控制都是没问题的;
    驱动案例:对于打印机,每个控制管脚都是可以细分单独控制的。
    打印机的控制引脚可以细分为:
    上电PWR、锁存LATCH、加热STB、缺纸检测PAPER、马达驱动相位控制管脚、数据加载SPI。
    打印电压检测ADC、加热头温度检测ADC、步进时序控制定时器、加热控制定时器。

    6、细分各路总线(SPI、UART、I2C等)的功能控制,确保主MCU端对总线的控制是没问题的;
    要点:对于SPI、UART、I2C等总线的时序波形需要熟记于心!

    7、细分模块基本功能的操作,做到大功能都可以通过多个单一功能组合完成;

  • 相关阅读:
    一个长串由一个字串循环构成
    区间边界 张贴海报的可见性
    summary
    分区本质 从磁盘物理层面优化查询 分区操作的锁表
    全局变量在反汇编中是怎么体现的
    MathType怎么打定积分竖线
    定积分换元法洛必达法则求极限
    静态链表的插入和删除
    Git恢复之前版本的两种方法reset、revert
    服务去耦合
  • 原文地址:https://www.cnblogs.com/utank/p/6155019.html
Copyright © 2020-2023  润新知