mikrocontroller.net

Forum: Compiler & IDEs Probleme mit SW SPI (aus Atmel appnote 320)


Autor: Nils (Gast)
Datum:
Angehängte Dateien:
  • spi.S (5,16 KB, 142 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe folgendes Problem mit der Implementierung eines SW SPI's 
basierend auf der Appnote 320 von Atmel: Beschreibe ich ein Register des 
Slave (bei mir MPC2515) und lese es direkt danach wieder aus, bekomme 
ich einen Wert der doppelt so groß ist wieder zurück. Der Interpreter 
des Logicanalysers zeigt allerdings den richtigen Wert an. Wird da 
irgendein Register in der Assembler Routine einmal zu viel geschiftet?

Hier der Aufruf in der Funktion:
void mcp2515_write_register(const uint8_t address, uint8_t data )
{
    spi_enable_mcp2515();
    spi_putc(SPI_WRITE);
    spi_putc(address);
    spi_putc(data);
    spi_disable_mcp2515();
}

uint8_t mcp2515_read_register(const uint8_t address)
{
    uint8_t ret;

    spi_enable_mcp2515();
    spi_putc(SPI_READ);
    spi_putc(address);
    ret = spi_putc(0x00);
    spi_disable_mcp2515();

    return ret;
}

uint8_t i;
mcp2515_write_register( MCP_CANCTRL, 15);
i = mcp2515_read_register( MCP_CANCTRL);
usart_write ("i: %i\r\n",i);

i enthält nach dem aufruf den Wert 30

Hat jemand irgendwelche Ideen?

Vielen Dank!

Gruß

Nils

Autor: Nils (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier nochmal der Screenshot des LA...

Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem gelöst!

Die MISO Leitung musste zur high flanke eingelesen werden... manchmal 
hilft es den Kram einfach aufzuschreiben :)

Gruß

Nils

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.