首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Xilinx XADC

Xilinx XADC

作者头像
瓜大三哥
发布2020-05-20 23:08:49
1.7K0
发布2020-05-20 23:08:49
举报
文章被收录于专栏:瓜大三哥瓜大三哥

1.XADC简介

Xilinx 7系列FPGA全系内置了一个ADC,称为XADC。这个XADC内部是两个1Mbps的ADC,可以采集模拟信号转为数字信号送给FPGA内部使用。XADC内部可以直接获取芯片结温和FPGA的若干供电电压(7系列不包括VCCO),用于监控FPGA内部状况。同时提供了17对差分管脚,其中一对专用的模拟差分输入,16对复用的模拟差分输入,不使用的时候可以作为普通的User I/O。

2.XADC原语端口

XADC的原语主要输入由DRP端口,控制和时钟端口,外部模拟端口,输出会有报警信号可通过ALM(7:0)输出,并有专用的温度告警信号OT。如下图所示。

3.端口描述

4.原语如下

XADC #(
// Initializing the XADC Control Registers
.INIT_40(16'h9000),// Calibration coefficient averaging disabled
// averaging of 16 selected for external channels
.INIT_41(16'h2ef0),// Continuous Sequencer Mode, Disable unused ALMs,
// Enable calibration
.INIT_42(16'h0400),// Set DCLK divider to 4, ADC = 500Ksps, DCLK = 50MHz
.INIT_48(16'h4701),// Sequencer channel - enable Temp sensor, VCCINT, VCCAUX,
// VCCBRAM, and calibration
.INIT_49(16'h000f),// Sequencer channel - enable aux analog channels 0 - 3
.INIT_4A(16'h4700),// Averaging enabled for Temp sensor, VCCINT, VCCAUX,
// VCCBRAM
.INIT_4B(16'h0000),// No averaging on external channels
.INIT_4C(16'h0000),// Sequencer Bipolar selection
.INIT_4D(16'h0000),// Sequencer Bipolar selection
.INIT_4E(16'h0000),// Sequencer Acq time selection
.INIT_4F(16'h0000),// Sequencer Acq time selection
.INIT_50(16'hb5ed),// Temp upper alarm trigger 85°C
.INIT_51(16'h5999),// Vccint upper alarm limit 1.05V
.INIT_52(16'hA147),// Vccaux upper alarm limit 1.89V
.INIT_53(16'h0000),// OT upper alarm limit 125°C using automatic shutdown
.INIT_54(16'ha93a),// Temp lower alarm reset 60°C
.INIT_55(16'h5111),// Vccint lower alarm limit 0.95V
.INIT_56(16'h91Eb),// Vccaux lower alarm limit 1.71V
.INIT_57(16'hae4e),// OT lower alarm reset 70°C
.INIT_58(16'h5999),// VCCBRAM upper alarm limit 1.05V
.INIT_5C(16'h5111),// VCCBRAM lower alarm limit 0.95V
.SIM_MONITOR_FILE("sensor_input.txt")
// Analog Stimulus file. Analog input values for simulation
)
XADC_INST ( // Connect up instance IO. See UG480 for port descriptions
.CONVST(GND_BIT), // not used
.CONVSTCLK(GND_BIT), // not used
.DADDR(DADDR_IN[6:0]),
.DCLK(DCLK_IN),
.DEN(DEN_IN),
.DI(DI_IN[15:0]),
.DWE(DWE_IN),
.RESET(RESET_IN),
.VAUXN(aux_channel_n[15:0]),
.VAUXP(aux_channel_p[15:0]),
.ALM(alm_int),
.BUSY(BUSY_OUT),
.CHANNEL(CHANNEL_OUT[4:0]),
.DO(DO_OUT[15:0]),
.DRDY(DRDY_OUT),
.EOC(EOC_OUT),
.EOS(EOS_OUT),
.JTAGBUSY(),// not used
.JTAGLOCKED(),// not used
.JTAGMODIFIED(),// not used
.OT(OT_OUT),
.MUXADDR(),// not used
.VP(VP_IN),
.VN(VN_IN)
);

5.温度电压计算公式

例如2423 (977h) = 25°C。

例如VCCINT = 1V 则地址01H上得到的值为 1/3 x 4096 = 1365 = 555h。

6.实例结果

下图是配合DDR读出的温度值。

JTAG读取结果如下图

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.XADC简介
  • 2.XADC原语端口
  • 3.端口描述
  • 4.原语如下
  • 5.温度电压计算公式
  • 6.实例结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档