www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR32UC3X512- PM macht probleme(SPI, uart)


Autor: Manuel -- (ploana)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich arbeite mit einem AVR32UC31512
Mit dem PowerManagement habe ich Probleme
Wenn ich den UC3 mit 60MHz geht dass nicht wenn ich SPI verwende

static void init_sys_clocks(void)
{

  // Initialize system clocks.
  pm_switch_to_osc0(&AVR32_PM, FOSC0, OSC0_STARTUP);
  
 

  
  pm_pll_setup(&AVR32_PM, 0,  // pll. 60MHz
                 4,  // mul.
                 1,   // div.
                 0,   // osc.
                 16); // lockcount.

//  pm_pll_setup(&AVR32_PM, 0,  // pll. 48MHz
  //               3,  // mul.
    //             0,   // div.
      //           0,   // osc.
        //         16); // lockcount.
  
  
  pm_pll_enable(&AVR32_PM, 0);
  pm_wait_for_pll0_locked(&AVR32_PM);
  /* Divide PBA clock by 2 from main clock (PBA clock = 66MHz/2 = 33MHz).
     Pheripheral Bus A clock divisor enable = 1
     Pheripheral Bus A select = 0
     Pheripheral Bus B clock divisor enable = 0
     Pheripheral Bus B select = 0
     High Speed Bus clock divisor enable = 0
     High Speed Bus select = 0
  */
 
  pm_cksel(&AVR32_PM, // PBA auf 60MHz/4
           1,   // pbadiv.
           1,   // pbasel.
           0,   // pbbdiv.
           0,   // pbbsel.
           0,   // hsbdiv.
           0);  // hsbsel.
//  flashc_set_wait_state(1);
  pm_switch_to_clock(&AVR32_PM, AVR32_PM_MCSEL_PLL0);


  // Give the used PBA clock frequency to Newlib, so it can work properly.
 set_cpu_hz(FCPU_HZ);
}

SPI lässt sich nicht einmal Initialisieren
denn wenn der µC mit den 60MHz und PBA = 15MHz
dann bleibt dass Programm in der funktion:
spi_setupChipReg(&AVR32_SPI1, &spiOptions, FPBA_HZ);
hängen ... dass alles ist äußerst merkwürdig und ich habe zur Zeit keine 
idee was es da haben kann!

Denn der PBA Clock gilt für PWM, TC, I2C, usw und anhand von meiner 
eingestellten PWM kann ich die Periodendauer messen und die passt zu 
meinem eingestellten PBA Clock
        
     // Assign I/Os to SPI
        gpio_enable_module(SPI_GPIO_MAP, sizeof(SPI_GPIO_MAP) / sizeof(SPI_GPIO_MAP[0]));
        
        // add the spi options driver structure for the CC2500
        spi_options_t spiOptions =
        {
          .reg          = 0,  // dan wäre dies aber der chip-select!!!!!!!
          .baudrate     = SPI_SPEED, //SPI_SPEED,
          .bits         = 8,
          .spck_delay   = 0,
          .trans_delay  = 0,
          .stay_act     = 1,
          .spi_mode     = 0,
          .modfdis      = 1
        };
        
        // Initialize as master
        spi_initMaster(&AVR32_SPI1, &spiOptions);
        
        
        // Set selection mode: variable_ps, pcs_decode, delay
        spi_selectionMode(&AVR32_SPI1, 0, 0, 0);
                
          
        // Enable SPI
        spi_enable(&AVR32_SPI1);
        
        
        // setup chip registers
 spi_setupChipReg(&AVR32_SPI1, &spiOptions, FPBA_HZ);

Für Hinweise und Gedankenanstöße wäre ich sehr verbunden

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gleich vorneweg, bisher habe ich selbst nichts mit einem AT32UC3
gemacht. Was mir allerdings beim Blick ins Datenblatt aufgefallen
ist sind die vielen Erratas für die Engineering Samples. Falls Du
davon eins hast wäre das eine mögliche Ursache für merkwürdiges
Verhalten. Falls Du ein Production Part hast, wo gibt es die?

Jens

Autor: Manuel -- (ploana)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jens,

Nein ein Rev. H od I,
Also am einfachsten gehts, wenn du auf der Atmel Hompage einen "Sample 
Request" machst: http://www.atmel.com/forms/Samples.asp?family_id=682
Um keine Rev. unter H od. I zu bekommen, habe ich in dem Feld "Comments 
or Action" dies angemerkt!
Du bekommst dann eine Mail von einem österreichischen bzw, deutschen 
Distributor und der schickt dir diese!!
Oder du fragst gleich bei einem Distributor an


lg manuel

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.