AVR32 Taktrate von SPI

OP #3259262
Lesenswert?
• ▲
▼
Hallo,

ich habe einen AVR32 (AT32UC3A0512) an diesem eine SD-Karte über den 
SPI0 angeschlossen ist.
Als Dateisystem verwende ich FAT aus dem ASF.
Nach langem herumprobieren funktioniert jetzt das formatieren und 
beschreiben der Karte.

Jedoch weiß ich nicht genau wie die Frequenz des SPI eingestellt gehört.
Im Handbuch des AVR32 sieht man im Blockschaltbild dass der SPI mittels 
PBA getaktet wird.
Die Taktfreqenz des PBA ist bei mir 30MHz und die CPU hat 60MHz.
Deshalb habe ich im conf_sd_mmc_spi.h file den SD_MMC_SPI_MASTER_SPEED 
auf 30MHz definiert.
Dies Funktioniert aber nicht. Wenn ich 12 oder 24MHz Einstelle dann 
funktioniert es.

Initialisierungscode:
1
/*! \brief Initializes SD/MMC resources: GPIO, SPI and SD/MMC.
2
 */
3
static void sd_mmc_resources_init(void) {
4
  // GPIO pins used for SD/MMC interface
5
  static const gpio_map_t SD_MMC_SPI_GPIO_MAP = {
6
    {SD_MMC_SPI_SCK_PIN,  SD_MMC_SPI_SCK_FUNCTION },  // SPI Clock.
7
    {SD_MMC_SPI_MISO_PIN, SD_MMC_SPI_MISO_FUNCTION},  // MISO.
8
    {SD_MMC_SPI_MOSI_PIN, SD_MMC_SPI_MOSI_FUNCTION},  // MOSI.
9
    {SD_MMC_SPI_NPCS_PIN, SD_MMC_SPI_NPCS_FUNCTION}   // Chip Select NPCS.
10
  };
11

12
  // SPI options.
13
  spi_options_t spiOptions = {
14
    .reg          = SD_MMC_SPI_NPCS,
15
    .baudrate     = SD_MMC_SPI_MASTER_SPEED,  // Defined in conf_sd_mmc_spi.h.
16
    .bits         = SD_MMC_SPI_BITS,          // Defined in conf_sd_mmc_spi.h.
17
    .spck_delay   = 0,
18
    .trans_delay  = 0,
19
    .stay_act     = 1,
20
    .spi_mode     = 0,
21
    .modfdis      = 1
22
  };
23

24
  // Assign I/Os to SPI.
25
  gpio_enable_module(SD_MMC_SPI_GPIO_MAP,
26
                     sizeof(SD_MMC_SPI_GPIO_MAP) / sizeof(SD_MMC_SPI_GPIO_MAP[0]));
27

28
  // Initialize as master.
29
  spi_initMaster(SD_MMC_SPI, &spiOptions);
30

31
  // Set SPI selection mode: variable_ps, pcs_decode, delay.
32
  spi_selectionMode(SD_MMC_SPI, 0, 0, 0);
33

34
  // Enable SPI module.
35
  spi_enable(SD_MMC_SPI);
36

37
  // Initialize SD/MMC driver with SPI clock (PBA).
38
  sd_mmc_spi_init(spiOptions, CONFIG_SYSCLK_PBA);
39
}


Welche Frequenz gehört denn für den SD_MMC_SPI_MASTER_SPEED eingestellt?
Wie groß sollte die Anzahl der Bits (SD_MMC_SPI_BITS) eingestell sein? 
(Momentan default-wert 8)

godi

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.