High-Precision AD/DA Board
| |||||||||||||||||
| |||||||||||||||||
说明
产品简介
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接口
- 重启树莓派:
sudo reboot
- 检查 /boot/config.txt,可以看到 'dtparam=spi=on' 已被写入
- 为了确保 SPI 没有被占用,建议其他的驱动覆盖暂时先关闭。可以使用 ls /dev/spi* 来检查 SPI 占用情况,终端输出 /dev/spidev0.0 和 /dev/spidev0.1 表示 SPI 情况正常
安装库
如果使用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差分输入时可以不连接。
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差分输入时可以不连接。
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灯交替亮
资料
文档
视频
程序
数据手册
软件
相关链接
FAQ
示例程序默认开启8通道高精度ADC,为了保证稳定性和准确性,程序读取数据及处理数据时加了延时,如果需要较高速率,可以将延时注释掉。 优化过的例程如下:
High-Precision-AD-DA-Board-1CH
运行了BCM2835库需要重启树莓派才能正常运行其余库,将树莓派重启下,重新运行。
能支持接入5V以内电压;
sudo modprobe spidev
- 适配STM32
- STM32型号较多可以参考以下STM32F10X例程自行编程和移植程序实现: