硬件开发——UART/I2C/SPI协议
小狼@http://blog.csdn.net/xiaolangyangyang
1、UART
电压:
- TTL电平:1:(+3.3V~+5V),0:(0V)
- RS232电平:1:(-3V~-15V),0:(+3V~+15V)
- RS485电平:1:(+2V~+6V),0:(-2V~-6V),差分
时钟:波特率(如115200),没有时钟线
中断:
- 流控状态中断:流控状态改变时触发
- 发送中断:tx fifo发送完成后触发
- 接收中断:rx fifo有足够数据触发
- 发送超时中断:tx fifo有数据但不发送,超时后触发中断
- 错误中断:rx/tx fifo溢出时触发
2、I2C
I2C基础波形
I2C_EEPROM写数据
I2C_EEPROM读数据
电压:+3.3V/+5v
时钟:100K/400K/1M,数据传输时才有时钟
中断:
- MASTER_ON_HOLD:主机占线
- RESTART_DET:寻址时reset中断
- GEN_CALL:general call中断
- START_DET:总线发生start中断
- STOP_DET:总线发生stop中断
- ACTIVITY:总线活动中断
- RX_DONE:slave数据传送完成(即master不发送ack)
- TX_ABRT:tx fifo数据无法正常发送
- RD_REQ:slave被请求数据(即被master寻址)
- TX_EMPTY:tx fifo数据不足中断
- TX_OVER:tx fifo数据溢出
- RX_FULL:rx fifo有足够数据中断
- RX_OVER:rx fifo溢出中断
- RX_UNDER:rx fifo读空中断
3、SPI
- 指令:进行控制行为的定义及识别
- 地址:拟操作的目标地址
- Mode Bits:模式位,一般只存在Nor Flash设备中,用于标注 是否支持SIOO模式
- Dummy Cycles:等于Wait Cycles,等待周期,给予从设备的数据输出等待时间
- DATA:数据
电平:3.3V/5V
时钟:1M~50M,数据传输时才有时钟
中断:
- 多master冲突中断
- rx fifo满中断
- rx fifo上溢中断
- rx fifo下溢中断
- tx fifo上溢中断
- tx fifo空中断
QSpi Flash内部寄存器:
QSpi Flash命令:
问题
1、flash正在写或擦除时,其他线程或是cpu读取指令会出现什么情况?
限定了只有一个cpu使用XIP,写或擦除时,使用flash suspend/resume机制
串行Flash控制器设计介绍(QSPI)
串行Flash控制器设计介绍(Final)
QSPI Flash存储控制器(概述)
QSPI Flash存储控制器(AHB从设备接口)
QSPI Flash存储控制器(直接访问控制器DAC)
QSPI Flash存储控制器(间接读访问控制器)
QSPI Flash存储控制器(间接写访问控制器)
QSPI Flash存储控制器(DMA外设控制器)
QSPI Flash驱动代码分析(等待QSPI空闲)
QSPI Flash驱动代码分析 (QSPI控制器初始化)
QSPI Flash驱动代码分析(spi主设备驱动框架)