一、实验任务

通过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还是并行的,不知道能不能测试成功,希望能够赶紧把这个项目结束。

最新文章

  1. 简单轮播js实现
  2. jQuery实现二级菜单
  3. 学习笔记:java并发编程学习之初识Concurrent
  4. [SoapUI] SoapUI Response 格式控制
  5. awk用法
  6. html5开发之viewport使用
  7. vc++ 6.0下Glut的配置 及 Glut 框架介绍
  8. Basic认证
  9. 感动前行——给医学媳妇写的演讲稿(非IT类)
  10. HDU 1394 Minimum Inversion Number 线段树
  11. spring mvc ModelAndView 404的原因
  12. 在后台操作标记的runat=&quot;server&quot;的html标签
  13. 在JavaScript中也玩变量类型强行转换
  14. Unity3D 相关技术
  15. img如果没有图片显示默认图片效果
  16. Android类参考---SQLiteOpenHelper
  17. PTA第二次作业
  18. Maven的继承以及import作用域
  19. 《剑指offer》第三十二题(之字形打印二叉树)
  20. Validate Binary Search Tree,判断是否是二叉排序树

热门文章

  1. enum与typedef enum
  2. c++(单词统计)
  3. C#历年来最受欢迎功能
  4. [国嵌攻略][159][SPI子系统]
  5. 程序员是这样区分Null和Undefined
  6. SpringBoot介绍及环境搭建
  7. php 抽奖概率 随机数
  8. This is probably because there is no OLE editor registered against the type of file you were trying to open.
  9. Mysql覆盖索引 covering index 或者 index coverage
  10. python_计算1+……+100中偶数和