Forum: Mikrocontroller und Digitale Elektronik Fehlerbeschreibung SPI brauche Rat


von Stefanie (Gast)


Lesenswert?

Im Folgenden versuche ich systematisch den Fehler zu finden. Ich hoffe 
ihr könnt mir helfen, da ich seit Tagen nicht weiter komme.

Ausgangslage:
Atmega1280 + Codevisioncompiler

Folgendes ist an der SPI-Schnittstelle angeschlossen:
-Temperatursensor
-Display
-Flash-Speicher
-Drucksensor

Das Display funktioniert über die SPI-Schnittstelle. Nun möchte ich den 
Drucksensor auslesen, der aber nicht reagiert.

>> ich habe mir folgendes REINES Testprogramm geschrieben, um zu überprüfen, ob 
der Drucksensor richtig angeschlossen ist:

Alles Pins als Eingänge, keine SPI, nur UART für die Testausgabe.
SCK (PB1), MOSI(PB2), MISO(PB3) als Ausgänge geschalten.
und folgende Tasten zugeordnet:
T1: PINB.1=0;
T2: PINB.1=1;
T3: PINB.2=0;
T4: PINB.2=1;
T5: PINB.3=0;
T6: PINB.3=1;

Folgendes habe ich gemessen und beobachten können:
PINB.1 funktioniert.
PINB.2: lässt sich mit T3 nicht auf 0 schalten, doch wenn man T4 drückt, 
toggelt der Ausgang von 0-5V-0V usw. (Obwohl laut meinem Code immer nur 
PINB.2=1 ausgeführt wird ???!!!?!?!?!)
PINB.3: der verhält sich noch toller!! Toggelt auch nur wenn man T6 
drückt und dann so: 0.4V-1.7V-0.4V-1.7Vusw.

Display habe ich abgesteckt, hilft nichts. Die anderen Sensoren kann ich 
nicht abtrennen.
Die Leitungen zum Drucksensor haben in Reihe einen 330Ohm Widerstand und 
gegen 5V einen 47kOhm Widerstand.

Ich habe aber am Drucksensor und am Atmega1280 das gleiche gemessen.


Bitte um Hilfe/Tipps/Ratschläge!!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> Im Folgenden versuche ich systematisch den Fehler zu finden. Ich hoffe
> ihr könnt mir helfen...

Gerne :-)

1/ Schaltplan deines Aufbaus?

Wenn 1 vorhanden:
  2/ Datenblatt Drucksensor?
  => 1+2: Sensor richtig angeschlossen?

Wenn 1+2 erfolgreich:
  3/Codefetzen mit der Ansteuerung des Drucksensors?
  => 2+3: Sensor richtig angesteuert?

von Stefanie (Gast)


Lesenswert?

Danke für deine Antwort.

Ich glaube, es besteht hier ein grundsätzliches Problem, mir ist nun 
nämlich noch folgendes aufgefallen:


Ich habe an PINC.3 eine LED nach dem Beispiel im Anhang angeschlossen.

Nun schreibe ich im Code folgendes:

DDRC.3 = 1;  //als Ausgang setzen
PINC.3 = 1;  //LED einschalten
PINC.3 = 0;  //es passiert gar nichts, die LED bleibt an!!
PINC.3 = 1;  //Die LED geht aus!!

Steuern tu ich es mit 2 Taster > kein Fehler im Timing.

d.h. PINC.3 = 0; hat keinerlei Auswirkungen!
PINC.3 = 1;  schaltet die LED an und wieder aus!!

Wie kann sowas sein???

Da muss doch ein grundsätzliche Schatungsfehler auf dem Board bestehen?!

Mir ist auch aufgefallen, dass die MISO Leitung immer auf GND gezogen 
wird, selbst wenn ein Bauteil Infos auf die Leitung gibt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.