8 Ocak 2018

Asus X61SF253dv Laptop İşlemci Yenileme


     2009 yılında aldığım Asus X61SF253DV laptop zamanında çok üstün özelliklere sahip bir bilgisayar idi. 2.53 GHz işlemci 4GB Ram Bellek,500 GB harddisk gibi teknik özelliklere sahipti. 8 yıl sonra normal olarak artık yetersiz hale gelmişti. Tüm donanımları için üretici güncellemeleri uzun süre önce kesilmişti. Yeni bir laptop almaktansa bir süre daha bu bilgisayarı kullanmak için bazı değişiklikler gerekiyordu. 
   Bu işe öncelikle SSD değişimi ile başladım. SSD (Solid State Disk)'ler Hard Disklere göre çok daha iyi bir performans sunuyor. Cd yuvası yerine taktığım SDD ile belli bir miktar hızlanma sağlamıştım. Şimdi ise daha önemli bir parça olan işlemcide bir değişiklik yapmaya karar verdim.


 İşlemci olarak laptop üzerinde gelen model Intel Core 2 Duo P8700 Mobile modeli idi. Laptopda işlemci bir işlemci soketi ile monte edildiğinden yenisi ile değiştirmek çok kolay olacaktı. Bazı laptop modellerinde işlemci anakarta lehimlenmiş biçimde olabiliyor. Bu tiplerde işlemci değişikliği mümkün olamazdı.


  P8700 yapı itibari ile çift çekirdek, clock hızı 2.53 GHz bir işlemci. 478-pin micro-FCPGA pin yapısına sahip. Yeni takılacak işlemcinin de bu özellikleri taşıması gerekir. Yaptığım uzun araştırmalar sonucu Intel Core 2 Extreme Mobile ailesinin X9100 işlemcisinin uygun olacağına karar verdim. Clock hızı olarak 3.06 GHz'lik bir hıza sahip. Pin yapısı diğer işlemci ile birebir aynı.
 Dikkat edilmesi gereken diğer bir konu ise işlemcinin besleme gerilimleri. Bunların da birebir aynı olaması gerekiyor. P8700 ve X9100'de çalışması gerilimleri aynı olarak verilmiş.
 Bunların yanısıra TDP(Thermal Design Power) özelliklerine de dikkat etmek gerekiyor. Bu özellik işlemcinin kendini ne kadar iyi soğutabildiği anlamına gelen bir değer. Yaydığı ısı değeri değil !! X9100 diğer işlemciye göre daha fazla güç tüketen bir yapıya sahip. Mevcut soğutma sistemi bu işlemciyi soğutmaya yeter mi denemeden bilmek imkansız. Bu yüzden seçilen TDP değerleri birbirine yakın olursa soğutma işlemci de yeterli gelir diyebiliriz. X9100 için TDP 44, P8700 için TDP 25W birbirine yakın değerler değiller. Bu yüzden tek çare takıp denemek oldu. 

   İşlemciyi dikkatlice çıkarıp yerine yenisini taktım. Burada işlemcinin yönü önemli.İşlemci üzerindeki üçgen işareti ile soket üzerindeki üçgen işaretinin denk getirirseniz oldu demektir. Daha sonra soket vidasını sıkıp sabitlemek gerekiyor. Soğutma işlemi için termal macun sürüp soğutucu aparatı tekrar üzerine geri taktım ve makineyi çalıştırdım.
   Enerji verdiğimde ilk olarak boot ekranında bir hata meydana geldi. Bazı dosyalara erişim hatasına benzer bir durum oluştu. Bios menüsüne girip başlangıçtaki hangi diskten boot yapılacağını seçip tekrar başlattım ve Windows açıldı. Aygıtlar penceresinden baktığımda X9100 işlemcinin yazdığını gördüğümde bu iş bitmiştir dedim.
  Performans olarak belirgin bir artış sağladı. Artık programlar daha hızlı açılıyor ve işlemler daha hızlı gerçekleşiyor. Tek dezavantajı işlemci soğutma fanı hemen hemen her zaman çalışır durumda oluyor. Bu işlemcinin tükettiği gücün bir göstergesi çok büyük bir problem oluşturmuyor.
  Daha iyi bir karşılaştırma olması açısından bir Benchmark sitesinden iki işlemcinin karşılaştırması ekleyip bu yazıyı burada bitirelim.




1 Mayıs 2016

STM32F030F4P6 Deneme Kartı-2

Uzun bir aradan sonra yeni bir yazı eklemek için fırsat bulabildim. Bu yazıda bir önceki yazımda da bahsettiğim STM32F030F4P6 mikrodenetleyicisi için hazırladığım,eskisine göre göre daha profesyonel bir karttan bahsedeceğim.


Devre yapısında bir değişikliğe gitmedim.Bu işlemci için minimum sistem donanımını içeren bir kart oldu yine.İşlemci boyutu küçük olduğundan,buna göre göre küçük bir kart tasarlanarak doğrudan projelerde kullanılabilir bir pcb tasarımı yaptım. Usb' den veya harici 5V ile çalışabilen bu kart bread board üzerine doğrudan takılacak şekilde tasarlandı. Bu sayede dışarıdan harici komponentler rahatlıkla bağlanabilir veya pin bağlantıları dışarıya alınabilir.


Bu proje ticari olarak hazırlanmıştır. Bu nedenle çizim dosyaları bu yazıda paylaşılmayacaktır.
Kartın kısa bir videosunu buradan izleyebilirsiniz.



7 Ağustos 2014

STM32F030F4P6 Deneme Kartı

Bu yazımda ST firmasının yeni  keşfettiğim bir ARM denetleyicisi  için tasarladığım karttan bahsedeceğim. STM32F030F4P6 isimli işlemci ile ST’den istediğim bir sample paketi ile tanıştım. İşlemci Cortex-M0 ailesine ait. 48 MHz hızında çalışabiliyor. 16 Kbyte flash hazıfaya sahip ve en sevdiğim özelliği 20 pinlik bir kılıfta olması. Küçük uygulamalar için yeterince güzel performans sağlayabilir. Çevresel donanım olarak da yeterince şey sunuyor bize. SPI,I2C,USART,5 adet timer,ADC ve PWM çıkışları mevcut. ADC modülü 12 Bit çözünürlükte ve 9 kanala kadar giriş bağlanabilir.
Şekilde denetleyicinin pin yapısı görülüyor.

Bu denetleyici için bir uygulama kartı tasarlarken dikkat edilecek bazı noktalar var. Bunlar için referans tasarımlara da bakılabilir. Ben de tasarımımı bunlara göre yaptım.
Devre tasarımı :




Baskı devre tasarımı:


Devrenin Fotoğrafları:




Devre şemasını ve baskı devre çizimini buradan indirebilirsiniz.

22 Nisan 2014

ST-LINK "Core is held in reset" Hatası ve Çözümü

Yeni çalışmaya başladığım STM32F103C8T6 denetleyicileri ile bir sorun yaşadım. Chip şeklinde aldığım denetleyiciye kendim bir kart tasarlayıp baskı devresini yaptım. Discovery kartlardan bildiğimiz SWD (Serial Wire Debug) ile bu işlemcileri programlamaya başladım. Discovery üzerindeki jumperı çıkarıp SWD konnektörden kartıma aldığım bağlantılarla programlayıp sorunsuz gerçekleştirmiştim.Fakat sonradan denetleyiciye yazdığım programdaki bir sorun nedeniyle denetleyiciyi programlayamaz oldum. Keil'de Cortex-M3 cihaza ulaşılamıyor şeklinde bir hata verirken, ST-LINK UTILITY programında ise "Core is held in reset" hatası alıyordum. Hiçbir şekilde işlemciye ulaşmak mümkün değildi. Araştırdığım bazı forumlarda NRST pinini çıkardıktan sonra iletişimin gerçekleştiğini yazmışlar fakat bu bende işe yaramadı.
 İşlemciyi kurtarmak için kullandığım yöntem şu şekildeydi;
->Öncelikle işlemciyi herhangi bir program çakılmasından kurtarabilmek için void SystemInit (void) fonksiyonun ilk satırına bir miktar bekleme koymak gerekiyor. İşlemci resetlendikten sonra  SystemInit fonksiyonundan çalışmaya başlıyor. Buraya eklenilen bekleme ile programlayıcıya işlemcimize ulaşması için bir süre tanımış olacağız.
->ST-LINK programı ile bu işi halledebildim. TARGET->SETTING altından Connexion mode seçeneğini "Connect Under Reset" olarak seçtim.
->Daha sonra TARGET-> Automatic Mode yi açtım. Buradan bekleme eklenmiş kodumu seçtim. Full Chip Erase ve Flash Programming seçeneklerini işaretleyip "Start" dedim.
-> Asıl zor kısım burdan sonra başladı. Program işlemciye bağlanmak için bekliyor. Uzun süre bekledikten sonra hata veriyor."Start" dedikten sonra bağlanmaya çalışırken STM32F103'e giden enerjiyi hızlı bir şekilde kesip tekrar bağladım. Bu çok hızlı yapılmalı eğer çok hızlı yapılırsa hiçbir işe yaramıyor, çok yavaş yapılırsa da cihaz bulunamadı hatası veriyordu. Burada sabretmek gerekli işlemciye bağlandığında ST-LINK 'te bağlandığını gösterecektir.Bağlandıktan sonra da bu enerjiyi kesip-verme işlemine devam ettim.Eğer şanslıysanız 5-10 dk içinde sonuç alacaksınız. Benim işlemim saatler sürdü. Fakat bir defa Flash'ı silip yeni programı yükleyebilirseniz işlemciniz kurtuldu demektir. :)
-> Daha sonra bağlantı ayarlarını eski haline getirip normal şekilde bağlanmayı deneyebilirsiniz.


30 Ocak 2014

Microsoft Visual Studio 2010 Ultimate C Kodu Derleme Hatası (lnk1123)

Bugün Visual Studio 2010 Ultimate sürümünde C kodu derlemeye çalışırken aldığım bir hatadan ve çözümünden bahsedeceğim. Bilindiği gibi Visual Studio birçok programlama dili ile programlama yapmamıza izin veriyor. Bunlardan birisi de C dili. Visual Studio ’nun yeni versiyonlarında artık C dili için ayrı bir Template göremesek de bu işlemi C++ Template ’ini seçerek halledebiliyoruz. C++ ile C arasındaki tek fark dosyaların adı olmuş oluyor. C++ .cpp uzantılı dosyalar derleniyor C’ de ise .c uzantılılar derleniyor. Yapmamız gereken tek şey proje oluşturduktan sonra dosya ismini .cpp den .c ye çevirmek.
Benim karşılaştığım hata ise derleme sırasında ortaya çıktı.

Hata şu şekilde:
fatal error lnk1123 failure during conversion to coff file invalid or corrupt 
Hatanın çözümü için nette farklı yöntemler önerilmiş. Service Pack ve add-on güncellemelerinden bahsedilmiş. Benim bulduğum çözüm ise herhangi bir kurulum gerektirmeden ayarlar bölümünden yapılacak bir değişikten ibaret.

Çözüm: Proje açıkken
Project->Properties ->Linker->General sekmesi açılır.
Enable Incremental Linking ->No (/INCREMENTAL:NO) olarak değiştirilir. Uygula ve Tamam tıklandıktan sonra sorun çözülmüştür.


Herkese iyi çalışmalar.