Moin, liebe mikrocontroller Community. In der Vergangenheit habe ich diese Forum schon oft genutzt um meine Probleme zu bewältigen.
Leider stecke ich seit 4 Tagen an einem so simplen Problem und seh den Wald vor lauter Bäumen nicht mehr. Ich möchte eine simple SPI Kommunikation zum laufen bringen. Hierbei wird der AT90CAN128 als Master initialisiert und der ATmega16 als Slave. Es soll der Master den Slave ansprechen über den SS Pin (low) und der Atmega soll in diesem Projekt dann mit den ausgewerteten Sensordaten antworten. Da das alles nicht so gefunzt hat, hab ich angefangen die Kommunikaion Schritt für Schritt zu vereinfachen (von interrupt mode -> polling mode). Am Ende wollte ich jetzt Daten über Mosi rausschicken und diese Daten dann auf der MISO Leitung wiedersehen. Das heißt ich hab das SPDR register beschrieben, damit wird auch die CLK gestartet und die Daten werden auch einwandfrei rausgesendet (mit dem Oszi gesehen). CLK und SS funzt auch wunderbar. Nach der SPI Theorie bestehet die Kommunikation aus zwei Shift Registern, wobei diese Register gleichzeitig Bit für Bit austauschen. Um Bits auf die MISO Leitung zu senden braucht es also eigentlich nur die CLK des Masters. Ich dachte jetzt also das jetzt im aller ersten durchlauf da nichts brauchbares zurückkommen kann, aber spätestens ab dem zweiten durchlauf die MISO Daten gleich der MOSI Daten sein sollten. Stattdessen geht das MISO Signal low über die SS Zeit und verhält sich danach wie ein Kondensator der sich auflädt.
Das wäre echt super wenn ihr mir helfen könntet oder falls ihr die Datenblätter kennt mich dort auf eine Seite hinweisen die ich vielleicht übersehen habe.
Ich hab noch sonst zwei Ausschnitte aus dem Schaltplan mit rangehangen. Die hab ich nicht erstellt sondern wurden von einem Kollegen gemacht und ich soll die Software dafür schreiben :)
Das ist mein erster Beitrag in diesem Forum, ich hoffe ich konnte alle Materialien bereitstellen und die Regeln befolgen. Wenn was fehlt oder doof geschrieben würde ich das natürlich umgehend nachreichen.
Master Code:
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 |
|
Slave Code:
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 |
|



