Analog Test Shield 用户手册
Analog Test Shield
用户手册
1. 产 品 概 述
Analog Test Shield 是兼容 Arduino、NUCLOE 和 XNUCLEO 接口的扩展板,具备 AD 采集和 DA 输出
功能。
基于 Arduino 标准接口设计,兼容 UNO、Leonardo、NUCLEO、XNUCLEO 开发板
旋转电位器,就能获得不同的 AD 采样数据
板载 12bit DAC 芯片 MCP4725,可以输出你想要的波形
通过板载的 LED 和喇叭,可以形象展示出 DAC 和 PWM 的效果
版本:V1.1,日期:2015 年 6 月 19 日
1
Analog Test Shield 用户手册
2. 硬 件 说 明
该产品集成了 DAC 电路和功放电路。主要资源有:两个电位器旋钮,一个电源 LED,一个状态
LED 和一个外放喇叭。您可通过模数转换功能采集电位器的电压值;可通过数模转换或脉冲宽度
调试(PWM,Pulse Width Modulation)控制 LED 亮度和驱动喇叭。这里只简要地说明一下产品
DAC 电路和功放电路原理。如果您需要了解更多芯片的数据,请参阅芯片的数据手册:
MCP4725-Datasheet.pdf 和 LM386-Datasheet.pdf。
2.1. DAC 电 路
MCP4725 是 12 位分辨率高精度的电压输出模拟转换器(DAC),具有非易失性存储器(EEPROM),
通过 I2C 串行接口控制。单电源工作:2.7 至 4.5V。DAC 电路如下图所示:
引脚说明:
MCP4725 名称
说明
SOT-23
1
VOUT
模拟量输出电压
版本:V1.1,日期:2015 年 6 月 19 日
2
Vout1Vss2VDD3SDA4SCL5A06U2MCP4725DACGND3V3C11104GNDGNDSCLSDADACCircuitR164.7kR174.7k3V3C1210UF
Analog Test Shield 用户手册
2
3
4
5
6
VSS
VDD
SDA
SCL
A0
电源地参考电压
电源电压
I2C 串行数据
I2C 串行时钟输入
I2C 地址位选择引脚(A0 位)。该引脚可以连接到 VSS 或者 VDD,或由数
字逻辑电平有效驱动。该引脚的逻辑状态决定了 I2C 地址位的 A0 位。
详情请参见 MCP4725-Datasheet.pdf 第 3.0 节引脚说明。
版本:V1.1,日期:2015 年 6 月 19 日
3
Analog Test Shield 用户手册
2.2. LM386 功 放 电 路
LM386 是音频集成功率放大器,电压内置增益为 20,可通过 1 和 8 脚位间电阻电容的搭配,调
节增益,增益最高可达 200。
引脚说明:
引脚
1
2
3
4
5
6
7
8
名称
GAIN
IN-
IN+
GND
VOUT
VCC
BYPS
GAIN
说明
用于增益控制.
反相输入端
同相输入端
接地
电压输出端
电源电压
用于旁路连接。请参见 LM386-Datasheet.pdf.
用于增益控制
版本:V1.1,日期:2015 年 6 月 19 日
4
GAIN1IN-2IN+3GND4VOUT5VCC6BYPS7GAIN8U1LM386LS1SpeakerC2104GNDGNDC3104C4100uFGNDGND5VSpeakerCircuitR410kSpeakerC510pFR5100RGND
Analog Test Shield 用户手册
3. 程 序 原 理
本产品的配套程序原理是,由 PWM 输出正弦波控制 LED 渐变闪烁,DAC 输出正弦波控制喇叭发
声。每隔一秒读取一次模拟输入,并通过串口打印输出 ADC 转换的电压。
3.1. XNUCLEO 示 例 程 序
该示例程序基于 mbed 平台。
ADC 转换实现方式:调用 mbed 中 AnalogIn 类 float read()函数读取 AD 转换的数据。
PWM 输出实现方式:调用 mbed 中 PwmOut 类的 void write(float value)函数,并且将 12 位的正
弦数据转化为浮点形式。
DAC 输出实现方式:通过 mbed 中 I2C 类的 int write(int address, const char *data, int length)函数发
送数据到 MCP4725。
3.2. UNO/Arduino 示 例 程 序
ADC 转换实现方式:调用 analogRead(pin)函数,读取模拟输入数值,返回值在 0-1023 之间。
PWM 输出实现方式:使用 analogWrite(pin, value)函数,value 的值在 0-255 之间。
DAC 输出实现方式:该方式基于 Wire 库,通过 I2C 接口控制 MCP4725 芯片输出模拟信号。
MCP4725 快速写命令如下图,传输三个字节,第一个为地址,第二第三个地址为数据。
版本:V1.1,日期:2015 年 6 月 19 日
5
Analog Test Shield 用户手册
参见 MCP4725-Datasheet.pdf 图 6-3。
版本:V1.1,日期:2015 年 6 月 19 日
6
Analog Test Shield 用户手册
4. 快 速 入 门
4.1. 准 备 工 作
Arduino 软件(请从这里下载:http://www.arduino.cc/en/Main/Software)
Analog Test Shield x 1
Xnucleo 或者 Arduino UNO PLUS 主板
4.2. 编 译 基 本 操 作
产品附带的程序都需要编译和下载。基于 mbed 库的程序都可以通过 mbed 在线编译器或者离线
编译器(例如 keil)进行编译。而基于 Arduino 的程序,都可以使用 Arduino IDE 进行编译。再把
编译通过生成的文件下载到芯片,具体的下载方法则根据连接 shield 的开发板芯片的不同而定。
如果您已经熟悉了 mbed 或者 Arduino 的编译方法,请直接跳过本节。
4.2.1. 使 用 mbed 编 译
本节主要说明 mbed 在线编译器(请从这里注册并登录:http://developer.mbed.org/)的基本操
作。包括官方 mbed 库的导入、程序编译。关于 mbed 在线编译器的更多详情,请查阅 ARM mbed
官网。首次登陆,mbed 编译器会要求您选择开发板平台。选定之后,您也可以在 User's platforms
新增、删除或者更改您的开发板平台。请根据实际情况,选择您的开发板平台。
资源的导入
如需导入官方库:进入 mbed 在线编译器 -> 点击左上角的 Import -> 点击 Libraries 选项卡 –> 双
击要导入的库,例如 mbed。
如需导入本地资源:进入 mbed 在线编译器 -> 点击左上角的 Import -> 点击 Upload 选项卡 –>
从本地电脑选择要导入的资源。在线编译器可以支持上传 zip 打包文件,也可以支持单个文件导
入。详情请参考 mbed 在线编译器(https://developer.mbed.org/compiler/)右上角的 Help 关于
Importing 的内容。
程序编译
导入完成之后,选择相应的工程或者文件,点击 Compile 即可编译。编译成功的话,浏览器会提
示您下载编译通过的.bin 文件。把该.bin 文件保存在本地,再用相应的方法把它烧录到开发板的
芯片中即可。如果编译不通过,请根据编译器的提示进行除错。
版本:V1.1,日期:2015 年 6 月 19 日
7
Analog Test Shield 用户手册
注意,用户不一定要使用 mbed 在线编译工程,也可以使用离线的 IDE 例如 Keil。示例程序如果
使用了 mbed 库的话,可以从 mbed 中导出 mbed 库到本地。或者直接使用配套软件自带的库。
4.2.2. 使 用 Arduino IDE 编 译
本节主要说明 Arduino IDE(请从这里下载:http://www.arduino.cc/en/Main/Software)的基本操
作,包括库的导入、程序编译。关于 Arduino IDE 的更多详情,请查阅 Arduino 官网。请参照软
件提示以安装软件。
库的导入
1) 将示例程序中的 libraries 文件夹复制到 Sketchbook location 所指定的位置,这个位置通常是
C:\Users\Username\Documents\Arduino。您可以通过设置首选项变更这个位置:点击 File ->
Preferences。
2) 重启软件,选择 Sketch -> Import Library,查看是否包含之前导入的库。若有,说明库导入
成功。
程序编译和下载
1) 程序可以使用 AVR 下载器通过 ISP 口下载,也可以通过 Bootloader 直接用 USB 接口下载。
如果用 AVR 下载器下载的话,请参考下载器的相关文档。本文采用 Bootloader 方法下载。
插上 USB 接口将开发板的 BOOT 开关(如果有的话)设置到 ON 档,VCC 电压设置为 5V。
2) 接入 Shield 模块,通过 USB 口连接 Arduino 开发板和电脑。
3) 这里以 Arduino IDE 自带的示例程序来描述程序的编译及下载方法。依次点击 File -> Example
-> 01.Basics -> Blink 即可打开示例程序。
4) 点击 Tools -> Board -> Arduino Uno 选择 Arduino 开发板型号。
5) 点击 Tools -> Port:选择 Arduino 开发板的串口号,您可以通过设备管理器来查看对应的串口
号。
6) 点击 Verify 按钮 ,开始编译程序。如果软件提示“Done compiling”,则说明编译成功。
7) 点击 Upload 按钮 ,开始下载程序。
4.3. 操 作 与 现 象
下面章节以本公司两款不同类型的开发板为例,描述具体操作步骤及实验现象。
4.3.1. 设 置 Analog Test Shield 跳 线
1) 引脚 D6 连接到 PWM,该引脚用于脉冲宽度调试。
2) 引脚 A0 连接到 ADC,该引脚用于模拟量输入。
3) 设置 PWM 和 DAC 引脚的选择跳线。LED 接到 PWM 输出,SPK 接到 DAC 输出。
版本:V1.1,日期:2015 年 6 月 19 日
8