Fehlerbeschreibung SPI brauche Rat

Gast #1774227
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!!
Gast #1777366
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.