Servus, ich benutze das STM32F429 DiscoveryII (mit STM32F429ZIT6UV) und möchte die selben Daten über 3 unterschiedliche SPI Kanäle parallel senden. Ich sende im Interruptmode mit Baudrateprescaler_32 -> also mit 2,5MBit/s. Ich benute die SPI Kanäle 1,4,5 im send only master mode und führe die HAL_SPI_Transmit_IT dreimal nacheinander aus. Ebenfalls sind die Kanäle identisch parametriert. Ich bin gespannt, was ich falsch mache;) Bei weiteren Fragen, Anregungen,... nur her damit. Viele Grüße Julian
Gast
#4127214
Nutzt du die cube lib? bzw. zeig den Code ... Die Cube lib wartet bei manchen Bussen (bei SPI bin ich nicht sicher) innerhalb des Interrupts auf das senden der lezten Bytes. Also evtl. nicht dein Fehler sondern ST :-) mfg DerDan
Gast
#4127220
Julian B. schrieb: > Ich bin gespannt, was ich falsch mache;) Du sendest die Daten mit Hilfe der CPU (TX-INT), und glaubst das diese nur für deine SPI Transmission da ist. Meine Glaskugel sagt: Das ist kein Fehler, du hast noch andere INTs aktiviert. Einer hatte gerade für die ca. 10us(Bild) die CPU anderweitig beschäftigt! >Bei weiteren Fragen, Anregungen,... nur her damit. Wenn du eine DMA Senderoutine nimmst, sollte diese Effekt nicht auftreten. ohne weitere Infos kann man sonst nicht viel sagen.....
Hi, vielen Dank schon mal für den Input. Ja ich benutze die Cube Lib, anbei ist mein Code. Bis auf den Ticktimer sind aber sonst alle Interrupts raus.
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 | |
die weiteren beiden SPI init functions sind die selben, nur für SPI4&5, GPIO inits habe ich Euch mal erspart. Vielen Dank für die Hilfe
Gast
#4161611
Dear Julian, I suggest to use DMA transfer. In attachement, you can find tested example, based on STM32F429I-DISCO board, SPI3,SPI4,SPI5 were used. Please, generate project source by CubeMX tool and attached project.ioc file and then follow the attached main.c file. Best regards, Bartosz ST-Support Antwort;) Alles klar
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
