AVR32UC3X512- PM macht probleme(SPI, uart)

OP #891823
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

1
static void init_sys_clocks(void)
2
{
3

4
  // Initialize system clocks.
5
  pm_switch_to_osc0(&AVR32_PM, FOSC0, OSC0_STARTUP);
6
  
7
 
8

9
  
10
  pm_pll_setup(&AVR32_PM, 0,  // pll. 60MHz
11
                 4,  // mul.
12
                 1,   // div.
13
                 0,   // osc.
14
                 16); // lockcount.
15

16
//  pm_pll_setup(&AVR32_PM, 0,  // pll. 48MHz
17
  //               3,  // mul.
18
    //             0,   // div.
19
      //           0,   // osc.
20
        //         16); // lockcount.
21
  
22
  
23
  pm_pll_enable(&AVR32_PM, 0);
24
  pm_wait_for_pll0_locked(&AVR32_PM);
25
  /* Divide PBA clock by 2 from main clock (PBA clock = 66MHz/2 = 33MHz).
26
     Pheripheral Bus A clock divisor enable = 1
27
     Pheripheral Bus A select = 0
28
     Pheripheral Bus B clock divisor enable = 0
29
     Pheripheral Bus B select = 0
30
     High Speed Bus clock divisor enable = 0
31
     High Speed Bus select = 0
32
  */
33
 
34
  pm_cksel(&AVR32_PM, // PBA auf 60MHz/4
35
           1,   // pbadiv.
36
           1,   // pbasel.
37
           0,   // pbbdiv.
38
           0,   // pbbsel.
39
           0,   // hsbdiv.
40
           0);  // hsbsel.
41
//  flashc_set_wait_state(1);
42
  pm_switch_to_clock(&AVR32_PM, AVR32_PM_MCSEL_PLL0);
43

44

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

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
1
        
2
     // Assign I/Os to SPI
3
        gpio_enable_module(SPI_GPIO_MAP, sizeof(SPI_GPIO_MAP) / sizeof(SPI_GPIO_MAP[0]));
4
        
5
        // add the spi options driver structure for the CC2500
6
        spi_options_t spiOptions =
7
        {
8
          .reg          = 0,  // dan wäre dies aber der chip-select!!!!!!!
9
          .baudrate     = SPI_SPEED, //SPI_SPEED,
10
          .bits         = 8,
11
          .spck_delay   = 0,
12
          .trans_delay  = 0,
13
          .stay_act     = 1,
14
          .spi_mode     = 0,
15
          .modfdis      = 1
16
        };
17
        
18
        // Initialize as master
19
        spi_initMaster(&AVR32_SPI1, &spiOptions);
20
        
21
        
22
        // Set selection mode: variable_ps, pcs_decode, delay
23
        spi_selectionMode(&AVR32_SPI1, 0, 0, 0);
24
                
25
          
26
        // Enable SPI
27
        spi_enable(&AVR32_SPI1);
28
        
29
        
30
        // setup chip registers
31
 spi_setupChipReg(&AVR32_SPI1, &spiOptions, FPBA_HZ);

Für Hinweise und Gedankenanstöße wäre ich sehr verbunden
Gast #891952
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
OP #892697
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

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.