High-Precision AD/DA Board

来自Waveshare Wiki
跳转至: 导航搜索
High-Precision AD/DA Board
High-Precision AD/DA Board
{{{name2}}}
{{{name3}}}
板载接口
RPi AD DA

说明

产品简介

High-Precision AD/DA Board是树莓派高精度AD/DA扩展板,适用于Raspberry Pi系列主板和Jetson Nano。

产品特点

  • 板载ADS1256芯片,8通道24位高精度ADC(4通道差分输入),30ksps采样速率(最大)
  • 板载DAC8532芯片,2通道16位高精度DAC
  • 板载排针封装输入接口,可接入模拟信号,兼容微雪传感器接口标准,方便接入各种模拟传感器模块
  • 板载接线端子封装输入输出接口,可接入模拟信号及数字信号,方便在各种场合使用
  • 自带AD/DA检测电路,方便观察实验现象
  • 提供树莓派和Jetson nano示例程序

功能引脚

功能引脚 树莓派接口(BCM) 树莓派接口(WiringPi) 描述
DRDY P17 P0 ADS1256数据就绪输出,低电平有效
RESET P18 P1 ADS1256复位输入
PDWN P27 P2 ADS1256 同步/关闭电源输入,低电平有效
CS0 P22 P3 ADS1256片选,低电平有效
C1 P23 P4 DAC8532片选,低电平有效
DIN P10 P12 SPI数据输入
DOUT P9 P13 SPI数据输出
SCK P11 P14 SPI时钟信号

树莓派

提供C语言与python例程

开启SPI接口

  • 打开树莓派终端,输入以下指令进入配置界面:
sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口

RPI open spi.png

  • 重启树莓派:
sudo reboot
  • 检查 /boot/config.txt,可以看到 'dtparam=spi=on' 已被写入

RPI open spi 1.jpg

  • 为了确保 SPI 没有被占用,建议其他的驱动覆盖暂时先关闭。可以使用 ls /dev/spi* 来检查 SPI 占用情况,终端输出 /dev/spidev0.0 和 /dev/spidev0.1 表示 SPI 情况正常

RPI open spi 2.jpg

安装库

如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用,python库可以不安装,直接运行程序即可

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行gpio -v会出现2.70版本,如果没有出现说明安装出错

lgpio

wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install 
# 更多的可以参考官网:https://github.com/gpiozero/lg

python

sudo apt-get update
sudo apt-get install ttf-wqy-zenhei
sudo apt-get install python-pip 
sudo pip install RPi.GPIO
sudo pip install spidev

python3

sudo apt-get update
sudo apt-get install ttf-wqy-zenhei
sudo apt-get install python-pip 
sudo pip3 install RPi.GPIO
sudo pip3 install spidev
#树莓派5
sudo apt install python3-rpi-lgpio 
sudo apt-get install python3-RPi.GPIO
sudo apt-get install python3-spidev

下载例程

在树莓派终端运行:

sudo apt-get install p7zip-full
wget http://www.waveshare.net/w/upload/5/5e/High-Precision-AD-DA-Board-Code.7z
7z x High-Precision-AD-DA-Board-Code.7z -r -o./High-Precision-AD-DA-Board-Code
cd High-Precision-AD-DA-Board-Code/RaspberryPI/

AD例程

cd ADS1256

提供4个例程,分别是:bcm2835、python2、python3、wiringpi

  • 硬件设置

工作电压设置为5V:连接5V到VCC。
参考电压设置为5V:连接5V到VREF。
设置电位器输出为模拟量输入:连接ADJ到AD0。确保板子左侧的传感器接口AD0断开。
设置光敏电阻输出为模拟量输入:连接LDR到AD1。确保板子左侧的传感器接口AD1断开。连接AINCOM到AGND,AD差分输入时可以不连接。

High-Precision-AD-DA ADset.png
1.bcm2835

cd bcm2835/
make
sudo ./ads1256_test 

注意,运行了BCM2835库需要重启树莓派才能正常运行其余库。

2.wiringpi

cd wiringpi/
make
sudo ./ads1256_test

3.python2

cd python2/
sudo python  main.py

4.python3

cd python3/
sudo python3  main.py
  • 实验现象

转动电位器,AD0通道电压有相应的变化。
遮挡光敏电阻,AD1通道电压有相应的变化。
由于其他的通道没有接到负载上,他是悬空的,所以在1.17V左右浮动

DA例程

cd DAC8532/

提供4个例程,分别是:bcm2835、python2、python3、wiringpi

  • 硬件设置

工作电压设置为5V:连接5V到VCC。
参考电压设置为5V:连接5V到VREF。
连接DA0到LEDA,连接DA1到LEDB。则指示灯LEDA的亮度将会根据DA0输出电压而变化。指示灯LEDB的亮度将会根据DA1输出电压而变化。

1.bcm2835

cd bcm2835/
make
sudo ./dac8532_test

注意,运行了BCM2835库需要重启树莓派才能正常运行其余库。

2.wiringpi

cd wiringpi/
make
sudo ./dac8532_test

3.python2

cd python2/
sudo python  main.py

4.python3

cd python3/
sudo python3  main.py
  • 实验现象

LEDA,LEDB会有呼吸灯效果

AD/DA综合例程

cd AD-DA/

提供2个例程,分别是:bcm2835、python

1.bcm2835

cd bcm2835/
make
sudo ./main

注意,运行了BCM2835库需要重启树莓派才能正常运行其余库。

2.python

cd python/
sudo python  main.py
  • 实验现象

旋转电位器两个LED灯交替亮

Jetson nano Developer Kit

Jetson nano程序使用的是模拟SPI,所以刷新速度会相对较慢一些

软件设置

安装函数库

  • 打开终端界面,输入以下指令安装相应的函数库
sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install Jetson.GPIO
sudo groupadd -f -r gpio
sudo usermod -a -G gpio your_user_name
sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger

【注意】your_user_name 是你使用的用户名,比如说 waveshare

  • 安装I2C
sudo apt-get install python-smbus
  • 安装图像处理库:
sudo apt-get install python3-pil
sudo apt-get install python3-numpy

下载测试程序

打开linux终端,执行:

sudo apt-get install p7zip-full
wget http://www.waveshare.net/w/upload/5/5e/High-Precision-AD-DA-Board-Code.7z
7z x High-Precision-AD-DA-Board-Code.7z -r -o./High-Precision-AD-DA-Board-Code
cd High-Precision-AD-DA-Board-Code/Jetsonnano/

AD例程

cd ADS1256

提供3个例程,分别是:c、python2、python3

  • 硬件设置

工作电压设置为5V:连接5V到VCC。
参考电压设置为5V:连接5V到VREF。
设置电位器输出为模拟量输入:连接ADJ到AD0。确保板子左侧的传感器接口AD0断开。
设置光敏电阻输出为模拟量输入:连接LDR到AD1。确保板子左侧的传感器接口AD1断开。连接AINCOM到AGND,AD差分输入时可以不连接。

High-Precision-AD-DA ADset.png
1.C

cd C/
make
sudo ./main

2.python2

cd python2/
sudo python  main.py

3.python3

cd python3/
sudo python3  main.py
  • 实验现象

转动电位器,AD0通道电压有相应的变化。
遮挡光敏电阻,AD1通道电压有相应的变化。
由于其他的通道没有接到负载上,他是悬空的,所以在1.17V左右浮动

DA例程

cd DAC8532/

提供3个例程,分别是:c、python2、python3

  • 硬件设置

工作电压设置为5V:连接5V到VCC。
参考电压设置为5V:连接5V到VREF。
连接DA0到LEDA,连接DA1到LEDB。则指示灯LEDA的亮度将会根据DA0输出电压而变化。指示灯LEDB的亮度将会根据DA1输出电压而变化。

1.C

cd C/
make
sudo ./main

2.python2

cd python2/
sudo python  main.py

3.python3

cd python3/
sudo python3  main.py
  • 实验现象

LEDA,LEDB会有呼吸灯效果

AD/DA综合例程

cd AD-DA/

提供3个例程,分别是:c、python2、python3

1.C

cd C/
make
sudo ./main

2.python2

cd python2/
sudo python  main.py

3.python3

cd python3/
sudo python3  main.py
  • 实验现象

旋转电位器两个LED灯交替亮

资料

文档

视频

程序

数据手册

软件

相关链接

树莓派入门教程(新)
树莓派入门教程
树莓派OpenCV教程
树莓派littleGL系列教程
树莓派QT教程
树莓派OpenWrt教程

FAQ

示例程序默认开启8通道高精度ADC,为了保证稳定性和准确性,程序读取数据及处理数据时加了延时,如果需要较高速率,可以将延时注释掉。 优化过的例程如下:

High-Precision-AD-DA-Board-1CH


运行了BCM2835库需要重启树莓派才能正常运行其余库,将树莓派重启下,重新运行。



可以将树莓派的3.3V 引脚接到ADX(这里是AD7),运行ADC程序后,可以显示接近3.3V的电压,说明功能正常,接线如图所示:
AD7-3.3.png



  • 适配STM32
  • STM32型号较多可以参考以下STM32F10X例程自行编程和移植程序实现:

High-Precision AD/DA Board STM32F10X示例程序


技术支持

联系人:黄工
EMAIL:3005763927@qq.com
电话:0755-83040712
QQ:3005763927
微信:扫下方二维码添加
Hkx-wx.jpg

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证