SD-Host控制器的datasheet更多的是给嵌入式软件工作人员使用,datasheet中主要包含一些寄存器以及读写擦除流程
寄存器主要有:
- 控制寄存器
- 状态寄存器
- 配置寄存器
软件和硬件进行交互,就是通过配置寄存器和中断进行交互
功能列表
控制器架构图
- datasheet中描述的主要是ahb_slave_if模块
硬件集成环境
寄存器需求分析
寄存器:控制寄存器、状态寄存器
clk_gen 模块
1、需要分频,所以需要设置分频系数 - clk_div
2、软件可控的时钟 - clk_enable
3、test mode下的时钟 - Testmode
reponse receive模块
1、接收返回的信号 - respone0-3
2、respone_crc_error
cmd_fsm
1、cpu配置的trigger信号 - cmd_fsm_ready
2、响应类型,长响应或者短响应 - respone type
3、reponse_timeout
4、data_present - 是否有数据接收或者发送
cmd_send
1、cmd_index
2、cmd_arguement
3、high_speed(低俗模式或者高速模式)
data_fsm
1、data bus width(1bit/4bit)
2、high_speed(低俗模式或者高速模式)
3、block_length
4、read_or_write(direction)
5、read_data_timeout(status)
6、data_send_crc_error
7、data_rcv_crc_error
8、data_fsm_ready
9、read_data_timeout_cnt(counter)
data fifo
1、fifo_empty
2、fifo_full
3、block_length
dma
1、dma_enable(trigger)
2、dma_trans_len
3、dma_trans_dir
4、dma_trans_addr
寄存器详细描述
- 寄存器域段推荐按照4bit/8bit对齐的方式进行设置
- 硬件停时钟的使能,不是可写的
- 描述大小的时候,需要写清楚1bit表示的单位是什么
- datasheet中的寄存器注意事项:
1、长度相关的参数需要写明其单位,是byte/bit/word
2、控制参数不同模式对应的编码信息
3、使能信号的有效电平
4、对于config寄存器,软件侧读写属性定义为可读可写
5、对于status寄存器,软件侧一般为只读的,对于某些需要清0的寄存器,软件侧为可写的
- 硬件置位,软件清0,需要有一个clear寄存器
datasheet文档
- 地址信息:都是以byte为单位的
寄存器读写属性
1、软件侧读写属性
是否通过能够通过ahb总线进行读写
2、硬件侧读写属性
寄存器配置完成之后,可以发出信号给到硬件,硬件操作之后可以将信息写到寄存器中