参考
有关文件和软件,请访问:
//www.xmece.com/亚博电竞菠菜products/greenpak
下载我们的免费GreenPAK Designer软件[1]以打开.gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。
yabo国际娱乐Dialog Semiconductor提供了一个完整的应用说明库[4],其中包括设计示例以及Dialog IC内功能和模块的说明。
- GreenPAK Designer软件,软件下载,用户指南,对话框yabo国际娱乐
- AN-1102 I2C可读模拟到数字转换器.GP,GreenPak设计文件,对话半导体yabo国际娱乐
- GreenPAK开发工具,GreenPAK开发工具网页,对话框yabo国际娱乐
- 绿百申请须知,GreenPak应用笔记网页,对话框半导体yabo国际娱乐
- SLG46620数据表,对话框半导体yabo国际娱乐
- SLG46531数据表,对话框半导体yabo国际娱乐
作者:David Riedell
介绍
本应用说明将解释如何使用GreenPAK测量模拟电压,使用8位模数转换器(ADC)将其转换为数字值,通过I2C传输数据,以及使用Arduino Uno微控制器读取I2C命令。该2芯片项目使用SLG46620[5]GreenPAK4设备和SLG46531[6]GreenPAK5设备。GreenPAK4读取模拟电压,将其转换为8位值,并通过8个引脚并行输出该值。GreenPAK5接收8个数字信号,并通过I2C将该信息串行传输至微控制器。
图1显示了两个GreenPAK设备之间的连接、连接到微控制器的双向I2C SDA和SCL信号以及模拟输入电压。
GreenPAK4设计文件
GreenPak4芯片有两个输入引脚和8个输出引脚。它在引脚8处接收模拟电压和引脚10处的断电(PD)信号。引脚12到19将ADC数据的8位发送到GreenPak5芯片,这在该应用笔记的第3节中讨论。
引脚8处的模拟信号发送至PGA(可编程增益放大器),其设置如图3所示。需要注意的是,必须手动将PGA设置为“开机”,并且必须手动启用SPI(串行到并行接口)并行输出(图6)。
PGA将模拟信号传递至ADC,ADC通过橙色8位总线将其数据传输至SPI。SPI模块使用ADC的中断信号进行时钟设置。然后,这8位从SPI并行输出块发送到双矩阵芯片另一侧的引脚12至19。
|
|
|
|
GreenPAK5设计文件
该项目的GreenPak5部分设计非常简单。引脚8和9是专用I2C引脚8承载I2C时钟(SCLK)和引脚9的I2C数据(SDA)。
第一个I2C虚拟输入信号连接到数字输出引脚10,这允许我们通过简单的I2C命令为GreenPAK4芯片中的ADC通电或断电。
引脚12:19在GreenPak4设备上的相应引脚数外部连接,如图1所示。可以通过在地址0xF6处通过I2C读取每个引脚的输入值。
字节地址 |
注册位 |
寄存器位定义 |
0xF6. |
reg <1968> |
Pin12数字输入 |
reg <1969> |
PIN13数字输入 |
|
注册号<1970> |
PIN14数字输入 |
|
Reg<1971> |
PIN15数字输入 |
|
reg <1972> |
Pin16数字输入 |
|
reg <1973> |
Pin17数字输入 |
|
注册号<1974> |
Pin18数字输入 |
|
注册号<1975> |
Pin19数字输入 |
Arduino Uno Code.
下面的代码是为用作I2C主机的Arduino Uno编写的。此代码启用ADC,等待600µs以获得有效的ADC输出,读取这些ADC输出值,然后禁用ADC以最小化功耗。Arduino Uno每秒轮询一次ADC值,并通过Arduino串行监视器打印该值。有关详细信息,请参阅关于使用I2C与GreenPAK接口的信息,请参考AN-1090或查看产品数据表.
#包括
字节I2C_字节_地址=0xF4;
字节ADC_引脚_地址=0xF6;
无效设置(){
Wire.begin();
Serial.begin(9600);
写入2C(I2C字节地址,0x01);
}
void循环(){
写入2C(I2C字节地址,0x00);
延迟微秒(600);
uint8\u t ADC\u值=读取I2C(ADC\u引脚地址,0x00,0x01);
serial.print(“价值:”);
串行打印LN(ADC_值);
写入2C(I2C字节地址,0x01);
延迟(1000);
}
void writei2c(字节addr,字节数据){
导线起始传输(0x00);
导线写入(addr);
线写(数据);
导线端传动();
}
uint8读取I2C(字节添加、字节从添加、字节字节到读取){
uint8_t值;
导线起始传输(0x00);
导线写入(addr);
导线端传动();
Wire.requestFrom(从地址,字节到读取);
而(Wire.available()){value=Wire.read();}
返回值;
}
结论
在本应用说明中,我们描述了如何使用一对GreenPAK设备创建I2C可读的模数转换器。我们使用提供的代码在GreenPAK5和Arduino Uno之间进行接口,以启用ADC并通过I2C读取8位数字值。这种简单设计的实现在GreenPAK4中留下了许多资源d格林帕克5芯片可用于执行其他任务。