• SPI总线介绍和裸机编程分析


    一、SPI总线结构
    SPI(Serial Peripheral Interface)串行外设接口,是一种高速的,全双工,同步的通信总线。采用主从模式(Master Slave)架构,支持多个slave,一般仅支单Master


    SPI接口共有4根信号线,分别是:设备选择线(SS)、时钟线(SCK)、串行输出数据线(MOSI)、串行输入数据线(MISO)。

    二、数据传输过程
    主节点通过 MOSI 线输出数据,从节点在 SIMO 处从主节点读取数据。同时,也在通过 SOMI 输出 MSB(最高位),主节点会在 MISO处读取从节点的数据,整个过程将一直持续,直至交换完所有数据。


    三、总线时序

    CPOL极性:决定时钟空闲时为高电平还是低电平
    CPOL=0:CLK空闲时是低电平,CLK有效时是高电平
    CPOL=1: CLK空闲时是高电平,CLK有效时是低电平
    CPHA相位:决定何时进行数据采样(读取)
    CPHA=0:第一个边沿采样
    CPHA=1:第二个边沿采样

    根据CPOL和CPHA的不同组合,SPI被分为4种模式

    其中一种情况:CPOL=0,CPHA=0 空闲时为低电平,第一个边沿采样


    一、SPI控制器工作流程
    2440SPI控制器包含2个SPI接口。
    SPI有两个通道,分别为TX通道和RX通道,CPU要写数据到FIFO中,先写数据到SPI_TX_DATA寄存器中,这样此寄存器中的内容就会自动移动到发送FIFO中;
    同样的道理,
    如果CPU要从接收FIFO中读取数据,就访问寄存器SPI_RX_DATA,紧接着,接收FIFO的数据就会自动移动到SPI_RX_DATA寄存器中。
    RX部分箭头不应该反一反吗?

    CPU访问的是TX数据寄存器和RX数据寄存器,而芯片自动的发送或接受数据从FIFO中。

    二、6410裸机驱动分析 
    6410芯片手册中有初始化流程:
    29.6.1 SETTING SEQUENCE OF SPECIAL FUNCTION REGISTER
    Special Function Register must be set in the following sequence. (nCS manual mode)
    1. Set Transfer Type. (CPOL & CPHA set )
    2. Set Clock configuration register.
    3. Set SPI MODE configuration register.
    4. Set SPI INT_EN register.
    5. Set Packet Count configuration register if necessary.
    6. Set Tx or Rx Channel on.
    7. Set NSSOUT low to start Tx or Rx operation.
    A. Set NSSOUT Bit to low, then start TX data writing.
    B. If auto chip selection bit is set, should not control NSSOUT.

    SPI软件复位
    设置引脚(gpc0123)
    设置CH_CFG寄存器中的接收和发送通道开关,设置CPOL,CPHA
    MODE_CFG和CLK_CFG的设置





    无欲速,无见小利。欲速,则不达;见小利,则大事不成。
  • 相关阅读:
    教你认识Git
    jmeter跨线程组传递token
    win10企业版激活步骤
    jmeter录制浏览器Https请求
    win10程序无法正常启动0xc0000142
    PPT页面切换动画
    PPT页面动画制作
    查询一门成绩高于另一门课程的学生信息
    MongoDB固定集合-capped collection
    CoronaSDK场景管理库:Composer library (中)
  • 原文地址:https://www.cnblogs.com/ch122633/p/7363292.html
Copyright © 2020-2023  润新知