- 3D-Druck Einstieg und Tipps         
Seite 6 von 7 ErsteErste ... 4567 LetzteLetzte
Ergebnis 51 bis 60 von 62

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

  1. #51
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    Anzeige

    LiFePo4 Akku selber bauen - Video
    noch was, Du merkst, es gibt immer wieder Ideen:

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

    setze mal einen ganz langsamen SCK-TAKT:

    ; Enable SPI, Master, set clock rate fck/128
    ldi temp,(0<<SPIE)|(1<<SPE)|(0<<DORD)|(1<<MSTR)|(0<<CP OL)|(0<<CPHA)|(1<<SPR1)|(1<<SPR0)
    out SPCR,temp


    also: SPR1=1 SPR0=1

  2. #52
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    noch was:

    ldi temp,0b10111000 ; Output = SCK & MOSI & /SS & LED
    out DDRB,temp
    ldi temp,0b01010001 ; SPIEnabled, MasterMode, SPI Clo
    out SPCR,temp
    sbi PortB,4 ; /CS High
    nop


    ändern in:

    ldi temp,0b10111000 ; Output = SCK & MOSI & /SS & LED
    out DDRB,temp

    sbi PortB,4 ; /CS High

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



    gleich diesen sehr wichtigen PIN auf HIGH legen, nicht dass der SLAVE auf dumme geanken kommt

  3. #53
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    noch was:


    Du kannst von bei Deinen 8515 µC den MOSI und MISO miteinander Verbinden

    Damit sendet der µC sich zwar selber DATEN zu, aber man könnte so seine SOFTWARE prüfen

  4. #54
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    noch was:

    Du könntest das SLAVE-Programm von mir auf Deinen µC umschreiben, ist ja schnell getan und somit Deinen CAN-IC simulieren

    Gruß

    Bernhard

  5. #55
    Neuer Benutzer Öfters hier
    Registriert seit
    23.03.2006
    Beiträge
    29
    >Du kannst von bei Deinen 8515 µC den MOSI und MISO miteinander Verbinden

    >Damit sendet der µC sich zwar selber DATEN zu, aber man könnte so seine SOFTWARE prüfen

    Werd ich jetzt mal probieren. Die Pausen hatte ich vorher eingesetzt, half aber auch nichts. Auch das SS auf High vor dem SPCR konfigurieren war ohne Wirkung.

    Aber gute Einfälle waren das! Danke!

  6. #56
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    >Aber gute Einfälle waren das! Danke!

    Gern geschehen

    Somit wurde ich "gezwungen", mich endlich mal mit SPI zu beschäftigen.

    Ich habe unsere Erkenntnisse mal etwas zusammengefasst:

    http://www.mikrocontroller.net/forum/read-4-328073.html


    Gruß


    Bernhard

  7. #57
    Neuer Benutzer Öfters hier
    Registriert seit
    23.03.2006
    Beiträge
    29
    Schönes Ding. Habe auch gleich ne Frage beim ersten Durchgehen:

    Warum sicherst du das SREG bevor du
    rcall SPI_EMPFANGEN ; SPI EMPFANGEN OUT: TEMP
    rcall SPI_SPSR_AUSWERTEN ; Fehlerprüfung
    ausführst?

    Wird das SREG dort verändert?

    (Datei:Slave-Interrupt.asm)

  8. #58
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    >Warum sicherst du das SREG bevor du
    >rcall SPI_EMPFANGEN ; SPI EMPFANGEN OUT: TEMP
    >rcall SPI_SPSR_AUSWERTEN ; Fehlerprüfung
    >ausführst?

    >Wird das SREG dort verändert?

    >(Datei:Slave-Interrupt.asm)

    SREG und alle Register, die im Interrupt verwendet werden müssen dringend gesichert werden,
    denn man weiss ja nie, wann ein Interrupt "zuschlägt".

    Wenn ein interrupt bei einem Rechenvorgang "adc" z.B. ausgelöst wird
    kann kann es sein, dass das Rechenergebnis total falsch ist, weil SREG (Überlauf) verändert wurde.

    Die Programme verhalten sich dann sehr eigenartig und man(n) sucht stundenlang verzweifelt

  9. #59
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Zitat Zitat von Bernhard.Erfurt
    Du kannst von bei Deinen 8515 µC den MOSI und MISO miteinander Verbinden

    Damit sendet der µC sich zwar selber DATEN zu, aber man könnte so seine SOFTWARE prüfen
    Noch effektiver geht dieses Testen durch einen "Loopback", indem man ein 8-Bit-Schieberegister wie CD4094 oder 74595 zwischen MOSI und MISO hängt, denn bei normalem SPI-Betrieb werden ja auch das 8-Bit Shift-Register des Masters mit dem des Slaves zu einem 16-Bit Schieberegister zusammengestöpselt. Die Datenübertragung Master <--> Slave ist nicht anderes als ein Rotieren um 8 Positionen im entstandenen zyklischen 16-Bit Schieberegister.
    Disclaimer: none. Sue me.

  10. #60
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    @Georg-Johann

    >Noch effektiver geht dieses Testen durch einen "Loopback", indem man >ein 8-Bit-Schieberegister wie CD4094 oder 74595 zwischen MOSI und >MISO hängt

    Stimmt, manchmal gubt es ganz einfache Lösungen

    Gruß

    Bernhard

Seite 6 von 7 ErsteErste ... 4567 LetzteLetzte

Berechtigungen

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

12V Akku bauen