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

MY STM32F10x DEVELOPMENT KITS

Şimdiye kadar çalışmalarımda Çinden 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 de olsa artık kendi 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 Seri portlara kolayca erişilebilecek 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 ekran bağlıyoruz. Ekranlar 4 pinli SPI arayüzlü dahi 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ğlamak 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ı 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 bir paralel data girişli, diğeri de 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. 64 pin STM32F103Rx LQFP mikroişlemcilere uygun olarak tasarlandı. Üst tarafındaki iki sıra dişi pin konnektörler 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ında 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 aşağılarda anlatacağım ikinci tip modül kullanılabilir. 

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

Minikit_p_withTFT_P

MINIKIT_P ile Kullanılan ekranlar

Minikit_P 8 bit paralel data girişli TFT ekranların kullanılmasına uygun tasarlandı. Her ne kadar 8 data pini varsa da, 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 de Touch Panel de var, ama buna ait 4 adet pin TFT 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 ekranlarda ayak aralıklarını standarda uygun tutabiliyorlar.

PİN ATAMALARI

Tasarıma TFT konnektörlerini koyunca, ister istemez mikroişlemcinin bazı pinlerini TFT ye bağlıyoruz. Üst taraftaki karşılıklı paralel iki tek sıra dişi konnektörde olan bu sinyal ve kontrol bağlantıları aşağıdaki gibi:

       TFT PİNLERİ

          Sol konnektör pinleri                               Sağ Konnektör pinleri

  1. NC                                            ……………………….. NC
  2. NC                                            ……………………….. LCD RST                 PB 0                     
  3. LCD D2                    PB 10  ……………………….. LCD CS (TPX-M)  PA 0   (TP ile ortak)
  4. LCD D3                    PB 11  ………………………… LCD RS (TPY-M)  PA 01 (TP ile ortak)
  5. LCD D4                    PB 12 ………………………… LCD WR                   PA 15
  6. LCD D5                    PB 13 ………………………… LCD RD                     PA 12
  7. LCD D6                    PB 14 ……………………….. NC (TFT de ve PCB de sağ sırada bu pin yok.)
  8. LCD D7                    PB 15 ………………………….NC
  9. LCD D0 (TPY)      PB 08 (TP ile ortak)  GND
  10. LCD D1  (TPX)      PB 09 (TP ile ortak)   NC     
  11. SD SS                      PC 12  …………………………. 5V
  12. SD DI (MOSI)       PA 07 …………………………. 3V3 (Buraya besleme vermiyoruz, boşta)
  13. SD DO(MISO)      PA 06 …………………………. NC
  14. SD SCK                  PA 05
I2C ve SPI PİNLERİ

Bu kitte I2C1 ve SPI1 arayü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

 

STM32 Minikit-P serbest I/O pinleri

TFT Tarafından kullanılmayan pinlerden I2C1 ve SPI1 arayüzlerine ait olanları yukarıdaki paragraflarda verdik. Bunların dışında kalan pinler biri üst tarafta 11 pin, diğeri de alt tarafta 10 ve 3 er ilk gruplanmış 3 adet tek sıra pin başlığı ile erişime verilmiş durumda.

ÜST TARAFTAKİ PİNLER

Üst taraftaki 11 pinin atamaları  soldan sağa şöyle :

  1. PC 13
  2. PC 14
  3. PC 15
  4. PC 0
  5. PC 01
  6. PC02
  7. PC03
  8. PB 01
  9. PA 02
  10. PA 03
  11. PA 04

ALT TARAFTAKİ PİNLER

USART PİNLERİ – 3 pinlik grup, Soldan sağa
  1. GND
  2. RX           PA 10
  3. TX           PA 09
DİĞER I/O PİNLERİ
  1. PA 11
  2. PA 08  (SPI1 harici çevre cihazı SS pini olarak da kullanıldığını dikkate alalım.)
  3. PC 11
  4. PC 10
  5. PC 09
  6. PC 08
  7. PC 07
  8. PC 06
  9. PC 05
  10. PC 04

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

Kite dışarıdan bir çevre cihazı bağlandığında 3.V, 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 tarafa bir de 24C.. serisi EEPROM ekledim. Şu anda 24C32 yani 32 KBit ilk 4 kByte kapasiteli bir yonga 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 boşta.

RESET PİNİ

NRST yani GND verildiğinde resetleyen pinimiz sol tarafta ikili pinheader 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 kollanı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 ve debug yöntemini seçtim. JTAG ın 20 pinli konnektörünü ve 10 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Ü

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.