Gast
#4033642
Hallo liebe Forenmitglieder, ich möchte eine Kommunikation zwischen einem RPi und Atmega 88 PA über SPI herstellen. Der RPi ist dabei Master (Atmega dementsprechend Slave) und ich komme bei der Kommunikation nicht weiter. Es tritt ein sehr merkwürdiges Verhalten auf: -eine einmalige Datenübertragen funktioniert nie -eine doppelte Datenübertragung funktioniert zu 99% -die gesendeten Daten sind in verkehrter Reihenfolge Ich habe schon versucht: -CPOL zu ändern -Soft-SPI auf dem RPi / Hardware SPI RPi Und ich sehe mit dem Logikanalysator, dass die Daten richtig am Atmega landen, daher liegt der Fehler vermutlich dort in der Programmierung (Spannungspegel passen) Noch als Info: Der Atmega steuert ein paar WS2812 an, über den SPI Bus möchte ich die Farben übertragen (später auch Effekt); die WS2812-Ansteuerng funktioniert 1A Hier die notwendigen Codeausschnitte, wobei der Code teilweise merkwürdig aussieht, da ich schon endlos viel ausprobiert habe...
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 | |
Zum Timing: Atmega @16MHz mit Oszillator, RPi SPI-Timing habe ich alles ausprobiert...von MHz bis nur wenige Hz gesendete Daten vom RPi: spi.writebytes([0x81,1,2,3,4]) der Atmega lässt an die WS2812 folgendes Raus: 0x81 zur identifikation 1 steuert den blauanteil 2 ist leer (keine Farbansteuerung) 3 entspricht dem Rotanteil 4 entspricht dem Grünanteil Ohne SPI passt die Farbzuordnung (wenn im Code fest definiert) Würde mich echt freuen, falls jemand einen Ansatzpunkt hat... :)