参考文献
有关文件及软件,请浏览:
//www.wsdof.com/雷电竞官网登录products/greenpak
下载我们的免费GreenPAK设计软件[1],打开。gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。
雷竞技电竞平台Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。
- GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductor雷竞技电竞平台
- AN-1102 I2C可读模数转换器.gp,GreenPAK设计文件,对话框半导体雷竞技电竞平台
- GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体雷竞技电竞平台
- GreenPAK应用笔记,GreenPAK应用说明网页,对话框雷竞技电竞平台
- SLG46620对话框数据表,半导体雷竞技电竞平台
- SLG46531对话框数据表,半导体雷竞技电竞平台
作者:大卫·里德尔
介绍
本应用笔记将解释如何使用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将8位ADC数据传输到GreenPAK5芯片,这在本应用说明第3节中讨论。
Pin8的模拟信号被发送到PGA(可编程增益放大器),其设置如图3所示。需要注意的是,PGA必须手动设置为“Power on”,SPI(串行到并行接口)并行输出(图6 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数字输入 |
|
Reg < 1970 > |
Pin14数字输入 |
|
Reg < 1971 > |
Pin15数字输入 |
|
Reg<1972> |
Pin16数字输入 |
|
Reg<1973> |
Pin17数字输入 |
|
Reg < 1974 > |
Pin18数字输入 |
|
Reg < 1975 > |
Pin19数字输入 |
Arduino Uno代码
下面的代码是为Arduino Uno编写的,它作为我们的I2C主机。该代码启用ADC,等待600µs的有效ADC输出,读取这些ADC输出值,然后禁用ADC以最小化功耗。Arduino Uno每秒钟轮询一次ADC值,并通过Arduino Serial Monitor打印值。有关与I2C接口GreenPAK的更多信息,请参阅一个- 1090或查看产品数据表.
# include < Wire.h >
字节I2C_Byte_Addr = 0xF4;
字节ADC_Pins_Addr = 0xF6;
无效的设置(){
Wire.begin ();
Serial.begin (9600);
writeI2C (I2C_Byte_Addr 0 x01);
}
无效循环(){
writeI2C (I2C_Byte_Addr 0 x00);
delayMicroseconds (600);
uint8_t ADC_value = read2c (ADC_Pins_Addr, 0x00, 0x01);
Serial.print(“值:”);
以ADC_value);
writeI2C (I2C_Byte_Addr 0 x01);
延迟(1000);
}
无效写入2C(字节地址,字节数据){
Wire.beginTransmission (0 x00);
Wire.write (addr);
Wire.write(数据);
Wire.endTransmission ();
}
uint8_t read2c (byte addr, byte slave_addr, byte bytes_to_read) {uint8_t read2c (byte addr, byte slave_addr, byte bytes_to_read) {
uint8_t价值;
Wire.beginTransmission (0 x00);
Wire.write (addr);
Wire.endTransmission ();
电线。requestFrom (slave_addr bytes_to_read);
while(Wire.available()) {value = Wire.read();}
返回值;
}
结论
在本应用笔记中,我们描述了如何使用一对GreenPAK设备来创建i2c可读模拟到数字转换器。我们使用提供的代码在GreenPAK5和Arduino Uno之间进行接口,以启用ADC并通过I2C读取8位数字值。这个简单设计的实现在GreenPAK4和GreenPAK5芯片中留下了许多可用的资源来执行其他任务。