采用SD卡存储配置数据的配置方案
来源:元器件交易网 作者:—— 时间:2012-02-08 13:52
根据上表,可以将微控制器的通用IO管脚与上述FPGA 管脚连接起来,连接电路图如图1 所示:
2.3.2 Slave SelectMap 模式的配置流程
Slave SelectMap 模式下提供时钟的是外部器件,本方案中的时钟信号是CCLK 使用ARM 芯片的通用IO进行模拟。同时,该模式下数据管脚有8 个,因此在每个CCLK 的上 升沿,FPGA 可以读入1 个字节的数据。需要注意的是这1 字节的最高位是D0,而不是一 般微处理器默认的D7,在电路板布线和编写配置程序时应给予相应改变。
配置过程的具体流程如图2 所示。
接收完配置数据后,DONE管脚会被拉高。但这并不是表示配置过程已经结束,系统仍需要时钟来进行后续的上电启动工作。为保证上电配置过程的正确进行,最好的办法是将配 置文件中的所有数据写入FPGA 中之后,然后继续输出CCLK信号,直到DONE 管脚被拉高之后,再输出8 个周期的CCLK,保证配置能正常完成。
根据上述流程,配置程序的主要函数的伪码如下。
1.初始化函数SelectMAP_Init,在其它函数之前运行。
SelectMAP_Init(){
将ARM 通用IO设置为对应的SelectMap 管脚信号;
设置PROGRAM#,CS#和WRITE#管脚为低电平;
延时至少300ns;
设置PROGRAM#为高电平;
循环检查INIT#是否变为高电平;
}
2.发送数据的函数SendData_Byte,发送1 字节的数据。
SendData(uint8 data){
拉低CCLK;
将D0~D7电平设置为与data 对应的状态;
拉高CCLK;
}
3.发送数据的函数SendData_Sector,发送SD卡中1 个扇区的数据。
void SendData_Sector(uint8 * data){
声明计数器,并将初始值设为0;
调用SendData_Byte 发送1 个字节的数据,计数器加1;
检查BUSY 管脚的状态,等待其变为低电平;
检查计数器是否到达规定的数据块大小,达到时函数返回,未到达时继续发送数据;
}
- •【会议议程】12月19-21日2022(十四届)传感器与MEMS产业化技术国际研讨会(暨成果展)佛山南海瞻云酒店召开2022-12-16
- •FORESEE XP1000 PCIe SSD开启Gen3后时代发展之路2021-08-02
- •FORESEE工规级SSD应用宽温技术,加速智能工业场景落地2021-07-21
- •基于J750EX测试系统的SRAM VDSR32M32测试技术研究2017-09-05
- •Vishay检查表: 采用安规电容防止过载的12点注意事项2017-07-28
- •汽车系统的USB供电2017-06-08
- •适用于 FPGA、GPU 和 ASIC 系统的电源管理2017-05-11
- •一文读懂SPI串行外设接口2017-04-27
- •TLV3501滞回比较器电路设计2017-04-14
- •ZigBee无线呼叫系统硬件电路2017-04-05