1,I2C总线可以扩展为异步串口嘛

这个问题很简单嘛,只要用四川维肯的串口扩展芯片就可以了。你要具体的文件,你可以看看他们的官方网站。www.VKIC.COM合作愉快!

I2C总线可以扩展为异步串口嘛

2,i2c总线上最多可以挂多少个从器件

有IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件。I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C 总线支持任何IC 生产过程(CMOS、双极性)。通过串行数据(SDA)线和串行时钟 (SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器——MCU、LCD 驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。LCD 驱动器只能作为接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表1)。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。

i2c总线上最多可以挂多少个从器件

3,树莓派python支持i2c吗

树莓派的GPIO端口数量有限,可通过IO扩展芯片增加GPIO的数量,使得树莓派可以适应更多的应用。PCF8574为一款通过I2C总线扩展IO的芯片,单个PCF8574可扩展8个IO,一个I2C总线最多可挂载8个PCF8574,所以树莓派最多可扩展64个IO。树莓派扩展功能的开发方法有很多,例如wiringPi和bcm2835 C library都提供I2C API函数。如果使用python+SMBUS库开发的话,你会发现Linux应用开发原来如此简单。(注意SMBUS和I2C存在区别与联系,在本文中两者是相等的概念)2.相关博文 【树莓派学习笔记——I2C设备载入和速率设置】 【树莓派学习笔记——I2C Tools 学习笔记】 【树莓派学习笔记——I2C PCF8574 BCM2835 Library】使用BCM2835 Library实现本文相同的内容 【树莓派学习笔记——I2C PCF8574 SysFs方式】使用SysFS方式实现本文相同的内容3.PCF8574使用简述PCF8574的采用7位I2C地址,7位I2C地址中的低3位从高到低分别为A2 A1和A0,该3位为地址选择位,若地址选择全部接GND,那么PCF8574的I2C从机地址为0x20。图1为PCF8574的基本信息,左侧为芯片内部结构示意图,其中A2 A1和A0决定从机地址而从机地址直接影响I2C总线控制器,右侧上部为PCF8574引脚图,右侧下部为I2C从机地址组成示意图,从机地址的高4位为0100,该4位数字固定不变。图1 PCF8574基本信息 请注意I2C 7位从机地址和I2C 读控制字或i2C写控制器存在联系与区别,对于7位从机地址为0x20的PCF8574而言,读控制字为0x41,写控制字为0x40。若使用GPIO通过软件法模拟I2C时序时,通常把写控制字0x40定义为I2C从机地址,软件模拟时的I2C地址(0x40)和I2C 7位从机地址(0x41)存在区别。PCF8574内部含有8个准双向IO,对PCF8574进行一次写操作可修改IO口的输出状态,对PCF8574进行一次读操作可获取IO口的输入状态。I2C总线的操作较为复杂,各芯片之间的差异较大,例如BH1750、AT24C04和ADXL345虽然均使用I2C接口,但是细节之处存在差异较大。图2 PCF8574读写时序4.代码实现——python【安装python smbus】 sudo apt-get install python-smbus 新建一个名为pcf8574.py的文件[python] view plain copy#!/usr/bin/env python # -*- coding: utf-8 -*- import smbus import time # 打开 /dev/i2c-1 bus = smbus.SMBus(1) while True: for i in range(0,4): # 向PCF8574写入一个字节 bus.write_byte( 0x20 , (1<<i) ) # 延时100ms time.sleep(0.1) 【代码详解】 【1】#!/usr/bin/env python 定义python解析脚本的绝对路径。【2】# -*- coding: utf-8 -*- py文件为utf-8格式,否则无法写入中文注释。【3】import smbus 导入smbus模块。【4】bus = smbus.SMBus(1) 在树莓派版本2中,I2C设备位于I2C-1,所以此处的编号为1【5】bus.write_byte( 0x20 , (1<<i) ) 向PCF8574写入一个字节,注意PCF8574和其他I2C芯片不同,该芯片没有寄存器,发送写控制字之后可直接设置IO口输出状态。【执行程序】 进入pcf8574.py所在目录,输入以下指令 sudo python pcf8574.py【运行结果】图3 运行结果5.参考资料【python SMBUS GitHub】python封装SMBUS操作函数具体代码,值得阅读。

树莓派python支持i2c吗


文章TAG:i2c扩展最多可以扩展多少个扩展  最多  可以  
下一篇