ADC 模块 PCB 设计

ADC 模块 PCB 设计
ADC 模块 PCB 设计本文介绍了基于 ADS1115 芯片的 ADC 模数转换模块的 PCB 设计包括主控参数、资源特点、原理图、工程测试等。介绍ADS1115 是由德州仪器制造的 16 位模拟转数字ADC转换器集成电路。IC 可通过使用 I2C 协议轻松与微控制器/微处理器接口传输数据和命令。集成电路支持四个单端输入和两个差分输入。差分输入有助于减少模拟读数中的噪声。ADC 支持广泛的电源电压范围且电流消耗极低。特点ADC输入范围±256 mV至±6.144 V供电电压范围2.0 V至5.5 V电流消耗连续转换模式下150微安可编程数据速率每秒8采样SPS至860采样率内置可编程增益放大器PGA和数字比较器4个复用输入可选择单次或连续转换模式系统框图ADS1115的功能框图展示了IC不同部件如何协同工作以提供16位数字数据。ADS1115包括一个德尔塔-西格玛 ADC可编程增益放大器PGA内部电压参考用于同步的内部振荡器用于通信的I2C接口内置比较器可用于过压或低压检测。ADS1115的输入会通过输入复用器MUX复用然后再送入PGA。该设备可以测量四个单端输入或两个差分输入。在测量单端输入时ADC的负输入通过多路复用器内的开关内部连接到GND。差分输入对为AIN0 和 AIN1AIN0和AIN3AIN1和AIN3AIN2 和 AIN3详见ADS1115多路模数转换器 .地址I2C 设备拥有唯一的地址。MCU 可以使用相同的 I2C 总线与不同地址的设备通信。通过更改与 ADDR 引脚的连接ADS1115 可以配置为不同的 I2C 地址。ADS1115 的默认 I2C 地址为十六进制 0x48。下表展示了 ADS1115 的 I2C 地址如何根据 ADDR 引脚连接而变化I2C 地址十六进制ADDR引脚连接0x49VDD0x4ASDA0x48GND0x4BSCL因此可以通过为每个模块设置不同的地址将四个ADS1115模块连接到同一条 I2C 总线。详见ADS1115 ADC 搭配树莓派 Pico 和 MicroPython 代码 .PCB 设计为了方便连接测试和模块化连接基于 ADS1115 设计 ADC 模块其设计方案包括原理图、PCB、物料焊接等。3D 图原理图焊接效果Bottom view特点宽电压支持2.0V 至 5.5V低功耗连续转换模式下 150 微安可编程数据速率每秒 8 - 860 采样率内置可编程增益放大器PGA和数字比较器4个复用输入可选择单次或连续转换模式板载 STEMMA QT 接口可实现快速模块化连接接口与 Qwiic 连接器兼容可采用 2.54mm 杜邦线连接可选 0x48 至 0x4B 间的 I2C 7 位地址详见ADC模数转换器模块 .硬件连接使用杜邦线连接 ADS1115 模块和树莓派 Pico 开发板ADS1115 模块树莓派 PicoNoteSCLSCL (GPIO5)Serial ClockSDASDA (GPIO4)Serial DataVCC3V3PowerGNDGNDGround使用杜邦线连接 TEMT6000 光照度模块和 ADS1115 模块TEMT6000 模块ADS1115 模块NoteSA0SignalGA-GroundVAPower实物图TEMT6000 模块采集环境光照度模拟信号通过 ADS1115 模块转换为数字信号经过 IIC 通信协议由单片机解析并读取电压和光照度数据。扫描 IIC 总线获得 ADS1115 模块地址 0x48驱动库使用 MicroPython 库实现发送命令和读取 ADS1115 集成电路的数据。将驱动代码保存为ads1x15.py上传至树莓派 Pico 根目录驱动库代码见GitHub .代码库上传到 Pico 并按照电路图布线后可以上传代码读取 ADS1115 的 ADC 值。下面 MicroPython 代码实现了终端打印输入 A0 引脚的模拟电压。frommachineimportI2C,Pinimporttimefromads1x15importADS1115 i2cI2C(0,sdaPin(16),sclPin(17))adcADS1115(i2c,address72,gain0)whileTrue:valueadc.read(4,0)print(ADC Value:,value)voltageadc.raw_to_v(value)print(Voltage,voltage)time.sleep(0.5)代码保存到 Raspberry Pi Pico 并运行。若需要上电运行则保存为 main.py 效果演示运行代码时Shell 终端显示以下输出通过手电筒光照、用手遮挡 TEMT6000 模块模拟白天和黑夜环境输出不同电压树莓派若使用树莓派读取 ADS1115 模块数据可通过 adafruit 提供的标准库快速实现。硬件连接ADS1115Raspberry PiNoteSDAGPIO3Serial DataSCLGPIO5Serial ClockGNDGNDGroundVCC3V3Power实物图驱动库终端执行如下指令python3-mvenv .venvsource.venv/bin/activate pipinstalladafruit-circuitpython-ads1x15 pipinstallsetuptools82.0.0--force-reinstall扫描 IIC 设备地址代码终端执行touch ads1115_print.py新建代码文件并添加如下代码importtimeimportbusiofromadafruit_ads1x15importADS1115,AnalogIn,ads1x15# Create the I2C bus (SCLBCM3, SDABCM2)i2cbusio.I2C(scl3,sda2)# Create the ADC object using the I2C bus, confirm address (0x48 default)adsADS1115(i2c,address0x48)# Create single-ended input on channel 0 (A0)chanAnalogIn(ads,ads1x15.Pin.A0)# Create differential input between channel 0 and 1 (uncomment to use)# chan AnalogIn(ads, ads1x15.Pin.A0, ads1x15.Pin.A1)print({:5}\t{:5}.format(raw,v))whileTrue:print({:5}\t{:5.3f}.format(chan.value,chan.voltage))time.sleep(0.5)保存代码。效果终端执行python ads1115_print.py指令连续打印 ADC 原始值和电压值总结本文介绍了基于 ADS1115 芯片的 ADC 模数转换模块的 PCB 设计包括主控参数、资源特点、原理图、工程测试等为相关产品的快速开发和应用设计提供了参考。