eeprom

Arduino EEPROM write and read array?

半城伤御伤魂 提交于 2021-02-10 18:44:19
问题 When the Arduino is powered up it has an int array stored in the flash, for example: int secretCode[maximumKnocks] = {50, 25, 25, 50, 100, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; When the program button is pressed, it then waits for the piezo to pick up a knock and this array then changes to, for example: int secretCode[maximumKnocks] = {25, 50, 25, 50, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; (based on http://grathio.com/assets/secret_knock_detector.pde) How would I write

I2C原理和实例

最后都变了- 提交于 2020-03-17 07:54:13
I2C总线原理及应用实例 I 2 C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I 2 C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1 I 2 C总线特点 I 2 C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I 2 C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I 2 C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 2 I 2 C总线工作原理 2.1 总线的构成及信号类型 I 2 C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上

I2C总线原理及应用实例

送分小仙女□ 提交于 2020-03-17 07:53:42
I 2 C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I 2 C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1 I 2 C总线特点 I 2 C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I 2 C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I 2 C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 2 I 2 C总线工作原理 2.1 总线的构成及信号类型 I 2 C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作

EEPROM(AT24C02)

拜拜、爱过 提交于 2020-02-27 19:18:28
硬件连接图 引脚图 WP:写保护位,在这里不使用写保护 A0、A1、A2:3个地址位为整个7位地址的后三个地址, 注意 这里的前四位地址已经被固定成1010了即0xa,剩下的三位由这三位控制 按字节写入数据 这里的MSB在前,表示AT24C02是高位先行的 WORD ADDRESS:选择将要写入的地址,也就是从AT24C02的哪一个位置来写,区别于前面的设备地址 当单片机的速度很快,单片机需要等待AT24C02的写入完成,这时单片机再次发送写入信号这个信号包含着AT24C02的地址,相当于询问AT24C02的写入是否完成,当完成时AT24C02的返回值为"0"时,代表上次写入工作已经完成 按页写入 相比按字节写入数据更快,不用每次都询问是否完成。 突发写入:给一次地址,连续写入多次数据 一次可以写入8个字节 读当前地址存的数值 随机指定某一个字节来读取 注意 :这里虽然是读取,但是由于前期需要寻址,所以这里的第一次产生其实起始信号是写入操作 顺序读取 这与前面的 随机指定某一个字节来读取 类似,但是后面顺序读取只要有一直有应答信号产生,AT24C02就会一直顺序发送数据,直到主机产生非应答信号 如果到了最后一位还没有产生应答信号时,AT240C2就会从首地址读取数据发送给单片机 来源: oschina 链接: https://my.oschina.net/u/4306685

SSS1629设计方案|SSS1629中文规格书|USB音频解码方案

人盡茶涼 提交于 2020-02-27 14:17:36
SSS1629/3S1629产品描述: SSS1629/3S1629除了传统 USB 耳麦芯片所具有的基本功能外,SSS1629-A5(3S1629) 还增加了呼吸灯/交战灯功能、 复合按键功能、 单按键 EQ 循环、SPDIF OUT、支持NEC编码红外遥控功能、以及支持外挂WM8988等高端CODEC满足高端耳机解决方案。 二、SSS1629,3S1629的主要功能特点: 1、SSS1629,3S1629耳机输出 2、SSS1629,3S1629麦克风输出 3、SSS1629,3S1629多个功能按键(音量加、音量减、播放静音、录音静音、控制播放器上一首/下一首/暂停/停止、EQ等其它用户自定义按键) 4、SSS1629,3S1629多个状况指示灯(播放指示、录音静音指示、播放静音指示、EQ指示等) 5、SSS1629,3S1629呼吸灯 6、SSS1629,3S1629双路输入 7、SSS1629,3S1629 SPDIF OUT 8、SPDIF OUT 9、SSS1629,3S1629遥控功能 10、SSS1629,3S1629可以添加一个EEPROM修改程序,来实现自定义功能。 三、SSS1629,3S1629在硬件功能方面的提升: 1、 SSS1629/3S1629增加了呼吸灯、交战灯 LED 灯效功能: SSS1629/3S1629交战灯的亮度可以随着音乐的 dB

Atmel studio注意事项

微笑、不失礼 提交于 2020-02-24 13:40:17
注意事项整理如下: 1) MCU必须的头文件 Atmel Studio 6 (以下简称AS6)中统一用 #include <avr/io.h> 。这点很重要,AS6把atmel 所有的单片机头文件全都集成在一起了,以后不必再去分具体的每种芯片的头文件了 2) 汇编嵌入 在AS6 中,你可以直接使用 asm("xxx") 格式.或者用小写的 sei(); 这个其实是很爽的, 最常用的就是中断控制,使用比较方便。 3) 延时函数 在AS6中,只需要加载一个头文件 #include <util/delay.h> ,就可以使用两个标准的延时函数,分别是 _delay_ms(double __ms) 和 _delay_us(double __us),虽然参数为double型, 但可赋整型值。 注意在调用前在 delay.h 前面 定义 #define F_CPU 8000000UL(这里以8000000UL为例,实际系统频率为准),如下图, 这样延时10ms 的函数写为_delay_ms(10),经过试用,只要晶振填写准确,这两个延时函数很准确。 但是不建议修改头文件,而是在项目属性里面去定义这个宏!但是不建议修改头文件,而是在项目属性里面去定义这个宏!但是不建议修改头文件,而是在项目属性里面去定义这个宏! 4) 中断函数 在AS6中,需加载头文件 #include <avr

I2C总线概述及时序总结

。_饼干妹妹 提交于 2020-02-22 18:12:47
I2C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。 I2C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。 SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发) SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。 二.输出级 I2C总线概述及时序 每一个I2C总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。其中输出为漏极开路的场效应管,输入缓冲为一只高输入阻抗的同相器,这种电路具有两个特点: 1)由于SDA、SCL为漏极开路结构(OD),因此它们必须接有上拉电阻,阻值的大小常为 1k8, 4k7 and 10k ,但1k8 时性能最好;当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线"与"关系。 2)引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致,为"时钟同步"和"总线仲裁"提供了硬件基础。 三. 主设备与从设备 系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型

单片机:EEPROM(IIC总线)

早过忘川 提交于 2020-02-12 12:13:24
I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。 2.png 每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。 起始和终止信号 SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。 起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。 接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。 3.png 4.png AT24CXX存储器工作原理 与400KHz I2C总线兼容 1.8到6.0伏工作电压范围 低功耗CMOS技术 写保护功能当WP为高电平时进入写保护状态 页写缓冲器 自定时擦写周期 100万次编程/擦除周期 可保存数据100年 8脚DIP

关于51单片机字符串 EEPROM存储与读取的问题

瘦欲@ 提交于 2020-02-09 01:37:53
# 关于51单片机字符串 EEPROM存储与读取的问题 # 题目如下 <新手小白> 通过串口助手控制 LCD 显示屏,通过 LCD1602 显示并保存在 EEPROM 中,实现 数据的掉电保存(例 如:串口向单片机发送一串英文字符,该字符在 LCD 上显示出 来,若按下 k1 则实现数据的保存,按下 k2 实 现读取上次保存的数据,显示在 1602 上) 效果如下 #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 #include "i2c.h" #include <string.h> typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; sbit k1=P3^1; sbit k2=P3^0; sbit k3=P3^2; //定义按键端口 sbit LCD1602_RS=P2^6; sbit LCD1602_RW=P2^5; sbit LCD1602_E=P2^7; u8 num=0;u8 i,flag; u8 table[16]="I received is: "; u8 table1[16]="My memory is: "; u8 table2[16]; u8 table3

FLASH ROM与EEPROM的区别

本小妞迷上赌 提交于 2020-02-05 09:51:05
EEPROM,虽然也叫“非易失性数据存储器”,但它不能直接参与ALU运算,只是用于掉电不丢失的数据存储。 EEPROM和片内RAM 类似,也属于数据存储器,它的特点是数据掉电可保持,而程序存储器一般指ROM,用于存储用户程序代码。 EEPROM和FLASH基本都是非易失性存储器。EEPROM应属于数据存储器,但是它制造工艺和FLASH更近似。 FLASH是用于存储程序代码的,有些场合也可能用它来保存数据,当然前提是该单片机的FLASH工艺是可以自写的(运行中可擦写),但要注意FLASH的擦写次数通常小于一万次,而且通常FLASH只能按块擦除。EEPROM不能用来存程序,通常单片机的指令寻址不能到这个区域。EEPROM的擦写次数应有百万次,而且可以按字节擦写。 EEPROM在一个PAGE内是可以任意写的,FLSAH则必须先擦除成BLANK,然后再写入,而一般没有单字节擦除的功能,至少一个扇区擦除。 FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位