STM32F10x GELİŞTİRME MODÜLLERİM – Bölüm 1 : Minikit_P R4 – paralel girişli TFT

Şimdiye kadar çalışmalarımda Çin’den satın aldığım geliştirme modüllerini kullanıyordum. Bunlar hakkında bir başka yayınımda bilgi vermiştim. (görmek için burayı tıklayınız.)

Bunlar ucuz malzemeler olsa da artık ihtiyaçlarıma daha uygun modüller tasarlayıp kullanmanın vakti geldi. (Yerli ve milli !!! :)) )

Özellikle üzerinde TFT ekranlarımı doğrudan takabileceğim soketleri olan, SPI, I2C ve UART portlara kolayca erişebileceğim konnektörleri olan modüllere çok ihtiyaç duyuyorum.

Yeni geliştireceğim modüllerin eskilerinin yerine doğrudan takılabilmesi de gerekiyor ki, daha önce geliştirmiş olduğum cihazlara bunları takıp kullanabileyim.

Geliştirme çalışmaları esnasında bu modüllere zorunlu olarak ekranlar bağlıyoruz.

Ekranlar 4 pinli SPI arayüzlü de olsa, SD kart pinleri, kontrol pinleri, beslemeler derken bir jumper kablo ormanının içinde kalıyoruz. Hele SPI değil de paralel data pinleri söz konusu olduğunda ortalık daha da kalabalıklaşıyor.

Bu kabloların farkedilmeden bağlantı noktalarından ayrılması, ya da ekranı herhangi bir sebeple ayırıp yeniden bağlamamız gerektiğinde verilen uğraş işin tadını kaçırıyor. İyisi mi sabit ekran konnektörleri olan modüller yapıp kullanayım dedim. Çok da iyi oldu. Artık ekran bağlantıları ve jumper kalabalığı ile uğraşacağıma asıl işe odaklanabiliyorum.

Yılın başlarında 64 pin STM32F103 için iki farklı kart tasarlayıp ürettim, keyifle kullanıyorum. Bunlardan birisi 8 bit paralel data girişli, diğeri SPI arayüzlü TFT ekranların takılmasına uygun.

Bu yayında bu iki modül hakkında bilgi vereceğim. Amacım gerektiğinde başvurabileceğim bir kullanıcı el kitabı oluşturmak.

MINIKIT_P – Paralel girişli TFT arayüzlü

Sunumunu yapacağım iki tip modülden birincisi Minikit-P adını verdiğim yukarıdaki modül. Bu modül, 64 pin STM32F103Rx LQFP mikroişlemcilere uygun olarak tasarlandı.

Plaketin üst yüzündeki iki sıra dişi pin konnektör sayesinde popüler 8 bit paralel data girişli TFT ekranları doğrudan takabiliyorum.

Minikit-P Üst görünüş. Bazı pin başlıkları lehimlenmemiş durumda. İhtiyaca göre gerektiğinde lehimliyorum.

Modülün üst tarafındaki iki paralel sıra dişi konnektör piyasada 4-6 dolara “Arduino uyumlu” etiketiyle satılan TFT ekranlar ile uyumlu. Bu ekranların 8 bit paralel data girişli olanlarına uygun. SPI arayüzlü olanlar için bir başka yayında anlattığım ikinci tip modül kullanılabilir. 

Modüle ekran takılınca aşağıdaki gibi bir görünüm alıyor. Bu tasarımda ekran ile Minikit ortogonal bir yerleşime sahip.

Minikit_p_withTFT_P

MINIKIT_P ile Kullanılan ekranlar

Minikit_P modülü 8 bit paralel data girişli TFT ekranların kullanılmasına uygun tasarlandı.

TFT de 8 adet data pininin dışında bir sürü başka kontrol pininin olduğu aşağıdaki fotoda görünüyor.

Ayrıca SD karta ait SPI arayüzünün pinleri de var.

Benim kullandığım TFT nin dokunmatik paneli de (Touch Panel) var. Bu dokunmatik panelin 4 adet erişim pini,  TFT nin data pinlerinden dördü ile ortak kullanılıyor,  ekran üzerinde (yani altında) bunun için ayrı pinler yok, hatta altını çevirip baktığınızda bunların hangi ortak pinler olduğuna dair bir ipucu dahi yok. Bu konuyu bir başka yayınımda anlatmıştım. Görmek için burayı tıklayınız. 

Kullanılabilecek ekranlar piyasada (Aliexpress, Ebay vb.) “Arduino uyumlu” olarak satılıyor. Arkasını çevirdiğinizde aşağıdaki gibi bir şey görüyorsunuz. 2.2″ den 3.5″ e kadar farklı boyutlardaki ekranlarda ayak aralıklarını aynı standarda uygun tutabiliyorlar.

PİN ATAMALARI

Tasarıma TFT konnektörlerini katınca, mikroişlemcinin bazı pinlerini TFT ye ayırıp bağlamak gerekiyor. TFT bin takılacağı konnektörler PCB bin üst tarafındaki iki adet karşılıklı paralel dişi konnektör.

16 pin bulunan taraftaki iki pin PCB ye sığmadığından dışarıda kalıyor, ama bu pinler zaten kullanılmıyor. Bunlar bu fotoda daha iyi görülebiliyor:

Bu konnektörlerde yer alan TFT sinyal ve kontrol bağlantıları aşağıdaki gibi:

3V3 pinine besleme vermiyoruz, ekran 5V ile besleniyor.

I2C VE SPI PİNLERİ

Bu kitte I2C1 ve SPI1 ara yüzlerini dışarıya verdim. I2C1 için iki adet, SPI1 için de bir adet konnektör var. SPI1 arayüzünü SD kart ile paylaştığımızı unutmayalım. I2C1 arayüzü de modül üzerindeki 32 KB 24C32 ile paylaşılıyor.

Her iki durumda da adresleme ve slave seçim olanakları sayesinde bu arayüzleri dışarıdan bağlayacağımız başka çevre cihazları için de kullanabiliyoruz.

Sol yanda ve sol üstte I2C1 e ait her birisi 4 pinli iki adet konnektör görünüyor. Pin sıralamaları alttan üste ve soldan sağa aşağıdaki gibi:

I2C1 PİN ATAMALARI
  1. GND
  2. 5V
  3. DIO     PB 07
  4. CLK    PB06
SPI1 PİN ATAMALARI

SPI arayüz pinleri sol alt tarafta görülüyor. Yukarıdan aşağı doğru :

  1. SS                           PA8
  2. MOSI                     PA7
  3. MISO                     PA6
  4. SCK                       PA5

 

USART PİNLERİ

USART PİNLERİ – 3 pinlik grup, Soldan sağa
  1. GND
  2. RX           PA 10
  3. TX           PA 09

DIŞARIYA VERİLEN BESLEME VE TOPRAK BAĞLANTILARI

Kite dışarıdan bir çevre cihazı bağlandığında 3.3V, 5V ve GND bağlantılarına ihtiyaç oluyor. Bu nedenle sağ tarata görülen 4 adet pinle kolaylık sağlamak istedim. Ortadaki iki pin GND, diğerleri 3V3 ve 5V pinleri

EEPROM HAKKINDA

Gerektiğinde kullanılmak üzere sol alt tarafta bir 24C.. serisi EEPROM için yer hazır. Şu anda 24C32 yani 32 KBit, 4 kByte kapasiteli bir EEPROM lehimledim.

I2C1 üzerindeki bu yongaya 0x53 adresinden ulaşabiliyoruz. I2C fonksiyonlarında device adresi 1 bit sola kaydırılıp kulanıldığından 0xA6 oluyor.

3 nolu A2 adres pini toprağa verilmiş durumda, A1 ve A0 PCB de hatalı olarak boşta bırakılmış durumda ama bunların Vcc ye bağlanması gerekiyor. Bu nedenle bu ayakları dışarıdan eklediğim bir tel ile EEPROM un besleme ayağına bağladım.

RESET PİNİ

NRST yani GND verildiğinde resetleyen pinimiz sol tarafta ikili pin header olarak görünüyor.

BOOT PİNLERİ

Boot_0 pini orta sol tarafta, Boot_1 pini de orta sağ tarafta 3 lü pin headerler olarak görünüyor. Aktif pinler (Boot0 ve PB 02) ortadakiler. Bunların her ikisini de GND a köprülenmiş olarak kullanıyorum. Diğer kullanımlar için STM32 kullanıcı el kitabına bakmanız gerekiyor.

Boot_1 yani PB 02 program start aldıktan sonra başka amaçlarla kullanılabiliyor. Çünkü mikroişlemci sadece reset aldığında bunun 3V3 olup olmadığını kontrol ediyor, ondan sonra işi bitiyor.

PROGRAMLAMA VE DEBUG BAĞLANTILARI

Son olarak da, sol üst tarafta görünen beyaz konnektör mikroişlemciye kod aktaracağımız, ve geliştime çalışmaları sırasında kodun çalışmasını izleyeceğimiz “debug” pinleri. Tek telli programlama (SW) ve debug yöntemini seçtim. JTAG ın 20 pinli konnektörünü ve buna ilişkin 10 adet sinyal telini kullanmıyorum.

Bu konnektöre verdiğimiz pinler soldan sağa şöyle :

  1. GND
  2. PA 14
  3. PA 13
  4. 3V3

EAGLE BOARD GÖRÜNÜMÜ

Bu yayının sonu – Selçuk Özbayraktar Mayıs 2019

Leave a Reply

Your email address will not be published. Required fields are marked *