
引言
目前市场上有许多种单片机用在嵌入式控制系统设计中,这些嵌入式控制系统中的很大一部分都要用到非易失性存储器。由于串行EEPROM具有封装尺寸小,存储容量灵活,对I/O引脚要求低,和低功耗低成本等特点,已成为非易失性存储器的首选。
为了满足市场需求,Microchip Technology已经推出了一整套符合工业标准的串行EEPROM,覆盖了2线式(I2C™)、3线式(Microwire)和SPI通信标准,并提供了不同的存储容量、工作电压范围和封装形式。本应用笔记提供了设计思路和源代码,使得设计人员无需使用硬件串口便可以进行PIC18F1220PICmicro®单片机和Microwire串行EEPROM器件间的通信设计。图1所示为Microwire串行EEPROM器件与PIC18F1220单片机之间通信接口的硬件原理图。原理图给出了两者之间进行通信所必需的连接信号,软件代码的编写是参照上述连接进行的。
作者:Chris Parris
Microchip Technology Inc.
Microwire串行EEPROM与PIC18单片机的接口设计
2006 Microchip Technology Inc.DS00999A_CN第1页
AN999
DS00999A_CN 第2页 2006 Microchip Technology Inc.
固件说明
本固件程序旨在说明Microwire 协议的特性,并给出了起始位、操作码和寻址方式的代码示例,可帮助设计者了解程序的基本组成模块。固件程序实现5项基本操作:•擦/写使能命令•字数据写命令•就绪/忙查询•字数据读命令•
擦/写禁止命令
代码测试使用的是93LC66B 串行EEPROM 。器件存储
器为16位结构,存储容量为256 x 16(4千位)。PIC18F1220单片机的时钟源为一个10MHz 的晶体振荡器。如果要使用更快的时钟,则必须修改程序以匹配相应的时序规范。后面提供了从CS 有效到CS 禁止期间的波形图,这样可以观察到整条指令的执行情况。为了便于说明串行数据,在示波器屏幕截取图下方列出了数据手册中对应的波形图。除非另行说明,本应用笔记中出现的所有数值均为十进制数值。
器件设置
尽管本应用笔记是针对93LC66B 器件的,实际上固件支持所有的93XXXX 系列器件。这种兼容可以通过设置下面的两个常量来实现,它们位于源代码的起始处:•NUMBITS •ORGVAL
NUMBITS 常量用于输出子程序,它代表需要输出的位数。具体来讲,EWEN 和EWDS 两个命令使用该常量来计算需要输出的空数据位数。另外,读写子程序用它来计算地址字中未使用的、需忽略的位数。对于EWEN 命令,该常量必须等于所需的时钟周期数目(93XX66B 器件为11)。ORGVAL 常量代表数据格式,必须被设置为8或者16,具体设置取决于所用器件的结构。93XXXXA 器件使用8位数据格式,而93XXXXB 器件使用16位数据格式。对于93XXXXC 器件,可通过ORG 引脚选择数据字大小(8或16位)。
注:
对于容量相同的器件,8位结构的器件和
16位结构的器件所需时钟周期数目各不相同。因此,如果器件结构发生改变,就必须相应地更新NUMBITS 常量。
2006 Microchip Technology Inc.DS00999A_CN 第3页
AN999
写使能
图2所示为擦除/写使能(EWEN )命令的一个示例。片选信号被置为高电平(有效)后,首先发送起始位和4位操作码(“0011”),之后发送一定数目的空数据位(93XX66B 为6位)。必须在写入前执行EWEN 命令。一旦器件被写使能后,写操作将持续进行,直到擦除/写禁止命令被执行或发生器件掉电才停止。
图 2:擦除/写使能(EWEN )
1x
CS
CLK
DI
0011x
T CSL
•••
AN999
DS00999A_CN 第4页 2006 Microchip Technology Inc.
写命令(起始位、操作码、地址和数据)
图3所示为写命令的一个示例。选中器件之后,发送起始位、操作码和地址字,随即输出数据到器件。片选信号的翻转会触发内部写周期。
内部写周期开始后,通过查询DO 引脚上的就绪/忙信号可以确定写操作何时完成。如果不想查询就绪/忙信号,则需要增加一个6ms 的延时。本文代码使用的是查询就绪/忙信号的方法。
图 3:写命令、地址和数据
CS
CLK
DI
DO
101An •••A0Dx •••D0
Busy Ready
高阻态
高阻态
T WC
T CSL
T CZ
T SV
在写命令成功执行后,通过监视93XXXX器件的DO线看内部写周期是否已被触发,并等待写周期的结束。下面的示波器屏幕截取图显示了选中器件后,DO线保持低电平约3.2 ms,之后DO线被拉高,表明写周期完成。注意93AAXX和93LCXX器件的最大编程周期(T WC)为6 ms,但本例中的写周期仅持续了3.2 ms。这说明写周期通常会比最大编程周期短得多。因此,使用就绪/忙信号查询的方法很有优势,当写入多个字数据到器件时,它可以大大提高操作的效率。
图 4:就绪/忙信号查询
2006 Microchip Technology Inc.DS00999A_CN第5页
AN999
DS00999A_CN 第6页 2006 Microchip Technology Inc.
读命令(起始位、操作码、地址和数据)
图5所示为读命令的一个示例。选中器件后,发送起始位、操作码和字地址。此后器件准备发送数据。单片机必须提供时钟信号,并在每个时钟信号的下降沿读取DO 引脚。本例中读到的数据为0x55AA 。
图 5:读命令
CS
CLK
DI DO
110An •••A0
高阻态
0Dx •••D0Dx •••D0•••Dx D0
AN999擦除/写禁止命令
一旦内部写周期结束后,必须执行写禁止(EWDS)命令(见图6)。该命令由起始位、4位操作码(“0000”)和一定数目的空数据位(93XX66B为6位)组成。在写操作完成后或器件/系统关闭前,必须发送EWDS 命令到器件。
图 6:擦除/写禁止命令
CS
CLK
DI10000x•••x
T CSL
2006 Microchip Technology Inc.DS00999A_CN第7页AN999
结论
本应用笔记讨论了在Microchip PIC18单片机上不使用
硬件串口进行Microwire通信的基本特性。代码的可移
植性非常高,稍作修改就可用在其他PICmicro®单片机
上。使用本文提供的代码,设计人员能够开始着手建立
或简或繁的Microwire程序库。
DS00999A_CN第8页 2006 Microchip Technology Inc.
2006 Microchip Technology Inc.DS00999A_CN 第9
页
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含的英文部分,因为其中提供了有关Microchip 产品性能和使用情况的有用信息。Microchip Technology Inc.及其分公司和相关公司、各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任。建议参考Microchip Technology Inc.的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便利,它们可能由更新之信息所替代。确保应用符合技术规范,是您自身应负的责任。Microchip 对这些信息不作任何明示或暗示、书面或口头、法定或其他形式的声明或担保,包括但不限于针对其使用情况、质量、性能、适销性或特定用途的适用性的声明或担保。Microchip 对因这些信息及使用这些信息而引起的后果不承担任何责任。如果将Microchip 器件用于生命维持和/或生命安全应用,一切风险由买方自负。买方同意在由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障Microchip 免于承担法律责任,并加以赔偿。在Microchip 知识产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、Microchip 徽标、Accuron 、dsPIC 、K EE L OQ 、micro ID 、MPLAB 、PIC 、PICmicro 、PICSTART 、PRO MATE 、PowerSmart 、rfPIC 和
SmartShunt 均为Microchip Technology Inc .在美国和其他国家或地区的注册商标。
AmpLab 、FilterLab 、Migratable Memory 、MXDEV 、
MXLAB 、SEEVAL 、SmartSensor 和The Embedded Control Solutions Company 均为Microchip Technology Inc .在美国的注册商标。
Analog-for-the-Digital Age 、Application Maestro 、dsPICDEM 、dsPICDEM.net 、dsPICworks 、ECAN 、ECONOMONITOR 、FanSense 、FlexROM 、fuzzyLAB 、In-Circuit Serial Programming 、ICSP 、ICEPIC 、Linear Active Thermistor 、MPASM 、MPLIB 、MPLINK 、MPSIM 、PICkit 、PICDEM 、PICDEM.net 、PICLAB 、PICtail 、PowerCal 、PowerInfo 、PowerMate 、PowerTool 、REAL ICE 、rfLAB 、rfPICDEM 、Select Mode 、Smart Serial 、SmartTel 、Total Endurance 、UNI/O 、WiperLock 和Zena 均为Microchip Technology Inc .在美国和其他国家或地区的商标。
SQTP 是Microchip Technology Inc .在美国的服务标记。在此提及的所有其他商标均为各持有公司所有。© 2006, Microchip Technology Inc .版权所有。
请注意以下有关Microchip 器件代码保护功能的要点:•Microchip 的产品均达到Microchip 数据手册中所述的技术指标。
•Microchip 确信:在正常使用的情况下,Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
•
目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以Microchip 数据手册中规定的操作规范来使用Microchip 产品的。这样做的人极可能侵犯了知识产权。•Microchip 愿与那些注重代码完整性的客户合作。
•
Microchip 或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是“牢不可破”的。
代码保护功能处于持续发展中。Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏Microchip 代码保护功能的行为均可视为违反了《数字器件千年版权法案(Digital Millennium Copyright Act )》。如果这种行为导致他人在未经授权的情况下,能访问您的软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
Microchip 位于美国亚利桑那州Chandler 和Tempe 及位于加利福尼亚州Mountain View 的全球总部、设计中心和晶圆生产厂均于2003年10月通过了ISO/TS-16949:2002 质量体系认证。公司在PICmicro ® 8位单片机、K EE L OQ ®跳码器件、串行EEPROM 、单片机外设、非易失性存储器和模拟产品方面的质量体系流程均符合ISO/TS-16949:2002。此外,Microchip 在开发系统的设计和生产方面的质量体系也已通过了ISO 9001:2000 认证。
公司总部Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 1-480-792-7200 Fax: 1-480-792-7277
技术支持:
http://support.microchip.com 网址:www.microchip.com
亚特兰大Atlanta Alpharetta, GA
Tel: 1-770-0-0034 Fax: 1-770-0-0307
波士顿Boston Westborough, MA
Tel: 1-774-760-0087
Fax: 1-774-760-0088
芝加哥Chicago
Itasca, IL
Tel: 1-630-285-0071
Fax: 1-630-285-0075
达拉斯Dallas
Addison, TX
Tel: 1-972-818-7423 Fax: 1-972-818-2924
底特律Detroit
Farmington Hills, MI
Tel: 1-248-538-2250
Fax: 1-248-538-2260
科科莫Kokomo Kokomo, IN
Tel: 1-765-8-8360
Fax: 1-765-8-8387
洛杉矶Los Angeles Mission Viejo, CA
Tel: 1-949-462-9523 Fax: 1-949-462-9608
圣何塞San Jose Mountain View, CA
Tel: 1-650-215-1444
Fax: 1-650-961-0286
加拿大多伦多Toronto Mississauga, Ontario, Canada
Tel: 1-905-673-0699 Fax: 1-905-673-6509亚太地区
中国-北京
Tel: 86-10-8528-2100
Fax: 86-10-8528-2104
中国-成都
Tel: 86-28-8676-6200
Fax: 86-28-8676-6599
中国-福州
Tel: 86-591-8750-3506
Fax: 86-591-8750-3521
中国-特别行政区
Tel: 852-2401-1200
Fax: 852-2401-3431
中国-青岛
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
中国-上海
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
中国-沈阳
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
中国-深圳
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
中国-顺德
T el: 86-757-2839-5507
Fax: 86-757-2839-5571
中国-武汉
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
中国-西安
Tel: 86-29-8833-7250
Fax: 86-29-8833-7256
地区-高雄
Tel: 886-7-536-4818
Fax: 886-7-536-4803
地区-台北
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
地区-新竹
Tel: 886-3-572-9526
Fax: 886-3-572-59
亚太地区
澳大利亚Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
印度India - Bangalore
Tel: 91-80-4182-8400
Fax: 91-80-4182-8422
印度India - New Delhi
Tel: 91-11-5160-8631
Fax: 91-11-5160-8632
印度India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
日本Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
韩国Korea - Gumi
Tel: 82-54-473-4301
Fax: 82-54-473-4302
韩国Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 或
82-2-558-5934
马来西亚Malaysia - Penang
Tel: 60-4-6-8870
Fax: 60-4-6-5086
菲律宾Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
新加坡Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
泰国Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
欧洲
奥地利Austria - Wels
Tel: 43-7242-2244-399
Fax: 43-7242-2244-393
丹麦Denmark-Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
法国France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
德国Germany - Munich
Tel: 49--627-144-0
Fax: 49--627-144-44
意大利Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
荷兰Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
西班牙Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
英国UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820全球销售及服务网点
02/16/06
DS00999A_CN第10页 2006 Microchip Technology Inc.
