Cortex M3 çipleri STM32F103

Başlatan z, 08 Ocak 2013, 03:19:54

z

#195
ADC leri injection modunda kullanıyor ve tetiklemeyi timer'ın CCx eventi ile yapıyorum.
(ADC_CR2 Bits 14:12 JEXTSEL[2:0]

Fakat timerda TIMx_EGR registerden ilgili eventi enable yapmadığım halde ADC dönüşüm işlerini olması gerektiği zamanda yapmaya başlıyor.

EGR registeri aslında DMA'ye start ve INT flağı set etmeye izin vermek için gibi görünüyor. ADC ye start verme işi ile bu kısım ilgilenmiyor gibi duruyor.

Peki bu durumda Tımer'ın ADC'ye üreteceği eventları Timer tarafından enable Disable edemeyecekmiyim?

İllaki bu işi ADC den mi yapacağım?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

Alıntı yapılan: z - 31 Mart 2013, 01:49:44
ADC leri injection modunda kullanıyor ve tetiklemeyi timer'ın CCx eventi ile yapıyorum.
(ADC_CR2 Bits 14:12 JEXTSEL[2:0]

Fakat timerda TIMx_EGR registerden ilgili eventi enable yapmadığım halde ADC dönüşüm işlerini olması gerektiği zamanda yapmaya başlıyor.

EGR registeri aslında DMA'ye start ve INT flağı set etmeye izin vermek için gibi görünüyor. ADC ye start verme işi ile bu kısım ilgilenmiyor gibi duruyor.

Peki bu durumda Tımer'ın ADC'ye üreteceği eventları Timer tarafından enable Disable edemeyecekmiyim?

İllaki bu işi ADC den mi yapacağım?

TIMx_EGR den update i kontrol etmek için MMS(master mode selection) 'ın reset konumunda olması gerekiyormuş hocam
TIMx_CR2 register'ına bakarsanız trgo nun hangi durumlarda tetikleneceği açıklanıyor

z

STM32F103 çipli devremde VDA, VDD ile doğrudan bağlantılı.

ADC ile çipin besleme gerilimini ölçmeye kalktığımda FB0 gibi FFF den düşük sonuç okudum.

Girişe 47K üzerinden 5v uygulayınca sonucun FFF olduğunu gördüm.

Besleme gerilimini FFF olarak dönüştürmesi gerekmiyormu bunun? Kalibrasyon işlemi de yaptırdım fakat sonuç gene değişmedi.

4 kanalda denedim hiç birisi de FFF okumadı.

Sample alma sürelerini uzatmayı denemedim.

Tecrübelerinizi bilmek isterim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

Vref+ a ilk girmiş olabilir misiniz hocam?
veya devrede besleme ilk oraya girip sonra mı vdd vs dağılıyor?

z

#200
Açıkcası Vref konusuna hiç bakmamıştım. Şimdi STM32F103C8 dokumanına baktım da Vref pini yok galiba bu çipte.
Elimdeki Çin malı kartta Vdda 100uH bobin üzerinden Vdd den almış beslemeyi.

Ayrıca dokumanda sıcaklık ve Vrefint ölçmek için 16 ve 17. kanallarından bahsediyor. 103C8 de 16 ve 17 kanalı da yok bildiğim kadarıyla.

Şu 100uH bobinin uçlarında voltaj düşüyormu ölçüp bildireyim.

EDIT

1.1 Ohm omik dirence sahip bobin uçlarında 3mV voltaj okudum. Cımbızla kısa devre ettim değişen bir şey olmadı. Kayıp bayağı bir aralık var.

Sample alma süresini max yaptım değişen bir şey olmadı.

Elinde STM32F103 çipli devresi olan Vdda voltajını ADC ile ölçüp FFF okuyamazsa ne diyeyim kabullenecem bu durumu.

TI'yım da TI'yım demeye başladım git gide.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

#201
kayıp 70mV (3.3V için)

vssA içinde bobin kullanmışlar mı peki?

tasarımla alakalı bence hocam, dahili kısa devre olan bir yapıda bu kadar kayıp imkansız

bir de besleme gerilimini nasıl okudunuz?
bildiğim kadarıyla dahili okuma imkanı yok

z

#202
Yok Vssa doğrudan Gndye bağlı.

Bobinin bir tarafında 3.338v okuyorum, diğer tarafında 3.335 buda en fazla FF0 okumama neden olur. Aslında bir dakika. Bu düşünce de yanlış. Vdda neyse ne. Ben girişlere Vdda verdiğimde FFF okumalıyım.

ADC max olan 14Mhz yerine 12Mhz de (düşük hızda) çalıştırıyorum.

Beslemeyi nasıl okudunuz derken tam anlamadım. ADC girişlerine Vdda dan bir dirençle girdim.

1K denedim, 15 ohm denedim, doğrudan denedim. Kanalda sorun vardır dedim diğer kanallarda denedim.

Bir de şu durum olabilir. Çip üreticilerinin standartı sağlamayan çiplerini sadece biz uyanık Türkler almıyoruzdur.

Çinli ucuz kart satacağım diye pek ala bu çipleri kartlara takıp ebaydan bize kakalıyordur.

İnşallah kodlamada ben hata yapmışımdır.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

Vdd den okurken FFF alıyorken VddA dan FB0 alıyorsunuz doğru anladıysam

o çip dediğiniz gibi olabilir hocam ama birşey daha geldi aklıma bobinden sonra kondansatör var mı peki?

okuma sırasında ADC osilasyona giriyor olabilir?

z

Endüktansın iki tarafında da kapasitörler var. Scopta da temiz DC görüyorum.

Girişleri Vssa ya bağlarsam sıfır okuyorum. Vdda ya bağlarsam FC0 civarında okuyorum.

Eğer girişe 47 k üzerinden 5v dayarsam FFF okuyorum.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

#205


garip ???

kart üstünde Vdd ile VddA karışmış olabilir mi?


z

Hocam Vdd 3.3v olsun.

Vdda da atıyorum 3v olsun.

ADC girişine 3 v uyguladığımda FFF olarak dönüşüm olması lazım.

ADC girişine ADC beslemesi kadar voltaj uyguladığım halde FFF alamıyorum. Analog beslemenin üstünde voltaj girmem gerekiyor.

Daha önce hiç bir çipte böyle bir durumla karşılaşmamıştım.



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

aynı şeyleri konuşuyoruz hocam

sadece konuşurken referans aldığımız noktalarını teyit etmeye çalışıyordum.

kart üzerinde VddA yazıyordur ama Vdd ye bağlıdır aslında gibi

çünkü çipin içinde sorun olsa FFF de göstermemesi lazım max FC0 da kalır

z

STM32F103 çipli kartı olan arkadaşlar merakta bırakmayın beni. Denemek fazla zamanınızı almaz.

ADC girişine Vdda voltajını dayadığınızda dönüşüm ardından hangi değeri okuyorsunuz? Söyleyebilirmisiniz?

Ben FC0 gibi bir değer okuyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#209
kalibrasyon işlemini yanlış yapıyormuşum daha doğrusu yapamıyormuşum. Hep sıfır sonucu üretiyordu.
Çipin rehber dokumanından okuyunca yöntem yanlış anlaşılıyor deneme ile yöntemini buldum


Kalibrasyon işlemi yaptığımda, kalibrasyon değeri olarak 0x3F sonucu üretiliyor. Bu da eksik olan değerimizdi ve 0xFFF - 0x3F = 0xFC0 olarak elde ettiğim sonucu açıklar.

Bu durumda aklıma şu geliyor. ADC diyorki;

Kardeşim sen girişlere Vdda uygular ve bana dönüşümü yaptırırsan benim üreteceğim değer 0xFFF - Kalibrasyon değeridir. Ayağını denk al hesaplarını buna göre yap

Bu sonuca ulaştığım için mutluyum.



Edit: Bu sonucun yanlış olduğuna ulaştığım için daha da mutluyum. Doğru sonuç aşağıda.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com