dsPIC33FJ mit XT und PLL

Gast #3469504
Hallo,
ich verwende den dsPIC33FJ256MC710A, dazu verwende ich das dsPICDEM MCLV 
Development Board, dieses hat einen 8MHz Quarz und den PCD v5.009 
Compiler von CCS.
Ich möchte meinen µC mit Hilfe des PLL auf 40MIPS (Fcy) rauftakten und 
würde dabei Hilfe benötigen wie man das im MPLAB X IDE konfiguriert.

Wie bereits gesagt verwende ich einen 8MHz (Fin) Quarz XT Modus.
PLLPRE = 0     d.h. N1 = 2
PLLDIV = 0x28  d.h. M = 40
PLLPOST = 0    d.h. N2 = 2

Fcy=Fin/2 * M /(N1*N2)
Fcy=8000000/2 * 40 /(2*2)
Fcy=4000000 * 10
Fcy=40 MIPS

Ich hoffe jemand kann mir helfen wie ich das als Code eingeben muss. 
Falls ich etwas vergessen habe anzugeben fragt ruhig nach.
Vielen Dank schon mal im voraus.

mfg
#3469524
Du hast die richtigen Div und PLL bits ja schon fast. Jedoch ist dein 
PLLDIV noch falsch. Den M = PLLDIV + 2 also müsstest du PLLDIV auf 0x26 
setzen.

Hier mein Code für die Einstellungen eines dsPIC33EP512MU810 bei 140MHz:
1
/*******************************************************************************
2
     Oszillator Settings
3
     *******************************************************************************/
4
    // Configure Oscillator to operate the device at 140Mhz
5
    // Fosc= Fin*M/(N1*N2), Fcy=Fosc/2
6
    // Fosc= 7.37*76/(2*2)=140Mhz for 7.37 input clock
7

8
    PLLFBD = 74; // M=76
9
    CLKDIVbits.PLLPOST = 0; // N1=2
10
    CLKDIVbits.PLLPRE = 0; // N2=2
11

12
    OSCTUN = 0; // Tune FRC oscillator, if FRC is used
Gast #3469534
Ok, danke ich werde es einmal probieren. Eine Frage hätte ich dann noch, 
wo (PIN) kann ich mit einem Oszilloskop messen ob ich das Gewünschte 
erreicht habe?
Gast #3469566
Dominic A. schrieb:
> PLLFBD = 74; // M=76
>     CLKDIVbits.PLLPOST = 0; // N1=2
>     CLKDIVbits.PLLPRE = 0; // N2=2
>
>     OSCTUN = 0; // Tune FRC oscillator, if FRC is used

Ich habe diese Zeilen mit M=0x26 eingeben hat aber nicht funktioniert. 
Es ist ein Fehler gekommen, dass er diese Zeilen nicht kennt (wurden 
unterwellt).
Weißt du wo da der Fehler sein kann?
#3469622
Hast du xc.h includiert? Zeig doch mal deinen Code.
Um die Frequenz zu messen kannst du ja irgend einen Timer einstellen und 
in der Timer ISR einen Pin toggeln und dann diesen Pin mit dem Oszi 
messen. Oder ganz einfach ein __delay_ms(x) und dann schauen ob dieses 
delay stimmt.
Gast #3469655
Da es zuerst nicht funktioniert hat habe ich etwas probiert und 
anscheinend funktioniert es, kann das sein?

Zuerst war die Periodendauer des Interrupts 100µs und nach dem ich den 
Code, so wie er unten ist, probiert habe war sie nur noch ~23µs.



#include <33FJ256MC710A.h>
#include <stdio.h>
#include <stdlib.h>

#fuses XT,PR_PLL,NOWDT
#use delay (crystal=8M,clock=40M)


#INT_TIMER2



void TIMER2interrupt()
    {

    output_high(PIN_E4);

    //damit etwas Zeit vergeht und das Interrtupt besser zu sehen ist
    int x;
    x=2;
    x=x*x*x*x*x*x*x;

    output_low(PIN_E4);

    clear_interrupt(INT_TIMER2); //Setzt den Interrupt wieder zurück 
damit er wieder auslösen kann
    }

void main()
{


    enable_interrupts(INT_TIMER2);
    enable_interrupts(INTR_GLOBAL);
    clear_interrupt(INT_TIMER2);

    setup_timer2(TMR_DISABLED);
    setup_timer2(TMR_INTERNAL|TMR_DIV_BY_1,368);

    while(1)
    {

    }
    }

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.