Hi nvidia team:
we are using SPI coummunication.
but find SPI transfer time not instability.
below I have a test on Orin devkit.and print the time.
every time send 2116 byte.and delay 10ms
in theory ,when transfer 2116 byte. time should be 1.69ms [2116(byte) x 8(bit) x1000(ms) /10000000(HZ)]
1: --timeout[0] 0 s 033 671497 ns
1 is the test count .
timeout is the longer than 10ms num.
033 671497 ns is the actual time.
root@tegra-ubuntu:/home/file# ./spitest -f1.txt -t10
open device /dev/spidev2.0
spi string : SPI (fd=3, mode=1, max_speed=10 M , bit_order=MSB first, bits_per_word=8, extra_flags=00)
1: --timeout[0] 0 s 004 157527 ns
2: --timeout[0] 0 s 003 023231 ns
3: --timeout[0] 0 s 012 357072 ns
---------------------------------
4: --timeout[1] 0 s 002 311096 ns
5: --timeout[1] 0 s 014 651524 ns
---------------------------------
6: --timeout[2] 0 s 014 274781 ns
---------------------------------
7: --timeout[3] 0 s 003 604366 ns
8: --timeout[3] 0 s 002 421773 ns
9: --timeout[3] 0 s 013 899126 ns
---------------------------------
10: --timeout[4] 0 s 004 358461 ns
11: --timeout[4] 0 s 002 423053 ns
12: --timeout[4] 0 s 014 413720 ns
---------------------------------
13: --timeout[5] 0 s 004 107790 ns
14: --timeout[5] 0 s 002 430190 ns
15: --timeout[5] 0 s 013 588282 ns
---------------------------------
16: --timeout[6] 0 s 013 692366 ns
---------------------------------
17: --timeout[7] 0 s 014 639234 ns
---------------------------------
18: --timeout[8] 0 s 003 702272 ns
19: --timeout[8] 0 s 002 822906 ns
20: --timeout[8] 0 s 013 592955 ns
---------------------------------
21: --timeout[9] 0 s 013 361231 ns
---------------------------------
22: --timeout[10] 0 s 004 099916 ns
23: --timeout[10] 0 s 002 075435 ns
24: --timeout[10] 0 s 004 750376 ns
25: --timeout[10] 0 s 002 788434 ns
26: --timeout[10] 0 s 004 387491 ns
27: --timeout[10] 0 s 002 421581 ns
28: --timeout[10] 0 s 004 794864 ns
29: --timeout[10] 0 s 002 034628 ns
30: --timeout[10] 0 s 014 176842 ns
---------------------------------
31: --timeout[11] 0 s 014 026190 ns
---------------------------------
32: --timeout[12] 0 s 013 677100 ns
---------------------------------
33: --timeout[13] 0 s 013 771965 ns
---------------------------------
34: --timeout[14] 0 s 014 030959 ns
---------------------------------
35: --timeout[15] 0 s 013 743896 ns
---------------------------------
36: --timeout[16] 0 s 013 378835 ns
---------------------------------
37: --timeout[17] 0 s 013 481094 ns
---------------------------------
38: --timeout[18] 0 s 014 094651 ns
---------------------------------
39: --timeout[19] 0 s 014 296513 ns
---------------------------------
40: --timeout[20] 0 s 003 895270 ns
41: --timeout[20] 0 s 002 628052 ns
42: --timeout[20] 0 s 014 086137 ns
---------------------------------
43: --timeout[21] 0 s 013 807396 ns
---------------------------------
44: --timeout[22] 0 s 013 938365 ns
---------------------------------
45: --timeout[23] 0 s 003 842524 ns
46: --timeout[23] 0 s 002 034372 ns
47: --timeout[23] 0 s 005 401092 ns
48: --timeout[23] 0 s 002 185921 ns
49: --timeout[23] 0 s 002 534306 ns
50: --timeout[23] 0 s 002 409899 ns
51: --timeout[23] 0 s 004 408615 ns
52: --timeout[23] 0 s 013 971428 ns
---------------------------------
53: --timeout[24] 0 s 003 588235 ns
54: --timeout[24] 0 s 002 443057 ns
55: --timeout[24] 0 s 013 869840 ns
---------------------------------
56: --timeout[25] 0 s 003 750250 ns
57: --timeout[25] 0 s 002 213829 ns
58: --timeout[25] 0 s 013 919577 ns
---------------------------------
59: --timeout[26] 0 s 004 472084 ns
60: --timeout[26] 0 s 002 298613 ns
61: --timeout[26] 0 s 014 191533 ns
---------------------------------
62: --timeout[27] 0 s 013 954976 ns
---------------------------------
63: --timeout[28] 0 s 004 540192 ns
64: --timeout[28] 0 s 002 319450 ns
65: --timeout[28] 0 s 013 697871 ns
---------------------------------
66: --timeout[29] 0 s 004 590089 ns
67: --timeout[29] 0 s 002 030371 ns
68: --timeout[29] 0 s 003 927371 ns
69: --timeout[29] 0 s 002 210053 ns
70: --timeout[29] 0 s 003 816726 ns
71: --timeout[29] 0 s 002 244587 ns
72: --timeout[29] 0 s 003 683581 ns
73: --timeout[29] 0 s 002 221223 ns
74: --timeout[29] 0 s 004 210401 ns
75: --timeout[29] 0 s 002 164156 ns
76: --timeout[29] 0 s 014 062740 ns
---------------------------------
77: --timeout[30] 0 s 004 274573 ns
78: --timeout[30] 0 s 002 419532 ns
79: --timeout[30] 0 s 014 307524 ns
---------------------------------
80: --timeout[31] 0 s 013 453441 ns
---------------------------------
81: --timeout[32] 0 s 004 180316 ns
82: --timeout[32] 0 s 002 076907 ns
83: --timeout[32] 0 s 003 516382 ns
84: --timeout[32] 0 s 002 407466 ns
85: --timeout[32] 0 s 014 480644 ns
---------------------------------
86: --timeout[33] 0 s 013 426780 ns
---------------------------------
87: --timeout[34] 0 s 014 012395 ns
---------------------------------
88: --timeout[35] 0 s 003 306837 ns
89: --timeout[35] 0 s 002 136695 ns
90: --timeout[35] 0 s 012 941280 ns
---------------------------------
91: --timeout[36] 0 s 003 464276 ns
92: --timeout[36] 0 s 002 124180 ns
93: --timeout[36] 0 s 014 351308 ns
---------------------------------
94: --timeout[37] 0 s 013 199856 ns
---------------------------------
95: --timeout[38] 0 s 013 459362 ns
---------------------------------
96: --timeout[39] 0 s 003 844315 ns
97: --timeout[39] 0 s 002 017824 ns
98: --timeout[39] 0 s 004 029183 ns
99: --timeout[39] 0 s 002 170974 ns
100: --timeout[39] 0 s 003 759468 ns
101: --timeout[39] 0 s 002 415404 ns
102: --timeout[39] 0 s 014 654341 ns
---------------------------------
103: --timeout[40] 0 s 013 387956 ns
---------------------------------
104: --timeout[41] 0 s 016 393072 ns
---------------------------------
105: --timeout[42] 0 s 013 362159 ns
---------------------------------
106: --timeout[43] 0 s 004 513307 ns
107: --timeout[43] 0 s 005 872093 ns
108: --timeout[43] 0 s 013 655335 ns
---------------------------------
109: --timeout[44] 0 s 013 735223 ns
---------------------------------
110: --timeout[45] 0 s 013 799138 ns
---------------------------------
111: --timeout[46] 0 s 004 695966 ns
112: --timeout[46] 0 s 002 703171 ns
113: --timeout[46] 0 s 003 704705 ns
114: --timeout[46] 0 s 002 811351 ns
115: --timeout[46] 0 s 013 621441 ns
---------------------------------
116: --timeout[47] 0 s 003 948304 ns
117: --timeout[47] 0 s 012 322377 ns
---------------------------------
118: --timeout[48] 0 s 012 269887 ns
---------------------------------
119: --timeout[49] 0 s 002 379941 ns
120: --timeout[49] 0 s 003 846684 ns
121: --timeout[49] 0 s 002 281202 ns
122: --timeout[49] 0 s 013 710065 ns
---------------------------------
123: --timeout[50] 0 s 003 885763 ns
124: --timeout[50] 0 s 002 050950 ns
125: --timeout[50] 0 s 003 529728 ns
126: --timeout[50] 0 s 002 420748 ns
127: --timeout[50] 0 s 004 972307 ns
128: --timeout[50] 0 s 002 270544 ns
129: --timeout[50] 0 s 003 436014 ns
130: --timeout[50] 0 s 002 219271 ns
131: --timeout[50] 0 s 004 172954 ns
132: --timeout[50] 0 s 002 034083 ns
133: --timeout[50] 0 s 013 582170 ns
---------------------------------
134: --timeout[51] 0 s 014 310884 ns
---------------------------------
135: --timeout[52] 0 s 013 662825 ns
---------------------------------
136: --timeout[53] 0 s 014 391283 ns
---------------------------------
137: --timeout[54] 0 s 013 427772 ns
---------------------------------
138: --timeout[55] 0 s 004 733093 ns
139: --timeout[55] 0 s 002 026145 ns
140: --timeout[55] 0 s 013 708338 ns
---------------------------------
141: --timeout[56] 0 s 014 179467 ns
---------------------------------
142: --timeout[57] 0 s 003 597420 ns
143: --timeout[57] 0 s 002 791795 ns
144: --timeout[57] 0 s 003 548612 ns
145: --timeout[57] 0 s 002 029027 ns
146: --timeout[57] 0 s 003 712227 ns
147: --timeout[57] 0 s 002 221639 ns
148: --timeout[57] 0 s 013 914681 ns
---------------------------------
149: --timeout[58] 0 s 013 887027 ns
---------------------------------
150: --timeout[59] 0 s 013 848108 ns
---------------------------------
151: --timeout[60] 0 s 013 959457 ns
---------------------------------
152: --timeout[61] 0 s 003 882691 ns
153: --timeout[61] 0 s 002 055207 ns
154: --timeout[61] 0 s 013 773213 ns
---------------------------------
155: --timeout[62] 0 s 013 771293 ns
---------------------------------
156: --timeout[63] 0 s 004 594570 ns
157: --timeout[63] 0 s 002 223559 ns
158: --timeout[63] 0 s 004 441613 ns
159: --timeout[63] 0 s 002 278514 ns
160: --timeout[63] 0 s 004 383714 ns
161: --timeout[63] 0 s 002 432047 ns
162: --timeout[63] 0 s 014 215249 ns
---------------------------------
163: --timeout[64] 0 s 013 763068 ns
---------------------------------
164: --timeout[65] 0 s 014 197359 ns
---------------------------------
165: --timeout[66] 0 s 003 535424 ns
166: --timeout[66] 0 s 002 375813 ns
167: --timeout[66] 0 s 003 931597 ns
168: --timeout[66] 0 s 002 018496 ns
169: --timeout[66] 0 s 004 684731 ns
170: --timeout[66] 0 s 002 419373 ns
171: --timeout[66] 0 s 014 181707 ns
---------------------------------
172: --timeout[67] 0 s 013 669161 ns
---------------------------------
173: --timeout[68] 0 s 005 421864 ns
174: --timeout[68] 0 s 002 320922 ns
175: --timeout[68] 0 s 015 675176 ns
---------------------------------
176: --timeout[69] 0 s 003 956849 ns
177: --timeout[69] 0 s 002 089870 ns
178: --timeout[69] 0 s 014 519564 ns
---------------------------------
179: --timeout[70] 0 s 013 887508 ns
---------------------------------
180: --timeout[71] 0 s 003 819479 ns
181: --timeout[71] 0 s 012 376596 ns
---------------------------------
182: --timeout[72] 0 s 002 215942 ns
183: --timeout[72] 0 s 004 431819 ns
184: --timeout[72] 0 s 002 166684 ns
185: --timeout[72] 0 s 004 650773 ns
186: --timeout[72] 0 s 002 123060 ns
187: --timeout[72] 0 s 014 471138 ns
---------------------------------
188: --timeout[73] 0 s 003 364064 ns
189: --timeout[73] 0 s 012 573497 ns
---------------------------------
190: --timeout[74] 0 s 002 201475 ns
191: --timeout[74] 0 s 004 896996 ns
192: --timeout[74] 0 s 002 618259 ns
193: --timeout[74] 0 s 014 392884 ns
---------------------------------
194: --timeout[75] 0 s 013 592860 ns
---------------------------------
195: --timeout[76] 0 s 004 608621 ns
196: --timeout[76] 0 s 002 267248 ns
197: --timeout[76] 0 s 014 166441 ns
---------------------------------
198: --timeout[77] 0 s 003 802452 ns
199: --timeout[77] 0 s 002 305783 ns
200: --timeout[77] 0 s 013 815045 ns
---------------------------------
201: --timeout[78] 0 s 013 987815 ns
---------------------------------
202: --timeout[79] 0 s 013 853996 ns
---------------------------------
203: --timeout[80] 0 s 014 028558 ns
---------------------------------
204: --timeout[81] 0 s 003 600045 ns
205: --timeout[81] 0 s 002 520416 ns
206: --timeout[81] 0 s 003 807349 ns
207: --timeout[81] 0 s 002 006942 ns
208: --timeout[81] 0 s 004 700478 ns
209: --timeout[81] 0 s 002 969301 ns
210: --timeout[81] 0 s 013 710385 ns
---------------------------------
211: --timeout[82] 0 s 004 192062 ns
212: --timeout[82] 0 s 002 984280 ns
213: --timeout[82] 0 s 004 177563 ns
214: --timeout[82] 0 s 002 028098 ns
215: --timeout[82] 0 s 013 705648 ns
---------------------------------
216: --timeout[83] 0 s 014 493414 ns
---------------------------------
217: --timeout[84] 0 s 013 395222 ns
---------------------------------
218: --timeout[85] 0 s 013 862671 ns
---------------------------------
219: --timeout[86] 0 s 014 945405 ns
---------------------------------
220: --timeout[87] 0 s 014 505833 ns
---------------------------------
221: --timeout[88] 0 s 002 974870 ns
222: --timeout[88] 0 s 002 431151 ns
223: --timeout[88] 0 s 014 238038 ns
---------------------------------
224: --timeout[89] 0 s 004 063013 ns
225: --timeout[89] 0 s 002 221831 ns
226: --timeout[89] 0 s 014 385170 ns
---------------------------------
227: --timeout[90] 0 s 013 381491 ns
---------------------------------
228: --timeout[91] 0 s 004 781806 ns
229: --timeout[91] 0 s 002 646456 ns
230: --timeout[91] 0 s 014 603195 ns
---------------------------------
231: --timeout[92] 0 s 014 039728 ns
---------------------------------
232: --timeout[93] 0 s 014 569397 ns
---------------------------------
233: --timeout[94] 0 s 014 129090 ns
---------------------------------
234: --timeout[95] 0 s 013 213971 ns
---------------------------------
235: --timeout[96] 0 s 014 169129 ns
---------------------------------
236: --timeout[97] 0 s 013 795618 ns
---------------------------------
237: --timeout[98] 0 s 013 598172 ns
---------------------------------
238: --timeout[99] 0 s 003 961842 ns
239: --timeout[99] 0 s 002 212870 ns
240: --timeout[99] 0 s 004 008411 ns
241: --timeout[99] 0 s 002 013631 ns
242: --timeout[99] 0 s 003 682525 ns
243: --timeout[99] 0 s 002 172862 ns
244: --timeout[99] 0 s 014 096539 ns
---------------------------------
245: --timeout[100] 0 s 013 825416 ns
---------------------------------
246: --timeout[101] 0 s 013 779646 ns
---------------------------------
247: --timeout[102] 0 s 013 788448 ns
---------------------------------
248: --timeout[103] 0 s 013 939869 ns
---------------------------------
249: --timeout[104] 0 s 013 710962 ns
---------------------------------
250: --timeout[105] 0 s 003 795795 ns
251: --timeout[105] 0 s 002 045766 ns
252: --timeout[105] 0 s 003 681436 ns
253: --timeout[105] 0 s 012 624003 ns
---------------------------------
254: --timeout[106] 0 s 002 251244 ns
255: --timeout[106] 0 s 013 900630 ns
---------------------------------
256: --timeout[107] 0 s 003 871553 ns
257: --timeout[107] 0 s 002 013344 ns
258: --timeout[107] 0 s 004 264459 ns
259: --timeout[107] 0 s 010 933537 ns
260: --timeout[107] 0 s 002 756557 ns
261: --timeout[107] 0 s 014 240279 ns
---------------------------------
262: --timeout[108] 0 s 004 046082 ns
263: --timeout[108] 0 s 002 019040 ns
264: --timeout[108] 0 s 003 656760 ns
265: --timeout[108] 0 s 012 297092 ns
---------------------------------
266: --timeout[109] 0 s 002 399369 ns
267: --timeout[109] 0 s 014 234005 ns
---------------------------------
268: --timeout[110] 0 s 004 044706 ns
269: --timeout[110] 0 s 001 970935 ns
270: --timeout[110] 0 s 003 353118 ns
271: --timeout[110] 0 s 002 434351 ns
272: --timeout[110] 0 s 014 812772 ns
---------------------------------
273: --timeout[111] 0 s 013 850188 ns
---------------------------------
274: --timeout[112] 0 s 014 494951 ns
---------------------------------
275: --timeout[113] 0 s 013 706480 ns
---------------------------------
276: --timeout[114] 0 s 013 980677 ns
---------------------------------
277: --timeout[115] 0 s 003 410537 ns
278: --timeout[115] 0 s 002 158106 ns
279: --timeout[115] 0 s 013 796450 ns
---------------------------------
280: --timeout[116] 0 s 003 528191 ns
281: --timeout[116] 0 s 002 377925 ns
282: --timeout[116] 0 s 013 858446 ns
---------------------------------
283: --timeout[117] 0 s 013 567606 ns
---------------------------------
284: --timeout[118] 0 s 014 393140 ns
---------------------------------
285: --timeout[119] 0 s 004 624080 ns
286: --timeout[119] 0 s 002 264207 ns
287: --timeout[119] 0 s 004 187741 ns
288: --timeout[119] 0 s 002 231689 ns
289: --timeout[119] 0 s 013 777247 ns
---------------------------------
290: --timeout[120] 0 s 004 511579 ns
291: --timeout[120] 0 s 002 329915 ns
292: --timeout[120] 0 s 013 562197 ns
---------------------------------
293: --timeout[121] 0 s 013 767581 ns
---------------------------------
294: --timeout[122] 0 s 014 784222 ns
---------------------------------
295: --timeout[123] 0 s 014 348011 ns
---------------------------------
296: --timeout[124] 0 s 014 066870 ns
---------------------------------
297: --timeout[125] 0 s 013 823047 ns
---------------------------------
298: --timeout[126] 0 s 013 654406 ns
---------------------------------
299: --timeout[127] 0 s 013 989831 ns
---------------------------------
300: --timeout[128] 0 s 004 080744 ns
301: --timeout[128] 0 s 002 431791 ns
302: --timeout[128] 0 s 003 743240 ns
303: --timeout[128] 0 s 002 242762 ns
304: --timeout[128] 0 s 013 633219 ns
---------------------------------
305: --timeout[129] 0 s 014 365390 ns
---------------------------------
306: --timeout[130] 0 s 013 698544 ns
---------------------------------
307: --timeout[131] 0 s 013 931739 ns
---------------------------------
308: --timeout[132] 0 s 003 378947 ns
309: --timeout[132] 0 s 002 155066 ns
310: --timeout[132] 0 s 004 178844 ns
311: --timeout[132] 0 s 002 029059 ns
312: --timeout[132] 0 s 003 646486 ns
313: --timeout[132] 0 s 002 197922 ns
314: --timeout[132] 0 s 015 128192 ns
---------------------------------
315: --timeout[133] 0 s 003 072393 ns
316: --timeout[133] 0 s 002 231401 ns
317: --timeout[133] 0 s 003 930796 ns
318: --timeout[133] 0 s 002 025698 ns
319: --timeout[133] 0 s 013 465443 ns
---------------------------------
320: --timeout[134] 0 s 003 848540 ns
321: --timeout[134] 0 s 002 093422 ns
322: --timeout[134] 0 s 003 730566 ns
323: --timeout[134] 0 s 002 172317 ns
324: --timeout[134] 0 s 003 896870 ns
325: --timeout[134] 0 s 002 024321 ns
326: --timeout[134] 0 s 013 590363 ns
---------------------------------
327: --timeout[135] 0 s 013 599132 ns
---------------------------------
328: --timeout[136] 0 s 014 183659 ns
---------------------------------
329: --timeout[137] 0 s 014 160807 ns
---------------------------------
330: --timeout[138] 0 s 014 045810 ns
---------------------------------
331: --timeout[139] 0 s 014 069750 ns
---------------------------------
332: --timeout[140] 0 s 004 323191 ns
333: --timeout[140] 0 s 002 184000 ns
334: --timeout[140] 0 s 003 967891 ns
335: --timeout[140] 0 s 002 020993 ns
336: --timeout[140] 0 s 003 456498 ns
337: --timeout[140] 0 s 002 187520 ns
338: --timeout[140] 0 s 004 013596 ns
339: --timeout[140] 0 s 002 015072 ns
340: --timeout[140] 0 s 013 606846 ns
---------------------------------
341: --timeout[141] 0 s 013 987174 ns
---------------------------------
342: --timeout[142] 0 s 004 580520 ns
343: --timeout[142] 0 s 002 182208 ns
344: --timeout[142] 0 s 004 175035 ns
345: --timeout[142] 0 s 002 035812 ns
346: --timeout[142] 0 s 003 792114 ns
347: --timeout[142] 0 s 002 192513 ns
348: --timeout[142] 0 s 004 123345 ns
349: --timeout[142] 0 s 001 986554 ns
350: --timeout[142] 0 s 004 709057 ns
351: --timeout[142] 0 s 002 422893 ns
352: --timeout[142] 0 s 003 807221 ns
353: --timeout[142] 0 s 002 010143 ns
354: --timeout[142] 0 s 003 692223 ns
355: --timeout[142] 0 s 002 184800 ns
356: --timeout[142] 0 s 004 020734 ns
357: --timeout[142] 0 s 002 031459 ns
358: --timeout[142] 0 s 013 713042 ns
---------------------------------
359: --timeout[143] 0 s 003 966899 ns
360: --timeout[143] 0 s 002 073931 ns
361: --timeout[143] 0 s 004 000249 ns
362: --timeout[143] 0 s 002 187681 ns
363: --timeout[143] 0 s 013 641349 ns
---------------------------------
364: --timeout[144] 0 s 014 685868 ns
---------------------------------
365: --timeout[145] 0 s 003 778671 ns
366: --timeout[145] 0 s 002 195266 ns
367: --timeout[145] 0 s 004 454480 ns
368: --timeout[145] 0 s 002 010462 ns
369: --timeout[145] 0 s 003 554660 ns
370: --timeout[145] 0 s 002 164028 ns
371: --timeout[145] 0 s 014 158055 ns
---------------------------------
I wanto ask why every transfer is not stable and have some gaps?