-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathSPIperf.txt
182 lines (156 loc) · 5.71 KB
/
SPIperf.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
unconnected SPI performance (transfer 1000 bytes) mbs=megabits/sec
http://forums.leaflabs.com/topic.php?id=1075
maple spi maple spi/dma
SPI clock read/write read/write
1.125MHz .85mbs 1.125mbs
2.25MHz 1.35mbs 2.25mbs
4.5MHz 1.8mbs 4.5mbs
9MHz 2.2mbs 8.9mbs
18MHz 2.2mbs 17.8mbs
DUE spi extended DUE spi/dma
SPI clock write write write
1MHz 0.82 0.87 1.00 mbs (million bits/second)
2MHz 1.45 1.55 2.00
4MHz 2.35 2.52 3.99
7MHz 3.26 3.45 6.99
14MHz 4.25 4.59 13.94
21MHz 4.73 5.15 20.89
42MHz 5.33 5.87 41.45
teensy 3 96Mhz (avr emulation, fatlib, DMA)
SPI fatSPI SPI+DMA
SPI clock write write
2MHz 2.0 mbs 2.0 2.0
4MHz 3.5 mbs 4.0 4.0
8MHz 6.0 mbs 7.9 7.5
12mhz 7.8 11.6 10.6
16mhz 8.7 15.3 13.5
24mhz 11.2 21.8 17.9
30mhz 14.1 27.2 22.5 (overclock CPU @120mhz)
teensy LC 48Mhz (beta 2/9/15)
SPI 16-bit DMA-8
SPI1 clock write write write MODE1
4MHz 3.6 mbs 3.8 3.6 3.9
8MHz 7.1 mbs 7.5 7.1 7.9
12MHz 10.6 mbs 11.2 10.6 11.9
24MHz 19.9 mbs 22.3 21.0 23.5
(max SPI0 clock is 12MHz, MODE1 faster than MODE0)
arduino UNO avr328/16MHz
SPI
SPI clock read/write
2MHz 1.57mbs
4MHz 2.6 mbs
8MHz 3.8mbs
attiny85 5v@8mhz USI read/write 0.242 mbs
mbed LPC1768 @ 96MHz (SPI/SPS peripheral max is 33mhz)
SPI DMA
SPS clock write
4MHz 2.6 mbs 3.3 mbs
8MHz 3.9 mbs 6.6
12MHz 4.9 mbs 9.8
16MHz 5.0 mbs 12.9
24MHz 6.6 mbs 19.1
mbed K64F @ 120MHz (60mhz bus, SPI0 max is 30mhz)
SPI FIFO (SDfat)
SPI clock write
2MHz 1.4 mbs 2.0 mbs
4MHz 2.2 mbs 4.0
8MHz 2.7 mbs 7.4
15MHz 3.2 mbs 14.1
30MHz 3.4 mbs 27.3
mbed F446RE @ 180MHz (SPI1 peripheral max is 45mhz)
SPI DMA
SPI clock write
3MHz 2.5 mbs 2.8 mbs
5MHz 4.4 mbs 5.6 mbs
10MHz 6.9 mbs 11.2
23MHz 9.7 mbs 22.3
45MHz 11.6 mbs 44.3
mbed F767ZI @216 mhz peripheral clocak 54 mhz
spi 1 mhz 9806 us 0.84 mbs 374
spi 2 mhz 5255 us 1.56 mbs 36c
spi 4 mhz 2950 us 2.78 mbs 364
spi 8 mhz 1803 us 4.54 mbs 35c
spi 15 mhz 1235 us 6.63 mbs 354
spi 30 mhz 951 us 8.61 mbs 34c
spi 45 mhz 950 us 8.62 mbs 34c
DMAspi 156 us 52.51 mbs 344
mbed MXRT1050-EVKB @ 600MHz 11/27/18
SPI DMA
SPI clock write
4MHz 2.7 mbs 3.1 mbs
8MHz 4.5 mbs 6.1 mbs
10MHz 5.5 mbs 7.5 mbs
16MHz 6.8 mbs 9.4
20MHz 9.4 mbs 13.1 mbs
32MHz 12.6 mbs
Teensy 4 MXRT1062 @ 600MHz 6/29/19
SPI CCR (MHz)
SPI clock write
4MHz 3.9 mbs 4 MHz
8MHz 7.3 mbs 7.5 MHz
16MHz 14.0 mbs 15.1
32MHz 22.3 mbs 25.1
40MHz 30.9 37.7
1.48 max SPI 528/7/2 = 37.7mhz, 1.49 720/3/2 = 120mhz (54 mbs)
ZERO SAMD21G @ 48MHz (SPI max clock 24mhz, but ZERO good to 12mhz)
SPI
SPI clock transfer write DMA
4MHz 1.7 mbs 2.2 3.99
8MHz 2.2 mbs 3.0 7.92
12MHz 2.5 mbs 3.6 11.8
CC3200 LAUNCHPAD @ 80MHz (SPI max clock 20mhz)
SPI
SPI clock transfer DMA (4-byte)
2MHz 1.2 mbs 1.9
4MHz 1.7 mbs 3.8
5MHz 4.8
10MHz 2.2 mbs 9.2
20MHz 2.7 mbs 17.2
SPI unconnected
ESP8266@80MHz ESP32@240mhz
SPI clock writeBytes
2MHz 1.95 mbs 1.98
4MHz 3.85 mbs 3.94
8MHz 7.43 mbs 7.8
16MHz 13.9 mbs 15.3
20MHz 16.8 mbs 18.96
40MHz 28.9 mbs 36.04
80MHz 46.0 mbs 65.04
WICED STM32F205 @ 120MHz (SPI1 max clock 30mhz)
SPI
SPI clock transfer DMA
4MHz 2.2 mbs 3.0 3.75mhz
8MHz 4.0 mbs 7.0 7.5 mhz
15MHz 4.0 mbs 14.0
30MHz 4.0 mbs 30.0
SAMD51 @ 120MHz Adafruit M4 express (SPI1 max clock 24mhz)
SPI
SPI clock transfer DMA
4MHz 3.4 mbs 4.0 mbs
8MHz 5.8 mbs 8.0 mbs
12MHz 7.5 mbs 12.0 mbs
24MHz 10.8 mbs 24.0 mbs
artemis @ 96MHz sparkfun micromod
SPI
SPI clock transfer
4MHz 4.0 mbs
8MHz 7.8 mbs
12MHz 11.8 mbs
16MHz 15.6 mbs
24MHz 23.2 mbs
48MHz 44.4 mbs
rpi pico @125MHz (SPI clock 125Mhz/2 /4 /8 ...) bout same with DMA
SPI clock transfer
1.953125 mhz 1.644399 mbs
3.906250 mhz 3.285421 mbs
7.812500 mhz 6.573541 mbs
15.625000 mhz 13.008130 mbs
31.250000 mhz 25.396825 mbs
62.500000 mhz 51.612903 mbs
dragonfly (STM32L4 @80mhz), SPI clock at 20 mhz yields 19.9 mbs
pyboard @168mhz, SPI clock at 42mhz yields 37.6mbs (19.8mbs @21mhz) C/firmware
parallax quickstart 80Mhz (from W5200-driver)
SpiCounterPasm.spin read 5.7mbs write 9.8 mbs (uses freqa at 10/20 MHz)
SpiPasm.spin 4.1 mbs bit-bang SPI in PASM
Spi.spin 0.019 mbs bit-bang in spin
parallax stamp bs2 20MHz (SHIFTOUT) clock 16.7khz