Renesas event link controller

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
21,759
Bu Renesas işlemcide "event link controller" denen çok güzel bir çevre birimi var. Adeta işlemci içerisinde FPGA tarzı bir otomatik yapı kurulmasına izin veriyor. Şu anda üzerinde çalıştığım programda büyük bir kolaylık sağladı. Senaryo şöyle:

RA6M2 içerisinde bir ADC var ve bu ADC yi iki modda kullanabiliyorsun: Ya tek tek ölçüm yaptırıyorsun yada sürekli peş peşe ölçüm yaptırıyorsun. Benim saniyede 10 bin tane ölçüm yapmam lazımdı, İnterrupt'a bağlasam, 100 us de bir interrupt olacak, çok aşırı yüksek bir interrupt sıklığı. Sürekli ölçüm yaptırsam da saniyede 250 bin ölçüm yapıyor, o zaman da verilere yetişmek mümkün değil.

Birkaç gün Renesas forumlarında, kullanım kılavuzunda ve bunun çevre birimi kütüphanesinin (FSP) dokümanlarını inceledim ve bu event link controller'u gördüm. Renesas MCU da her çevre birimini, başka bir çevre birimini tetikleyebiliyor. Çevre birimleri arasındaki bu tetikleme zincirini de event link controller (ELC) yönetiyor. Şöyle bir olay zinciri tanımladım:

RA6M2 dahili timer'lardan birisini 100 us olarak yapılandırdım. ADC ye de "timer sıfıra inince ölçümü başlat" dedim. DMA birimini de "ADC ölçümü bitince, ölçüm sonucunu al ve XXXX adresinden itibaren yaz. Her yazmadan sonra da bir sonraki adrese geç. Şu kadar ölçüm sonucu yazınca da kesme üret" şeklinde yapılandırdım.

Bu şekilde çalıştırınca, şu anda MCU daki program hiçbirşey yapmıyor. Ama çevre birimleri tamamen kendi kedine 100 us de bir ADC ölçümü yapıyor ve SRAM deki bir buffer'a dolduruyor. 128 tane ADC ölçümünde de MCU interrupt yiyor, verileri işliyor ve sonra tekrar kendi işine bakıyor. Bu gerçekten son derece esnek kullanımı olan ve işlemci kaynaklarını maksimum verimle kullanmayı sağlayan bir özellik. Renesas'a saygım arttı :)
 
ST 32bit ARM işlemcilerinde de durum benzer, Timer ile ADC trigger et, ADC ölçüm sonucunu DMA ile ilgili ram adresine taşı, toplam transfer sayısının yarısına ve/veya toplam transfer sayısına ulaşınca Interrupt üret. Ciddi kolaylık sağlıyor özellikle yüksek sample rate ihtiyacı olan işlerde. Ben bunu I2C ile çok uzun vibrasyon verileri almak için de kullanmıştım.
 
ST 32bit ARM işlemcilerinde de durum benzer, Timer ile ADC trigger et, ADC ölçüm sonucunu DMA ile ilgili ram adresine taşı, toplam transfer sayısının yarısına ve/veya toplam transfer sayısına ulaşınca Interrupt üret. Ciddi kolaylık sağlıyor özellikle yüksek sample rate ihtiyacı olan işlerde. Ben bunu I2C ile çok uzun vibrasyon verileri almak için de kullanmıştım.

O zaman birçok ARM üreticisinin değişik isimler altında gerçekleştirdiği bir özellik bu.
 

Forum istatistikleri

Konular
5,821
Mesajlar
99,352
Üyeler
2,476
Son üye
mrmandos

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top