Renesas MCU işlem Hızı ?

Başlatan YARGICH, 29 Mart 2006, 05:19:23

YARGICH

Selam,

   Ben bu Renesas'ı maksimum hızında kullanamadığımı düşünüyorum. Çünkü daha önce 16F877 ile yaptığım mini grafik panel uygulamasında ekranda hiç titreme olmuyodu. Gayet de hızlıydı. Yalnız bu uygulamanın aynısını M30624FGPFP ile deniyorum ben diyeyim 10, siz deyin 15 frame gösteriyor. Yani ekranda titreme var. M30624'ün katolog değerlerinde ise, 5V ve 16MHZ'de  62,5ns lik bir komut işleme süresi olduğu yazıyor. Tabi bu süre minimum. Bir kaç saykıllık komutlardan bahsetmiyorum. Ayrıca hesaba göre yapılmış bekleme alturinlerinde bile yavaşlık var. Mesela DelayMs(1000) diyorum 1sn den fazla bekliyor. Bu altrutinde çağrılması dahil geçecek olan bütün saykıllar hesaplanmış ama süreler uyuşmuyor.

Ben renesas'ın yavaş oluğunu düşünmüyorum, bunda başka bir şey olsa gerek. Pic'le karşılaştırmaya bile gerek olmayan hızı ve yapısı var. Özel bir register ayarı felan mı var acaba?


Saygılar, iyi çalışmalar.
Uçurtmalar, rüzgarın kuvvetiyle değil, rüzgara karşı koydukları direnç ile yükselirler.

YARGICH

Selam,

 Ya bu başlığı gören olmadı, yada bilen olmadı :D Ama sağolsun @tatlisukurnazı hocam datasheetde bir bölüm gösterdi ve burda olması gerektiğini söyledi. Ben de biraz göz gezdimeyle buldum. Yalnız bu bir sorun değil, işlemcinin çalışma modu ile alakalı bir ayarmış. Bu işlemcinin normal mod da iken değişik çalışma modları var; High Speed Mode, Medium Speed Mode, Low Speed Mode, Low Power Dissipation Mode.  Benim işlemcim kurulumstandartlarına göre Low power modda çalışıyor muş herhalde. Bu modları değiştirmek için iki adet özel register var. Bu registerlerden CM0 olanın 6. ve 7. bitlerini 0, CM1 olanın 6. (16 isminde) ve 7. (17 isminde) bitlerini 0 yaparak High Speed Moda alabiliyorsunuz. Yalnız işin can alıcı noktası bu değişkenlere bu değerlere atmanız, değişkenlere yazdığınız anlamına gelmiyor çünkü, eğer bu değişkenleri değiştime izni açık değilse yazamıyorsunuz. O yüzden önce bu izni enable etmeniz, sonra değişkenlere değer atamanız ve sonra yazma işlemini tekrar disable etmeniz gerekiyor. Bu işin teorik kısmı idi, "hiç bişey anlamadım" diyenlere :D işte High Speed Mode için küçük eklenti;

       PRCR_bit.PRC0=1;   // Clock ayarları için gerekli izin (Enable)

        CM0_bit.CM06=0;    // Division değeri için 16 ve 17 deki değer baz alınır
        CM0_bit.CM07=0;    // Clock girişinin Xin ve Xout dan olduğu seçilir

        CM1_bit.CM16=0;    //  CM16 ve 17 0 iken "no division" seçilerek 
        CM1_bit.CM17=0;    // clock frekansı yüksek hıza çıkartılır.

        PRCR_bit.PRC0=0;   // Clock ayarları için gerekli izin (Disable)



Daha önce 10-15 frame gösterebildiğim ekranda şimdi 200 frame/sn gösteriyorum. Ekran çok büyük değil ama aradaki artışı görmenizi için yazıyorum. Yalnız renesas'ı kullanan arkadaşlar öncelikle bunun hızını ayarlasınlar sonra yazdığınız yazılımları yüksek hıza göre tekrar düzenlemeinz gerekebilir :D Tekrar teşekkürler @tatlisukurnazi Hocam.



Kolay Gelsin, İyi Çalışmalar.
Uçurtmalar, rüzgarın kuvvetiyle değil, rüzgara karşı koydukları direnç ile yükselirler.

Wild_Wolf

YARGICH arkadaşım sistemin clock ayarlarını iyi yapmak gerekir tabi.:)
Kullandığın kristalin clock hızını işlemci içerisindeki PLL 'i kullanarak daha fazla hızla işlemciyi çalıştırman mümkün.Mesela 6MHz kristal kullanıp bunu PLL yardımıyla 4 katına yani 24Mhz 'e çıkarabilirsin. PLC0  = 0x12; yaparak 4 katına çıkarmış olursun.Aşağıda 6Mhz için sistem clock ayarı 24 MHz 'e çıkartan kod var.
 CM0   = 0x08;    Yüksek kapasitede sürme aftif
 CM1   = 0x20;    Main clock bölünmeden geçiyor
 CM2   = 0x00;     Osilasyon stop detection için default ayar
 PLC0  = 0x12;     //kristal frekansı 4 katına çıkarıldı
 PM2  &= 0xFA;     //2 bekleme state eklendi
PLC0 |= 0x80;     //PLL aktif edildi
 __no_operation(); //PLL için stabilizasyon gecikmesi
 CM1   = 0x22;   //PLL clock işlemcinin çalışma Clock'uyapıldı

Benzer olarak 4Mhz kristal kullanıp 6 katına çıkararak 24Mhz elde edebilirsin. Bunun için  PLC0  = 0x13; yapman gerekecek.PLC0 registerı ile 2,4,6 ve 8 kat artırma imkanın oluyor.
Kolay Gelsin
İşi çok olanların gözyaşları için vakitleri yoktur.

Wild_Wolf

Tekrar merhaba,
Renesasta sevdiğim en güzel özellik clock devresi :)
Çünkü işlencinin CPU clock ile timer için kullanılan clock kaynaklarının birbirinden ayrık olması.Böylece işlencini yavaşlatıp tekrar hızlandırma esnasında timerların zamanlamaları bozulmamış oluyor.Mesela düşük hızlı bir flash entegresine bağlanmam gerektiğinde CPU'nun clock hızını 24Mhzden 12Mhz'e düşürdüm.CM06=0   CM17–CM16=01b..Ama timerlarım hala 24Mhz clock kaynağından direk zamanlamalarını yapıyor.(f1).Bu bilgiyide paylaşmak istedim.

Başınızı tekrar ağrıttım kusura bakmayın..
İşi çok olanların gözyaşları için vakitleri yoktur.