一、实验任务

通过tcl549AD转换芯片将模拟电压信号转换为数字信号,并通过串口显示到电脑上。此AD转换芯片为串行转换芯片,且转换速率要和串口选择的速率匹配。等待串口发送完后,再进行下一次AD转换。就实际应用而言,此转换速率有点低。

二、代码开发

根据AD芯片的芯片手册编写程序。以下为顶层程序。

//将实时转换的数字结果通过串口传输到PC上
module adc_top
(
clk,
rst,
ad_cs_out,//--TLC549片选信号
ad_clk_out,//--TLC549时钟信号
ad_data_in,//--TLC549数字的输入
txd_out //--串口输出
); input clk,rst,ad_data_in;
output ad_cs_out,ad_clk_out,txd_out; reg ad_cs_out,ad_clk_out;
wire clk_100k,txd_out;
reg [:] cnt;
reg [:] addata; wire TxClk,TxFinish;
reg XmitPlus; //416分频的,产生115200的时钟
defparam Gen_RxClk.divdFACTOR=,Gen_RxClk.divdWIDTH=;//分频时钟
gen_divd Gen_RxClk(.reset(rst),.clkin(clk),.clkout(TxClk));//端口名称关联 //480分频的,产生100k的时钟
defparam Gen_100k.divdFACTOR=,Gen_100k.divdWIDTH=;//分频时钟
gen_divd Gen_100k(.reset(rst),.clkin(clk),.clkout(clk_100k));//端口名称关联 //串口发送
uart_t UartTx(.Bclk(TxClk),.Resett(rst),.Txd(txd_out),
.XmitCmdp(XmitPlus),.TxdBuf(addata),.TxDone(TxFinish)); always @(posedge clk_100k or negedge rst)
begin
if(!rst)
begin
cnt<='d0;
ad_cs_out<='b1;
ad_clk_out<='b0;
XmitPlus<='b0;
end
else
begin
cnt<=cnt+'b1;
case(cnt)
:begin ad_cs_out<='b0;ad_clk_out<=1'b0;end
:begin ad_clk_out<='b1;end
:begin addata[]<=ad_data_in;ad_clk_out<='b0;end
:begin ad_clk_out<='b1;end
:begin addata[]<=ad_data_in;ad_clk_out<='b0;end :begin ad_clk_out<='b1;end
:begin addata[]<=ad_data_in;ad_clk_out<='b0;end
:begin ad_clk_out<='b1;end
:begin addata[]<=ad_data_in;ad_clk_out<='b0;end :begin ad_clk_out<='b1;end
:begin addata[]<=ad_data_in;ad_clk_out<='b0;end
:begin ad_clk_out<='b1;end
:begin addata[]<=ad_data_in;ad_clk_out<='b0;end :begin ad_clk_out<='b1;end
:begin addata[]<=ad_data_in;ad_clk_out<='b0;end
:begin ad_clk_out<='b1;end
:begin addata[]<=ad_data_in;ad_clk_out<='b0;end :begin ad_cs_out<='b1;end//--拉高CS,等待ADC内部转换,时间<=17us
//18:;
//19:;
//20:;
:begin XmitPlus<='b1; end
//22:;
:begin XmitPlus<='b0;end
:
begin
if(TxFinish=='b1)//等待发送完成
cnt<='d31;//发送完成,再按一次复位键,重新一次转换发送
else
cnt<='d30;
end default:;
endcase
end
end
endmodule

三、感悟

通过改变开发板上的可变电阻来改变串口调试助手的显示数字,其实速率真的是很低。毕竟串口就是一个很慢的转换,115200。而AD也只分频100k。楼主正在做一个40M的AD还是并行的,不知道能不能测试成功,希望能够赶紧把这个项目结束。

verilog实验3:AD转换后串口输出到PC端的更多相关文章

  1. AD转换后数字量的处理

    假设模拟输入电压的最大值为5V,A/D转换器件为8位转换. [该转换器的分辨率为1/2n=0.3906%.] [能分辨输入模拟电压变化的最小值为5*0.3906%=19.5mv.] 则模拟电压与数字输 ...

  2. s5pv210 AD转换

    1:ADC:Analog-to-Digital Converter,模拟信号转数字信号,自然界一般为模拟信号,而SoC需要数字信号,所以之间通信需要ADC. 2:转换原理: 以逐次逼近式AD转换为例: ...

  3. java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

    package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...

  4. 在AD转换中的过采样和噪声形成

    1. 直接量化的过采样AD转换 此类系统的模型可以用下图表示. 图中xa(t)是输入信号,e(t)是量化引入的噪声,xd[n]是最终得到的数字信号,包含分量xda和xde. 对于M倍过采样,信号与量化 ...

  5. MSP430常见问题之AD转换类

    Q1:MSP430F149 AD 的输入阻抗有多大?A1:RC<2000欧*30PF Q2:MSP430 ADC12 模块的速度?A2: ADC12 的转换速率是转换所需的ADC12CLK 以及 ...

  6. python 27 获取时区转换后的时间

    python3的datetime有timezone属性,这里介绍python2.7环境下,获取时区转换后的时间. 利用第三方插件,pytz,没有安装的话安装一下. #!/usr/bin/env pyt ...

  7. STC单片机串口输出ADXL335角度值

    STC单片机串口输出ADXL335角度值: //***************************************************** //名称:单片机串口输出ADXL335角度值 ...

  8. H3C模拟器实验之网络地址转换

    网络拓扑图 NOTE:各个设备的基本配置在拓扑图上已经标明(需要注意的是RTB的出接口也需要配置IP,但是使用ping -a 10.1.1.1 202.117.144.1 ping不通,这点不是很理解 ...

  9. 异步控制---实现函数asyncAll,在执行完传入数组中func1,func2,func3异步函数后,输出“end”

    实现函数asyncAll,在执行完传入数组中func1,func2,func3异步函数后,输出"end" function func1(callback) { setTimeout ...

随机推荐

  1. c++(合并排序)

    前面一篇博客提到的快速排序是排序算法中的一种经典算法.和快速排序一样,合并排序是另外一种经常使用的排序算法.那么合并排序算法有什么不同呢?关键之处就体现在这个合并上面.    合并算法的基本步骤如下所 ...

  2. Spring框架学习笔记(7)——代理对象实现AOP

    AOP(面向切面编程) AOP(Aspect-Oriented Programming, 面向切面编程): 是一种新的方法论, 是对传统 OOP(Object-Oriented Programming ...

  3. 阻止浏览器冒泡事件,兼容firefox和ie

    //得到事件 function getEvent(){ if(window.event) {return window.event;} func=getEvent.caller; while(func ...

  4. [国嵌笔记][017][Makefile工程管理]

    Makefile的用途 1.make能够使整个程序的编译.链接只需一个命令就可以完成 2.make的工作主要依赖于Makefile的文件.Makefile文件描述了整个程序的编译.链接等规则,使之自动 ...

  5. 自己封装一个简单的ajax插件

    function myAjax(obj) { var xmlHttp; //保存xmlHttpRequest对象 var type = obj.requestType; //保存请求方式 var ca ...

  6. SQL语句整理1

    THEN '月卡' THEN '周卡' THEN '季度卡' THEN '年卡' ELSE '未知卡类型' END AS '卡类型' FROM SL_Register_Info Left join用法 ...

  7. 如何开发由Create-React-App 引导的应用(二)

    此文章是翻译How to develop apps bootstrapped with Create React App 官方文档 系列文章 如何开发由Create-React-App 引导的应用 如 ...

  8. vue-router自动判断左右翻页转场动画

    前段时间做了一个移动端spa项目,技术基于 :vue + vue-router + vuex + mint-ui 因为使用了vue-cli脚手架的webpack模版,所有页面都以.vue为后缀的文件作 ...

  9. 【视频编解码·学习笔记】3. H.264视频编解码工程JM的下载与编解码

    一.下载JM工程: JM是H.264标准制定团队所认可的官方参考软件.网址如下 http://iphome.hhi.de/suehring/tml/ 从页面中可找到相应的工程源码,本次选择JM 8.6 ...

  10. char,varchar,nvarchar,text区别与联系

    CHAR,NCHAR 定长,速度快,占空间大,需处理VARCHAR,NVARCHAR,TEXT 不定长,空间小,速度慢,无需处理NCHAR.NVARCHAR.NTEXT处理Unicode码