You are on page 1of 10

AN993

Interfacing Microwire Serial EEPROMs to PIC16 Devices


This application note provides assistance and source
Author: Chris Parris
code to ease the design process of interfacing a
Microchip Technology Inc.
Microchip PIC16F54 PICmicro® microcontroller to a
Microchip Microwire serial EEPROM, without the use of
a hardware serial port.
INTRODUCTION
Figure 1 depicts the hardware schematic for the inter-
There are many different microcontrollers on the face between Microchip’s Microwire devices and the
market today that are being used in embedded control Microchip PIC16F54 microcontroller. The schematic
applications. Many of these embedded control systems shows the necessary connections to interface the
need nonvolatile memory. Because of their small foot- microcontroller and the serial EEPROM (the firmware
print, byte level flexibility, low I/O pin requirement, low was written assuming these connections).
power consumption and low cost, serial EEPROMs are
a popular choice for nonvolatile storage.
Microchip Technology has addressed these needs by
offering a full line of serial EEPROMs covering industry
standard serial communication protocols for two-wire
(I2C™), three-wire (Microwire), and SPI™ communica-
tion. Serial EEPROM devices are available in a variety
of densities, operational voltage ranges, and packaging
options.

FIGURE 1: CIRCUIT FOR PIC16F54 AND 93 SERIES (MICROWIRE) DEVICE


PDIP (300 MIL) RA2 1 18 RA1
RA3 2 17 RA0
T0CKI 3 16 OSC1/CLKIN
PIC16F54

MCLR/VPP 4 15 OSC2/CLKOUT
VSS 5 14 VDD
RB0 6 13 RB7/PGD
RB1 7 12 RB6/PGC
RB2 8 11 RB5
RB3 9 10 RB4

Vcc

CS(1) 1 8 Vcc 10K


93XXXXX

CLK 2 7 PE(2)
10K

DI 3 6 ORG(3)

DO 4 5 Vss

Note 1: CS should always have a pull-down resistor to protect against data corruption during power-up or power-down of the
microcontroller.
2: PE pin available only on 93XX76X and 93XX86X devices. Pull-up resistor suggested ~10K ohm.
3: ORG pin available only on 93XXXXC devices.

© 2005 Microchip Technology Inc. DS00993A-page 1


AN993
FIRMWARE DESCRIPTION
The purpose of the program is to show individual
features of the Microwire protocol and give code
samples of the Start bit, opcodes and addressing
schemes so that the basic building blocks of a program
can be shown. The firmware performs five basic
operations:
• Erase/Write Enable command
• Write command for one word of data
• Ready/Busy polling
• Read command for one word of data
• Erase/Write Disable command
The code was tested using the 93LC66B serial
EEPROM. This device features 256 x 16 (4 Kbit) of
memory and 16-bit organization. A 10 MHz crystal
oscillator is used to clock the PIC16F54. If a faster
clock is used, the code must be modified to ensure all
timing specs are met. The waveforms provided are
shown from CS active to CS disable so an entire
instruction can be seen. To ease the interpretation of
the serial data, the data sheet waveforms are provided
below the oscilloscope screen shots. All values
represented in this application note are decimal values
unless otherwise noted.

Device Setup
Although this application note focuses on the 93LC66B
device, the firmware supports all 93XXXX devices. This
is done by setting the following two constants at the
beginning of the source code:
• NUMBITS
• ORGVAL
The NUMBITS constant is used in the output subrou-
tines to determine how many bits are required to be
output. More specifically, it is used by the EWEN and
EWDS commands to calculate the number of dummy
bits required. It is also used by the Read and Write
subroutines to skip over the unused bits in the address
word. This constant must equal the required number of
clock cycles for an EWEN command (11 for the
93XX66B).
Note: On devices of the same density, the
required number of clock cycles differs
between 8-bit and 16-bit organizations.
Therefore, if the organization is changed,
NUMBITS must also be updated appropri-
ately.
The ORGVAL constant specifies the data organization.
This value must be set to either 8 or 16, depending
upon which device organization is being used. The
93XXXXA devices use 8-bit organization, whereas the
93XXXXB devices use 16-bit organization. Further-
more, the 93XXXXC devices allow a selectable word
size (either 8 or 16-bit) through the use of the ORG pin.

DS00993A-page 2 © 2005 Microchip Technology Inc.


AN993
WRITE ENABLE
Figure 2 shows an example of the Erase/Write Enable
(EWEN) command. Chip Select is brought high
(active), and the Start bit and four-bit opcode (‘0011’)
are sent out first, with the required number of dummy
bits (6 for the 93XX66B) following. The EWEN com-
mand must be given before a write is attempted. The
device will be enabled for writes until an Erase/Write
Disable command is given or the device is powered
down.

FIGURE 2: ERASE/WRITE ENABLE (EWEN)

TCSL

CS

CLK

1 0 0 1 1 x ••• x
DI

© 2005 Microchip Technology Inc. DS00993A-page 3


AN993
WRITE COMMAND (START BIT, Once the internal write cycle has begun, the Ready/
Busy signal can be polled on the DO pin to check when
OPCODE, ADDRESS AND DATA)
the write finishes. A 6 ms delay needs to be added if the
Figure 3 shows an example of the Write command. The Ready/Busy status is not being polled. This code uses
device is selected and the Start bit, opcode and the Ready/Busy polling.
word address are sent out. Next, the data is clocked out
to the device. When the Chip Select is toggled, the
internal write cycle is initiated.

FIGURE 3: WRITE COMMAND, ADDRESS AND DATA

TCSL

CS

CLK

DI 1 0 1 An ••• A0 Dx ••• D0

TSV TCZ

High-Z
DO Busy Ready
High-Z

TWC

DS00993A-page 4 © 2005 Microchip Technology Inc.


AN993
READY/BUSY POLLING
After a valid Write command is given, the DO line of the Note that the 93AAXX and 93LCXX devices have a
93XXXX can be monitored to check if the internal write maximum program cycle time (TWC) of 6 ms, but in this
cycle has been successfully initiated and, if so, to example, the write cycle only lasted 3.2 ms. This
determine when the write cycle is complete. The oscil- illustrates that the write cycle typically is much shorter
loscope plot below shows that the device is selected than the specified maximum. Therefore, it can be highly
and the DO line is low for approximately 3.2 ms before beneficial to take advantage of the Ready/Busy polling
the device brings the DO line high, indicating that the feature, so as to increase efficiency when writing
write cycle is complete. multiple words of data to the device.

FIGURE 4: READY/BUSY POLLING

© 2005 Microchip Technology Inc. DS00993A-page 5


AN993
READ COMMAND (START BIT,
OPCODE, ADDRESS AND DATA)
Figure 5 shows an example of the Read command.
The device is selected and the Start bit, opcode and the
word address are sent out. At this point, the device gets
ready to transmit data. The microcontroller must gener-
ate the clock signals, and read DO on each falling clock
edge. In this example, the data being read is 0x55AA.

FIGURE 5: READ COMMAND

CS

CLK

DI 1 1 0 An ••• A0

DO High-Z
0 Dx ••• D0 Dx ••• D0 Dx ••• D0

DS00993A-page 6 © 2005 Microchip Technology Inc.


AN993
ERASE/WRITE DISABLE COMMAND
Once the internal write cycle is complete, the Write The EWDS command should always be sent to the
Disable (EWDS) command should be given (see device after completing a write or prior to powering
Figure 6). This command consists of a Start bit and the down the device/system.
four-bit opcode (‘0000’), followed by the appropriate
number of dummy bits (6 for the 93XX66B).

FIGURE 6: ERASE/WRITE DISABLE COMMAND

TCSL
CS

CLK

DI 1 0 0 0 0 x ••• x

© 2005 Microchip Technology Inc. DS00993A-page 7


AN993
CONCLUSION
These are some of the basic features of Microwire
communications on one of Microchip’s PIC16 devices
without the use of a hardware serial port. The code is
highly portable and can be used on many PICmicro®
microcontrollers with very minor modifications. Using
the code provided, designers can begin to build their
own Microwire libraries to be as simple or as complex
as needed.
The code was tested on Microchip’s PICDEM™ 2 Plus
Demonstration Board with the connections shown in
Figure 1.

DS00993A-page 8 © 2005 Microchip Technology Inc.


Note the following details of the code protection feature on Microchip devices:
• Microchip products meet the specification contained in their particular Microchip Data Sheet.

• Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.

• There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.

• Microchip is willing to work with the customer who is concerned about the integrity of their code.

• Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”

Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.

Information contained in this publication regarding device Trademarks


applications and the like is provided only for your convenience The Microchip name and logo, the Microchip logo, Accuron,
and may be superseded by updates. It is your responsibility to
dsPIC, KEELOQ, microID, MPLAB, PIC, PICmicro, PICSTART,
ensure that your application meets with your specifications.
PRO MATE, PowerSmart, rfPIC, and SmartShunt are
MICROCHIP MAKES NO REPRESENTATIONS OR WAR- registered trademarks of Microchip Technology Incorporated
RANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED,
in the U.S.A. and other countries.
WRITTEN OR ORAL, STATUTORY OR OTHERWISE,
RELATED TO THE INFORMATION, INCLUDING BUT NOT AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB,
LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, PICMASTER, SEEVAL, SmartSensor and The Embedded
MERCHANTABILITY OR FITNESS FOR PURPOSE. Control Solutions Company are registered trademarks of
Microchip disclaims all liability arising from this information and Microchip Technology Incorporated in the U.S.A.
its use. Use of Microchip’s products as critical components in Analog-for-the-Digital Age, Application Maestro, dsPICDEM,
life support systems is not authorized except with express dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR,
written approval by Microchip. No licenses are conveyed, FanSense, FlexROM, fuzzyLAB, In-Circuit Serial
implicitly or otherwise, under any Microchip intellectual property Programming, ICSP, ICEPIC, Linear Active Thermistor,
rights. MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM,
PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo,
PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode,
Smart Serial, SmartTel, Total Endurance and WiperLock are
trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2005, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.

Microchip received ISO/TS-16949:2002 quality system certification for


its worldwide headquarters, design and wafer fabrication facilities in
Chandler and Tempe, Arizona and Mountain View, California in
October 2003. The Company’s quality system processes and
procedures are for its PICmicro® 8-bit MCUs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.

© 2005 Microchip Technology Inc. DS00993A-page 9


WORLDWIDE SALES AND SERVICE
AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE
Corporate Office Australia - Sydney India - Bangalore Austria - Weis
2355 West Chandler Blvd. Tel: 61-2-9868-6733 Tel: 91-80-2229-0061 Tel: 43-7242-2244-399
Chandler, AZ 85224-6199 Fax: 61-2-9868-6755 Fax: 91-80-2229-0062 Fax: 43-7242-2244-393
Tel: 480-792-7200 China - Beijing India - New Delhi Denmark - Ballerup
Fax: 480-792-7277 Tel: 86-10-8528-2100 Tel: 45-4450-2828
Tel: 91-11-5160-8631
Technical Support: Fax: 86-10-8528-2104 Fax: 45-4485-2829
Fax: 91-11-5160-8632
http://support.microchip.com
China - Chengdu Japan - Kanagawa France - Massy
Web Address:
Tel: 86-28-8676-6200 Tel: 81-45-471- 6166 Tel: 33-1-69-53-63-20
www.microchip.com
Fax: 86-28-8676-6599 Fax: 81-45-471-6122 Fax: 33-1-69-30-90-79
Atlanta
Alpharetta, GA China - Fuzhou Korea - Seoul Germany - Ismaning
Tel: 86-591-8750-3506 Tel: 82-2-554-7200 Tel: 49-89-627-144-0
Tel: 770-640-0034
Fax: 86-591-8750-3521 Fax: 82-2-558-5932 or Fax: 49-89-627-144-44
Fax: 770-640-0307
China - Hong Kong SAR 82-2-558-5934 Italy - Milan
Boston
Tel: 852-2401-1200 Tel: 39-0331-742611
Westborough, MA Malaysia - Penang
Fax: 852-2401-3431 Tel:011-604-646-8870 Fax: 39-0331-466781
Tel: 774-760-0087
Fax: 774-760-0088 China - Shanghai Fax:011-604-646-5086 Netherlands - Drunen
Tel: 86-21-5407-5533 Tel: 31-416-690399
Chicago Philippines - Manila
Itasca, IL Fax: 86-21-5407-5066 Tel: 011-632-634-9065 Fax: 31-416-690340
Tel: 630-285-0071 China - Shenyang Fax: 011-632-634-9069 England - Berkshire
Fax: 630-285-0075 Tel: 86-24-2334-2829 Tel: 44-118-921-5869
Fax: 86-24-2334-2393 Singapore
Fax: 44-118-921-5820
Dallas Tel: 65-6334-8870
Addison, TX China - Shenzhen Fax: 65-6334-8850
Tel: 972-818-7423 Tel: 86-755-8203-2660
Taiwan - Kaohsiung
Fax: 972-818-2924 Fax: 86-755-8203-1760
Tel: 886-7-536-4818
Detroit China - Shunde Fax: 886-7-536-4803
Farmington Hills, MI Tel: 86-757-2839-5507 Taiwan - Taipei
Tel: 248-538-2250 Fax: 86-757-2839-5571 Tel: 886-2-2500-6610
Fax: 248-538-2260 China - Qingdao Fax: 886-2-2508-0102
Kokomo Tel: 86-532-502-7355 Taiwan - Hsinchu
Kokomo, IN Fax: 86-532-502-7205 Tel: 886-3-572-9526
Tel: 765-864-8360 Fax: 886-3-572-6459
Fax: 765-864-8387
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
San Jose
Mountain View, CA
Tel: 650-215-1444
Fax: 650-961-0286
Toronto
Mississauga, Ontario,
Canada
Tel: 905-673-0699
Fax: 905-673-6509

04/20/05

DS00993A-page 10 © 2005 Microchip Technology Inc.

You might also like