[国嵌攻略][152][I2C总线介绍]】的更多相关文章

IIC电气特性 I2C(inter intergrated circuit)总线是由philps公司开发的两线式串行总线,用于连接微控制器及其外围设备. I2C总线只有两根双向信号线: SDA:serial date line   数据线 SCL:serial clock line   时钟线 总线寻址 I2C总线规定:从设备采用7位的地址.D7-D1:从设备地址.D0:数据传输方向,为0时表示主设备向从设备写入数据,为1时表示主设备从从设备读取数据.主设备发送地址时,总线上的每个从设备都将这7…
USB发展史 USB(universal serial bus),通用串行总线,是一种外部总线标准.用于规范电脑与外部设备的连接和通讯.USB是在1994年底由英特尔.康柏.IBM.Microsoft等多家公司联合提出的.自1996年堆出后,已经成功替代了串口和并口.成为当今个人电脑和大量智能设备的必备接口之一. USB1.0出现在1996年,速度只有1.5Mbps.1998年升级为USB1.1,速度也提升到了12Mbps,称之为full speed. USB2.0规范是由USB1.1规范演变而…
SPI总线架构 SPI(serial peripheral interface)串行外设接口,是一种高速,全双工,同步的通信总线.采用主从模式(master slave)架构,支持多个slave,一般仅支持一个master. SPI信号线 SPI接口共有4根信号线,分别是:设备选择线(SS).时钟线(SCK).串行输出数据线(MOSI),串行输入数据线(MISO). 数据传输过程 主节点通过MOSI线输出数据,从节点在SIMO处从主节点读取数据.同时也在通过SOMI输出MSB(最高位),主节点会…
eeprom简介 eeprom电可擦除可编程只读存储器,是一种类似于flash的固态存储器,但是与flash相比又存在一些区别: 1.eeprom可以按位擦写,而flash只能大片擦除. 2.eeprom一般容量都不大,一般都在64kb以下. I2C初始化 在ARM内部有I2C控制器,可以对I2C器件进行访问.所以I2C初始化也就是对I2C控制器初始化. 1.如果需要,写入处理器的I2C从设备地址. 2.设置IICCON寄存器 2.1.允许中断 2.2.设置SCL周期 3.设置IICSTAT允许…
AT24C08的驱动在Linux内核中已经提供,在/drivers/misc/eeprom/at24.c文件中.在对应的probe函数中有一个创建/sys/.../eeprom文件的函数,应用程序通过调用/sys/.../eeprom设备文件来对设备进行读写操作. 移植AT24C08驱动 1.修改内核注册eeprom设备 在kernel/linux-mini2440/arch/arm/mach-s3c2440.c中的machine_init下注册IIC设备. mach-mini2440.c st…
用户态驱动模型 用户态驱动模型首先是一个应用程序,其次是在这个用户程序中通过内核调用来驱动设备. IIC通用驱动代码 IIC通用驱动程序的代码在/drivers/i2c/i2c-dev.c中.一次读操作或者一次写操作就是一条消息. EEPROM用户态驱动 IIC通用设备对应/dev/i2c-0设备文件. 1.打开通用设备驱动 2.构造写数据到eeprom的消息 3.使用ioctl写入数据 4.构造从eeprom读数据的消息 5.使用ioctl读出数据 6.关闭设备 配置IIC驱动 make me…
IIC子系统架构 device driver层: 1.device driver,由用户开发. 2.i2c-dev由内核实现,但是需要配合应用模式驱动才能使用. i2c core层: 1.总线驱动,也叫控制器驱动.实现对i2c控制器的操作方法. 2.i2c核心.关联设备驱动和总线驱动,提供设备的注册和注销方法. I2C控制器驱动 开发I2C设备驱动的方法有两种,一种是自己写驱动,另一种是通过通用驱动来编写用户模式驱动.i2c_adapter用来描述i2c设备.i2c_algorithm用来封装传…
移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x48000014) (0x0<<13)|(0x0<<11)|(0x7<<8)|(0x1<<6)|(0x0<<4)|(0x0<<2)|(0x0<<0) 2.初始化中断 中断源EIN7 GPFCON GPF7:10 设置触发方式(高电平触…
初始化DMA控制器 1.设置源地址 DISRC(0x4B000000)设置为发送数据的源地址,DISRCC0(0x4B0000004)设置为内存AHB总线,目的地址增长 2.设置目的地址 DIDST0(0x4B00000C)设置为发送数据的目的地址,DIDSTC0设置中断模式为数据减为0,设置串口APH总线,目的地址不增长 3.设置DMA控制寄存器 DCON0(0x4B000010)设置请求源为中断(26-24位),设置DMA请求源为硬件(23位),关闭重载(22位),设置发送数据长度(19-0…
[一跃进入C大门] 跳转方式 1.相对跳转:b或bl指令,通过计算两个地址之间的差值来给pc赋值相对跳转 2.绝对跳转:ldr指令,通过给pc直接赋值,完成绝对跳转 代码编写 1.在汇编代码中直接使用绝对跳转,跳转到C代码中,然后在C代码中通过点亮LED来验证 2.210在跳转到C程序时,需要注意复制代码时,要跳过校验信息.要不然跳转到内存时,前16个字节为头信息,整个起始地址向后偏移了16个字节,就找不到正确地址了 [C与汇编混合编程] 为什么需要C与汇编混合编程 1.汇编语言:执行效率高,编…