Interný oscilátor v PIC18F

Zdravím,
v PIC 18F4523 sa pokúšam “rozchodiť” interný oscilátor 8 MHz. Na priloženom kúsku kódu je nastavený v konfiguračných bitoch interný oscilátor. V kóde je povolené PLL. Na výstupe TMR0 je frekvencia 486,4 Hz. Timer je nastavený na 256 tikov, preddelič je 8:1, teda Fosc = 486,425684 = 3 984 588 Hz, čo je asi 4 MHz. Očakával som výstupnú frekvenciu okolo 3,9 kHz, a tým by Fosc bola 32 MHz (84 s PLL). Nemáte, prosím, niekto skúsenosti s nastavením interného oscilátora s PLL?
Za pomoc veľmi pekne ďakujem a vinšujem príjemný deň.
Test1.asm (2.1 KB)

V datasheetu jsem nenašel o nastavení oscilátoru vůbec nic. Třeba to bude podobné s 18F4620

[code] list p=18f4620, R=DEC
include “p18f4620.inc”

config	WDT = OFF,	MCLRE = OFF, OSC = INTIO67, LVP = OFF, FCMEN = ON
config	IESO = OFF,	PWRT = ON, PBADEN = OFF, LPT1OSC = OFF

[/code]

banksel OSCCON movlw b'01110000' ;8Mhz movwf OSCCON movlw b'01000000' ;PLL x4 = 32Mhz movwf OSCTUNE

Nastavenie interného oscilátora je na str. 26 datasheetu, v kapitole 2.6 “Internal oscillator block”. Jediný rozdiel medzi Vaším kódom a mojím je , že v registri OSĆON Vy nenastavujete bit 1 (bit SCS1), ktorým sa povoľuje interný oscilátor. Poobede vyskúšam Váš kód a dám vedieť.
Zatiaľ veľmi pekne ďakujem za pomoc.

Na str. 26 mám nastavení AD.

EDIT: Koukám že není datasheet jako datasheet. Mělo by to být stejný jako u mě až na nastavení Hz.
39755c.pdf (860 KB)

Zdravím,
v tom datasheete je popísaný len 12 bitový A/D prevodník typov 18F(24,25,44,45)23. Preposielam datasheet 18F4620. Ako som spomínal na str. 26 v v datasheete (je to str. 28 v .pdf-ku) je popísaný blok interného oscilátora. Po napísaní Vášho kódu je výstupná frekvencia 1933,8 Hz. To mi dáva Fosc 15 841 689 Hz, čo je asi 16 MHz. Ja očakávam Fosc 32 MHz. Teda máme Fosc len polovičnú, ako by mala byť. :angry:
Vinšujem príjemný deň.
PIC18F4620_datasheet.pdf (6 MB)

Tak tu konfiguraci zapisujte pořádně tak jak se má, ten symbol se přesně jmenuje _OSC_INTIO67_1H, a zapisuje se to nejlépe takto:

__CONFIG _CONFIG1H, _OSC_INTIO67_1H & ......

kolemjdoucí:

__CONFIG _CONFIG1H, _OSC_INTIO67_1H & ......

Nevím kde jsi toto vyštrachal ale takový zápis konfiguračního slova vidím poprvé.

elc:
Ja ten datasheet stáhl z webu microchip. “Poctivej” datasheet jsem stáhl z nějakého fora.

Koukal sem do datasheetu a *.INC souborů obou PICek (tvůj 18F4523 a můj 18F4620) a takhle by ti to mělo jet na 32Mhz

config	OSC = INTIO67 zbytek podle tvého nastavení

banksel OSCCON movlw b'01110000' ;8Mhz movwf OSCCON movlw b'01000000' ;PLL x4 = 32Mhz movwf OSCTUNE

To jsem prosím vyštrachal z MPASM manuálu a z INC souboru. Ten zápis konfigurace co používáš je Cčkovej formát zápisu (s tím že ti před tím chybí ještě #pragma, celý tedy např. #pragma config WDT=ON).

Aspoň k něčemu mi to Cčko je :smiley: :smiley:

Njn :smiley: (vím, nevidíme se zde na fóru poprvé :wink: jen bych pořád nesměl zapomínat registrace) Jsem ale trochu překvapen, v jiném vláknu (v tom kde jsme si psali o 16bit) jsi psal že máš projekt v ASM na desítky tisíc řádků, a tady se dozvím (nerad bych křivdil) že nečteš MPASM manuál, nebo jak to je?

Ten zápis používám léta (dá se tam zapsat i hex value, nemusí to tam být vyjmenovaný po jednotlivých bitech), ovšem s tím Cčkem jsem po letech jeho odmítání právě začal (proto náhodou vím o tom #pragma), a to ještě částečně díky kámošovi do kterýho bych nikdy neřekl že s tím začne, protože je ještě o něco konzervativnější než já… někdy se dějou věci na tom světě.

Ale když už jsme u těch konfigurací, pokud používáš MPLAB X tak mi prosím poraď, kde se tam dá naklikat konfigurace… prej je tam na to někde klikátko ale nemůžu ho najít (stejně tak jako nevím, jak přidat ASM proměnný do watchlistu - mnou definovaný pomocí EQU a DEFINE nejdou, definovaný headerem jako STATUS atd jdou).

Ten oscilátor můžu zkusit na 18F4520, jestli vám to pořád nejede…?

Mě to jde, uživateli Elc to nejde, tak jsem mu napsal jak to mám já u 18F4620.

Tak s tím ti nepomůžu, zkoušel jsem ho a po hodině laborování jsem se vrátil k MPLABu. Proč měnit něco co funguje dobře.

Abych se přiznal tak už sem ho dlouho nečetl. Naučil sem se projít si soubor INC k danému PICu.

  1. Aha, tak snad nám řekne jak pokročil

  2. Ano, to je pravda, ze stejného důvodu pořád používám PK2 a MPLAB 8.92 mám nainstalovaný hned vedle (nicméně to vypadá, že MPLAB X je na to C daleko vhodnější, narozdíl od ASM… původní MPLAB to má přesně obráceně).

  3. INC soubor je dobrý zdroj… taky aby nebyl, když to podle něj kompilátor skládá :slight_smile:

Trochu odbočím: Kdybys chtěl, napiš mi na elecronics <kyseláryba> email cz. Je to takový mail na spamy, ale napsal bych ti přes něj mail který používám a mohli bysme pokecat víc, ať tu neplevelíme fórum (nebo si časem třeba domluvit scuka když se to uzná za vhodné, bydlím asi 30km od tebe, v případě řešení nějakého problému nebo potřeby nějaké vzájemné pomoci to není zas tak daleko… občas k vám jezdím do pivovaru na burzu radioamatérů).

*electronics <kyseláryba> email cz (ach ty překlepy)

Ty burzy už snad ani nejsou. Prosím admina ať smaže co se netýká tématu.

Mi napiš na honza3<>centrum.cz. Jinak v profilu ma ICQ čislo.

Mplab X je docela dobrej nastroj ----- Window-> PIC Memory Views-> Configuration bits => nakllikat zmacknout Generate Source to Output … oznacit Ctrl+C kurzor nad main() a Ctrl+V … :wink: