原创 SPI核的控制

2008-11-19 16:53 3773 4 5 分类: FPGA/CPLD

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


//********************************************************************************


module SPI_CORE(CLK,nRST,m_miso,m_clk,m_mosi);
input CLK;          //48MHz
input nRST;
input  m_miso;
output m_mosi;
output m_clk;

//----------------------------------------------------
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,数据可以在逻辑分析仪上看到效果.


 



 

 


 


 


 


 


 


待续........(又准备加班了,哈哈!)

文章评论1条评论)

登录后参与讨论

用户421377 2012-2-29 22:02

请问一下 那个SPI_CTRL 哪里来的哦
相关推荐阅读
用户1532875 2010-09-08 09:34
2010IIC秋季展-让我失望的盛会
    怀着兴奋的心情踏上2010IIC秋季展会征途,却抱着失落的心情而回,包括IIC展和LED展,好不容易度过了3个小时,我觉得必须通过这个总结来弥补今天的付出,好让我记忆此刻半导体的现状,所以其中...
用户1532875 2010-07-16 22:24
改版
ps:不好意思,忘记了如何把图弄上来,所以大家可以到以下链接去看图。方便大家浏览。   http://blog.ednchina.com/yicheng/0/gallery.aspx  全文再续书接上...
用户1532875 2010-07-16 22:16
CAT4238(LED升压DC-DC)调试记录
近来买了一个4.3寸的TFT屏,本来以为是编程可能会有点麻烦,没想到背光就是第一道门槛,背光电压要达到30V左右,电流大概是25MA,内部是10个串联的LED,对于一个3.3V的系统,不可能为了这个T...
用户1532875 2010-04-25 22:47
DIY烧写工具
        前些日子,接到朋友的使用要求,特然冒出一个点子,倒不如自己做这个相关工具,然后凑些世博路费都不错。于是想到就做。        刚开始,想用万用板简单了事,但后来发觉那样太“山寨”了,...
用户1532875 2010-04-10 14:58
国产化的反思
        近来在调试一个项目的时候,发现了原来的下载工具竟然在下载的时候出现了问题,开始的时候以为是板子的问题,于是又重新焊接了一个新的板子,没想到问题依然存在,于是就找了一个以前的板子,意外地...
用户1532875 2010-03-22 17:25
2010深圳IIC展会
      上周连续两天跑了两个展会,分别是广州的灯光展和深圳的IIC展,今天终于有时间来回顾和总结一下。灯光展就没有什么好说的了,无非今年以及未来几年的重点就是LED照明以及LED广告屏,这些不是我...
我要评论
1
4
关闭 站长推荐上一条 /2 下一条