驱动开发之基本


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

原文地址:https://www.cnblogs.com/utank/p/6155019.html