PIC18F2550, C18 - Kaj izbrati za nastavitev CPUDIV?

H

hkBattousai

Guest
Preverite tukaj> Pomoč> Teme> Jezikovna orodja> PIC18 Config Settings napisal:Koda:

PLL / / Prescaler Izbor bitov:

PLLDIV = 1 / / No prescale (4 MHz vozi vnos oscilator PLL neposredno)

PLLDIV = 2 / / delimo z 2 (8 oscilator vložek MHz)

PLLDIV = 3 / / Divide jih 3 (12 oscilator vhodni MHz)

PLLDIV = 4 / / Divide jih 4 (16 oscilator vhodni MHz)

PLLDIV = 5 / / deli z 5 (20 oscilator vložek MHz)

PLLDIV = 6 / / delimo z 6 (24 oscilator vložek MHz)

PLLDIV = 10 / / deli z 10 (40 oscilator vložek MHz)

PLLDIV = 12 / / deli z 12 (48 oscilator vložek MHz)/ / CPU System Clock Postscaler:

CPUDIV = OSC1_PLL2 / / [OSC1/OSC2 Src: / 1] [96 MHz PLL Src: / 2]

CPUDIV = OSC2_PLL3 / / [OSC1/OSC2 Src: / 2] [96 MHz PLL Src: / 3]

CPUDIV = OSC3_PLL4 / / [OSC1/OSC2 Src: / 3] [96 MHz PLL Src: / 4]

CPUDIV = OSC4_PLL6 / / [OSC1/OSC2 Src: / 4] [96 MHz PLL Src: / 6]/ / USB Ura Izbor bit (ki se uporablja v Speed USB Full načinu samo; UCFG: FSEN = 1):

USBDIV = 1 / / USB uro vira prihaja neposredno iz primarnega bloka oscilator brez postscale

USBDIV = 2 / / USB uro vir prihaja iz 96 MHz PLL deljeno z 2/ / Oscillator Izbor bitov:

FOSC = XT_XT / / XT oscilatorja, XT, ki jih uporablja USB

FOSC = XTPLL_XT / / XT oscilator, PLL omogočeno, XT, ki jih uporablja USB

FOSC = ECIO_EC / / Zunanji uro, pristanišče funkcijo RA6, ES, ki jih uporablja USB

FOSC = EC_EC / / Zunanji ura, CLKOUT na RA6, ES, ki jih uporablja USB

FOSC = ECPLLIO_EC / / Zunanji clock, PLL omogočeno, pristaniške funkcijo RA6, EC jih uporabljajo USB

FOSC = ECPLL_EC / / Zunanji ura, PLL omogočeno, CLKOUT na RA6, ES, ki jih uporablja USB

FOSC = INTOSCIO_EC / / Notranji oscilator, pristanišče funkcijo RA6, ES, ki jih uporablja USB

FOSC = INTOSC_EC / / Notranji oscilator, CLKOUT na RA6, ES, ki jih uporablja USB

FOSC = INTOSC_XT / / Notranji oscilator, XT, ki jih uporablja USB

FOSC = INTOSC_HS / / Notranji oscilator HS, ki jih uporablja USB

FOSC = HS / / HS oscilator HS, ki jih uporablja USB

FOSC = HSPLL_HS / / HS oscilator HS, PLL omogočeno, ki jih uporablja USB
 
Hi,

Ne morem si pomagati neposredno z oznako C, vendar ima pogled na to povezavo, da USB oddelek mikročipi - glejte poglavje Programska oprema za USB okvir, ki bi lahko pokazal nekaj code / config primeri delati.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1486

 
saj rabiš 20 MHz kristal potem se boste morali pred PLL delimo s 5, da postane 4MHz potem PLL bo dobil do 96 MHz, za USB pa bo razdeljen z 2, da bi dobili 48 MHz, potrebnih za USB.
Mislim, da morate uporabljati
PLLDIV = 5 / / Divide jih 5 (20 vhodni MHz oscilatorja)
Vendar pa mislim takta CPU je ločen od koklja USB to je sistem, jaz ne mislim, oba morata biti na isti uri, so lahko različni, vsaj lahko naredite tako dela na isti frekvenci, zato uporabite to:
CPUDIV = OSC1_PLL2 / / [OSC1/OSC2 Src: / 1] [96 MHz PLL Src: / 2]

srečno

 
Elrayes je pravilna, to so nastavitve ki jih potrebujete za USB.

PLLDIV = 5 / / 20MHz / 5 = 4 MHz, input za 96 MHz PLL
CPUDIV = OSC1_PLL2 / / CPU Clock = 96 MHz / 2 = 48 MHz
USBDIV = 2 / / 96MHz PLL / 2 = 48 MHz za ure USB
FOSC = HSPLL_HS / / osc vrsta: High Speed Crystal / Resonator s PLL omogočeno
VREGEN = ON / / USB Internal Voltage Regulator omogočen

Nad nastavitvami dela za mene pri uporabi 20 MHz XTAL.

 
Sem spremenil svoj zbornik prav tako kot si mi predlagala, da storijo.Ampak še vedno moje vezje ne dela.Tukaj je moja nova številka:
Koda:

# Include <p18f2550.h>

# Include <delays.h># Pragma config PLLDIV = 5 / / potreba po 5 za 20MHz xtal

# Pragma config CPUDIV = OSC1_PLL2 / / CPU Clock = 96 MHz / 2 = 48 MHz

# Pragma config USBDIV = 2 / / 96MHz PLL / 2 = 48 MHz za clock USB

# Pragma config FOSC = HSPLL_HS / / High Speed Crystal / Resonator z PLL omogočeno

# Pragma config WDT = OFF / / ne pes čuvaj

# Pragma config = LVP OFF / / LVP MORA biti off

# Pragma config BOR = OFF / / ne rjavi ven reset

# Pragma config MCLRE = ON / / MCLR v uporabi (tako 10k do 5 v bistvenih)

# Pragma config PWRT = ON / / moči up timer na

# Pragma config PBADEN = OFF / / onemogočiti PORTB / d pretvornik

# Pragma config VREGEN = ON / / USB Internal Voltage Regulator omogočenneveljaven glavne (ničen)

(

TRISB = 0;

PORTB = 0;while (1)

(

PORTB = 0;

Delay10KTCYx (0);

PORTB = 0xFF;

)

)
 
Kašelj kašelj .....

Z obliko, kot da je to čudno, kaj dela na vseh.
MORATE mesto kondenzatorjev po napajalnih vodih kot blizu IC je mogoče, in si mora zagotoviti, ker povezava z IC, je tako nizko, impedanca je mogoče na tla strani kristalov nakladanja kondenzatorjev.

You oscilator lahko na kateri koli frekvenci v tem trenutku in ne bo toliko hrupa o dobavi je malo verjetno, da bo dovolj stabilen, da delujejo zanesljivo, če sploh.

Brian.

 
Niti eno niti napisal:

Kašelj kašelj .....Z obliko, kot da je to čudno, kaj dela na vseh.

MORATE mesto kondenzatorjev po napajalnih vodih kot blizu IC je mogoče, in si mora zagotoviti, ker povezava z IC, je tako nizko, impedanca je mogoče na tla strani kristalov nakladanja kondenzatorjev.You oscilator lahko na kateri koli frekvenci v tem trenutku in ne bo toliko hrupa o dobavi je malo verjetno, da bo dovolj stabilen, da delujejo zanesljivo, če sploh.Brian.
 
Tukaj je datoteka čarovnica, ki dela lep s PIC18F2550 s 20mhz (xtal) ...
Ta številka se bo tu in tam povzročilo priključen na pristanišče B.
I so bili preizkušen ter to tovarna lep ...
Oprostite, vendar morate prijavo na ogled te priloge

 
anandpv2009 napisal:

Tukaj je datoteka čarovnica, ki dela lep s PIC18F2550 s 20mhz (xtal) ...

Ta številka se bo tu in tam povzročilo priključen na pristanišče B.

I so bili preizkušen ter to tovarna lep ...
 
Dvomim, da je to problem, vendar poskusite z uporabo LATB namesto PORTB, ko izhodne podatke.

Brian.

 
Koda:

# Include <18F2550.h>

# Varovalke HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5, CPUDIV1, VREGEN

# Uporabe odlašanja (clock = 20000000)neveljaven Glavni ()

(

set_tris_b (0);

while (1)

(

output_b (0xff);

delay_ms (100);

output_b (0x00);

delay_ms (100);

))
 
Niti eno niti napisal:

Dvomim je to problem vendar začeti using LATB namesto PORTB ko izhodne podatke.
 
Vi should raba CCS prevajalnik za delo nad program ...
Prosimo, navedite vaše ime prevajalnik.?Mislim, da vaš prevajalnik ne CCS.Lahko prenesete brezplačno različico CCS iz mreže.
Še ena stvar, Kaj pa moj prej objavljen hex (obdelane ali ne).?

 
anandpv2009 napisal:

Vi should raba CCS prevajalnik za delo nad program ...

Navedite Vaše prevajalnika ime.?
Mislim, da vaš prevajalnik ne CCS.Lahko prenesete brezplačno različico CCS iz mreže.

Še ena stvar, Kaj pa moj prej objavljen hex (obdelane ali ne).?
 
Dragi hkBattousai

Si dobil svoj program za delo?Jaz sem tudi imetje isto naloga, razen, da sem sposoben preklopiti na LED o Porta, vendar ne morem jahalna šola jih flash.

 
Rabim več podrobnosti o vaših težavah, ki vam pomaga (če sem lahko )....

 
Naredil sem to delo, hvala za vašo skrb.

Tukaj je delovni blink-pod vodstvom primer:Koda:

# Include <p18f2550.h>

# Include "delays.h"

# Pragma config WDT = OFF

# Pragma config MCLRE = ON

# Pragma config Odstrani NAPAKE = OFF

# Pragma config LVP = OFF

# Pragma config PLLDIV = 5 / / potreba po 5 za 20MHz xtal

# Pragma config CPUDIV = OSC1_PLL2 / / CPU Clock = 96 MHz / 2 = 48 MHz

# Pragma config USBDIV = 2 / / 96MHz PLL / 2 = 48 MHz za ure USB

# Pragma config FOSC = HSPLL_HS / / High Speed Crystal / Resonator s PLL omogočenonična blinkLed (nepodpisanih char LED);neveljaven glavne (ničen)

(

ADCON0 = 0x00;

ADCON1 = 0x0f;

CMCON = 7;TRISAbits.TRISA0 = 0;

TRISAbits.TRISA1 = 0;

TRISAbits.TRISA2 = 0;

TRISAbits.TRISA3 = 0;

TRISAbits.TRISA4 = 0;LATAbits.LATA0 = 0;

LATAbits.LATA1 = 0;

LATAbits.LATA2 = 0;

LATAbits.LATA3 = 0;

LATAbits.LATA4 = 0;blinkLed (0);

blinkLed (1);

blinkLed (2);

blinkLed (3);

blinkLed (4);while (1);

)nična blinkLed (nepodpisanih char LED)

(

int j, za (j = 0; j <10; j )

(

stikalo (LED)

(

primeru 0:

LATAbits.LATA0 = 1;

Delay10KTCYx (0);

LATAbits.LATA0 = 0;

Delay10KTCYx (0);

break;

primer 1:

LATAbits.LATA1 = 1;

Delay10KTCYx (0);

LATAbits.LATA1 = 0;

Delay10KTCYx (0);

break;

primer 2:

LATAbits.LATA2 = 1;

Delay10KTCYx (0);

LATAbits.LATA2 = 0;

Delay10KTCYx (0);

break;

primer 3:

LATAbits.LATA3 = 1;

Delay10KTCYx (0);

LATAbits.LATA3 = 0;

Delay10KTCYx (0);

break;

primer 4:

LATAbits.LATA4 = 1;

Delay10KTCYx (0);

LATAbits.LATA4 = 0;

Delay10KTCYx (0);

break;

default:

LATAbits.LATA0 = 0;

LATAbits.LATA1 = 0;

LATAbits.LATA2 = 0;

LATAbits.LATA3 = 0;

LATAbits.LATA4 = 0;

break;

)

)

)
 
Imam težave s konfiguracijo zunanjih oscilator.Program i so napisali le stikala vodi, to naj bi se utripati.

# Include <p18f4550.h>
# Include <delays.h>

# Pragma config PLLDIV = 5 / / potreba po 5 za 20MHz xtal
# Pragma config CPUDIV = OSC1_PLL2 / / CPU Clock = 96 MHz / 2 = 48 MHz
# Pragma config USBDIV = 2 / / 96MHz PLL / 2 = 48 MHz za ure USBPLL enabled

# Pragma config FOSC = HSPLL_HS / / High Speed Crystal / Resonator s
PLL omogočeno
# Pragma config WDT = OFF / / ne pes čuvaj
# Pragma config = LVP OFF / / LVP MORA biti off
# Pragma config BOR = OFF / / ne rjavi ven reset
# Pragma config MCLRE = ON / / MCLR v uporabi (tako 10k do 5 v bistvenimi)
# Pragma config PWRT = ON / / moči up timer o
# Pragma config PBADEN = OFF / / onemogočiti PORTB / d pretvornik
# Pragma config VREGEN = ON / / USB Internal Voltage Regulator omogočen

//------------------------------------------------ ------
//---- Prekinitev preklopite prototip ------------------------
nična led_toggle (ničen);

//------------------------------------------------ -------
/ / ------- Z visoko prioriteto Pobeg Vektor -----------------
# Pragma code InterruptVectorHigh = 0x08
nična InterruptVectorHigh (ničen) (
_asm
goto led_toggle / / skok za prekinitev rutinskega
_endasm
)

//------------------------------------------------ ----------
/ / ----------- Visoko prioriteto prekine rutinsko ---------------
# Pragma kodo
# Pragma prekinitev led_toggle
ničen led_toggle () (
if (INTCONbits.TMR0IF) (/ / preveri za TMR0 overflow

LATAbits.LATA0 = ~ LATAbits.LATA0;

/ / Porta = 0x00;
TMR0L = 0x00;
INTCON = 0x20; / / Set T0IE, jasno T0IF
)
)

//------------------------------------------------ ----------------
//------- Main code --------------------------------------- ----------
# Pragma kodo
neveljaven glavne (ničen)
(

/ * Configure izhod pin za LED * /
TRISA = 0xFC; / / dve LSB nastavljen tako, da se proizvodnja
Lata = 0x00;

/ / Initialise Timer0 in njegovo prekinitev * /
INTCON = 0x20; / / onemogočiti globalnih in omogočajo časa prekiniti
INTCON2 = 0x84; / / TMR0 prednost
RCONbits.IPEN = 1; / / omogočilo prednost ravni
TMR0H = 0x00; / / clear timer
TMR0L = 0x00; / / clear timer
T0CON = 0xc5; / / ustanovi timer0, 16-bit, 1:64 prescaler
INTCONbits.GIEH = 1; / / da prekinja

while (1)
(

)
)

 
^ Ne vem veliko o PIC prekinitve, vendar izgleda, da vaš prekiniti teče samo enkrat.Ne verjamem, da imate konfiguracijo problem oscilator.Če že vztrajate, da imate konfiguracijo problem potem, predlagam, začeti tekmovanje v teku nekaj enostavnejši, zakomentirajte vse tiste prekine del kode in copy / paste moje blink-a pod vodstvom primer zgoraj.Če to deluje potem kodo res je prekinitev kliče problem, ni nekaj, kar v zvezi s konfiguracijo.

 
^ Sem poskušal vaš program in deluje v skladu s pričakovanji.

Jaz sem sposoben flash eno pripeljala z mojim program (glej moj prejšnji post), s FOSC = INTOSC_HS.I dont vem, zakaj ne morem z FOSC = HSPLL_HS.

 

Welcome to EDABoard.com

Sponsor

Back
Top