forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
C8051F350 rychlost interneho oscilatora ???

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052
 
Dybbuk
Častý přispěvatel
Častý přispěvatel


Založen: 18.3.2016
Příspěvky: 32

PříspěvekZaslal: 28 březen 2020, 1:59    Předmět: C8051F350 rychlost interneho oscilatora ??? Citovat

Zdravím vás,
ak sa tu nájde niekto, kto má skúsenosť so Silabmi, tak riešim nasledovnú nezrovnalosť:

C8051F350 datasheet deklaruje nasledovné:
citace:
Internal Oscillator: 24.5 MHz with ± 2% accuracy

avšak podľa mojich reálnych meraní to je 12 MHz.

Spravil som dva pokusy:
1. Test 1 – zmena stavu portu každých 12 strojových cyklov. Ak je f oscilátora 12 MHz, tak každý stav bude trvať 1μs. Ak je f oscilátora 24,5 MHz, tak každý stav bude trvať 0,49μs
Výsledok testu 1 = 1μs. Overené v simulátore aj osciloskopom na reálnom zariadení.

2. Test 2 – Timer 2 použitý na overenie testu 1. Zmena stavu portu vždy po pretečení timera.
Celkovo 65553 strojových cyklov. Pri f = 12 MHz každý stav bude trvať 5,46ms, ak f = 24,5 MHz tak 2,68ms
Výsledok testu 2 = 5,46ms.

Tak ako je to s tým oscilátorom? Niečo som zle pochopil, alebo mám niečo zle nastavené?

Ďakujem za odpoveď, každá rada dobrá

kód:

#include <c8051F350.h>

/*Internal Oscillator: 24.5 MHz with ± 2% accuracy*/

sbit LED = P0^0;

void main(void)
{
   int i;
   PCA0MD  &= ~0x40;   
   
/*------ O S C ------ */
   OSCICN   =   0x83;          //10000011 Internal Oscillator Enabled / SYSCLK derived from Internal Oscillator divided by 1
   CLKSEL   =   0x00;             // Internal Oscillator

/*----- P O R T -----*/
   P0MDIN   =   0xFF;            //P0.0 - P0.7 = digital
   P0MDOUT   =   0xFF;            //P0.0 - P0.7 = output
   XBR1   |=   0x40;            //crossbar on, pull-up on

/*-- T I M E R  2 --*/
    CKCON   |=   0x30;            //Timer 2 high byte uses the system clock / Timer 2 low byte uses the system clock
   TMR2CN   =   0x00;            //Timer 2 operates in 16-bit auto-reload mode / Timer 2 disabled
  TMR2RLL   =   0x00;
   TMR2RLH   =   0x00;            //L-H reload value = 0
   TMR2L   =   TMR2RLL;
   TMR2H   =   TMR2RLH;         //L-H start value = 0
   


/*----------- Test 01 ----------------
         celkovo 12 strojovych cyklov
            medzi impulzami
------------------------------------*/
   for(i=0; i<20; i++)
   {
      LED = ~LED;
   }

   
/*----------- Test 02 ----------------
         celkovo 65553 strojovych cyklov
            medzi impulzami
------------------------------------*/
   for(i=0; i<20; i++)
   {
      TR2   =   1;            //Start Timer 2
      while(!TF2H);         //cakaj 65536 inkrementacii timera
      TR2 = 0;             //Stop Timer 2
      LED = ~LED;            //P0.0 = ~P0.0
      TF2H = 0;
   }

   while(1)
   {
   }
}



C8051F350.png
 Komentář:

Stáhnout
 Soubor:  C8051F350.png
 Velikost:  40.05 kB
 Staženo:  31 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 540

PříspěvekZaslal: 01 duben 2020, 0:09    Předmět: Citovat

Dělal jsem nějakou dobu na C8051F500 a to je nemlich to samé, akorát umí chodit vejš. Jeho interní osc jsem ovšem nikdy nepoužil, vždy jen s krystalem. Rychlá kontrola mi nic neprozradila. Zkus použít ten jejich konfigurační wizzard jestli něco nenastaví jinak. V jakém prostředí to píšeš/překládáš/simuluješ ?
_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 540

PříspěvekZaslal: 01 duben 2020, 0:15    Předmět: Citovat

Jo tak koukam, ze chodi taky do 50MHz... akorat ta 500 ma interni osc 24.0MHz a 350 ma 24.5MHz - takovy divny.
_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
Dybbuk
Častý přispěvatel
Častý přispěvatel


Založen: 18.3.2016
Příspěvky: 32

PříspěvekZaslal: 02 duben 2020, 21:21    Předmět: Citovat

Pouzivam KeiluVision 5 a momentalne som sa dostal (s inym programom) do stavu ze na realnom zariadeni to uz bezi podla ocakavania na 24,5 Mhz, hoci v Keil simulatore je stale vsetko pocitane s frekvenciou 12Mhz (dokonca aj UART baudrate).
Rozdiel v nastaveniach v novom programe velmi nevidim takze moznosti su momentalne dve:
1. od zaciatku to slo zle iba v simulatore a pokaslal som to pocas merania osciloskopom
2. alebo problem ostava nadalej zahadou

Budem to este detailnejsie investigovat ked urobim poriadok v novom kode, aby som sa v nom ja sam vyznal a vysledok vysetrovania budem zdielat tu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 540

PříspěvekZaslal: 04 duben 2020, 0:26    Předmět: Citovat

Taky dělám v keilu a někdy je trochu těžší ho donutit aby to právě počítal podle správné frekvence. CPU core simuluje co se týče trvání instrukcí dobře. Takže typuju variantu 1.
_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052 Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2020 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)