zoukankan      html  css  js  c++  java
  • 驱动开发之基本


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

  • 相关阅读:
    linux下shell显示-bash-4.1#不显示路径解决方法
    update chnroute
    An error "Host key verification failed" when you connect to other computer by OSX SSH
    使用dig查询dns解析
    DNS被污染后
    TunnelBroker for EdgeRouter 后记
    mdadm详细使用手册
    关于尼康黄的原因
    Panda3d code in github
    Python实例浅谈之三Python与C/C++相互调用
  • 原文地址:https://www.cnblogs.com/utank/p/6155019.html
Copyright © 2011-2022 走看看