Altium Designer Tips

altium_designer

Colors that I use in my schematic libraries: Black 1: 30,30,30 #1e1e1e Black 2: 60,60,60 #3c3c3c Grey 1: 90,90,90 #5a5a5a Grey 2: 120,120,120 #787878 Grey 3: 180,180,180 #b4b4b4 Grey 4: 210,210,210 #d2d2d2 White: 255,255,255 #ffffff Green 1: 0,150,90 #00965a Green 2: 30,180,120 #1eb478 Green 3: 220,240,230 #dcf0e6 Blue 1: 0,90,150 #005a96 Blue 2: 30,120,180 #1e78b4 Blue … Read more

Serial Oscilloscope with STM32 Based Microcontrollers

2

Serial Oscilloscope

Serial Oscilloscope is an open-source windows application that is created by xioTechnologies and shared in their website. This application takes serial stream from Arduino and plots comma-separated variables as a real-time oscilloscope. The application utilizes Michael Bernstein’s oscilloscope library to plot up to 9 channels on 3 diverse oscilloscope with perspective and trigger menus.

Read more

Logitech Wireless Gaming G700 Mouse Right and Left Button Double Clicking Problem Solution

IMG_20140814_223114

I bought this mouse 3 years ago with an expensive price. After some usage mouse started to misbehave. When I click to left and right buttons, It started to click double instead of clicking once. I used this mouse for 2 years in that condition and I couldn’t asked why it behaves that way since I paid really much money for it. I think I was little bit afraid to buy another one after paying that much money. It really hurts. When I was playing games or making some design in my computer, some unwanted double clicks caused that my works are gone since I wasn’t achieve to save my progress and I don’t know how many times I hit that mouse to table because it made me very mad and angry like hell.

Read more

STM32F4’te Timer Interrupt ile Alive Led Uygulaması

Alive LED kavramını Türkçe’ye Hayat Işığı diye tercüme etmeyi uygun buldum. Adından da anlaşılabileceği gibi Alive LED kullanmanın amacı işlemci içerisine yüklenen kodun sağlıklı çalışıp, çalışmadığını gözlemleyebilmektir. Eğer bu ışık 1 saniye boyunca yanık bir saniye boyunca da sönük olarak Toggle oluyorsa, işlemci içerisine yüklenilen kodun her hangi bir sıkıntı yaşamadığının göstergesidir. Yani işlemcimiz hayattadır ve sağlıklı bir şekilde çalışıyor demektir.

Read more

STM32F4’te External (Harici) Interrupt ile User Button Uygulaması ve Interrupt’ta Priority (Öncelik) Kavramı

User Button ile LED Toggle uygulamasının Interrupt kullanılmadan yapmıştık. Interrupt’sız Input’ların main fonksiyonu içerisinde kullanılması için programın yürütmesinde büyük sıkıntılar oluştuğunu açıklamıştım. Çünkü int main(void)‘in içindeki while(1){…} sonsuz döngü blokunun içinde while döngüsü kullanmamız gerekiyor veya flag kullanarak butona bastığımızda flag’ı 1’e eşitleyerek butona basıldığını anlayabilir ve de işlemimizi yaptıktan sonra flag‘ı tekrar 0 yaparak programın döngüde kalmasını engelleyebiliyor olsak da işlemcimiz butona bastığımız andan çok daha hızlı çalıştığı için bu çeşit bir metotta da sıkıntı yaşayabilirdik. En sorunsuz uygulama ise butona basıldığında ana programımızı çok kısa bir süreliğine Interrupt ile keserek, External Interrupt Handler ile butona basıldığında yapılması gerekenleri yapabiliriz. Bu şekilde programımız kaldığı yerden sorunsuz olarak çalışmaya devam etmiş olur.

Read more

Interrupt Kavramı ve STM32F4’te Interrupt Çeşitleri

Interrupt Kavramı

Sistem programlamada, Interrupt (Kesme) acil olarak dikkat edilmesi gereken bir olayın oluştuğunu gösteren donanım veya yazılım tarafından işlemciyi uyaran bir sinyal türüdür. Interrupt yürütülmekte olan kodun kesilmesini gerektiren High-Priority (yüksek öncelikli) durumdan ötürü işlemciyi uyarır. İşlemci, yürürlükteki faaliyetini Suspend ederek (askıya alarak), o anki State’ini (durumunu) koruyarak ve Interrupt Handler (veya  interrupt service routine, ISR) diye adlandırılan küçük bir programın yürütülmesini sağlayıp, olayla ilgilenerek yanıt verir. Bu Interrupt’ın geçici olduğunu bildirir ve Interrupt Handler’ın vazifesini bitirdikten sonra işlemci önceki Thread’in yürütülmesine devam ettirir.

Read more

Timer ve PWM’e Genel Bakış, STM32F4’de Timer ile PWM Çıkış Sinyali Oluşturma

ST’nin yayınladığı örneklerde Timer konusu üzerinde çok durulmamış. Birkaç örnek verilmiş fakat bu örnekler tam olarak açıklanmamış ve bazı kısımlarda görmezden gelinmiş. Bu sebeple Timer kodu yazdığım ilk zamanlarda sürekli hatalarla karşılaştım. Teoride çalışması gereken kod pratikte yanlış çalıştı. Örneğin 50 Hz’lik bir PWM sinyali üretmeye çalışırken 200 Hz’lik PWM sinyali üretmiş oluyordum. Uzun araştırmalar sonunda bunun clock ayarlarıyla alakalı olduğunun farkına vardım.

Read more

“system_stm32f4xx.c” Dosyasında Clock Ayarlarının Yapılması

system_stm32f4xx.c içeriğinde STM32F4xx için system clock ayarlamalarının yapıldığı dosyadır.

STM32F4 kodlamaya başladığım ilk zamanlarda bu dosyanın ne işe yaradığını pek bilmezdim. Timer kullanarak yaptığım bir kaç uygulamadan sonra aslında bu dosyanın gerçekten çok önemli olduğunu anladım. Bir çok yerde aradım ve bulması çok zor oldu. Özellikle Timer gibi süre gerektiren işlemlerde clock ayarları eğer yanlışsa belirlediğiniz süreçler de hatalar oluyor. Örnek verecek olursam, diyelim ki LED’i her saniyede bir yakıp söndürmek istiyoruz. Eğer bu dosya ayarları düzgün yapılmamışsa, LED’imiz saniyede bir değilde iki yanabiliyor.

Read more

STM32F4 User Button Kullanımı

Bilindiği gibi STM32F4’ün üzerinde User Button (Kullanıcı Butonu) bulunmaktadır. Kartın üzerinde bukunan LED’leri nasıl output olarak kullanabiliyorsak, bu butonu da input olarak kullanabiliyoruz. STM32F4’te projelerimizde kullanmak istersek diye, bu buton ile ilgili bir örnek kod yazıp paylaşmak istedim.

Yazacağımız kodda butona bastığımızda LED Toggle olsun. Yani SET ise RESET, RESET ise SET olsun. Bunun için bir adet GPIO’yu output olarak LED için tanımlamamız lazım. Bir de input için bir adet PIN ataması yapmamız lazım. Ama istediğimiz herhangi bir PIN’e atama yapamayız. Çünkü donanımsal olarak butonun ve LED’leri bağlı bulunduğu PIN’ler belli. Eğer STM32F4 geliştirme kartının üzerindeki buton ve LED’leri kullanmayıp da başka LED ve PIN’ler kullanmak isteseydik o zaman istediğimiz PIN’i kullanabilirdik.

Read more