mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91SAM7 Programmable Clock Output


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche an meinem AT91SAM764 einen der drei programmierbaren Clocks 
zum laufen zu bringen.

Ich rufe die Funktion programmable_clock() von main aus auf.

void programmable_clock(void)
{
    AT91PS_PMC  pPMC  = AT91C_BASE_PMC;

    pPMC->PMC_PCKR[1] = 0x15;
    pPMC->PMC_SCER = (pPMC->PMC_SCSR | AT91C_PMC_PCK1);

    while (!(pPMC->PMC_SR & AT91C_PMC_PCK1RDY));
}

Damit sollte nach meiner Meinung auf auf Pin 9 (PCK1) ein Clock 
herausgehen, der MCK geteilt durch 32 ist.

Aber ich sehe auf meinem Oszi nichts. Was mache ich falsch?

Muss ich davor noch den PIO-Controller auf Periferie B umschalten?

Schönen Gruß,
Johannes

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sollte so gehen. Ist nur ein Bsp. mit anderen Signalen noch.

  AT91PS_PMC     pPMC = AT91C_BASE_PMC;
  // First, enable the clock of the PIO
  AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;


  AT91F_PIO_CfgPeriph(
   AT91C_BASE_PIOA, // PIO controller base address
  ((unsigned int) AT91C_PA11_NPCS0   ) |  //- CS-LCD
  ((unsigned int) AT91C_PA13_MOSI    ) |  //- MOSI
  ((unsigned int) AT91C_PA12_MISO    ) |  //- MISO
  ((unsigned int) AT91C_PA14_SPCK    ),   //- SCK Peripheral A
  ((unsigned int) AT91C_PA9_NPCS1    ) |   //- CS_SOUND
  ((unsigned int) AT91C_PA17_PCK1    ) |   //- CLK_SOUND
  ((unsigned int) AT91C_PA22_NPCS3   ));  //- CS_DATA // Peripheral B

  *AT91C_PMC_SCER = AT91C_PMC_PCK1; //- CLK Sound

    pPMC->PMC_PCKR[1] = AT91C_PMC_PRES_CLK_8 ;
    while(!(*AT91C_PMC_SR & AT91C_PMC_PCK1RDY));

    pPMC->PMC_PCKR[1] |= AT91C_PMC_CSS_PLL_CLK  ;
    while(!(*AT91C_PMC_SR & AT91C_PMC_PCK1RDY));

Mfg

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schön.

Mit den Funktionen läuft es wie erwartet.

Aber kann mir jemand erklären, warum es nicht geht, wenn ich die 
Befehle, die in den Funktionen aufgerufen werden, selbst aufrufe?
Das ist für mich unverständlich.

Servus,
Johannes

Autor: Kalle Noname (Firma: FH-Wolfenbuettel) (pixelkalle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

bei mir läuft es auch mit nicht, aber ich versuche auch einen anderen 
Pin anzusteuern. Ich versuch's hiermit:

//Try to set Programmable Clock Output Controller to PB30 (PCK2) with 
Main CLK
dbgu_print_ascii("Trying to configure clock, stopping first...\n\r");
AT91C_BASE_PMC->PMC_SCDR = AT91C_PB30_PCK2;
DelayMs(1000);

dbgu_print_ascii("Setting: AT91C_PMC_PRES_CLK_8 \n\r");
AT91C_BASE_PMC->PMC_PCKR[2] = AT91C_PMC_PRES_CLK_8 ;
//while(!(*AT91C_PMC_SR & AT91C_PB30_PCK2));

dbgu_print_ascii("Setting: AT91C_PMC_CSS_MAIN_CLK \n\r");
AT91C_BASE_PMC->PMC_PCKR[2] |= AT91C_PMC_CSS_MAIN_CLK ;
//while(!(*AT91C_PMC_SR & AT91C_PB30_PCK2));

//Setting Pin PB30 to Enable
dbgu_print_ascii("Trying to enable clock\n\r");
AT91C_BASE_PMC->PMC_SCER = AT91C_PB30_PCK2;

dbgu_print_ascii("Enabled?\n\r");

Ich hab das SAM7-EX256 Board von Olimex 
http://www.olimex.com/dev/sam7-ex256.html

Vllt. weiß ja jemand wie ich ein CKL Signal aus einem Pin bekomme. Ich 
versuch jetzt erstmal den TC (Timer Counter) -- Ja, ich bin neu im 
Bereich MC

Cya

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.