Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Serial Peripheral Interface
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Applications== {{Multiple image | image1 = ATI Radeon X1300 256MB - Atmel 25F512AN-5397.jpg | caption1 = SPI Memory by [[Atmel]] | image2 = ADSV-931 Mini Docking Station - LAN module - Fairchild 93C46-93553.jpg | caption2 = [[Fairchild Semiconductor|Fairchild]] EEPROM using [[#Microwire|Microwire]] | image3 = Sumup AIR1 E205 - board - Microchip 26F032B-1521.jpg | caption3 = [[Microchip Technology|Microchip]] 32-Mbit [[#QPI/SQI|SQI]] Flash Memory | direction = horizontal | total_width = 400 }} SPI is used to talk to a variety of peripherals, such as * Sensors: [[temperature]], [[pressure]], [[analog-to-digital converter|ADC]], [[touchscreens]], [[video game controllers]] * Control devices: [[audio codec]]s, [[digital potentiometers]], [[digital-to-analog converter|DACs]] * Camera lenses: [[Canon EF lens mount]] * Memory: [[flash memory#Serial flash|flash]] and [[EEPROM#Serial bus devices|EEPROMs]] * [[Real-time clock|Real-time clocks]] * [[LCD|LCDs]], sometimes even for managing image data * Any [[MultiMediaCard|MMC]] or [[Secure Digital|SD]] card (including [[Secure Digital#SDIO|SDIO]] variant{{NoteTag|Not to be confused with the SDIO (Serial Data I/O) line of the half-duplex implementation of SPI sometimes also called "3-wire" SPI. Here e.g. MOSI (via a resistor) and MISO (no resistor) of a master is connected to the SDIO line of a slave.|name=3wireSDI}}) * [[Shift registers]] for additional I/O<ref name=":3" /><ref name=":2" /> [[Printed circuit board|Board]] real estate and wiring savings compared to a [[Parallel communication|parallel]] bus are significant, and have earned SPI a solid role in embedded systems. That is true for most [[system-on-a-chip]] processors, both with higher-end 32-bit processors such as those using [[ARM architecture|ARM]], [[MIPS architecture|MIPS]], or [[PowerPC]] and with lower-end microcontrollers such as the [[Atmel AVR|AVR]], [[PIC microcontroller|PIC]], and [[MSP430]]. These chips usually include SPI controllers capable of running in either master or slave mode. [[In-system programming|In-system programmable]] AVR controllers (including blank ones) can be programmed using SPI.<ref>{{cite web |url=http://www.atmel.com/dyn/resources/prod_documents/DOC0943.PDF |title=AVR910 - In-system programming |archive-url=https://web.archive.org/web/20110302123348/http://www.atmel.com/dyn/resources/prod_documents/DOC0943.PDF |archive-date=2011-03-02}}</ref> Chip or [[FPGA]] based designs sometimes use SPI to communicate between internal components; on-chip real estate can be as costly as its on-board cousin. And for high-performance systems, [[FPGA]]s sometimes use SPI to interface as a slave to a host, as a master to sensors, or for flash memory used to bootstrap if they are SRAM-based. The full-duplex capability makes SPI very simple and efficient for single master/single slave applications. Some devices use the full-duplex mode to implement an efficient, swift data stream for applications such as [[digital audio]], [[digital signal processing]], or [[channel (communications)|telecommunications channels]], but most off-the-shelf chips stick to half-duplex request/response protocols.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)