AVR32: SPI zu langsam?

Gast #3167595
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte auf einem AVR32 UC3 A3 über SPI mit maximal möglicher 
Baudrate Daten von einem Dataflash-Speicher lesen. Der Dataflash liefert 
mit die Daten wie gewünscht, aber leider bekomme ich mit meinem Code nur 
knapp 4 Mbit/s. Ich würde eigentlich erwarten, dass da noch mehr geht, 
oder etwa nicht?

Ich lese die Daten per Polling, also ohne DMA. Meine Lese-Schleife sieht 
so aus:
1
    uint16_t *p = &buffer;
2

3
    for (int i=0; i<N; ++i)
4
    {
5
      spi_write(AT45DBX_SPI, 0xffff);
6
      *p++ = spi_get(AT45DBX_SPI);
7
    }

Die Initialisierung ist wie folgt:
1
  spi_options_t spiOptions =
2
  {
3
    .reg          = AT45DBX_SPI_FIRST_NPCS,   // Defined in conf_at45dbx.h.
4
    .baudrate     = AT45DBX_SPI_MASTER_SPEED, // Defined in conf_at45dbx.h.
5
    .bits         = AT45DBX_SPI_BITS,         // Defined in conf_at45dbx.h.
6
    .spck_delay   = 0,
7
    .trans_delay  = 0,
8
    .stay_act     = 1,
9
    .spi_mode     = 0,
10
    .modfdis      = 1
11
  };
12

13
  spi_initMaster(AT45DBX_SPI, &spiOptions);
14
  spi_selectionMode(AT45DBX_SPI, 0, 0, 0);
15
  spi_enable(AT45DBX_SPI);

wobei ich AT45DBX_SPI_MASTER_SPEED auf 50M definiert habe und BITS auf 
16. Hat jemand eine Ahnung, wie ich da noch mehr Tempo rauskriege? Muss 
ich auf DMA umstellen oder geht das mit dem Prozessor noch schneller?

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.