mircang9 Postat Martie 4, 2012 Partajează Postat Martie 4, 2012 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 ? Link spre comentariu
mircang9 Postat Martie 4, 2012 Autor Partajează Postat Martie 4, 2012 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. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum