数字电位器

数字电位器(也称为阻性数字模拟转换器,或者非正式地称为“digipot“)是一种数字控制的电子组件,它模拟了机械电位器的功能。它经常被MCU用于微调和缩放模拟信号。

数字电位器:digital potentiometer

数字电位器原理图符号示例

内部原理

数字电位器可以由电阻阶梯(resistor ladder)集成电路或数字模拟转换器构建,其中电阻阶梯结构更为常见。电阻阶梯上的每个抽头都有自己的开关,可以将该抽头连接到电位器的输出端。阶梯上选择的抽头位置确定了数字电位器的电阻比。抽头数通常用位值表示,例如8位相当于256个抽头;8位是最常见的,但5位到10位(32到1024个步骤)之间的分辨率也可用。数字电位器使用的协议有 I²C 或 SPI;有些使用更简单的上升/下降协议。数字电位器的典型用途包括需要对放大器(通常是仪器放大器)、小信号音频平衡和偏移调整进行增益控制的电路。

使用resistor ladder 构建的数字电位器

缺点

虽然与普通电位器非常相似,但数字电位器对流过其的电流有限制,比如 MCP4XXXX 系列的电流限制为 1mA 。此外,大多数数字电位器将两个输入端(A、B)的电压范围限制在数字电源范围内,因此可能需要额外的电路来替代传统电位计(尽管也有数字电位计可使用独立的双电源模拟电压)。此外,数字电位计的电阻值具有离散的步进,而不像多圈电阻式电位计那样可以获得看似连续的控制。

image-20230808103845142

image-20230808104133752

易失性数字电位器与机电式电位器的不同之处在于,在上电时,电阻会恢复到(可能)不同于上次断电时的值。同样地,它们的电阻只有在正确的直流供电电压下才有效。当电压消失时,两端点和滑动触点之间的电阻是不确定的。在运算放大器电路中,机械电位器的断路阻抗可以帮助稳定电路在上电阶段的直流工作点。但是当使用数字电位器时,可能就不是这样了。

无论是机械式还是数字式电位器,一般都有较差的公差(通常为±20%),较差的温度系数(每摄氏度可达数百ppm),以及一个停止电阻,通常约为满量程电阻的0.5-1%。注意,停止电阻是指当端子到滑动点的电阻设为最小值时的残余电阻。

对于数字电位器,其实际阻值可能取决于供电电压。

数字电位器由于器件中的寄生电容而导致其带宽有限。端到端阻抗较低的器件通常有更大的带宽。

数字电位器中的传输门/开关元件会引起谐波失真。

使用乘法DAC作为数字电位器可以消除大部分这些限制。通常可以实现+15V到-15V的信号范围,有16位的控制,即65535个离散的设定点,而漂移和非线性都可以忽略不计。但是DAC每次系统上电时都需要初始化,这通常由嵌入式微控制器中的软件来完成。乘法DAC不能直接用作电阻器(2线连接),但在这种模式下,数字电位器由于其温度系数和电阻公差也表现不佳。

应用
  • LCD-对比度/亮度

  • 传感器校准

  • 数字音量控制

  • 可编程比较器

  • 可编程低/高通滤波器
     

全文完,既然都看到这里了,就帮忙点个赞或者在看吧

加作者微信:jiyuyun18, 交流电子技术

留言:公号入群,加入电子技术讨论群

留言:公号资料,领取免费电子技术学习资料

在RAGFlow中安装和配置reranker模型通常涉及几个步骤: 1. **环境准备**: - 首先,确保你已经安装了Python和必要的库,如PyTorch、transformers等。可以使用pip进行安装: ``` pip install torch transformers ragflow ``` 2. **下载预训练模型**: RAGFlow通常需要一个预训练的检索模型和一个分类模型作为基础。从Hugging Face Model Hub上选择合适的模型,例如`facebook/rag-token-base`和`facebook/rag-token-classifier-base`。 ```bash wget https://huggingface.co/facebook/rag-token-base/resolve/main/config.json wget https://huggingface.co/facebook/rag-token-base/resolve/main/pytorch_model.bin wget https://huggingface.co/facebook/rag-token-classifier-base/resolve/main/config.json wget https://huggingface.co/facebook/rag-token-classifier-base/resolve/main/pytorch_model.bin ``` 3. **加载模型到RAGFlow**: 使用`RAGRetriever`和`RAGClassifier`初始化模型,然后将权重加载进来: ```python from ragflow import RAGRetriever, RAGClassifier config_retriever = json.load(open('config.json', 'r')) config_classifier = json.load(open('config_classifier.json', 'r')) retriever = RAGRetriever.from_pretrained(config_retriever) classifier = RAGClassifier.from_pretrained(config_classifier) ``` 4. **配置和整合**: 将两个模型整合到一个RAGFlow实例中,并设置相关的超参数,比如查询编码器、文档编码器以及re-ranker的阈值等。 5. **模型训练和评估**: 如果你打算微调模型,可以提供一些标注数据,通过`fit`方法进行训练。如果直接使用,就跳过此步。 ```python from ragflow.data import RagDataset from ragflow.train import train_rag # 创建数据集并训练 dataset = RagDataset(...) # 根据实际需求创建数据集 train_rag(retriever=retriever, classifier=classifier, dataset=dataset) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞多学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值