stm32f103 Gpio Pin Max Hızı

Başlatan devrecii, 12 Mayıs 2018, 11:34:43

devrecii

Büyük bir hayal kırıklığına uğradım  işlemci max hızında yani 72mhz de.

DMA ile max 4mhz hız veriyor asla hızı artmıyor.

Assembly ile yazıldığında en sade kod 12mhz

Asm ile hafızadan alıp gpio vermek ise 7mhz çünkü toplama işlemi ve toplam kontrol var.

Kısacası performans çok iyi değil , çıkışları hızlı olan işlemci biliyormusunuz ?

Elektroemre

Yapmak istediğiniz işlem nedir? Açıklarsanız alternatif çözümler mevcut olabilir. ilk akla gelen çözüm FSMC, 12 MHZ'de paralel data aktarımı için çalıştırdım. Daha yüksek hızlar mümkün olabilir denemek lazım.

devrecii

Aliexpressde çok ucuza adc ler buldum eğer çalışsaydı 36mhz hiç olmasa 18mhz osiloskop yapacaktım.

Bir de lojik analizatör yapacaktım şu an acil lazımdı işimi gördü ama 4mhz den yukarısı mümkün değil.

FSMC stm32f4 lerde var bildiğim.

Elektroemre

Amaç öğrenmek ise 3-5Mhz farketmez, yapmak çok şey öğretir. Amaç osiloskopa sahip olmaksa, çalışıp para kazanıp osiloskop almak beden ve ruh sağlığı açısından daha faydalı olabilir.

Ek olarak, STM32F103VCT6 ve STM32F103VET6'da FSMC mevcut. Ancak bu hızlarda veriyi MCU ile işlemek yinede dert. 18Mhz örnek aldığını varsayalım, sample başına 4cycle gibi işleme süresi var. Yani bu hızlarda realtime çalışmak mümkün değil. Diyelimki realtime'dan vageçtik, trigger alıp dataları alıp realtime olmayacak şekilde işleyeceğiz, bu seferde hatrı sayılır sample buffer'a ihtiyacımız var. Mesela 18MHz 8bit 1 saniye için 18MByte gibi...

devrecii

Olayı sadece osiloskop olarak düşünmeyelim 4mhz den yukarı gpio veri alıp vermek imkansız , dma ile en azından 36mhz veri alıp vermesi gerekirdi adamlar bir de yazmış gpio 50mhz diye adam yiyorlar.


kimlenbu

internette girişe göre bir çıkışı set edip bunun kaç cycle sürdüğünü test edenler var. Optimizasyona göre değişse de 12-34cycle arasında sürüyor.

Ayrıca gpio ayarlarını yaparken çıkış hızını 50MHz yapsan bile bu hızlara erişemiyorsun, alabileceğin sağlıklı sinyal çok daha düşük seviyelerde, bu da 6Mhz civarlarındaydı. Gene aynı şekilde gpio hızlarına göre değişen "rise time" analizi yapanlar mevcut, bunları araştırmanı veya test etmeni öneririm.

Tek bir mcu ile sağlıklı bir osiloskop çok zor, hem bir sürü işlem yapacak hem buna göre çıkış verecek, kaybedeceğin her cycle çıkış frekansını düşürecek.

devrecii

Sağolun arkadaşlar durum böyle, işlemci kodları ile gpio müsaid olsa bile yüksek hıza çıkılamaz tabii ,dma ile mumküm olabilir diye düşünmüştüm. Adamlar bir de 50mhz yazmış tesselli amaçlı.

Dediğim gibi olay sadece osiloskop değil hız meselesi, osiloskop işini fazla abartıyorsunuz ayrıca,adc verilerei fifo hafızaya alınıp  ekrana çizilecek zor değil zaten yaptığım osiloskop var.

Bir de şuna karşıyım "bu nasıl olsa yapılmış ne uğraşıyorsun", arkadaşlar zaten yapılmamış bişey var mı ki? herşey yapılmış zaten o zaman neden insanlar mühendislik okuyor ? Röle açıp kapama lcd ye iki buton koyma yada satış yapmak için mi ?


 

superconductor

Alıntı yapılan: iboibo - 12 Mayıs 2018, 12:28:27bir de yazmış gpio 50mhz diye adam yiyorlar

Burada yazan 50Mhz değerinin, ilgili GPIO'nun toggle edilebilme hızı ile doğrudan bir alakası yok. Rising-Falling time ile ilgili bir durum. Eğer pin 50MHz ile anahtarlanabiliyor olsaydı, çok daha yüksek BW gerekirdi kare dalgaya yaklaşabilmek için.

OptimusPrime

I/Os on APB2 with up to 18 MHz toggling speed.
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

devrecii

#9
@superconductor Cpu sysclk ve timerler ve diğer periph. 50mhz ye kadar çıkış alınabiliyor. GPİO problemli

Çıkış yine iyi giriş daha beter ,acil olarak lojik analizör lazım oldu o nedenle uğraştım.

Gpio input asla 4mhz geçmiyor asm de yazılsa c de yazılsa yada dma kullanılsa farketmiyor periheral APb2 dandiklği.

NXP nin LPC serilerrinde fast gpio varmış  c++ deyazılan denemede 50mhz den yukarı çıkış almışlar.

Şöyle bişey buldum fifo belleği şahane bişey 50mhz 380kb AL422B_Flyer.pdf bununla 50mhz de birçok şey yapılabilir

Yada alteranın mini fpga, cpld sı var 1.5 dolar 300mhz hızı var buna ddr2 ram bağlayıp sahane şeyler yapılabilir
ama birsürü uğraş dur.