树莓派高精度AD/DA数模/模数 扩展板教程

产品简介

提供树莓派和Jetson nano示例程序

产品特点

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

功能引脚

功能引脚树莓派接口(BCM)树莓派接口(WiringPi)描述
DRDYP17P0ADS1256数据就绪输出,低电平有效
RESETP18P1ADS1256复位输入
PDWNP27P2ADS1256 同步/关闭电源输入,低电平有效
CS0P22P3ADS1256片选,低电平有效
C1P23P4DAC8532片选,低电平有效
DINP10P12SPI数据输入
DOUTP9P13SPI数据输出
SCKP11P14SPI时钟信号

树莓派

提供C语言与python例程

开启SPI接口

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


然后重启树莓派:

  1. sudo reboot

请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查

安装库

  • 安装BCM2835, 打开树莓派终端,并运行以下指令
  1. wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
  2. tar zxvf bcm2835-1.60.tar.gz
  3. cd bcm2835-1.60/
  4. sudo ./configure && sudo make && sudo make check && sudo make install
  5. # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
  • 安装wiringPi
  1. sudo apt-get install wiringpi
  2. #对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
  3. wget https://project-downloads.drogon.net/wiringpi-latest.deb
  4. sudo dpkg -i wiringpi-latest.deb
  5. gpio -v
  6. # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
  • python
  1. sudo apt-get update
  2. sudo apt-get install ttf-wqy-zenhei
  3. sudo apt-get install python-pip
  4. sudo pip install RPi.GPIO
  5. sudo pip install spidev

下载例程

在树莓派终端运行:

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

AD例程

  1. cd ADS1256

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

  • 硬件设置

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

1.bcm2835

  1. cd bcm2835/
  2. make
  3. sudo ./ads1256_test

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

2.wiringpi

  1. cd wiringpi/
  2. make
  3. sudo ./ads1256_test

3.python2

  1. cd python2/
  2. sudo python main.py

4.python3

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

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

DA例程

  1. cd DAC8532/

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

  • 硬件设置

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

1.bcm2835

  1. cd bcm2835/
  2. make
  3. sudo ./dac8532_test

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

2.wiringpi

  1. cd wiringpi/
  2. make
  3. sudo ./dac8532_test

3.python2

  1. cd python2/
  2. sudo python main.py

4.python3

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

LEDA,LEDB会有呼吸灯效果

AD/DA综合例程

  1. cd AD-DA/

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

1.bcm2835

  1. cd bcm2835/
  2. make
  3. sudo ./dac8532_test

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

2.python

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

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

Jetson nano Developer Kit

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

软件设置

安装函数库

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

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

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

下载测试程序

打开linux终端,执行:

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

AD例程

  1. cd ADS1256

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

  • 硬件设置

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


1.C

  1. cd C/
  2. make
  3. sudo ./main

2.python2

  1. cd python2/
  2. sudo python main.py

3.python3

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

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

DA例程

  1. cd DAC8532/

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

  • 硬件设置

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

1.C

  1. cd C/
  2. make
  3. sudo ./main

2.python2

  1. cd python2/
  2. sudo python main.py

3.python3

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

LEDA,LEDB会有呼吸灯效果

AD/DA综合例程

  1. cd AD-DA/

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

1.C

  1. cd C/
  2. make
  3. sudo ./main

2.python2

  1. cd python2/
  2. sudo python main.py

3.python3

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

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