首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
i2c可以写多少字节
2024-11-02
IIC时序和24C02读写字节时序
一年前刚学51单片机时,接触到了IIC时序和用IIC通信读写AT24C02的学习历程.那时刚刚大一,对数据线时钟线等概念不是很清楚,也没有分清IIC通信的底层时序和写24c02的时序为什么不同. 借着学stm32的机会,再简单整理一下现在对这两种时序的认识. ---IIC时序是一种底层的通信协议,它规定了数据0,1写入的有效性,起始终止等 ---24C02的各种读写时序是该外设的读写规则,它规定了先写XX地址,再写XX地址,再写XX数据……这些顺序.它的各部分内容的写入读出都以IIC为基础 简单
STM32写选项字节(option bytes)的正确姿势
STM32 的 Flash information block 部分,包含有特殊的选项字节,可以用于系统配置等信息, 其中还有两个有效字节(实际四个字节,两个是校验字节)的用户自定义数据字节. 在尝试写入用户自定义字节时,我遇到了写入错误,但是比对用户手册,已经完成了应有的步骤. 后来通过对比系统库的 example 中的 Flash 相关例子,看到正确的写字节方式,还应该包含有“擦除”和对原有inform 的“复制”和再“写入”,代码如下. HAL_FLASH_Unlock(): HAL_FL
51单片机实现对24C02进行页写、顺序读取并显示验证
//************************************************************************************* //**程序名称:51单片机实现对24C02进行页写.顺序读取并显示验证 //**编写人:**** //**修改人:**** //**程序目的:熟悉I2C总线协议,实现51模拟I2C时序和24C02通信 //**功能描述:51单片机将8个字节数据写入24C02的一页中,然后顺序读出,每隔1秒送P0口LED显示 //**其他
常用位操作,写8位 12864串口模式 I2C 1302 18B20
/*以1302为例*/ void DS1302InputByte(unsigned char d) //实时时钟写入一字节(内部函数) { unsigned char i; ACC = d; for(i=8; i>0; i--) { DS1302_IO = ACC0; //相当于汇编中的 RRC DS1302_CLK = 1; //先写底位 DS1302_CLK = 0;
I2C子系统之驱动SSD1306 OLED
理解I2C设备驱动框架,主要围绕四个结构体去分析就容易了. struct i2c_algorithm:提供I2C协议的实现的操作,如:master_xfer实现数据收发的最基本方法. struct i2c_adapter:每一个i2c_adapter都代表一个I2C物理接口,一个cpu可以有多个I2C接口(i2c_adapter),i2c_algorithm就是为i2c_adapter提供I2C协议的实现.每增加一个i2c接口,即是向i2c_bus_type (i2c_core.c)注册一个i2
S5PV210之GPIO模拟I2c时序之pcf8591与at24xx linux3.0.8驱动
目录:一. 说明 二. 驱动程序说明及问题 三. 案例一 四. 案例二 一. 说明 mini210开发板上带了at24c08, 看了linux内核自带的at24.c的驱动程序,编译下载到看发板,读写都行:通过增加一些调试信息,对linux i2c驱动其中的编写方法之一有了一定了解,在我的另外一篇博文有详细说明.但同时对在linux下GPIO模拟i2c产生了兴趣,于是就写这篇博文来记录驱动编写过程中遇到的问题.如果想了解了i2c时序,请google或百度一下. 本篇博文通过misc驱动
i2c协议简要分析(转载)
声明 本文大部分内容为转载,因此标定为转载 源地址: http://www.cnblogs.com/zym0805/archive/2011/07/31/2122890.html http://blog.csdn.net/lxl123/article/details/22884719 I2C协议 简介 I2C是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:SerialClock(简称SCL)和SerialData(简称SDA).I2C是总线结构,1个Master,1个或多个S
(原创) 巩固理解I2C协议(MCU,经验)
题外话:这几天天气突然转冷了.今天已是11月23日了,查查黄历,昨天(11月22日)刚好是小雪,一夜温度骤降,果然老祖先的经验有灵验!冬天来了,还是多加加衣服,注意保暖! 1.Abstract 前些天借用他人的一块MCS-51开发板来做实验,不想这块板子与我刚开始接触MCS-51的板子一样,实在是太亲切了!现在回过来看这块板子,功能算不上是太强大,麻雀虽小五脏俱全,该有的功能都有.于是又忍不住捣腾这块板子,倒不是写小程序一块,看着电路图,到处连线测试一下功能,从中体会下最初的学习
linux i2c 设备节点读写
最近需要操作24C02,封装了一下函数方便以后操作. 参考链接: https://my.oschina.net/handawei/blog/68526 http://blog.csdn.net/onetwothreef/article/details/49488443 源码: #include <stdio.h> #include <linux/i2c.h> #include <linux/i2c-dev.h> #include <sys/stat.h> #
【转】使用Beaglebone Black的I2C (二)——使用C语言和i2c-dev驱动
在本博客的<使用Beaglebone Black的I2C(一)>中,介绍了BBB上无需编程对i2c总线进行读写操作的方法,本文将介绍如何在c语言程序中使用i2c-dev驱动来操作i2c设备. 以下将还以前文中使用过的L3G4200D三轴陀螺仪为例. BBB自带了i2c-dev驱动,它使用ioctl方法对i2c设备进行配置,然后利用read().write()函数就可以操作i2c设备了. 要操作某个i2c设备,首先要确定它的地址.按照我在前文中的说法,通常i2cdetect显示的器件地址是由“7
通过I2C总线向EEPROM中写入数据,记录开机次数
没买板子之前,用protues画过电路图,实现了通过i2c总线向EEPROM中写入和读出数据. 今天,在自己买的板子上面写关于i2c总线的程序,有个地方忘了延时,调程序的时候很蛋疼.下面说说我对I2c总线的理解 i2c总线共有两根线,一根是时钟信号线,一根是数据线.这里我只实现了,指定EEPROM片内地址,并向其中写入一个字节.从EEPROM中指定地址读出一个字节. 写入过程 1.需要发一个启动信号 2.发送EEPROM设备地址 3.发送EEPROM片内地址 4.发送你要写入的数据 5.发送结束
用F340 GPIO做I2C
在和Qinheng开发小尺寸点灯治具中,F340和FPGA采用I2C通信,其中F340作为I2C的主机,I2C端口用自己的GPIO编写,总结遇到的问题及注意事项: 1. F340端口及上拉电阻设置: 要配成SCL/SDA的端口必须设置成opendrain结构,本例中设置如下: sbitSCL = P0^; sbit SDA = P0^; void PORT_Init(void) { P0MDOUT = 0x00; // P0 is open-drain XBR1= 0x40; // Enabl
I2C总线之(三)---以C语言理解IIC
为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形: 如下图所示的写操作的时序图: 读时序的理解同理.对于时序不理解的朋友请参考“I2C总线之(二)---时序” 完整的程序如下: #include<reg51.h> #define uchar unsigned char #define uint unsigned int #define write_ADD 0xa0 #define read_ADD 0xa1 uchar a; sbit SDA=P2^; sbit SCL=
MSP430的IO口模拟I2C总线对AT24C25进行读写程序
功能: 实现MSP430口线模拟I2C总线协议与24C04通信. ** 描述: 主系统工作时钟为12MHz,I2C工作时钟频率为1MHz.给某地址写入一个数据 ** 再读出来,如写入前和读出后的数据一致,则P1.0输出高电平,否则输出低电 ** 平.
I2C的主机从机模拟
好久没有在csdn上面做笔记了,主要是最近琐碎的事情太多,乱七八糟的事情让自己不能坚定下来做自己喜欢做的事情.上了星期花了两天的时间模拟了I2C的主机和从机通信.一般都是主机模拟,从机直接用硬件I2C的,但是由于所谓的项目里面没有I2C,但是要用到I2C了,因此就不得不用I/O口去模拟I2C了. 1.I2C协议 I2C的协议相信网上已经有很多资料了,这里就不做详细介绍,只做简单说明即可. a.I2C协议有两根总线:SDA和SCL.SDA为数据线,而SCL就是主机的时钟线. b.I2C是主机控制从
I2C的读写操作实验
[实验任务] 利用24C08断电以后存储的数据不消失的特点,可以做一个断电保护装置.首先利用单片机做一个0-99秒的自动计时器.然后随机关断电源,在 通电以后计时器接着断电前的状态继续计时. [实验原理] 首先简单的说明以下I2C总线,I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL.在 I2C总线上传送的一个数据字节由八位组成.总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位.数据传送首先传送最高位(MSB),数据传送按图1所示
总线接口与计算机通信(一)I2C总线
1. I2C总线的基本概念 1)发送器(Transmitter):发送数据到总线的器件 2)接收器(Receiver):从总线接收数据的器件 3)主机(Master):初始化发送.产生时钟信号和终止发送的器件 4)从机(Slave):被主机寻址的器件 2. I2C总线的信号传输 1) 3种速率可选择 标准模式100kbps.快速模式400kbps.最高速率3.4Mbps2) 具有特定的传输起始.停止条件 a) 起始条件:当SCL 处于高电平期间时,SDA
I2C分析三
1 引言 IIC (Inter-Integrated Circuit1总线是一种由Philips公司开发的2线式串行总线,用于连接微控制器及其外围设备.它是同步通信的一种特殊形式,具有接口线少.控制方式简单.器件封装形式小.通信速率较高等优点.在主从通信中,可有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象.笔者在开发基于MPC8250的嵌入式Linux系统的过程中发现I2C总线在嵌入式系统中应用广泛,I2C总线控制器的类型比较多,对系统提供的操作接口差别也很大.与I2C总线相连
I2C操作笔记——以 AT24C04为例
1.前言 对于大多数project师而言,I2C永远是一个头疼的问题.相比UART和SPI而言,I2C的时序要复杂一些,I2C组合变化也丰富一些.在这里以AT24C04为例说明I2C使用过程中的一些注意点. 2.AT24C04操作示意图 图 AT24C04操作示意图 示意图说明:示意图分阐述了4种不同的操作方式,比如写单个存储单元,写多个存储单元,读单个存储单元和写单个存储单元.对于单个操作而言,上部为MCU通过I2C输出的相关指令,下部为I2C设备的响应.比如写单个存储单元操作时,MC
硬件和软件兼容i2c协议的24Cxx系列EEPROM存储器(转)
源:硬件和软件兼容i2c协议的24Cxx系列EEPROM存储器 硬件上由于24c01的A0A1A2管脚不允许悬空,故暂时的想法是兼容24c02 ---24c16 使用一个dip8封装的芯片插座,A0 A1 A2管脚都悬空即可,换芯片方便 软件上24c02地址只有8位,而其他型号是大于8位的,故地址参数使用16位 256个字节作为一个大页,即largePage,测试芯片24c04空间有512字节 上代码,求测试和讨论 #include "MY51.H" //转载请注明:http://xo
AT24 I2C EEPROM解析及测试
关键词:AT24.I2C.nvmem.EEPROM. 1. AT24C介绍 AT24C是一款采用I2C通信的EEPROM,相关驱动涉及到I2C和nvmem. I2C是读写数据的通道,nvmem将AT24C注册为nvmem设备. 2.源码分析 2.1 DTS at24是挂在i2c总线下的设备,硬件接到哪个i2c,DTS中也需要对应修改. 其中需要注意的是,status不能是disabled,pinctrl需要配置. 其中at24的campatible需要和代码对应. i2c3 { compatib
热门专题
qualify sql用法
v-loading全屏
arcgis空间参考属性在哪里
虚拟机硬盘ide怎么变成scsi了
历史上与唐诗并称双雄
springboot编程思想pdf
car包qqPlot() R语言
vcenter虚拟机怎么挂载威联通
matlab2016b安装教程
hsv和rgb的转换公式
eclipse android Button属性渐变
pyltp jieba 区别
saiku 自动登陆
jquery post 实现页面跳转
thingsboard技术栈
android APP空闲一段时间后被清理
smaba 开防火墙
matlab低通数字函数
iptables 查询端口
k8s mysql 持久化 var lib mysql