- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 7 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 62

Thema: ASM für SPI .. ist das richtig so?

  1. #21
    Neuer Benutzer Öfters hier
    Registriert seit
    23.03.2006
    Beiträge
    29
    Anzeige

    Powerstation Test
    Ach ja und am Ende muss /SS wieder High gesetzt werden.

    PS: Den Thread den du reingelinkt hast kenne ich, habe auch diese dumme Frage dort gestellt... Aber mir antwortet ja keiner.... *heul ...

  2. #22
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    @Magnetus

    Danke für Deine sehr fleißige Zuarbeit

    Ich habe mich in den letzten Stunden etwas reingelesen in diese interessante Materie.

    Grundsätzlich muss man ersteinmal festlegen, in welcher Bertriebsart der Master und der Slave arbeiten soll.

    Ich denke, für die meisten Anwendungsfälle (1Master 1Slave) genügt es wenn man ohne Chip-Selct arbeitet.


    SS-PIN beim Master und beim Slave.

    MASTER:
    Wird als Ausgang konfiguriert.
    Wird LOW, wenn Master was senden möchte.

    SLAVE:
    SS ist als Eingang definiert.
    Slave bleibt so lange inaktiv, bis SS low wird

    Diese Betriebsart wird im
    "SPI Control Register – SPCR" festgelegt.

    Bei der Grund -Initialisierung des Masters und des Slaves sind / können o.g. Einstellungen vorzunehmen. s.Datenblatt:

    SPI_MasterInit:
    ; Set MOSI and SCK output, all others input
    ldi r17,(1<<DD_MOSI)|(1<<DD_SCK)
    out DDR_SPI,r17
    ; Enable SPI, Master, set clock rate fck/16
    ldi r17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)
    out SPCR,r17
    ret

    SPI_SlaveInit:
    ; Set MISO output, all others input
    ldi r17,(1<<DD_MISO)
    out DDR_SPI,r17
    ; Enable SPI
    ldi r17,(1<<SPE)
    out SPCR,r17
    ret



    Überprüfe mal bitte Dein Programmcode, ob die Initialisierung genauso vorgenommen wurde? Ob die gleichen Bits in dem Register SPCR gesetzt wurden sind?

    Wenn ich alles jetzt richtig vertstanden habe, dann kein ein Master immer Daten senden !!!, auch wenn kein Slave vorhanden ist, d.h. werden pausenlos Daten vom Master gesendet, dann hat man immer Pegeländerungen an: SCK MOSI und SS oder?


    >Grundsätzlich wird der Slave immer mit auf Low-gehaltener /SS Leitung >aktiviert.

    Ja das sehe ich auch so, dass der Slave immer mit einem LOW an SS aktiviert wird.


    Ich habe etwas im Internet dazu gefunden, ich stell es Dir / Euch mal zur Verfügung.

    Ich werde mir als nächstes einen MASTER programmieren,

    ich denke, wir bekommen SPI schon zum laufen


    PS:

    in Deinem Programm steht:

    ldi temp, 0b01010001 ; SPIEnabled, MasterMode, SPI .....
    out SPCR, temp


    besser wäre:

    ldi temp, ,(1<<SPE)|(1<<MSTR)|(1<<SPR0); SPIEnabled.....
    out SPCR, temp

    Denn Durch die Schreibweise "0b01010001" muss man erst auwändig im Datenblatt nachschauen, welches Bit gesetzt ist.

    und

    durch "0b01010001" kann man sich schnell mal verzählen, oder vertippen, gel ?



    Gruß

    Bernhard
    Angehängte Dateien Angehängte Dateien

  3. #23
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    @Magnetus

    jetzt muss ich nochmal fragen, sendet Dein Master Pausenlos Zeichen, oder bleibt er "stecken" ?

    Mit einer einfachen LED an SCK MOSI oder SS kann man das ja prüfen

    Bernhard

  4. #24
    Neuer Benutzer Öfters hier
    Registriert seit
    23.03.2006
    Beiträge
    29
    Servus!

    Dank dir für deine Unterstützung.

    Also als erstes: ich habe heute die bestellten neuen mcp2515 Tranceiver bekommen und gleich eingesetzt. Das wars aber nicht... Also weitersuchen

    Die von dir übernommene Initialisierung für MASTER habe ich auch schon im Datanblatt gefunden. Die ist meiner Meinung aber falsch, denn es wurden 2 Dinge vergessen:

    /SS wird dort nicht auf OUT geschaltet,
    Am Ende wird SPIF nicht zurückgesetzt

    Du hast ja selbst oben geschrieben, dass /SS Ausgang sein muss.


    Was sagst du?

    Ich werde jetzt mal das Steckbrett und die Quarze austauschen und neue ATMELS versuchen zu bekommen, vieleicht haben dir einen SPI-Fehler.

    Das alles schreit nach diesem Murphy-Gesetz:
    "Alles, was Du in Ordnung zu bringen versuchst, wird länger dauern und Dich mehr kosten, als Du dachtest."

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    23.03.2006
    Beiträge
    29
    Das mit den LEDs geht leider nicht. Die Frequenz am SPI ist viel zu hoch als das man was sehen könnte. Man würde ein Flackern garnicht wahr nehmen. Aber ich kanns trotzdem mal machen, vielleicht geht die LED ja irgendwann aus und dann weis man ob SPI abschaltet... Wahrscheinl. meinst du auch genau das
    Was natürlich hier gut wäre: ein Oszi !

  6. #26
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    @Magnetus

    Konntest Du mal eine / einige LEDs anschließen?

    >Was natürlich hier gut wäre: ein Oszi !

    Naja, nicht immer, weistens genügen zwei LEDs pro PIN

    Eine von Avcc gegen PIN
    und eine von GND gegen PIN


    Wie ist Deine Verdrahtung?

    GND => GND
    SCK => SCK
    MISO => MISO
    MOSI => MOSI
    SS => SS

    und alles ohen Pull-Ups ?


    Bernhard

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    23.03.2006
    Beiträge
    29
    Wie meinst du denn das:
    >> Eine von Avcc gegen PIN
    >> und eine von GND gegen PIN

    ?
    Ich habe normal die SPI-Leitungen angezapft mit je einem R und ner LED nach Masse.
    Beim Senden an den Slave ist nun folgendes zu beobachten:
    /SS leuchtet immer, halbe Leuchtkraft
    MISO leuchtet nicht
    MOSI leuchtet immer, sehr hell
    SCK blinkt intervallmäßig kurz auf (alle 2 sek, wie programmiert)

    Die 2 zu übertragenden Bytes werden ca. 3 mal übertragen, danach 2 Bytes Nullen und alles steht still...nur die Sende-LED blitzt normal weiter alle 2 Sek. Also muss das Problem Empfängerseitig liegen.

    Hast du bei dir eine ähliche Schaltung, dass du das mal dort testen kannst?
    Ich weis nicht woran es noch liegen könnte. Habe den ASM Code nochmal freundlicher gestaltet. Schaue ihn doch mal durch. Vor allem interssiert mich ob ich unten die Unterprogramme (Senden, Lesen,..) richtig habe. Eine C-Datei ist dabei, die funzt auf jeden Fall. Man müsste nur prüfen ob ich daraus den richtigen ASM Code generiert habe.
    Angehängte Dateien Angehängte Dateien

  8. #28
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    >>Wie meinst du denn das:
    >> Eine von Avcc gegen PIN
    >> und eine von GND gegen PIN

    eine LED von +5V gegen MOSI (natürlich mit einem Widerstand)
    eine LED von Masse gegen MOSI (natürlich mit einem Widerstand)

    Und so könnte man das für jeden AUSGANGS-PIN machen, um festzustellen, ob Impulse anliegen, ein OSZI würde auch nicht viel weiter helfen

    >Hast du bei dir eine ähliche Schaltung, dass du das mal dort testen >kannst?

    Hab hier zwei ATmega8 vor mir auf einem Experimentierboard

    >SS leuchtet immer, halbe Leuchtkraft
    SS leuchtet auch bei mir, d.h. SS-PIN ist LOW

    >MISO leuchtet nicht
    bei mir auch nicht, denn ich habe noch kein SLAVE angeschlossen

    >MOSI leuchtet immer, sehr hell
    zuckt kurz auf, wenn daten gesendet werden

    >SCK blinkt intervallmäßig kurz auf (alle 2 sek, wie programmiert)
    zuckt kurz auf, wenn daten gesendet werden

    > Man müsste nur prüfen ob ich daraus den richtigen ASM Code >generiert habe.

    ich kann momentan bei Deinem Master kein Problem finden

    >Habe den ASM Code nochmal freundlicher gestaltet.

    Dann zeige ihn doch mal (haste vergessen mit zuzusenden)

    >Also muss das Problem Empfängerseitig liegen.

    vielleicht, so weit bin ich noch nicht



    Habe mal eine kleine MASTER-Routine geschrieben (ganz einfach)

    jede Sekunde wird ein DUMMY gesendet, ich lege es mal mit bei.




    Bin momentan noch am überlegen, ob beim senden das

    "SPIF: SPI Interrupt Flag" beachtet werden muss, nach meiner Meinung nach nicht ?

    Wie lange bist Du heute noch fleißig?

    Bernhard
    Angehängte Dateien Angehängte Dateien

  9. #29
    Neuer Benutzer Öfters hier
    Registriert seit
    23.03.2006
    Beiträge
    29
    >> Dann zeige ihn doch mal (haste vergessen mit zuzusenden)

    In der can_.zip sind alle Dateien

    Der Code ist je eine pdf-Datei.

    gefunden? wenn nicht sag bescheid!

  10. #30
    Neuer Benutzer Öfters hier
    Registriert seit
    23.03.2006
    Beiträge
    29
    ich mach noch bis 3 Uhr.... ich habe echt keine Ruhe vorher!

Seite 3 von 7 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test