高精度 ad 转换芯片 采样率_用Python控制硬件31-16位AD转换芯片ADS1115

a1a5ec368372a5f3a2cd951ed9733b8c.png

之前介绍过24位的数模转换器,但有时不需要如此高精度,这次的TI产的ADS1115就是折中方案,双通道差分输入,可控增益放大,内置电压基准和振荡器,16位精度,I2C接口。

7aaf53862f55f4310ac8559f0af75455.png

先将评估模块与实验板相连:VCC3.3/GND/SDA/SCL。芯片的ADDR脚已经下拉至GND。

8efe2937f365633f60e70e05264018b9.png

芯片封装抽象类:

import Instrument, Utils
import time

REG_CONV     = 0  # Conversion
REG_CONFIG   = 1  # Config
REG_THRES_L  = 2  # Lo_thres
RE
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 AD7985 采样控制模块的 Verilog 代码示例: ```verilog module ad7985_controller( input clk, // 时钟信号 input rst, // 复位信号 input start, // 启动采样信号 output reg convst, // 转换启动信号 output reg sclk, // 时钟信号 output reg sdin, // 数据输入信号 input sdo // 数据输出信号 ); // 定义状态 localparam IDLE = 2'b00, CONVST = 2'b01, READ_DATA = 2'b10; // 定义状态寄存器和状态转移逻辑 reg [1:0] state = IDLE; always @(posedge clk, posedge rst) begin if (rst) begin state <= IDLE; end else begin case (state) IDLE: begin if (start) begin state <= CONVST; convst <= 1'b1; end end CONVST: begin state <= READ_DATA; convst <= 1'b0; sclk <= 1'b1; end READ_DATA: begin state <= IDLE; sclk <= 1'b0; end default: begin state <= IDLE; convst <= 1'b0; sclk <= 1'b0; end endcase end end // 时序逻辑控制 always @(posedge clk, posedge rst) begin if (rst) begin sdin <= 1'b0; end else begin case (state) IDLE: begin sdin <= 1'b0; end CONVST: begin sdin <= 1'b0; end READ_DATA: begin sdin <= sdo; end default: begin sdin <= 1'b0; end endcase end end endmodule ``` 这个模块的主要功能是控制 AD7985 的采样和数据读取。`start` 信号用于启动采样,`convst` 信号用于控制转换启动,`sclk` 信号用于控制时钟,`sdin` 信号用于控制数据输入,`sdo` 信号用于读取数据输出。模块使用一个状态机来控制时序逻辑。在空闲状态下,模块等待 `start` 信号的触发。触发后,模块进入转换启动状态,向 AD7985 发送转换启动信号,并在下一个时钟周期中发送时钟信号。一旦转换完成,模块进入读取数据状态,读取 AD7985 的输出数据。读取完成后,模块返回空闲状态,等待下一个采样启动信号的触发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值