1.实验设备<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
(1) 硬件:PC机,EasyFPGA030实验板.(有条件的可以准备一个逻辑分析仪)
(2) 软件:Libero
2.应用的器件
(1)EasyFPGA030实验板
3.实验内容
Libero软件提供一个SPI的软核,这样能够为SPI的应用场合提供一个十分便捷的方案,用户只要先对软核进行配置,然后就可以正常使用.本章我们的目的就是要现实SPI软核的初始化,然后一直发送数据。(本人验证的方法就是利用逻辑分析仪读取数据)
4.实验原理
我们总终要实现的就是能够利用SPI接口来发送数据.在发送数据前,首先要对SPI核进行配置,如传输速度,发送顺序,主从模式等.如图1中的SPI_CTRL模块就是负责配置.CORESPI就是Actel的一个软核.
CTRL_SPI代码如下:
//**************************CTRL_SPI.V**************************************************
//模块名称:CTRL_SPI.V
//功能描述:红外接收模块
//适用范围:Actel的芯片
//
//版权声明:
// (1)本代码属个人知识产权,保留最终解析权。
// (2)本代码仅供交流学习,未经本人同意不能用于其它用途。
//
//_______________________________________________________________________________
//
// Created by: YI CHENG
// QQ: 506009199
// Email: fsyicheng@21cn.com
// Created date: <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2008-11-19
// Version: 1.0
//********************************************************************************
//----------------------------------------------------
wire [7:0]datain_wire;
wire [7:0]spi_dataout;
wire we_wire;
wire re_wire;
wire tx_reg_wire;
wire rx_reg_wire;
wire interrupt_wire;
wire [1:0]addr_wire;
//------------------------------------------------------
CORESPI core_SPI(
.m_ss(), //选择从机
.data_in(datain_wire), //数据的输入
.data_out(spi_dataout), //数据输出端
.addrbus(addr_wire), //读写寄存器的地址
.sysclk(CLK), //系统时钟
.nreset(nRST_wire), //异步复位
.m_sck(m_clk), //SD卡的时钟
.m_miso(m_miso), //SD卡的数据输出
.m_mosi(m_mosi), //SD卡的数据输入
.s_sck(),
.s_miso(),
.s_mosi(),
.s_ss(),
.enable_master(),
.enable_slave(),
.we(we_wire), //写使能
.re(re_wire), //读使能
.interrupt(interrupt_wire),
.tx_reg_empty(tx_reg_wire), //发送寄存器满标志
.rx_data_ready()
);
SPI_CTRL core_ctrl
(
.CLK(CLK),
.nSET(nRST),
.nRST(nRST_wire),
.tx_reg_empty(tx_reg_wire),
.rx_reg_empty(rx_reg_wire),
.interrupt(interrupt_wire),
.SEND_DATA(8'hAA),
.SPI_data(datain_wire),
.ADDbus(addr_wire),
.WE_SPI(we_wire),
.RE_SPI(re_wire)
);
endmodule
配置过程仿真如图2:
配置完成后,系统会一直在发OX77,数据可以在逻辑分析仪上看到效果.
待续........(又准备加班了,哈哈!)
用户421377 2012-2-29 22:02