Jump to content
ELFORUM - Forumul electronistilor

Setare viteza MIPS la dsPIC33F


mircang9

Recommended Posts

Defapt MIPS inseamna viteza sau frecventa la care se executa un ciclu instructiune

la un procesor, nu ? adica Fcy, nu ?

 

Bun adica: la 20 MIPS max 80 MHz. la 30 MIPS max 120 MHz. la 40 MIPS max 160 MHz ?

Va refereati la Fvco de la PLL nu ? care la dsPIC33F

trebe sa fie intre 100MHz si 200MHz. Din subiectul "diferenta de MIPS la dsPIC"

deschis de ovy_pas.

Vizez dsPIC33FJ256GP506 si dsPIC33FJ128GP802.

 

/* Configure Oscillator to operate the device at Fcy = 40MHz = 40MIPS.

* Fosc= Fin*M/(N1*N2), Fcy=Fosc/2

* Fosc= 7.37*43/(2*2)=79.2275 MHz ( 80 MHz ) for 7.37M input clock at PLL */

 

PLLFBD=41; // M=43CLKDIVbits.PLLPOST=0; // N1=2CLKDIVbits.PLLPRE=0; // N2=2OSCTUN=0; // FRC = 7.37 MHz nominalCLKDIVbits.DOZE = 011; // FCY/8 (default) biti ignorati pentru ca DOZEN = 0CLKDIVbits.DOZEN = 0; // Processor clock/peripheral clock ratio forced to 1:1

inseamna ca dsPICu meu lucreaza la 40 MIPS ? Eu asa cred: ca lucreaza

la 40 MIPS conform cu liniile de cod de mai sus. Vreau o confirmare sau corectare la

cele spuse de mine aici, va rog.

 

In datasheet la dsPIC33FJ256GP506 pagina 138,139.

 

 

CLKDIVbits.DOZE trebuie sa fie 000 adica Fcy/1 pentru ca procesorul sa

ruleze la ciclu de instructiune Fosc/2 ( viteza maxima ) ? Pentru ce este DOZE<2:0> ?

Nu pentru a seta Fcy adica durata unui ciclu instructiune Fcy la procesor ?

 

Cum lucreaza intreruperea cu CLKDIVbits.ROI ? La ce foloseste bitul ROI ?

Se pare ca are influenta asupra bitului DOZEN.

 

Ce inseamna "Processor clock/peripheral clock ratio forced to 1:1" cand

cand bitul DOZEN = 0 ? Inseamna ca indiferent de bitii DOZE<2:0>

Fcy = Fp = Fosc /2 ? unde Fcy = frecventa unui ciclu instructiune, iar

Fp frecventa la care lucreaza modulele periferice ( ADC, output compare, etc ? ) ?

Clock ratio 1:1 inseamna Fosc/2 pentru Fp si Fcy ? Asa reiese din diagrama

pentru oscilatorul sistemului de la pagina 137 din datasheetul lui dsPIC33FJ256GP506.

 

Spre deosebire de PIC18F, PIC16F pentru care un ciclu instructiune are frecventa Fcy=Fosc/4;

la dsPIC33FJ un ciclu instructiune are frecventa Fcy=Fosc/2. Asa este ?

 

Daca CLKDIVbits.DOZEN = 0, bitii CLKDIVbits.DOZE<2:0> sunt ignorati ? si

Fcy = Fosc/2 ?

 

De exemplu daca DOZE<2:0> = 011 ( default ) atunci un ciclu instructiune

la procesor dureaza Fcy/8 = (Fosc/2)/8 = Fosc/16. Nu ? Mai exact

avand in vedere ca iesirea maxima la Fosc din PLL este 80 MHz,

in acest caz 80MHz/16 = 5 MIPS. Nu ?

 

Numarul de MIPS maxim adica 40 MIPS ar fi daca CLKDIVbits.DOZEN = 0 sau

daca CLKDIVbits.DOZEN = 1 si CLKDIVbits.DOZE = 0 ( 000 ) adica Fcy/1 adica:

un ciclu instructiune dureaza Fcy/1 = (Fosc/2)/1 = Fosc/2 = 80MHz/2 = 40 MHz = 40 MIPS. Nu ?

 

:jytuiyu

Link to comment
  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

  • mircang9

    2

Popular Days

Top Posters In This Topic

Am mai studiat putin si se pare ca am presupus bine in postul de mai sus. Bitii DOZE<2:0>sunt folositi pentru a reduce consumul de putere prin reducerea frecventei de lucru a dsPIC33F. Printr-o intrerupere se seteaza bitul ROI si CPU revine lafrecventa de lucru nominala adica la Fcy=Fosc/2 ignorand bitii DOZE<2:0> folositi pentru consum de putere redus. :dans:

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines