mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Probleme mit SS Ausgang am ATM8535


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Die Aufgabe die ich mir am Wochenende gestellt habe klang zuerst nicht 
so schwer, aber treibt mich nach und nach an den Rande des Wahnsinns.

Ich probiere einen Mega8535 via SPI mit einem AS5040 (Berührungslosen 
Poti)
zu verbinden.
Mein Problem ist das, sobald ich den SPI initialisiere -->

// PB4=SS PB5=MOSI PB6=MISO PB7=SCK
DDRB= 0b10111111;                                     // MISO als 
Eingang
SPCR = (1<<SPE) | (1<<MSTR) | (1<<SPR1) | (1<<SPR0);  //SPI 
initialisieren
PORTB |= (1<<PB2);                                    //SS auf HIGH 
setzen

der Ausgang PB4 nach dem HI setzen nur noch 1V am Ausgang ausgibt.
Sobald ich die Initialisierung auskommentiere, liegen an PB4 wie gewohnt 
5V an.
Laut Datenblatt sollte der SS Ausgang im Master-Modus frei ein und aus 
geschaltet werden können.
SS habe ich in meiner Testschaltung am CS vom AS5040.
Aber testweise zur Fehlersuche auch schon abgeklemmt.
Stehe im Moment irgendwie auf dem Schlauch.
Wer für jeden Hilfeansatz dankbar.
Danke schon mal.
MfG
Jens

Autor: Michael H. (michael_h45)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> // PB4=SS PB5=MOSI PB6=MISO PB7=SCK
     ^^^^^^

> PORTB |= (1<<PB2);                                    //SS auf HIGH
               ^^^                                        ^^
> setzen

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry mein Fehler (beim hin und her Kopieren der Zeilen ins Forum hab 
ich falsche Zeile erwischt)habe natürlich PB4 auf 1 gesetzt.
// PB4=SS PB5=MOSI PB6=MISO PB7=SCK
DDRB= 0b10111111;                                     // MISO als
Eingang
SPCR = (1<<SPE) | (1<<MSTR) | (1<<SPR1) | (1<<SPR0);  //SPI
initialisieren
PORTB |= (1<<PB4);                                    //SS auf HIGH
setzen

Wie gesagt beim HI setzen stehen etwa 1V an,(mit Oszi gemessen)
Danke für den schnellen hinweis.

Autor: Michael H. (michael_h45)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß zwar nicht, ob es beim 8535 schon so ist, aber bei neueren 
Megas wird die SPI automatisch zum Slave, wenn der SS low ist.
Setz den doch mal per PORTB-Register auf high und nimm einen andren für 
den CS des Slaves.

Oder vielleicht: JTAG Fuse deaktiviert?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.