SD Card Projects Using the PIC Microcontroller Dogan Ibrahim !-34%2$!- s "/34/. s (%)$%,"%2' s ,/.$/. .%7 9/2+ s /8&/2$ s 0!2)3 s 3!. $)%'/ 3!. &2!.#)3#/ s 3).'!0/2% s 39$.%9 s 4/+9/ .
.EWNES IS AN IMPRINT OF %LSEVIER #ORPORATE $RIVE 3UITE "URLINGTON -! 53! 4HE "OULEVARD ,ANGFORD ,ANE +IDLINGTON /XFORD /8 '" 5+ © 2010 Elsevier Ltd. All rights reserved. .
Contents Preface .............................................................................................................xix About the Web Site.......................................................................................... xxiii Chapter 1: Microcontroller Systems .......................................................................
viii Contents #ONTROLLER !REA .
Contents ix 4HE #LOCK 3OURCES 7ATCHDOG 4IMER 0ARALLEL ) / 0ORTS 4IMERS #APTURE #O
x Contents Chapter 4: Programming with the MPLAB C18 Compiler ....................................
Contents xi -ATH ,IBRARY &UNCTIONS ,#$ &UNCTIONS 3OFTWARE #!.
xii Contents )& 4(%. %,3% %.$)& $/ %.$$/ 2%0%!4 5.
Contents xiii 0ROJECT n &OUR $IGIT -ULTIPLEXED 3EVEN 3EGMENT ,%$ #OUNTER 7ITH 4IMER )NTERRUPT 0ROJECT $ESCRIPTION 0ROJECT (ARDWARE 0ROJECT 0$,
xiv Contents 3EQUENCE OF &UNCTION #ALLS 2EADING FROM AN %XISTING &ILE 7RITING /NTO AN %XISTING &ILE $ELETING AN %XISTING &ILE $ETAILED &UNCTION #ALLS
Contents xv #IRCUIT $IAGRAM /PERATION OF THE 0ROJECT 0ROGRAM #ODE $ESCRIPTION OF THE 0ROGRAM #ODE 3UGGESTIO
xvi Contents #IRCUIT $IAGRAM /PERATION OF THE 0ROJECT 0ROGRAM #ODE $ESCRIPTION OF THE 0ROGRAM #ODE 3UGGESTIONS FOR &UTURE 7ORK
Contents xvii #IRCUIT $IAGRAM /PERATION OF THE 0ROJECT 0ROGRAM #ODE $ESCRIPTION OF THE 0ROGRAM #ODE 3UGGES
xviii Contents #IRCUIT $IAGRAM /PERATION OF THE 0ROJECT 0ROGRAM #ODE $ESCRIPTION OF THE 0ROGRAM #ODE 3UGGESTIONS FOR &UTURE 7ORK
CHA PTE R 3 Memory Cards 3.1 Memory Card Types ! MEMORY CARD ALSO CALLED A mASH MEMORY CARD IS A SOLID STATE ELECTRONIC DATA STORAGE DEVICE &IRST INVENTED BY 4OSHIBA IN THE S MEMORY CARDS SAVE THE STORED DATA EVEN AFTER THE MEMORY DEVICE IS DISCONNECTED FROM ITS POWER SOURCE 4HIS ABILITY TO RETAIN DATA IS THE KEY FOR mASH MEMORY CARD APPLICATIONS FOR EXAMPLE IN DIGITAL CAMERAS WHERE THE SAVED PICTURES ARE NOT LOST AFTER THE MEMORY CARD IS REMOVED FROM THE CAMERA .
108 Chapter 3 s 3ECURITY SYSTEMS s (ANDHELD SCANNERS -EMORY CARDS ARE BASED ON TWO TECHNOLOGIES ./2 TECHNOLOGY AND .!.$ TECHNOLOGY ./2 TECHNOLOGY PROVIDES HIGH SPEED RANDOM ACCESS CAPABILITIES WHERE DATA AS SMALL AS A SINGLE BYTE CAN BE RETRIEVED ./2 TECHNOLOGY BASED MEMORY CARDS ARE OFTEN FOUND IN MOBILE PHONES PERSONAL DIGITAL ASSISTANTS AND COMPUTERS .!.$ TECHNOLOGY WAS INVENTED AFTER THE .
Memory Card 109 Figure 3.1: Smart Media Card Figure 3.2: Multimedia Card NOT AVAILABLE 3- CARDS WERE DESIGNED TO OPERATE AT EITHER OR 6 AND A SMALL NOTCHED CORNER WAS USED TO PROTECT 6 CARDS FROM BEING INSERTED INTO 6 READERS 3- CARDS INCORPORATED A COPY PROTECTION MECHANISM KNOWN AS THE h)$ v WHICH GAVE EVERY CARD A UNIQUE IDENTIlCATION NUMBER FOR USE WITH COPY PROTECTION SYSTEMS 3- CARDS ARE NO LONGER MANUFACTURED AND &UJIlLM AND /LYMPUS BOTH SWITCHED TO X$ CARDS .
110 Chapter 3 3.
Memory Card 111 Table 3.1: Memory Card Speed Ratings Speed Rating Speed (MB/s) 6x 32x 40x 66x 100x 133x 150x 200x 266x 300x 0.9 4.8 6.0 10.0 15.0 20.0 22.5 30.0 40.0 45.0 Figure 3.4: Memory Stick Card 3.
112 Chapter 3 3.
Memory Card 113 4YPE - CARDS WERE DEVELOPED IN AND ARE AVAILABLE IN CAPACITIES UP TO '" 4HE READ AND WRITE SPEEDS OF THESE CARDS ARE AND -" S RESPECTIVELY 4YPE ( X$ CARDS WERE lRST RELEASED IN HAVE THE ADVANTAGE OF A HIGHER DATA TRANSFER SPEED 4HESE CARDS ARE ALSO AVAILABLE IN CAPACITIES UP TO '" WITH READ AND WRITE SPEEDS OF AND -" S RESPECTIVELY 5NFORTUNATELY THE PRODUCTION OF 4YPE ( CARDS HAS NOW BEEN DISCONTINUED DUE TO THEIR HIGH PRODUCTION COSTS Type M X$ CARDS WERE lRST
Chapter 3 32.0 mm 114 21.5 mm 24.0 mm 11.0 mm 20.0 mm 15.0 mm Figure 3.7: SD Cards THE CARD 4HE DATA TRANSFER SPEED IS APPROXIMATELY n -" S .
Memory Card 115 Table 3.2: Comparison of Standard SD Cards Property SD miniSD microSD Width Length Thickness Weight Operating voltage No. of pins 24 mm 32 mm 2.1 mm 2g 2.7–3.6 V 9 20 mm 21.5 mm 1.4 mm 1g 2.7–3.6 V 11 11 mm 15 mm 1 mm 0.5 g 2.7–3.6 V 8 Figure 3.8: miniSD Card Adapter 3TANDARD 3$ CARDS UP TO '" ARE USUALLY SHIPPED WITH THE &!4 lLE SYSTEM PRELOADED ON THE CARD 3.8.
116 Chapter 3 Figure 3.9: Class 6 SDHC Card Figure 3.
Memory Card 117 3.10 Memory Card Physical Properties 4ABLE GIVES A COMPARISON OF THE PHYSICAL PROPERTIES OF COMMONLY USED MEMORY CARDS !S CAN BE SEEN FROM THE TABLE THE MICRO3$ CARD HAS THE SMALLEST FORM FACTOR 3.11 Memory Card Technical Properties 4ABLE GIVES A COMPARISON OF THE TECHNICAL PROPERTIES OF COMMONLY USED MEMORY CARDS Table 3.
118 Chapter 3 3.12 Detailed SD Card Structure !S THE TOPIC OF THIS BOOK IS 3$ CARDS THE INTERNAL STRUCTURE AND THE USE OF THESE CARDS IN 0)# MICROCONTROLLER BASED SYSTEMS WILL BE DESCRIBED IN THIS SECTION 3.12.
Memory Card 119 Vdd CLK D0-D3 SD card CMD D0-D3 SD card Microcontroller CMD D0-D3 SD card CMD Vss Figure 3.12: SD Card in SD Bus Mode )N ADDITION PIN MUST BE CONNECTED TO THE SUPPLY VOLTAGE AND PINS AND MUST BE CONNECTED TO THE SUPPLY GROUND 3.12.
120 Chapter 3 Vdd D0, D1, CLK SD card CS D0, D1, CLK SD card Microcontroller CS D0, D1, CLK SD card CS Vss Figure 3.13: SD Card in SPI Bus Mode Table 3.5: SD Card Pin Assignments Pin No Name SD Mode SPI Mode 1 2 3 4 5 6 7 8 9 CD/DAT3 CMD Vss Vdd CLK Vss DAT0 DAT1 DAT2 Card detect/Data line Command response Ground Supply voltage Clock Ground Data line Data line Data line Chip select Data in Ground Supply voltage Clock Ground Data out Reserved Reserved www.newnespress.
Memory Card 121 Table 3.6: SD Card Input–Output Voltage Levels Symbol Minimum Logic 1 output voltage VOH 0.75 s Vdd Logic 0 output voltage VOL Logic 1 input voltage VIH Logic 0 input voltage VIL Maximum 0.125 s Vdd 0.625 s Vdd Vss Vdd 0.3 0.25 s Vdd 0.
122 Chapter 3 PIC Vdd SD card 1 3.6 V 2.2 K CS 5 CLK 7 DO 2.2 K Vss DI 2 2.48 V RC2 RC3 RC4 RC5 3,6 3.3 K 3.3 K Figure 3.
Memory Card 123 Table 3.7: SD Card Registers Register Width (Bits) Description OCR CID CSD RCA DSR SCR Status 32 128 128 16 16 64 512 Operation condition Card information Card specific information Relative card address Driver stage register Special features Status bits 3.13.
124 Chapter 3 Table 3.8: OCR Register Bit Definitions OCR Bit Card Voltage Initial Value 31 Card busy bit 30–24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3–0 Reserved 3.6–3.5 3.5–3.4 3.4–3.3 3.3–3.2 3.2–3.1 3.1–3.0 3.0–2.9 2.9–2.8 2.8–2.7 2.7–2.6 2.6–2.5 2.5–2.4 2.4–2.3 2.3–2.2 2.2–2.1 2.1–2.2 2.0–1.9 1.9–1.8 1.8–1.7 1.7–1.6 Reserved “0” busy, “1” ready All “0”s 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 All “0”s Table 3.
Memory Card s PRV: "ITS n ARE THE 0RODUCT 2EVISION OF THE CARD s PNM: "ITS n ARE THE !3#)) CHARACTER 0RODUCT #ODE FOR EXAMPLE s s s 3$ IS -" CARD s 3$ IS -" CARD s 3$ IS -" CARD 125 OID: "ITS n ARE THE CARD /%- ALLOCATED BY THE 3$ #ARD !SSOCIATION FOR EXAMPLE s 4- INDICATES 4OSHIBA s 3$ INDICATES 3AN$ISK MID: "ITS n ARE THE -ANUFACTURER S )$ FOR EXAMPLE s H INDICATES 4OSHIBA s H INDICATES 3AN$ISK !S AN EXAMPLE THE 4OSHIBA -" CARD
126 Chapter 3 Table 3.10: CSD Register Bit Definitions Field Description Width Bits *Value Code CSD_STRUCTURE — TAAC NSAC TRAN_SPEED CCC READ_BL_LEN READ_BL_PARTIAL WRITE_BLK_MISALIGN READ_BLK_MISALIGN DSR_IMP — C_SIZE VDD_R_CURR_MIN VDD_R_CURR_MAX VDD_W_CURR_MIN VDD_W_CURR_MAX CSD structure 2 6 8 8 8 12 4 1 1 1 1 2 12 3 3 3 3 127–126 125–120 119–112 111–104 103–96 95–84 83–80 79–79 78–78 77–77 76–76 75–74 73–62 61–59 58–56 55–53 52–50 1.
Memory Card 127 Table 3.10: CSD Register Bit Definitions —cont’d Field Description Width Bits *Value Code CRC — CRC Always 1 7 1 7–1 0–0 — — 1b *values are based on a 16 MB SanDisk card.
128 Chapter 3 … s … #LASS READ_BL_LEN: "ITS n DElNE THE MAXIMUM READ DATA BLOCK LENGTH WHICH IS EQUAL TO 2%!$?",?,%. 4HE DATA BLOCK LENGTH IS SPECIlED AS FOLLOWS READ_BL_LEN n … n Block Length 2ESERVED BYTES … BYTES 2ESERVED s "IT IS ALWAYS h v s WRITE_BLK_MISALIGN: "IT DElNES WHETHER THE DATA BLOCK TO BE WRITTEN BY ONE COMMAND CAN BE SPREAD OVER MORE THAN ONE PHYSICAL BLOCK WRITE_BLK_MISALIGN s Access Block boundary write .
Memory Card s C_SIZE_MULT: "ITS n ARE USED TO COMPUTE THE USER S DATA CARD CAPACITY MULTIPLY FACTOR C_SIZE_MULT s 129 MULT 3 ERASE_BLK_EN: "IT DElNES IF HOST CAN ERASE BY 72)4%?",?,%. ERASE_BLK_EN Description (OST CANNOT ERASE BY 72)4%?",?,%. (OST CAN ERASE BY 72)4%?",?,%.
130 s Chapter 3 WRITE_BL_PARTIAL: "IT DElNES WHETHER PARTIAL BLOCK WRITE IS AVAILABLE WRITE_BL_PARTIAL Write data size /NLY 72)4%?",?,%.
Memory Card 131 3.13.6 SCR Register 4HIS BIT REGISTER PROVIDES INFORMATION ON THE 3$ CARD S SPECIAL FEATURES SUCH AS THE STRUCTURE VERSION NUMBER THE PHYSICAL LAYER SPECIlCATION THE SECURITY ALGORITHM USED AND THE BUS WIDTH 3.13.7 SD Status Register 4HIS BIT REGISTER DElNES THE CARD STATUS BITS AND CARD FEATURES 3.14 Calculating the SD Card Capacity !N EXAMPLE IS GIVEN IN THIS SECTION TO SHOW HOW THE CAPACITY OF AN 3$ CARD CAN BE CALCULATED N Example 3.
132 Chapter 3 or Card Capacity (in bytes) (C_SIZE 1) s 2 (C_SIZE_MULT + 2) s 2READ_BL_LEN. The capacity is usually shown in MB and Card Capacity (Megabyte) (C_SIZE 1) s 2(C_SIZE_MULT 2) s 2 READ_BL_LEN/(1024 s 1024) Using the CSD parameters given in this example, we get Card Capacity (Megabyte) 3624 s 32 s 512/(1024 s 1024) 56.
Memory Card 133 Table 3.11: Some Important SD Card Commands Command Abbreviation Argument Response Description CMD0 CMD1 CMD9 CMD10 CMD17 CMD24 GO_IDLE_STATE SEND_OP_COND SEND_CSD SEND_CID READ_SINGLE_BLOCK WRITE_BLOCK None None None None Data address (0:31) Data address (0:31) R1 R1 R1 R1 R1 R1 Reset the SD card Initialize card Get CSD register data Get CID register data Read a block of data Write a block of data Table 3.12: Command Format Byte 1 7 0 6 1 Bytes 2–5 543210 Command 31..........
134 Chapter 3 Table 3.13: R1 Format bits 0 In idle state Erase reset Illegal command CRC error Erase_seq_error Address error Parameter error R2 Format: 4HIS RESPONSE TOKEN IS BYTES LONG AND IS SENT AS A RESPONSE TO COMMAND 3%.
Memory Card 135 4HIS BLOCK IS IDENTIlED BY DATA h v I E &%H s "YTES n 53%2 $!4! s ,AST BYTES BYTE AND BYTE #2# 3.
136 Chapter 3 3.