PIC18F2550, C18 - क्या CPUDIV को स्थापित करने के लिए चुनते हैं?

H

hkBattousai

Guest
MPLAB> सहायता> विषय> भाषा सहायक> PIC18 Config सेटिंग्स ने लिखा है:कोड:

PLL / / Prescaler चयन बिट्स:

= 1 / / नहीं prescale (4 मेगाहर्टज थरथरानवाला इनपुट ड्राइव PLL सीधे PLLDIV)

= 2 PLLDIV / / 2 से विभाजित (8 मेगाहर्ट्ज थरथरानवाला इनपुट)

= 3 PLLDIV / / 3 से विभाजित (12 मेगाहर्टज थरथरानवाला इनपुट)

= 4 PLLDIV / / 4 से विभाजित (16 मेगाहर्टज थरथरानवाला इनपुट)

= 5 PLLDIV / / 5 से विभाजित (20 मेगाहर्टज थरथरानवाला इनपुट)

= 6 PLLDIV / / 6 से विभाजित (24 मेगाहर्टज थरथरानवाला इनपुट)

= 10 PLLDIV / / 10 से विभाजित (40 मेगाहर्टज थरथरानवाला इनपुट)

= 12 PLLDIV / / 12 से विभाजित (48 मेगाहर्टज थरथरानवाला इनपुट)/ / सीपीयू सिस्टम घड़ी Postscaler:

CPUDIV = OSC1_PLL2 / / [OSC1/OSC2 src: / 1] [96 मेगाहर्टज PLL src: / 2]

CPUDIV = OSC2_PLL3 / / [OSC1/OSC2 src: / 2] [96 मेगाहर्टज PLL src: / 3]

CPUDIV = OSC3_PLL4 / / [OSC1/OSC2 src: / 3] [96 मेगाहर्टज PLL src: / 4]

CPUDIV = OSC4_PLL6 / / [OSC1/OSC2 src: / 4] [96 मेगाहर्टज PLL src: / 6]/ / USB घड़ी चयन बिट (पूर्ण यूएसबी मोड ही स्पीड में प्रयुक्त; UCFG FSEN = 1:):

= 1 USBDIV / / USB घड़ी स्रोत के साथ प्राथमिक थरथरानवाला ब्लाक से सीधे नहीं आता है postscale

= 2 USBDIV / / USB घड़ी स्रोत 96 मेगाहर्टज 2 से विभाजित PLL से आता है/ / थरथरानवाला चयन बिट्स:

FOSC = XT_XT / / XT थरथरानवाला, XT USB द्वारा इस्तेमाल

FOSC = XTPLL_XT / / XT थरथरानवाला, PLL सक्षम, XT USB द्वारा इस्तेमाल

FOSC = ECIO_EC / / विदेश घड़ी RA6 पर, बंदरगाह समारोह, चुनाव आयोग USB द्वारा इस्तेमाल

FOSC = EC_EC, RA6 पर CLKOUT / / विदेश घड़ी, चुनाव आयोग USB द्वारा इस्तेमाल

FOSC = ECPLLIO_EC / / विदेश घड़ी, PLL सक्षम, RA6 बंदरगाह पर समारोह, चुनाव आयोग USB द्वारा इस्तेमाल

FOSC = ECPLL_EC / / विदेश घड़ी, PLL सक्षम, RA6 पर CLKOUT, चुनाव आयोग USB द्वारा इस्तेमाल

FOSC = INTOSCIO_EC / / आंतरिक थरथरानवाला RA6 पर, बंदरगाह समारोह, चुनाव आयोग USB द्वारा इस्तेमाल

FOSC = INTOSC_EC, RA6 पर CLKOUT / / आंतरिक थरथरानवाला, चुनाव आयोग USB द्वारा इस्तेमाल

FOSC = INTOSC_XT / / आंतरिक थरथरानवाला, XT USB द्वारा इस्तेमाल

FOSC = INTOSC_HS / / आंतरिक थरथरानवाला, USB द्वारा इस्तेमाल एच एस

FOSC = एच एस / / एच एस थरथरानवाला, USB द्वारा इस्तेमाल एच एस

FOSC = HSPLL_HS / / एच एस थरथरानवाला, PLL सक्षम, USB द्वारा इस्तेमाल एच एस
 
नमस्ते,

सीधे मदद नहीं कर सकते सी कोड के साथ, लेकिन माइक्रोचिप्स USB अनुभाग के लिए इस लिंक पर एक नज़र है - USB फ्रेमवर्क के लिए सॉफ्टवेयर अनुभाग / जो आपको कुछ कोड दिखाई दे सकते हैं उदाहरण config के साथ काम देखते हैं.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1486

 
आप एक 20 मेगाहर्टज क्रिस्टल का उपयोग कर रहे हैं तो आप को पूर्व की आवश्यकता होगी के बाद से 5 से विभाजित करने 4MHz तो बन PLL यह 96 मेगाहर्टज के लिए मिलेगा USB के लिए, PLL यह 2 से विभाजित हो जाएगा करने के लिए 48 मेगाहर्टज USB के लिए की जरूरत है.
मुझे लगता है कि आप प्रयोग करना चाहिए
= 5 PLLDIV / / 5 से विभाजित (20 मेगाहर्टज थरथरानवाला इनपुट)
लेकिन मुझे लगता है कि CPU सेनेवाली मुग़ी USB से अलग प्रणाली सेनेवाली मुग़ी है अर्थात् मैं उन दोनों के बारे में सोच नहीं ही घड़ी में होना चाहिए, क्या वे अलग है, कम से कम आप एक ही आवृत्ति पर दोनों काम कर सकते हो सकता है, तो इस का उपयोग करें:
CPUDIV = OSC1_PLL2 / / [OSC1/OSC2 src: / 1] [96 मेगाहर्टज PLL src: / 2]

सौभाग्य

 
Elrayes सही है, ये हैं सेटिंग्स आप USB की जरूरत है.

= 5 PLLDIV / / 20MHz / 5 = 4 मेगाहर्टज, 96 मेगाहर्टज PLL के लिए इनपुट
CPUDIV = OSC1_PLL2 / / CPU घड़ी = मेगाहर्टज 96 / 2 = 48 मेगाहर्टज
= 2 USBDIV / / 96MHz PLL / 2 = 48 यूएसबी के लिए मेगाहर्ट्ज घड़ी
FOSC HSPLL_HS = / / Osc के प्रकार: उच्च गति क्रिस्टल / PLL गुंजयमान यंत्र के साथ सक्रिय
VREGEN = पर / / USB आंतरिक वोल्ट नियामक सक्रिय

इसके बाद के संस्करण सेटिंग्स मेरे लिए काम करता है जब 20 मेगाहर्टज XTAL इस्तेमाल करते हैं.

 
मैं अपने कोड को संशोधित सिर्फ सुझाव के रूप में तुम मुझे क्या करना है.लेकिन फिर भी मेरी सर्किट काम नहीं करता है.यहाँ मेरी नई कोड है:
कोड:

# शामिल <p18f2550.h>

# शामिल <delays.h># pragma PLLDIV = 5 / 5 जरूरत 20MHz xtal के लिए config

# pragma CPUDIV = OSC1_PLL2 / / CPU घड़ी = मेगाहर्टज 96 config / 2 = 48 मेगाहर्टज

# pragma = 2 USBDIV config / / 96MHz PLL / 2 = 48 यूएसबी के लिए मेगाहर्ट्ज घड़ी

# pragma config FOSC = HSPLL_HS / / उच्च गति क्रिस्टल / PLL गुंजयमान यंत्र के साथ सक्रिय

# pragma config WDT रवाना = / / कोई निगरानी

# pragma LVP = रवाना / / LVP जरूरी config बंद हो

# pragma सीमा = रवाना / / कोई भूरे बाहर config रीसेट

# pragma MCLRE = पर प्रयोग में / MCLR / config (इतना 10k के लिए 5 वी आवश्यक)

# pragma config PWRT पर = / / बिजली टाइमर पर

# pragma PBADEN = रवाना / / निष्क्रिय एक / घ कनवर्टर PORTB config

# pragma config VREGEN = पर / / USB आंतरिक वोल्ट नियामक सक्रियशून्य मुख्य शून्य ()

(

= 0 TRISB;

= 0 PORTB;समय (1)

(

= 0 PORTB;

Delay10KTCYx (0);

= 0xFF PORTB;

)

)
 
खाँसी खाँसी .....

कि यह एक आश्चर्य कुछ भी है जैसे एक लेआउट के साथ सभी पर काम करता है.
तुम जरूरी आपूर्ति लाइनों में संभव के रूप में आईसी के करीब के रूप में capacitors जगह और तुम जरूरी आईसी को जमीन संबंध सुनिश्चित करने के क्रिस्टल लोड हो रहा है capacitors के मैदान की ओर से संभव के रूप में कम प्रतिबाधा के रूप में है.

आप इस समय किसी भी आवृत्ति पर हो सकता है थरथरानवाला और आपूर्ति पर इतना शोर हो यह बहुत संभावना नहीं यह काफी स्थिर को चलाने के मज़बूती से अगर सब में हो जाएगा है.

ब्रायन.

 
betwixt ने लिखा है:

खाँसी खाँसी .....कि यह एक आश्चर्य कुछ भी है जैसे एक लेआउट के साथ सभी पर काम करता है.

तुम जरूरी आपूर्ति लाइनों में संभव के रूप में आईसी के करीब के रूप में capacitors जगह और तुम जरूरी आईसी को जमीन संबंध सुनिश्चित करने के क्रिस्टल लोड हो रहा है capacitors के मैदान की ओर से संभव के रूप में कम प्रतिबाधा के रूप में है.आप इस समय किसी भी आवृत्ति पर हो सकता है थरथरानवाला और आपूर्ति पर इतना शोर हो यह बहुत संभावना नहीं यह काफी स्थिर को चलाने के मज़बूती से अगर सब में हो जाएगा है.ब्रायन.
 
यहाँ हेक्स फ़ाइल 20mhz के साथ PIC18F2550 (xtal) के साथ अच्छा काम करता है ...
इस कोड को और बंद का नेतृत्व करेंगे बंदरगाह बी से जुड़ा
मैं यह परीक्षण किया है और यह ठीक काम करता था ...
क्षमा करें, लेकिन आप में प्रवेश करने की जरूरत है इस संलग्नक देखें

 
anandpv2009 ने लिखा है:

यहाँ हेक्स फ़ाइल 20mhz के साथ PIC18F2550 (xtal) के साथ अच्छा काम करता है ...

इस कोड को और बंद का नेतृत्व करेंगे बंदरगाह बी से जुड़ा

मैं यह परीक्षण किया है और यह ठीक काम करता था ...
 
मुझे शक है इस समस्या है, लेकिन LATB इस्तेमाल करने के बजाय PORTB जब आप डेटा उत्पादन की कोशिश करो.

ब्रायन.

 
कोड:

# शामिल <18F2550.h>

# HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5, CPUDIV1, VREGEN फ़्यूज़

देरी का उपयोग करें (= 20,000,000 घड़ी #)शून्य मुख्य ()

(

set_tris_b (0);

समय (1)

(

output_b (0xff);

delay_ms (100);

output_b (0x00);

delay_ms (100);

))
 
betwixt ने लिखा है:

मुझे शक है इस समस्या है, लेकिन LATB इस्तेमाल करने के बजाय PORTB जब आप डेटा उत्पादन की कोशिश करो.
 
तुम सीसीएस संकलक का उपयोग करने के ऊपर कार्यक्रम काम करना चाहिए ...
कृपया अपने संकलक नाम निर्दिष्ट करें.?मुझे लगता है कि आपके संकलक सीसीएस नहीं है.तुम जाल से सीसीएस से मुक्त संस्करण डाउनलोड कर सकते हैं.
एक और बात, अपने पहले पोस्ट हेक्स के बारे में Whats (या काम किया है.) नहीं है?

 
anandpv2009 ने लिखा है:

तुम सीसीएस संकलक का उपयोग करने के ऊपर कार्यक्रम काम करना चाहिए ...

कृपया अपने संकलक नाम निर्दिष्ट करें.?
मुझे लगता है कि आपके संकलक सीसीएस नहीं है.तुम जाल से सीसीएस से मुक्त संस्करण डाउनलोड कर सकते हैं.

एक और बात, अपने पहले पोस्ट हेक्स के बारे में Whats (या काम किया है.) नहीं है?
 
प्रिय hkBattousai

क्या आप अपने कार्यक्रम के लिए काम मिलता है?मैं यह भी है कि मैं Porta पर एलईडी पर स्विच कर रहा हूँ, लेकिन मैं उन्हें फ़्लैश का प्रबंधन नहीं कर सकते हैं सिवाय एक ही समस्या हो रहा है.

 
मैं अपनी समस्याओं के बारे में अधिक जानकारी के लिए आपकी मदद की जरूरत है (यदि मैं कर सकता हूँ )....

 
मैंने यह काम करते हैं, आप अपनी चिंता के लिए धन्यवाद.

यहाँ एक काम पलक एक नेतृत्व वाले उदाहरण है:कोड:

# शामिल <p18f2550.h>

# शामिल "delays.h"

# pragma WDT = रवाना config

# pragma MCLRE = पर config

# pragma debug = रवाना config

# pragma LVP = रवाना config

# pragma PLLDIV = 5 / 5 जरूरत 20MHz xtal के लिए config

# pragma CPUDIV = OSC1_PLL2 / / CPU घड़ी = मेगाहर्टज 96 config / 2 = 48 मेगाहर्टज

# pragma = 2 USBDIV config / / 96MHz PLL / 2 = 48 यूएसबी के लिए मेगाहर्ट्ज घड़ी

# pragma config FOSC = HSPLL_HS / / उच्च गति क्रिस्टल / PLL गुंजयमान यंत्र के साथ सक्रियशून्य blinkLed (अहस्ताक्षरित नेतृत्व में चार);शून्य मुख्य शून्य ()

(

0x00 = ADCON0;

= 0x0f ADCON1;

= 7 CMCON;= 0 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;blinkLed (0);

blinkLed (1);

blinkLed (2);

blinkLed (3);

blinkLed (4);समय (1);

)शून्य blinkLed (अहस्ताक्षरित नेतृत्व में चार)

(

int j; के लिए (j = 0; j <10; j )

(

स्विच का नेतृत्व ()

(

0 मामला:

LATAbits.LATA0 = 1;

Delay10KTCYx (0);

= 0 LATAbits.LATA0;

Delay10KTCYx (0);

तोड़;

1 केस:

LATAbits.LATA1 = 1;

Delay10KTCYx (0);

= 0 LATAbits.LATA1;

Delay10KTCYx (0);

तोड़;

2 केस:

LATAbits.LATA2 = 1;

Delay10KTCYx (0);

= 0 LATAbits.LATA2;

Delay10KTCYx (0);

तोड़;

3 मामला:

LATAbits.LATA3 = 1;

Delay10KTCYx (0);

= 0 LATAbits.LATA3;

Delay10KTCYx (0);

तोड़;

4 मामला:

LATAbits.LATA4 = 1;

Delay10KTCYx (0);

= 0 LATAbits.LATA4;

Delay10KTCYx (0);

तोड़;

डिफ़ॉल्ट:

= 0 LATAbits.LATA0;

= 0 LATAbits.LATA1;

= 0 LATAbits.LATA2;

= 0 LATAbits.LATA3;

= 0 LATAbits.LATA4;

तोड़;

)

)

)
 
मैं बाह्य थरथरानवाला विन्यस्त के साथ एक समस्या है.कार्यक्रम मैं लिखा है ही स्विच नेतृत्व में, यह होना चाहिए चमकती है.

# शामिल <p18f4550.h>
# शामिल <delays.h>

# pragma PLLDIV = 5 / 5 जरूरत 20MHz xtal के लिए config
# pragma CPUDIV = OSC1_PLL2 / / CPU घड़ी = मेगाहर्टज 96 config / 2 = 48 मेगाहर्टज
# pragma = 2 USBDIV config / / 96MHz PLL / 2 = 48 यूएसबी के लिए मेगाहर्ट्ज घड़ीPLL enabled

# pragma config FOSC = HSPLL_HS / / उच्च गति क्रिस्टल /
PLL गुंजयमान यंत्र के साथ
सक्रिय
# pragma config WDT रवाना = / / कोई निगरानी
# pragma LVP = रवाना / / LVP जरूरी config बंद हो
# pragma सीमा = रवाना / / कोई भूरे बाहर config रीसेट
# pragma MCLRE = पर प्रयोग में / MCLR / config (इतना 10k के लिए 5 वी आवश्यक)
# pragma config PWRT पर = / / बिजली टाइमर पर
# pragma PBADEN = रवाना / / निष्क्रिय एक / घ कनवर्टर PORTB config
# pragma config VREGEN = पर / / USB आंतरिक वोल्ट नियामक सक्रिय

//------------------------------------------------ ------
//---- इंटरप्ट टॉगल प्रोटोटाइप ------------------------
शून्य led_toggle (शून्य);

//------------------------------------------------ -------
/ / ------- उच्च प्राथमिकता वेक्टर अंतरायन -----------------
# pragma कोड InterruptVectorHigh = 0x08
शून्य InterruptVectorHigh (शून्य) (
_asm
गोटो led_toggle / / कूद दिनचर्या में दखल देने को
_endasm
)

//------------------------------------------------ ----------
/ / ----------- उच्च प्राथमिकता नियमित अंतरायन ---------------
# pragma कोड
# pragma led_toggle अंतरायन
शून्य led_toggle () (
अगर (INTCONbits.TMR0IF) (TMR0 अतिप्रवाह के लिए / जांच /

LATAbits.LATA0 LATAbits.LATA0 = ~;

/ / = 0x00 Porta;
0x00 = TMR0L;
0x20 = INTCON; / / T0IE, साफ T0IF सेट करें
)
)

//------------------------------------------------ ----------------
//------- मुख्य कोड --------------------------------------- ----------
# pragma कोड
शून्य मुख्य शून्य ()
(

/ कॉन्फ़िगर एलईडी के लिए * उत्पादन पिन * /
= 0xFC TRISA; / / दो LSB के उत्पादन हो कॉन्फ़िगर
0x00 = लता;

/ / Initialise Timer0 और उसके * अंतरायन /
0x20 = INTCON; / / वैश्विक अक्षम और सक्षम टाइमर अंतरायन
0x84 = INTCON2; / / TMR0 उच्च प्राथमिकता
= 1 RCONbits.IPEN; सक्षम / / प्राथमिकता स्तर
0x00 = TMR0H; / / स्पष्ट टाइमर
0x00 = TMR0L; / / स्पष्ट टाइमर
= 0xc5 T0CON; / / timer0, 16 सेट अप सा, 1:64 prescaler
= 1 INTCONbits.GIEH; सक्षम / / बीच में आता है

समय (1)
(

)
)

 
^ मैं तस्वीर बीच में आता है के बारे में ज्यादा पता नहीं है, लेकिन यह अपनी तरह है केवल एक बार चल बीच में लगता है.मुझे नहीं लगता कि आप एक थरथरानवाला विन्यास समस्या है.यदि आप का कहना है कि आप एक विन्यास समस्या तो है, मेरा सुझाव है, सरल कुछ चलाने की कोशिश करें, बाहर टिप्पणी उन सभी अपने कोड और नकल का हिस्सा अंतरायन / चिपकाएँ अपने पलक-ऊपर एक उदाहरण के नेतृत्व में.अगर यह काम करता है, तो आपके कोड वास्तव में एक समस्या है बुला रही रुकावट नहीं, विन्यास से संबंधित कुछ.

 
^ मैं अपने कार्यक्रम की कोशिश की है और यह काम करता है के रूप में उम्मीद की थी.

मैं अपने कार्यक्रम के नेतृत्व में एक फ्लैश कर (मेरे पिछले पोस्ट FOSC = INTOSC_HS के साथ) का उल्लेख कर रहा हूँ.मैं FOSC = HSPLL_HS के साथ मैं क्यों नहीं कर सकते पता है न.

 

Welcome to EDABoard.com

Sponsor

Back
Top