推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

FPGA控制AD芯片TLC549采集模拟信号并通过UART输出的Verilog逻辑源码Quartus

更新时间:2021-08-23 09:28:00 大小:6M 上传用户:xzxbybd查看TA发布的资源 标签:fpgaad芯片tlc549quartus 下载积分:9分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

FPGA控制AD芯片TLC549采集模拟信号并通过UART输出的Verilog逻辑源码Quartus工程文件,FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。                                                                                                                                                                                                                                           

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

** 文件名称:uart.v

** 功能描述:串口通信__FPGA和上位机通信(波特率:9600bps,10个bit是1位起始位,8个数据位,1个结束)

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

module uart(

    clk,

    rst,

    rxd,

    txd,

    start,          

    data_cnt,       

voltage_data1,

voltage_data2,

voltage_data3,

voltage_data4,

    send_finish

    );


input       clk;                //系统50MHZ时钟

input       rst;                //复位

input       rxd;                //串行数据接收端

output      txd;                //串行数据发送端

input       start;              //开始采集信号

input[3:0]  data_cnt;         //数据位标志

input[7:0]  voltage_data1;     //采集的电压数据

input[7:0]  voltage_data2;     //采集的电压数据

input[7:0]  voltage_data3;     //采集的电压数据

input[7:0]  voltage_data4;     //采集的电压数据

output      send_finish;        //发送完成标志

reg[15:0]   div_reg;        //分频计数器,分频值由波特率决定。分频后得到频率8倍波特率的时钟

reg[2:0]    div8_tras_reg;  //该寄存器的计数值对应发送时当前位于的时隙数

reg[3:0]    state_tras;     //发送状态寄存器

reg         clkbaud_tras;   //以波特率为频率的发送使能信号

reg         clkbaud8x;      //以8倍波特率为频率的时钟,它的作用是将发送或接受一个bit的时钟周期分为8个时隙

reg         trasstart;      //开始发送标志

reg send_finish;


reg         txd_reg;        //发送寄存器

reg[7:0]    rxd_buf;        //接受数据缓存

reg[7:0]    txd_buf;        //发送数据缓存

reg[3:0]    send_state;     //发送状态寄存器

parameter   div_par=16'h145;

//分频参数,其值由对应的波特率计算而得,按此参数分频的时钟频率是波倍特率的8

//倍,此处值对应9600的波特率,即分频出的时钟频率是9600*8  (CLK50M)


assign txd = txd_reg;

// assign send_state=data_cnt;

/*******分频得到8倍波特率的时钟*********/ 

always@(posedge clk )

begin

if(!rst)

div_reg<=0;

else begin

if(div_reg==div_par-1'b1)

div_re

部分文件列表

文件名大小
lab12_voltmeter_uart/
lab12_voltmeter_uart/R340qd.zip
lab12_voltmeter_uart/project/
lab12_voltmeter_uart/project/ADC_TLC549.bsf4KB
lab12_voltmeter_uart/project/ADC_TLC549.v6KB
lab12_voltmeter_uart/project/ADC_TLC549.v.bak5KB
lab12_voltmeter_uart/project/ADC_TLC549.vwf
lab12_voltmeter_uart/project/db/
lab12_voltmeter_uart/project/db/add_sub_7pc.tdf2KB
lab12_voltmeter_uart/project/db/add_sub_8pc.tdf2KB
lab12_voltmeter_uart/project/db/alt_u_div_4af.tdf
...

【关注B站账户领20积分】

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载