Efteruddannelse Embedded C
description
Transcript of Efteruddannelse Embedded C
![Page 1: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/1.jpg)
EfteruddannelseEmbedded CModul 5 (Fredag den 15/1-2010)
07.01.2010
![Page 2: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/2.jpg)
Modul 1
1) SPI protokollen2) SD Card
1) Korttyper2) Features3) Interface4) Opbygning og interne registre5) Kommunikationsprotokol
3) Funktioner med variabelt antal parametre4) Afrunding og evaluering
![Page 3: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/3.jpg)
SPI kommunikation
![Page 4: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/4.jpg)
Master og slave
![Page 5: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/5.jpg)
Puls plan
![Page 6: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/6.jpg)
SPI kontrol register i PIC
![Page 7: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/7.jpg)
Kontrolregister til SPI modul i PIC
![Page 8: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/8.jpg)
SD Card
![Page 9: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/9.jpg)
SD Card typer
SD Card mini SD micro SD SDHC mini SDHC micro SDHC SDXC
![Page 10: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/10.jpg)
SDCard kapacitet og spænding
Type Kapacitet Spænding
SD 0 – 2GB 2,7 - 3,6V
SDHC 4GB – 32GB 2,7 – 3,6V
SDXC 32GB – 2 TB 2,7 – 3,6V
![Page 11: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/11.jpg)
SDIO enheder
![Page 12: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/12.jpg)
SDCARD Features
• Targeted for portable and stationary applications• Memory capacity:
Standard Capacity SD Memory Card: Up to and including 2 GBHigh Capacity SD Memory Card: More than 2GB (This version of
specification limits capacity up to and including 32GB)• Voltage range:
High Voltage SD Memory Card – Operating voltage range: 2.7-3.6 VDual Voltage SD Memory Card – Operating voltage range: Low Voltage
Range (T.B.D) and 2.7-3.6 V• Designed for read-only and read/write cards.• Default mode: Variable clock rate 0 - 25 MHz, up to 12.5 MB/sec interface
speed (using 4 parallel data lines)• High-Speed mode: Variable clock rate 0 - 50 MHz, up to 25 MB/sec interface
speed (using 4 parallel data lines)
![Page 13: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/13.jpg)
SDCard Features
• Correction of memory field errors• Card removal during read operation will never harm the content• Content Protection Mechanism - Complies with highest security of
SDMI standard.• Password Protection of cards (CMD42 - LOCK_UNLOCK)• Write Protect feature using mechanical switch• Built-in write protection features (permanent and temporary)• Card Detection (Insertion/Removal)• Application specific commands• Comfortable erase mechanism
![Page 14: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/14.jpg)
SDCARD Feautures
• Protocol attributes of the communication channel:• SD Memory Card Communication Channel
Six-wire communication channel(clock, command, 4 data lines)Error-protected data transferSingle or Multiple block oriented data transfer• SD Memory Card Form-factor
• Standard Size SD Memory Card: Specified in this specification (See Chapter 6 and 8)
• miniSD Memory Card: Specified in “miniSD Memory Card Specification”• microSD Memory Card: Specified in “microSD Memory Card
Specification”• Standard Size SD Memory Card thickness is defined as both 2.1 mm
(normal) and 1.4 mm(Thin SD Memory Card).
![Page 15: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/15.jpg)
Compabilitet SD vs SDHC
![Page 16: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/16.jpg)
SPEED Class
• Four Speed Classes are defined and indicate minimum performance of the cards• Class 0 - These class cards do not specify performance. It includes all the
legacy cards prior to this specification, regardless of its performance• Class 2 - Are more than or equal to 2 MB/sec performance.• Class 4 - Are more than or equal to 4 MB/sec performance.• Class 6 - Are more than or equal to 6 MB/sec performance.
• High Capacity SD Memory Cards shall support Speed Class Specification and have performance more than or equal to Class 2.
• Note that the unit of performance [MB/sec] indicates 1000x1000 [Byte/sec] while the unit of data size [MB] indicates 1024x1024 [Byte]. This is because the maximum SD Bus speed is specified by the maximum SD clock frequency (25 [MB/sec] = 25000000 [Byte/sec] at 50 MHz) and data size is based on memory boundary (power of 2).
![Page 17: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/17.jpg)
Speed Class
![Page 18: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/18.jpg)
Overordnet Blokdiagram
![Page 19: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/19.jpg)
SD card Arkitektur
![Page 20: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/20.jpg)
Interface
![Page 21: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/21.jpg)
Pinout i SD Bus mode
![Page 22: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/22.jpg)
Pinout i SPI bus mode
![Page 23: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/23.jpg)
Opkobling på udviklings board
![Page 24: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/24.jpg)
Interne SD card registre
![Page 25: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/25.jpg)
OCR (Operating Conditions Register)
![Page 26: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/26.jpg)
OCR’Struktur
![Page 27: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/27.jpg)
Card Identification Register (CID)
![Page 28: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/28.jpg)
Card Specific Data
![Page 29: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/29.jpg)
CSD
![Page 30: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/30.jpg)
CSD
![Page 31: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/31.jpg)
SD Card Configuration Register
![Page 32: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/32.jpg)
Kommando’er
• Der er forskel på om man tilgår SD card i SD mode eller i SPI mode som det kan ses i specifikationen er der en del kommendor der ikke findes i SPI mode.
• Se i filen :..\..\Datasheet\ProdManualSDCardv1.9.pdf
![Page 33: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/33.jpg)
SD Bus kommunikations mode
![Page 34: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/34.jpg)
SPI mode
![Page 35: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/35.jpg)
SPI mode
![Page 36: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/36.jpg)
Multi block read
![Page 37: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/37.jpg)
SPI mode
![Page 38: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/38.jpg)
Multi block write mode
![Page 39: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/39.jpg)
SPI mode
![Page 40: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/40.jpg)
Command tokens
Sendes på den 1 bits commando linie, derfor start og stop bit.
Eller
![Page 41: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/41.jpg)
Format af response token
Der findes 4 forskellige type R1, R3, R6 og R2.Der findes 2 forskellige størrelser 48 bits – R1, R3 og R6
136 bits – R2
![Page 42: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/42.jpg)
Format af commandoer
![Page 43: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/43.jpg)
Formater for datapakker
![Page 44: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/44.jpg)
Datapakke format
![Page 45: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/45.jpg)
Card state
![Page 46: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/46.jpg)
Card Indefication mode
![Page 47: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/47.jpg)
Setup i SD mode
![Page 48: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/48.jpg)
Data Transfer mode
![Page 49: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/49.jpg)
Øvelse
1) Gennemgå funktionen MDD_SDSPI_MediaInitialize i eksemplet :USB-MSD-SPCard readerTegn et diagram i stil med ”Setup i SD mode” der viser, hvordan kortet er sat op.
2) (extra opgave) Modificer koden i USB-MSD-SPCard reader, så data fra accerometer gemmes i en fil på kortet.
![Page 50: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/50.jpg)
Funktioner i C med ”variabelt” antal parametre
• I nogen situationer er det smart, at kunne kalde en funktion med forskellige antal parametre tænk f.ek på printf, i de objekt orienterede sprog klares dette via overloadning, men det er også muligt i c, blot er det lidt mere besværlig.
• I C er det muligt at definere en funktion, som vist nedenfor:int minFunktion(…){ …. Det betyder at man kan have variabelt antal input
![Page 51: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/51.jpg)
Eksempel
![Page 52: Efteruddannelse Embedded C](https://reader035.fdocuments.net/reader035/viewer/2022062316/56816776550346895ddc7042/html5/thumbnails/52.jpg)
Opsummering
1) Opsummering 2) Evaluering3) Tak for denne gang