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

 

.: fórum - hlavní stránka :.
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:  59 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: 541

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: 541

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: 541

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
 



Copyright © 2020 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora.