From 0d77d71ce8d7c2876cc84612b5876be8da9835c1 Mon Sep 17 00:00:00 2001 From: IOsetting Date: Sat, 11 Jun 2022 20:30:07 +0800 Subject: [PATCH] docs: add chinese readme for ds18b20 --- demo/gpio/ds18b20/README.cn.md | 37 +++++++++++++++++++++++++ demo/gpio/ds18b20/single-ds18b20/main.c | 16 ++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 demo/gpio/ds18b20/README.cn.md diff --git a/demo/gpio/ds18b20/README.cn.md b/demo/gpio/ds18b20/README.cn.md new file mode 100644 index 0000000..eeb0236 --- /dev/null +++ b/demo/gpio/ds18b20/README.cn.md @@ -0,0 +1,37 @@ +# DS18B20 + +常见的数字温度计芯片, 常温下误差不超过±0.5°C, 可以通过三线或双线连接进行温度监控. 支持在单线总线上长距离连接多个芯片. + +# 接线方式 + +## 普通供电模式 + +普通供电模式使用的是三线连接, 电压可以选择3.3V或5V + +* P35 -> DQ +* GND -> GND +* 5V/3.3V -> VDD + +## 寄生供电模式 + +寄生供电模式使用的是双线连接. 这时候DS18B20的GND和Vdd都要接地. DQ脚既是数据通信脚, 也是供电脚, 上位机需要在这个脚上使用上拉电阻连接到VCC上, 对于STC8, 可以通过寄存器PxPU进行设置. + +需要注意的是, **并非**所有线上购买的DS18B20都能工作在寄生供电模式下, 有一些在寄生供电模式的电路下只会输出`0`, 这时候你需要通过一些额外的电路让其在双线模式下工作. + +* P35 -> DQ +* GND -> GND -> VDD +* 5V + +## 模拟寄生供电模式 + +如果DS18B20不能在寄生供电模式下工作, 可以使用一个 0.1uF 的电容和一个1N4148二极管实现双线连接. 这时候 DS18B20 实际上工作在普通供电模式下. + +``` + +-----1N4148-|>|-----+ + | | + | |DS18B20|-VCC--+ + | | | | +P35 --+-DQ--|DS18B20| 0.1uF + | | | +GND ----GND-|DS18B20|-GND--+ +``` diff --git a/demo/gpio/ds18b20/single-ds18b20/main.c b/demo/gpio/ds18b20/single-ds18b20/main.c index 5dd87c5..48b9013 100644 --- a/demo/gpio/ds18b20/single-ds18b20/main.c +++ b/demo/gpio/ds18b20/single-ds18b20/main.c @@ -26,12 +26,26 @@ * Parasite power mode requires both DS18B20 GND and Vdd to be * connected to ground. The DQ pin is the data/parasite power line, * which requires a pull-up resistor (set by PxPU command) - * * P35 -> DQ * GND -> GND -> VDD * 5V + * + * Parasite Power Mode Emulation: + * In case some DS18B20 doesn't work in parasite mode, you can add one + * 0.1uF capacitor and one 1N4148 to achieve it. In thise way DS18B20 + * actually works in normal power mode + * + * +-----1N4148-|>|-----+ + * | | + * | |DS18B20|-VCC--+ + * | | | | + * P35 --+-DQ--|DS18B20| 0.1uF + * | | | + * GND ----GND-|DS18B20|-GND--+ + * */ + #include "fw_hal.h" #include "ds18b20.h"