Update for 20-11-21 18:45
This commit is contained in:
parent
07be566e8f
commit
e1c41cb1dc
32
tech/SPI.wiki
Normal file
32
tech/SPI.wiki
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
= SPI =
|
||||||
|
|
||||||
|
SPI or Serial peripheral interface is the standard often used as a form of
|
||||||
|
interchip communication on boards, and in embedded devices.
|
||||||
|
|
||||||
|
See https://www.youtube.com/watch?v=MCi7dCBhVpQ
|
||||||
|
|
||||||
|
== Layout ==
|
||||||
|
|
||||||
|
Each device, the master and slave (often microcontroler as master and
|
||||||
|
peripheral/sensor as slave) have four pins
|
||||||
|
|
||||||
|
* SCK - Serial Clock
|
||||||
|
* CS - Chip select (active low)
|
||||||
|
* SDI - Serial data in
|
||||||
|
* SDO - Serial data out
|
||||||
|
|
||||||
|
NOTE serial data * is from the persepctive of the device (SDI on master is
|
||||||
|
connected to SDO on slave and vice versa).
|
||||||
|
|
||||||
|
SDO on the master to SDI on the peripherial is often called MOSI (Master out
|
||||||
|
Slave in), and the inverse is often called MISO (Master in Slave out).
|
||||||
|
|
||||||
|
Some chips may only have a MOSI, as some devices do not create data to send
|
||||||
|
back to the master.
|
||||||
|
|
||||||
|
== Sending data ==
|
||||||
|
|
||||||
|
On the *rising edge* of the clock, each device reads what is currently set on
|
||||||
|
the respective input port. The chip must also have its output set before the
|
||||||
|
rising edge, to ensure that the device will receive the data it intends to
|
||||||
|
send. All of this only occurs when CS is set low.
|
@ -16,7 +16,7 @@ user, sometimes so that they don't even know there is a computer
|
|||||||
- Pi Pico
|
- Pi Pico
|
||||||
* [[ARM]] Processor type
|
* [[ARM]] Processor type
|
||||||
|
|
||||||
=== Line of products ===
|
== Line of products ==
|
||||||
|
|
||||||
* [[ATMega328P|Arduino Nano]]
|
* [[ATMega328P|Arduino Nano]]
|
||||||
* [[ESP32]]
|
* [[ESP32]]
|
||||||
@ -41,16 +41,22 @@ user, sometimes so that they don't even know there is a computer
|
|||||||
|
|
||||||
* [[nRF24L01]]
|
* [[nRF24L01]]
|
||||||
|
|
||||||
|
Also see [[Ham]]
|
||||||
|
|
||||||
==== Power regulation ====
|
==== Power regulation ====
|
||||||
|
|
||||||
* [[TP4056]]
|
* [[TP4056]]
|
||||||
* [[TPS76933DBVR]]
|
* [[TPS76933DBVR]]
|
||||||
|
|
||||||
=== Programming ===
|
== Programming ==
|
||||||
|
|
||||||
* [[../lang/C|C]]
|
* [[../lang/C|C]]
|
||||||
* [[../lang/C++|C++]]
|
* [[../lang/C++|C++]]
|
||||||
* [[arduino_techniques|Techniques]]
|
* [[arduino_techniques|Techniques]]
|
||||||
* [[cross_toolchain|Arduino Cross-Toolchain setup]]
|
* [[cross_toolchain|Arduino Cross-Toolchain setup]]
|
||||||
|
|
||||||
|
== Communication ==
|
||||||
|
|
||||||
|
* [[SPI]]
|
||||||
|
|
||||||
[[index]]
|
[[index]]
|
||||||
|
Loading…
Reference in New Issue
Block a user