您的位置 首页 > 腾讯云社区

Xilinx XADC---anytao

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读取结果如下图

---来自腾讯云社区的---anytao

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: