a9 raaf1 ram

14
© 2009 Microchip Technology Inc. DS01277A-page 1 AN1277 INTRODUCTION Microchip’s serial SRAM product line represents a new way to add additional RAM to an application. With the small 8-pin packages and the SPI interface, these devices give designers added system flexibility. the AN1277 series of serial SRAM devices from Microchip Technology support a half-duplex protocol that functions on a master-slave paradigm that is ideally suited to data stream applications. The bus is controlled by the microcontroller (master), which accesses the AN1277 using the SPI peripheral built into the MCU. The SPI bus can operate at speeds up to 20 MHz for enhanced throughput. Communica- tions can be paused using the HO L D pin. This application note is part of a series that provide source code to help the user implement the protocol with minimal effort. Figure 1 describes the hardware schematic for the interface between Microchip’s AN1277 series devices and the PIC32 series of MCUs. The schematic shows the connections necessary between either controller and the serial SRAM as tested, and the software was written assuming these connections. The HOLD pin is tied to VCC because this feature is not used in the examples provided. FIGURE 1: CIRCUIT FOR PIC32MX360F512L AND 23XXXX SERIES DEVICE Author: Pinakin K Makwana Microchip Technology Inc. Note: CS and HOLD pins should all have pull-up resistors (~10k-ohms). See recommended usage application note, AN1245. CS SO NC VSS VCC HOLD SCK SI 1 2 3 4 8 7 6 5 VCC 23XXXX 100 Pin TQFP U1TX/RF3 U1RX/RF2 SDO1/RF8 SDI1/RF7 SCK1/INT0/RF6 SDA1/RG3 VSS VDD U1CTS /CN20/RD14 U1RTS /BCLK1/CN21/RD15 PMA9/U2RX/CN17/RF4 PMA8/U2TX/CN18/RF5 PIC32MX360F512L Using C32 Compiler to Interface Serial SRAM Devices to PIC32 MCUs

Upload: josie-esteban-rodriguez-c

Post on 08-May-2015

479 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: A9 raaf1 ram

AN1277Using C32 Compiler to Interface Serial SRAM Devices to PIC32 MCUs

INTRODUCTIONMicrochip’s serial SRAM product line represents a newway to add additional RAM to an application. With thesmall 8-pin packages and the SPI interface, thesedevices give designers added system flexibility. theAN1277 series of serial SRAM devices from MicrochipTechnology support a half-duplex protocol thatfunctions on a master-slave paradigm that is ideallysuited to data stream applications.

The bus is controlled by the microcontroller (master),which accesses the AN1277 using the SPI peripheralbuilt into the MCU. The SPI bus can operate at speedsup to 20 MHz for enhanced throughput. Communica-tions can be paused using the HOLD pin.

This application note is part of a series that providesource code to help the user implement the protocolwith minimal effort.

Figure 1 describes the hardware schematic for theinterface between Microchip’s AN1277 series devicesand the PIC32 series of MCUs. The schematic showsthe connections necessary between either controllerand the serial SRAM as tested, and the software waswritten assuming these connections. The HOLD pin istied to VCC because this feature is not used in theexamples provided.

FIGURE 1: CIRCUIT FOR PIC32MX360F512L AND 23XXXX SERIES DEVICE

Author: Pinakin K MakwanaMicrochip Technology Inc.

Note: CS and HOLD pins should all have pull-up resistors (~10k-ohms). See recommended usage application note, AN1245.

CS

SO

NC

VSS

VCC

HOLD

SCK

SI

1

2

3

4

8

7

6

5

VCC

23XX

XX

100 Pin TQFP

U1TX/RF3U1RX/RF2SDO1/RF8SDI1/RF7SCK1/INT0/RF6SDA1/RG3

VSS

VD

DU

1CTS

/CN

20/R

D14

U1R

TS/B

CLK

1/C

N21

/RD

15P

MA

9/U

2RX

/CN

17/R

F4P

MA

8/U

2TX

/CN

18/R

F5

PIC32MX360F512L

© 2009 Microchip Technology Inc. DS01277A-page 1

Page 2: A9 raaf1 ram

AN1277

FIRMWARE DESCRIPTIONThe purpose of this application note is to offer thedesigner a set of examples for the read and write func-tions for using the Microchip SPI serial SRAM. Exam-ples are included for the following modes: Byte, Pageand sequential Read and Writes. The code uses an on-chip SPI hardware peripheral to communicate with theserial SRAM.

The code was tested using the 23K256 SRAMmounted to one of the SPI PIM modules. The code iscompatible with the PIC32 family of MCUs.

Oscilloscope screen shots are shown in this applicationnote. The MCU was configured to use the crystal on theExplorer 16 board, the internal PLL was enabled andthe SPI peripheral was configured to generate a serialclock rate of 10 MHz.

The following functions are provided to access theserial SRAM.

• SRAMWriteStatusReg

• SRAMReadStatusReg

• SRAMWriteByte

• SRAMReadByte

• SRAMWritePage

• SRAMReadPage

• SRAMWriteSeq

• SRAMReadSeq

INITIALIZATIONOnly one function needs to be called to initialize theSRAM. Using the on-chip SPI peripheral makes com-munication easier than bit-banging the I/O ports. TheInitSRAM() function initializes the SPI module andconfigures the I/O ports. The SPI module is configuredusing the peripheral library.

DS01277A-page 2 © 2009 Microchip Technology Inc.

Page 3: A9 raaf1 ram

AN1277

WRITE STATUS REGISTERThe default mode of operation for the serial SRAM isByte mode and the user must select the appropriatemode before the read or write operation. The functionsthat are provided configure the SRAM for the correctmode of operation, for example, if a SRAMWritePagecommand is called, then the appropriate operatingmode is selected. The STATUS register also has provi-sion for enabling the HOLD feature, but this is not usedin these examples. Figure 2 shows an example of the

Write Status Register command. Chip Select is broughtlow (active) and the opcode is sent out through the SPIport. The Write Status command is given followed bythe data to be written, in this case Byte mode isselected.

FIGURE 2: WRITE STATUS REGISTER

SO

SI

CS

9 10 11 12 13 14 15

0 100000 0 7 6 5 4 2 1 0

Instruction Data to STATUS Register

High-Impedance

SCK

0 2 3 4 5 6 71 8

3

© 2009 Microchip Technology Inc. DS01277A-page 3

Page 4: A9 raaf1 ram

AN1277

READ STATUS REGISTERFigure 3 shows an example of the Read StatusRegister command to check for the mode of operationand also the current status of the HOLD function.

FIGURE 3: READ STATUS REGISTER

SO

SI

CS

9 10 11 12 13 14 15

1 100000 0

7 6 5 4 2 1 0

Instruction

Data from STATUS RegisterHigh-Impedance

SCK

0 2 3 4 5 6 71 8

3

DS01277A-page 4 © 2009 Microchip Technology Inc.

Page 5: A9 raaf1 ram

AN1277

BYTE WRITEThe byte write operation consists of the followingsequence: The Write command followed by the wordaddress and data byte. The serial SRAM uses a 16-bitaddress, so two bytes must be transmitted for the entireword address, with the Most Significant Byte (MSB)first.

Figure 4 shows an example of the Write command. Forthis, the device is selected and the opcode, 0x02, issent. The high address byte is given 0x00, followed bythe low address byte, 0x10. Finally, the data is clockedin last, in this case, 0x28.

FIGURE 4: BYTE WRITE COMMAND, ADDRESS AND DATA

SO

SI

CS

9 10 11 21 22 23 24 25 26 27 28 29 30 31

0 000000 1 15 14 13 12 2 1 0 7 6 5 4 3 2 1 0Instruction 16-bit Address Data Byte

High-Impedance

SCK0 2 3 4 5 6 71 8

© 2009 Microchip Technology Inc. DS01277A-page 5

Page 6: A9 raaf1 ram

AN1277

BYTE READThe byte read operation can be used to read data fromthe serial SRAM. The MCU/DSC sends the commandbyte followed by the word address. Figure 5 shows anexample of the Read command, followed by the MSBand LSB address bytes, followed by the read byte.

FIGURE 5: BYTE READ (COMMAND BYTE, WORD ADDRESS AND READ BYTE)

SO

SI

SCK

CS

0 2 3 4 5 6 7 8 9 10 11 21 22 23 24 25 26 27 28 29 30 311

0 100000 1 15 14 13 12 2 1 0

7 6 5 4 3 2 1 0

Instruction 16-bit Address

Data OutHigh-Impedance

DS01277A-page 6 © 2009 Microchip Technology Inc.

Page 7: A9 raaf1 ram

AN1277

PAGE WRITEPage write operations provide a technique for increas-ing throughput when writing large blocks of data. Theserial SRAM features a 32-byte page. By using thepage write feature, up to 1 full page of data can be writ-ten consecutively. It is important to point out that pagewrite operations are limited to writing bytes within a sin-gle physical page regardless of the number of bytes

being written. Physical page boundaries start ataddresses that are integer multiples of the page sizeand end at addresses that are [integer multiples of thepage size] - 1. Attempting to write across a pageboundary results in the data being wrapped back to thebeginning of the current page. Figure 6 shows Writecommand, address and data byte during a page writeoperation.

FIGURE 6: PAGE WRITE (FIRST DATA BYTE)

SI

CS

9 10 11 21 22 23 24 25 26 27 28 29 30 31

15 14 13 12 2 1 0 7 6 5 4 3 2 1 016-bit Address

0 2 3 4 5 6 71 8

Page X, Word Y

Page X, Word Y

0 000000 1

Instruction

© 2009 Microchip Technology Inc. DS01277A-page 7

Page 8: A9 raaf1 ram

AN1277

PAGE READPage read operations read a complete string, startingwith the specified address. The page read operationalso works similar to page write operation and thus amaximum of 32 bytes can be read consecutively.

Figure 7 shows an example of the entire sequence ofcommands necessary to perform the page read opera-tion. For clarity, only the first byte is shown.

FIGURE 7: PAGE READ (FIRST READ DATA BYTE)

7 6 5 4 3 2 1 0Page X, Word Y

SI

CS

9 10 11 21 22 23 24 25 26 27 28 29 30 31

15 14 13 12 2 1 016-bit Address

SCK0 2 3 4 5 6 71 8

Page X, Word Y

SOHigh Impedance

0 100000 1

Instruction

DS01277A-page 8 © 2009 Microchip Technology Inc.

Page 9: A9 raaf1 ram

AN1277

SEQUENTIAL WRITEThis operation is very useful while writing a long stringwhich is more than the page size (32 bytes). This oper-ation needs Write command (0x02) to be sent followedby upper address byte and lower address byte. TheSRAM keeps writing data as long as it receives clockand valid data. When the last location of memory isreached, the next location that is written is the firstaddress (0x0000), that is, the internal address counterrolls over. Figure 8 depicts the entire sequence ofcommands necessary to perform the sequential writeoperation. For clarity, only the first byte is shown.

FIGURE 8: SEQUENTIAL WRITE (FIRST DATA BYTE)

SI

CS

9 10 11 21 22 23 24 25 26 27 28 29 30 31

0 000000 1 15 14 13 12 2 1 0 7 6 5 4 3 2 1 0Instruction 16-bit Address Data Byte 1

SCK0 2 3 4 5 6 71 8

© 2009 Microchip Technology Inc. DS01277A-page 9

Page 10: A9 raaf1 ram

AN1277

SEQUENTIAL READSequential read operation allows the entire array to beread from the SRAM. The internal address counterautomatically increments and page boundaries areignored. When the internal address counter reachesthe end of the array, the address counter will roll overto 0x0000. Figure 9 shows an example of the sequenceof commands necessary to perform a sequential writeoperation.

FIGURE 9: SEQUENTIAL READ (FIRST READ DATA BYTE)

SI

CS

9 10 11 21 22 23 24 25 26 27 28 29 30 31

15 14 13 12 2 1 0

7 6 5 4 3 2 1 0

Instruction 16-bit Address

Page X, Word Y

0 2 3 4 5 6 71 8

SO

0 100000 1

DS01277A-page 10 © 2009 Microchip Technology Inc.

Page 11: A9 raaf1 ram

AN1277

CONCLUSIONThis application note offers designers a set of firmwareroutines to access SPI serial SRAM. The code demon-strates byte, page and sequential operations. All theroutines were written in C using the C32 compiler fromMicrochip. The code was tested on Microchip’sExplorer 16 Development Board with the connectionsshown in Figure 1 with the PIC32MX360F512L PIMmodule.

© 2009 Microchip Technology Inc. DS01277A-page 11

Page 12: A9 raaf1 ram

AN1277

NOTES:

DS01277A-page 12 © 2009 Microchip Technology Inc.

Page 13: A9 raaf1 ram

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 ourproducts. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such actsallow 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 deviceapplications and the like is provided only for your convenienceand may be superseded by updates. It is your responsibility toensure that your application meets with your specifications.MICROCHIP MAKES NO REPRESENTATIONS ORWARRANTIES OF ANY KIND WHETHER EXPRESS ORIMPLIED, WRITTEN OR ORAL, STATUTORY OROTHERWISE, RELATED TO THE INFORMATION,INCLUDING BUT NOT LIMITED TO ITS CONDITION,QUALITY, PERFORMANCE, MERCHANTABILITY ORFITNESS FOR PURPOSE. Microchip disclaims all liabilityarising from this information and its use. Use of Microchipdevices in life support and/or safety applications is entirely atthe buyer’s risk, and the buyer agrees to defend, indemnify andhold harmless Microchip from any and all damages, claims,suits, or expenses resulting from such use. No licenses areconveyed, implicitly or otherwise, under any Microchipintellectual property rights.

© 2009 Microchip Technology Inc.

Trademarks

The Microchip name and logo, the Microchip logo, dsPIC, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART, rfPIC and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.

FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MXDEV, MXLAB, SEEVAL and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A.

Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, mTouch, nanoWatt XLP, Omniscient Code Generation, PICC, PICC-18, PICkit, PICDEM, PICDEM.net, PICtail, PIC32 logo, REAL ICE, rfLAB, Select Mode, Total Endurance, TSHARC, WiperLock and ZENA 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.

© 2009, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.

Printed on recycled paper.

DS01277A-page 13

Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. The Company’s quality system processes and procedures are for its PIC® MCUs and dsPIC® DSCs, 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.

Page 14: A9 raaf1 ram

DS01277A-page 14 © 2009 Microchip Technology Inc.

AMERICASCorporate Office2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792-7200 Fax: 480-792-7277Technical Support: http://support.microchip.comWeb Address: www.microchip.comAtlantaDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455BostonWestborough, MA Tel: 774-760-0087 Fax: 774-760-0088ChicagoItasca, IL Tel: 630-285-0071 Fax: 630-285-0075ClevelandIndependence, OH Tel: 216-447-0464 Fax: 216-447-0643DallasAddison, TX Tel: 972-818-7423 Fax: 972-818-2924DetroitFarmington Hills, MI Tel: 248-538-2250Fax: 248-538-2260KokomoKokomo, IN Tel: 765-864-8360Fax: 765-864-8387Los AngelesMission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608Santa ClaraSanta Clara, CA Tel: 408-961-6444Fax: 408-961-6445TorontoMississauga, Ontario, CanadaTel: 905-673-0699 Fax: 905-673-6509

ASIA/PACIFICAsia Pacific OfficeSuites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel: 852-2401-1200Fax: 852-2401-3431Australia - SydneyTel: 61-2-9868-6733Fax: 61-2-9868-6755China - BeijingTel: 86-10-8528-2100 Fax: 86-10-8528-2104China - ChengduTel: 86-28-8665-5511Fax: 86-28-8665-7889China - Hong Kong SARTel: 852-2401-1200 Fax: 852-2401-3431China - NanjingTel: 86-25-8473-2460Fax: 86-25-8473-2470China - QingdaoTel: 86-532-8502-7355Fax: 86-532-8502-7205China - ShanghaiTel: 86-21-5407-5533 Fax: 86-21-5407-5066China - ShenyangTel: 86-24-2334-2829Fax: 86-24-2334-2393China - ShenzhenTel: 86-755-8203-2660 Fax: 86-755-8203-1760China - WuhanTel: 86-27-5980-5300Fax: 86-27-5980-5118China - XiamenTel: 86-592-2388138 Fax: 86-592-2388130China - XianTel: 86-29-8833-7252Fax: 86-29-8833-7256China - ZhuhaiTel: 86-756-3210040 Fax: 86-756-3210049

ASIA/PACIFICIndia - BangaloreTel: 91-80-3090-4444 Fax: 91-80-3090-4080India - New DelhiTel: 91-11-4160-8631Fax: 91-11-4160-8632India - PuneTel: 91-20-2566-1512Fax: 91-20-2566-1513Japan - YokohamaTel: 81-45-471- 6166 Fax: 81-45-471-6122Korea - DaeguTel: 82-53-744-4301Fax: 82-53-744-4302Korea - SeoulTel: 82-2-554-7200Fax: 82-2-558-5932 or 82-2-558-5934Malaysia - Kuala LumpurTel: 60-3-6201-9857Fax: 60-3-6201-9859Malaysia - PenangTel: 60-4-227-8870Fax: 60-4-227-4068Philippines - ManilaTel: 63-2-634-9065Fax: 63-2-634-9069SingaporeTel: 65-6334-8870Fax: 65-6334-8850Taiwan - Hsin ChuTel: 886-3-6578-300Fax: 886-3-6578-370Taiwan - KaohsiungTel: 886-7-536-4818Fax: 886-7-536-4803Taiwan - TaipeiTel: 886-2-2500-6610 Fax: 886-2-2508-0102Thailand - BangkokTel: 66-2-694-1351Fax: 66-2-694-1350

EUROPEAustria - WelsTel: 43-7242-2244-39Fax: 43-7242-2244-393Denmark - CopenhagenTel: 45-4450-2828 Fax: 45-4485-2829France - ParisTel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79Germany - MunichTel: 49-89-627-144-0 Fax: 49-89-627-144-44Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781Netherlands - DrunenTel: 31-416-690399 Fax: 31-416-690340Spain - MadridTel: 34-91-708-08-90Fax: 34-91-708-08-91UK - WokinghamTel: 44-118-921-5869Fax: 44-118-921-5820

WORLDWIDE SALES AND SERVICE

03/26/09