EXTI Problemi Stm32

Başlatan mistek, 04 Temmuz 2015, 13:20:37

mistek

#15
@CLR Hocam şebeke gürültüsü olabilir mi? Saçma olabilir belki ama aklıma başka bişey gelmiyor. Yani bizim şebekeden gürültü geliyor olabilir mi devreye. Sonuçta PC'den besleniyor bunlar. Pil veya aküden beslesem değişen bişey olur mu? Multimetre pilli ama onuda dokundurunca garip değişimler oluyor.

Bilgisayarın touch padine tek elimi dokundurursam mouse imleci titriyor zıplıyor. Diğer elimi PC metal yüzeyine dokundurunca düzeliyor. Sorun sanki bende. Statik elektrikle ilgili bi sorunum olabilir. 

Günlerdir çözemiyorum...
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

mistek

Bir süredir problemli devreyi akü'den besliyorum. PC ile olan bağlantısınıda kablosuz hale getirdim. Şuan pine dokunmadıkça yanlış tetik almıyor devrede ölçüm yaparkende yanlış kesme sorunu yaşamadım. 1 hafta daha böyle deneyeceğim...
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

engerex

 Stm32F4 Discovery ve Atmel işlemciler için farklı bir geliştirme kartında benzer durumlar karşıma çıktı. F4 Discovery kartta bırakın pinlere değmeyi yaklaşınca veya plastik bir yüzeye değince bile etkileniyordu.

CLR

İkinci mesajımda yazmıştım

Alıntı yapılan: CLR - 06 Temmuz 2015, 00:47:01
Böyle etkilenmeler olması için,
1) besleme kaynaklı olabilir, beslemeyi değiştirip deneyebilirsin
2) Pull-up direnci çok büyüktür.
3) O hattın yakınında yüksek güçlü veya yüksek frekanslı bir bus varsa orayı etkileyebilir.
Knowledge and Experience are Power

engerex

Alıntı YapYeni kurduğu çift GTX 295 ekran kartı bilgisayar sisteminden sonra garaj kapıları açılmamaya başlayan kullanıcı, EVGA isimli üreticinin forumlarında derdini anlatırken birçok kişi "yok daha neler" şeklinde düşünse de, talihsiz adam,  hemen garajın üzerindeki ofisine girerken bilgisayarı açıksa, garajın kapılarına uzaktan müdahale edemiyor.

http://shiftdelete.net/ekran-karti-garaj-kapisini-engelliyor-10399

ohacagatay

switch debouncer koymayı denedin mi ?
rc + schmit trigger gibi ?
microcontroller devren ve pull up 'ın iyi bir şekilde decouple edilmiş mi kontrol etsen iyi olur
Some people believe çiğ köfte is a matter of life and death, I am very disappointed with that attitude. I can assure you it is much, much more important than that

mistek

Alıntı yapılan: CLR - 12 Temmuz 2015, 22:23:45
İkinci mesajımda yazmıştım



Evet hocam, bunları gözden geçiriyordum.

--

@engerex ilginçmiş.

@ohacagatay RC filtre var. Schmit trigger yok.
Pull up konusunu yukarıda yazmıştım osiloskop görüntüleri var. Sorun daha çok besleme kaynaklı görünüyor şuanlık.

Bu şebeke parazitlerini nasıl çözeceğim onuda bilmiyorum.

boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

Karamel

mistek hocam

http://www.mikroe.com/easymx-pro/stm32/ schematics i buradan kopya cekip. asagidaki code ile deneyler yapabilirsiniz. mikroe nin calisan external interrupt example i kendisi.

/*
 * Project name:
     External Interrupt (EXTI)
 * Copyright:
     (c) Mikroelektronika, 2011.
 * Revision History:
     20121120:
       - Initial release;
 * Description:
     This code demonstrates how to use External Interrupt on PD10.
     PD10 is external interrupt pin for click1 socket.
     Program toggles LEDs on PORTE.
 * Test configuration:
     Device:          STM32F107VC
                      http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00220364.pdf
     Dev.Board:       EasyMx v7 for STM(R) ARM(R)
                      http://www.mikroe.com/easymx-pro/stm32/
     Oscillator:      XT-PLL, 72.000MHz
     Ext. Modules:    -
     SW:              mikroC PRO for ARM
                      http://www.mikroe.com/mikroc/arm/
 * NOTES:
     - Turn on PORTE LED's at switch SW15
     - Pull down PortD10 pin (PortD three state pin)
     - Set Button Press Level for PortD on Vcc
 */

void ExtInt() iv IVT_INT_EXTI15_10 ics ICS_AUTO {
  EXTI_PR.B10 = 1;                     // clear flag
  GPIOE_ODR = ~GPIOE_IDR;              // Togle PORTE
}

void main() {
  GPIO_Digital_Output(&GPIOE_BASE, _GPIO_PINMASK_HIGH);  // Enable digital output on PORTD
  GPIOE_ODR = 0xAAAA;
  GPIO_Digital_Input(&GPIOD_BASE, _GPIO_PINMASK_10);

  RCC_APB2ENR.AFIOEN = 1;              // Enable clock for alternate pin functions
  AFIO_EXTICR3 = 0x0300;               // PD10 as External interrupt
  EXTI_RTSR = 0x00000400;              // Set interrupt on Rising edge
  EXTI_IMR |= 0x00000400;              // Set mask
  NVIC_IntEnable(IVT_INT_EXTI15_10);   // Enable External interrupt

  EnableInterrupts();                  // Enables the processor interrupt.

  while(1)                             // Infinite loop
    ;
}