原创 一个CPLD的SPI应用实例

2008-12-8 14:37 5462 5 7 分类: FPGA/CPLD

      采用昨天的SPI模块做的一个应用实例, 还附带了testbench文件,发现所写的SPI模块还挺方便及实用的,SPI模块的文件在上篇日志里有下载。


module spim(rst,clk,
      sdi,sdo,sck,cs,
      idata1,idata2,odata1);


input rst;                    // 异步清零                                   
input clk;                   // 系统时钟
input sdi;                   // spi sdi
input cs;                   // spi cs                                 
input sck;                // spi clk, MAX 25MHz                   
input[7:0] idata1;     // input data1 want to send
input[7:0] idata2;     // input data2 want to send(可根据需要继续添加)
output sdo;             // spi sdo
output  reg[7:0] odata1;       // receive data1 write to cpld(可根据需要继续添加)


/*
**********************************************************************
*/
wire  ReceiveFlag;              // SPI收到8位数据标志
wire  TransEndFlag;           // 发送结束标志
reg  CmdFlag;                    // 命令为1,数据为0    
reg  TransFlag;                   // 告诉SPI发送数据标志,并处于发送状态
reg  RFstRunFlag;              // run once time by once receivceflag
reg[7:0]  CmdStore;          // 保存指令和操作地址
reg[7:0]  SPIData;             // 发送的数据寄存器
wire[7:0]  SPICoder;         // 命令字和操作地址
parameter  CODER0CMD = 8'b11110000,    // 操作指令和操作地址0
      CODER1CMD = 8'b11110001,               // 操作指令和操作地址1
      CODER2CMD = 8'b11110010;               // 操作指令和操作地址2


spi spi1( .rst(rst),.clk(clk),.sdi(sdi),.sdo(sdo),.sck(sck),.cs(cs),
   .OData(SPICoder),.IData(SPIData),
   .ReceiveFlag(ReceiveFlag),.TransFlag(TransFlag),.TransEndFlag(TransEndFlag));


https://static.assets-stash.eet-china.com/album/old-resources/2008/9/6/a72847e0-50c9-4ce7-84ef-25c7872de587.rar" target=_blank>

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1324552 2009-12-9 10:19

附件怎么下载不了呢0000

用户616259 2009-7-9 19:51

这个发送CPLD发送和MCU接受,我先发了指令,之后应该MCU自动接收数据,我试了怎么没有收到任何数据呢。请你指教
相关推荐阅读
用户700580 2013-04-10 12:34
微功耗IC延长监护仪电池寿命
便携式医疗仪器、助听器和安全监护设备必须长时间靠电池供电操作,但受尺寸限制,无论是供电电压还是供电电流都被大幅降低。 许多因素决定了病患监护设备需要采用低电压和低功耗工作,因而需要采用低功耗、高精度...
用户700580 2012-12-26 21:22
50V超宽工作电压3A输出电流DC-DC模块-应用
50V超宽工作电压3A输出电流DC-DC模块-应用 四、模块应用 1.50V输入,135W(45V,3A)输出,长时间工作   输入电压(V) 输出电压(V)...
用户700580 2012-12-15 00:41
50V超宽工作电压3A输出电流DC-DC模块-测试
50V超宽工作电压3A输出电流DC-DC模块-测试 三、模块主要性能测试 1.输入电压&输出电压 输入电压50V,旋转可调电阻,输出电压变化范围:48V~1.24V 2.转换效率 实测数据如下...
用户700580 2012-12-11 20:59
50V超宽工作电压3A输出电流DC-DC模块-简介
50V超宽工作电压3A输出电流DC-DC模块简介   一、模块的主要特性 LM2576是降压型DC-DC,输入电压达60V,保证3A输出电流,输出电压1.23V~57V可调,精度±4%...
用户700580 2010-04-21 16:49
一款可用于项目的PIC开发平台-运动控制之一
通过串口连接PC,实现步进电机,直流电机,电磁阀等的控制。PC客户端应用程序可以集成各种功能,发送控制指令,实现各种操作。步进电机是一种将电脉冲转化为机械角位移的高精度位置控制电机,我们可以用输入脉冲...
用户700580 2010-04-20 10:57
一款可用于项目的PIC开发平台-原理-器件
 产品设计除了功能上的实现外,元器件的选型也非常关键,另作为电子工程师要学会看元器件的PDF规格书,规格书重点关注下面几方面:1.  FEATURES---产品的特性2.  APPLICATIONS-...
我要评论
2
5
关闭 站长推荐上一条 /3 下一条