AT24CXX系列芯片
ba_wang_mao
目标:(1)、熟练使用FreeRTOS嵌入式操作系统编写单片机程序。(2)、初步熟悉C#和MySQL编写比较简单可靠的C/S架构的TCP通信程序及B/S架构的WEB SERVER程序。(3)、简单熟悉阿里云物联网开发技术(单片机端SDK开发和上位机端SDK开发)。
展开
-
基于stm32的I2C总线通讯简介及使用操作(附代码)
1、I2C总线简介I2C是两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。.转载 2020-11-17 11:02:01 · 4170 阅读 · 0 评论 -
STM32标准IIC驱动
IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。也是目前很流行的通讯总线,使用IIC总线做产品能够很大程度上降低PCB的布线难度,以及布线数量,所以很多公司都优先选择IIC做产品,它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。I2C 总线在传送数据过程中共..转载 2020-09-08 21:49:56 · 1035 阅读 · 1 评论 -
I2C通信基本原理及其实现
I2C是一种总线式结构,它只需要SCL时钟信号线与SDA数据线,两根线就能将连接与总线上的设备实现数据通信,由于它的简便的构造设计,于是成为一种较为常用的通信方式。 由于I2C采用的是主从式通信方式,所以,通信的过程完全由主设备仲裁。在通信之前,必须由主设备发送一个起始信号,决定数据是否可以开始传送,并且在结束通信时,必须再由主设备发送一个结束信号,以表示通信已经结束。因为,通信之前,主设备需要发送一个起始信号,所以,先讲一下起始信号。通过上面的图就可以知道(上图中的第一个波形图是SDA数...转载 2020-09-08 21:06:21 · 3237 阅读 · 0 评论 -
STM32F407单片机通用24CXXX读写程序(KEIL),兼容24C系列存储器(24C01到24C512),支持存储器任意地址跨页连续读写多个页
1.AT24CXXX容量 AT24C01,AT24C02,AT24C04,AT24C08,AT24C16,AT24C32,AT24C64,AT24C128,AT24C256…不同的xxx代表不同的容量。AT24CXXX bit容量 Byte容量 AT24C01 1Kbit 128Byte AT24C02 2Kbit 256Byte AT24C04 4Kbit 512Byte AT24C08 8Kbit 1024Byte原创 2020-08-31 12:14:24 · 9089 阅读 · 10 评论 -
通用24CXXX读写程序(GCC),兼容24C系列存储器(24C01到24C1024),支持跨器件跨页读写,支持连续
读写24CXXX的程序,兼容24C系列存储器(24C01到24C1024),支持多页读写,最多连续写32K字节。修改了程序,使得其能运行所有24C系列存储器(24C01到24C1024),我使用Proteus仿真了24C512,没有发现问题,欢迎大家测试,并提出使用意见和程序BUG!程序有注释应该可以比较容易的看懂!使用说明:建立工程后,只需要修改24CXXX.h和IIC.h中的宏24CXXX.h//接口定义及操作#define _24CXXX_WP_DDR .转载 2020-08-11 12:03:26 · 2619 阅读 · 0 评论 -
单片机控制IIC协议EEPROM芯片24C512之模块化编程(持续更新中)
这里将我编写的STC12C5A60S2单片机控制EEPROM芯片AT24C512的程序共享一下,是希望前辈们给予斧正 。(补充:以下代码只需要修改.h文件中含有 “选择” 字样的部分,就可以达到复用的效果,对于T24C512的数据“格式化”,所需要的时间大约是10s左右,需耐心等待)对于lcd2004部分,请参考《单片机控制2004A液晶屏之模块化编程》点击进入程序中只需要关注中文注释部分测试程序:/*################main.c start#########.转载 2020-08-29 21:11:09 · 1738 阅读 · 0 评论 -
基于AVR单片机的AT24C01-512eeprom读写程序
针对AT24Cxx系列eeprom存储器,写的时候有越页功能,不用考虑页边界,I2C用软件模拟实现,完善中…#define SDA1() PORTC|=1< #define SDA0() PORTC&=~(1< #define SDAout() DDRC|=1< #define SDAin() DDRC&=~(1< #define RSDA() PINC&(1< #define SCL1() PORTC|=1< #define S转载 2020-08-29 20:27:30 · 1198 阅读 · 0 评论 -
AT24C512地址特性
今天总算实现了EEPROM的任意地址正确读写。驱动还是原来的驱动,只是把一些延迟什么的改短了一下,避免中断影响过多。还有就是正确认识了AT24C512的地址特性:1,AT24C512的一页为128字节,在写数据的时候,如果一个写周期内字节数超过128个,会在当前页地址内循环写数据,也就是说,超过128字节的数据会把本页开始写的数据覆盖掉。所以,写EEPROM的时候,必须判断一次写入的字节数,然后分页写入。2,一次读一页数据时,如果读取时候的起始地址不是整页地址的话,读写程序只会把本页剩余的部分读出来转载 2020-08-28 22:54:46 · 2692 阅读 · 0 评论 -
AT24C512驱动调试中碰到的坑
测试AT24C512已经两周,期间碰到个各种坑进行总结。1,第五字符不正确问题。后来发现是读数据错误,使用地址偏移后,可以读出第五个数,但是新的第五个数打印输出继续错误。而使用数组直接赋值时,测试发现串口打印程序没有问题。这个坑现在已经丢失,无法重现了。2,八字符限制问题。昨天又碰到一个新的问题,写入16个字符,然后读出时,前八个和后五个都是正确的,但是第9、10、11这三位输出结果是0。使用地址偏移,地址增加两位进行测试,变成了7、8、9位输出结果为0,证明是写入错误,数据读取还是正确的。3,转载 2020-08-28 22:47:43 · 1385 阅读 · 0 评论 -
EEPROM(AT24C512)调试总结
这两周一直在测试AT24C512,之前用的EEPROM是AT24C16,与其相比,AT24C512有一些改动: 1,寻址空间变大,数据地址由8位变为16位,因此写入时序需要加入高、低位地址写入; 2,C16是单地址操作,不能并联使用,C512有两位地址位,因此需要写入器件地址; 3,还有就是C16是铁电,而C512是EEPROM,这点儿改动,让我苦不堪言…….迄今为止,已经发现的各类问题有: 1,写入等待问题。EEPROM的写入速度...转载 2020-08-28 22:46:30 · 4601 阅读 · 0 评论 -
IIC总线时序
数据的有效性SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只 有在SCL 线的时钟信号是低电平时才能改变 。起始和停止条件SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态I2C总线数据传输发送到SDA 线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制。...转载 2020-08-25 21:03:14 · 570 阅读 · 0 评论 -
AT24CXX系列芯片在STM32F103单片机下的读写程序
本程序取自正点原子开发板,应用于STM32F103单片机,适用AT24C01,AT24C02,AT24C04,AT24C08,AT24C16,AT24C32,AT24C64,AT24C128,AT24C256,AT24C512系列I2C存储芯片。一、sys.h#ifndef __SYS_H#define __SYS_H #include "stm32f10x.h"//////////////////////////////////////////////////////////////.原创 2020-08-21 11:07:31 · 5357 阅读 · 0 评论