AD模块电压采集电路

  之前一直没搞明白模拟电压转换电路,不知道应该怎么计算转换电压,最近一个项目中用到几处模拟电压的采集,硬件是由其他同事设计的,转换公式也是他给的,记录一下;

 

  24V电压采集:

  公式:Vout = Vin/(100+10)*10/(2+100)*100

  

  12V电压采集:

  公式:Vout = Vin/(10+2)*2/(2+100)*100

 

  5V电压采集:

  公式:Vout = Vin/(1+1)*1/(2+100)*100

 

  3.3V电压采集:

  公式:Vout = Vin/(1+4.7)*4.7/(2+100)*100

 

  单片机端统一接3.3V的参考电压,采用12位的AD转换器,故Vout = (AD采样值/4096)*3.3

 

 

 

  

转载于:https://www.cnblogs.com/beyonne/p/9050073.html

  • 5
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面给出一个AD7606模块的FPGA采集代码,具体实现可能需要根据实际情况进行调整。 ``` module ad7606 ( input clk, // 时钟信号 input rst, // 复位信号 input start, // 启动采样信号 output reg [15:0] dout // 数据输出信号 ); reg [3:0] sclk_div; // 时钟分频计数器 reg [3:0] adc_ch; // 通道计数器 reg [15:0] adc_val; // ADC值计数器 reg [15:0] dout_reg; // 输出寄存器 wire [15:0] adc_data; // ADC数据输入信号 wire adc_busy; // ADC忙信号 // 时钟分频计数器 always @(posedge clk or posedge rst) begin if (rst) begin sclk_div <= 4'b0000; end else begin if (sclk_div == 4'b1111) begin sclk_div <= 4'b0000; end else begin sclk_div <= sclk_div + 1'b1; end end end // 通道计数器 always @(posedge clk or posedge rst) begin if (rst) begin adc_ch <= 4'b0000; end else begin if (start && adc_ch == 4'b0000) begin adc_ch <= 4'b0001; end else if (sclk_div == 4'b1111) begin adc_ch <= adc_ch + 1'b1; end end end // ADC值计数器 always @(posedge clk or posedge rst) begin if (rst) begin adc_val <= 16'b0000000000000000; end else begin if (start) begin adc_val <= 16'b0000000000000000; end else if (sclk_div == 4'b1111) begin adc_val <= {adc_data[15:0], adc_val[15:1]}; end end end // 输出寄存器 always @(posedge clk or posedge rst) begin if (rst) begin dout_reg <= 16'b0000000000000000; end else begin if (start && adc_ch == 4'b0001) begin dout_reg <= adc_val; end end end // 输出信号 assign dout = dout_reg; // ADC控制 assign adc_busy = adc_ch != 4'b0000; assign {start, adc_ch} = adc_busy ? {1'b0, adc_ch} : {1'b1, adc_ch}; // ADC数据输入 adc adc_inst ( .sclk(clk), .csn(1'b1), .din(16'b0000000000000000), .busy(adc_busy), .dout(adc_data) ); endmodule ``` 该代码中,使用了一个ADC模块实现了AD7606的数据采集功能。具体实现过程中,需要根据实际硬件电路进行相应的调整,比如时钟分频的值、采样的通道等。同时,也需要根据实际情况进行数据处理,比如根据数据手册进行数据格式的转换、去除校验位等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值