Ulink2-SWD-STM32VL-PROBLEM

Başlatan mistek, 01 Aralık 2013, 03:45:24

mistek

Şu saate kadar uğraştım, ne yaptıysam olmadı herşeyi toplayıp atmak istedim ancak verdiğim para buna engel oldu.

Sırayla yaptıklarımı anlatayım bir yorumda siz yaparsanız memnun olurum ziraa büyük kırıma ramak kaldı.

Ulink2 ile jtag üzerinden stm32f107vc programlıyorum sorun yok. Keil'de ulink2/me debugger seçili.

LQFP-Dip dönüştürücü kart üzerine stm32f100 lehimledim ve bunu SWD ile programlamak istedim.

Kartın beslemesini yaptım. PA14(SWCLK) ve PA13(SWDIO) pinlerine Ulink2 nin TMS vs TCK pinlerini bağladım. VCC pinine işlemci ile aynı gerilimi verdim GNDleri kart ile aynı noktaya bağladım.

Keilde swd ile bağlı olan işlemciyi görmüyor. Swd bağlantı hatası veriyor. Hadi yaptığım karttan 1 tanesi çalışmıyordur dedim 4 kartın hiçbirini programlayamadım.

Tabi ki yine suçu yaptığım kartlarda bulup hemen stm32vl discovery kitine yöneldim. Karta önce kendi üzerindeki stlink debugger ile led yak söndür attım kartın çalıştığından emin oldum sonra SWD ile programlamak için ilgili jumperları söktüm ve PA14 PA13 VCC GND bağlantısını yaptım.

Bingo! Yine kartı görmedi. Gerilimleri kontrol ettim sorun yok. Bağlantılarda sorun yok. Ulink2 çalışıyor, stm32vl discovery çalışıyor ama swd ile programlayamıyorum.

En can alıcı nokta: Ben aynı kiti aynı programlayıcı ile 3 ay önce swd ile programlamıştım ve ozamanda çok uğraşmıştım, birkaç basit ayar yapmak gerekiyormuş onları yapmıştım ve anlattığım şekilde swd ile program atıp debug yapabiliyordum. AMA nasıl yaptığımı not ettiğim dosya ve dokümanlarım bilgisayarımla birlikte çalındı ve gitti. Şuan o notlara dair hiçbirşey hatırlamıyorum ve saatlerdir problemi çözmek için uğraşıyorum 1 saç telim daha beyazladı.

Nereyi gözden kaçırdığımı bilmiyorum. Hangi ayarları yapmam gerektiğinide hiç hatırlamıyorum.

Yardımcı olursanız memnun olurum. İyi geceler saygı ve selamlar... (Düzeltemezsem Ulink2 hariç diğer herşeyi çekiçle parçalamayı düşünüyorum)
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

JKramer


mistek

#2
Olmuyor Olmuyor...

Önceden Ulink2 yi bilgisayara takınca Keil ULINK2 CMSIS DAP olarak görüyordu jtag üzerinden ancak böyle program atabiliyordum bi süre hiç kullanmadım tekrar keil 4.70i yükledim bu sefer CMSIS DAP olunca hedef kartı görmedi bende boot seçeneklerinden ULINK boot olarak ayarladım bu şekilde jtag bağlantılı kartı görüyor ama SWD ikisinde de gözükmüyor. Ortada yazılımsal bi sıkıntı var gibi duruyor ama çözemiyorum. Daha önceden CMSIS DAP olarak ayarlıyken swd ile program atmıştım illet alet şimdi çalışmıyor...


ULINK2/ME debugger seçili iken ayarlara girdiğimde Jtag bağlantılı hedef kartı görüyor. SW bağlantısını seçtiğimde jtag ile bağlı olan hedef kartı yine görüyor görüyor.

Hiçbişeyi bozmadan sadece jtag bağlantısından TMS TCK VDD ve GND kullanarak SWD ile programlamaya çalışıyorum hedef kartı hiç görmüyor. Acaba pinlerde mi bi sorun var ?
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

mistek

#3
Zar zorda olsa stm32 discovery'e bağlandım program attım.

Problemin ana kaynağı Ulink2 nin flat kablosundaki temassızlıkmış.

Şimdi kendi yaptığım karta programı yükleyebiliyorum ve doğruluyorum siliyorum. Ama kod çalışmıyor. daha doğrusu işlemci çalışmıyor. Program yükleniyor led yakacağım hiçbir hareketlilik yok. Debug ekranına girdiğimde program şurada duruyor ilerletemiyorum. Breakpoint bişey olmuş ama anlamadım.

0x20000000 BE00      BKPT     0x00


#include <stm32f10x.h>


int main(void)

{
	
	SystemInit();
	
	RCC->APB2ENR |=  1 <<  2;                  
  GPIOA->CRH   &= 0xFFFFFF00;                
  GPIOA->CRH   |= 0x00000033;             
	
	while(1)
	{
		
		GPIOA->ODR = 3 << 8;
		
	}
	
}




Şu ledi bir yakabilsem başka bişey istemiyorum.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

tekosis

#4
mistek hocam keşke derdinize derman olabilecek bir şey söyleyebilsem ancak şu an sizin bilebileceğiniz bir şey sormak istiyordum.  aşağıda linki olan stf3274 discovery kiti almayı düşünüyorum. acaba bu kit ile ide kablosu aracılığıyla daha sonra yapacağım kendi kartımdaki işlemciyi  (stm32f407) programlayabilirmiyim. stm işinde şu an kafa bulanıklığımın zirvesindeyim.

http://market.cizgi.com.tr/product/education/stm-stm32f4
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

mistek

#5
Alıntı yapılan: tekosis - 01 Aralık 2013, 17:34:20
mistek hocam keşke derdinize derman olabilecek bir şey söyleyebilsem ancak şu an sizin bilebileceğiniz bir şey sormak istiyordum.  aşağıda linki olan stf3274 discovery kiti almayı düşünüyorum. acaba bu kit ile ide kablosu aracılığıyla daha sonra yapacağım kendi kartımdaki işlemciyi  (stm32f407) programlayabilirmiyim. stm işinde şu an kafa bulanıklığımın zirvesindeyim.

http://market.cizgi.com.tr/product/education/stm-stm32f4

Evet üzerinde STlink bulunuyor. Bununla 4 adet kablo aracılığı ile diğer işlemcileri swd ile programlayabilirsiniz.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

tekosis

henüz ilk araştırmalarımı yaptığımdan çok kafam karışıyor. cevap için teşekkür ederim.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

engerex

Yanlış işlemci seçili olabilir mi?

mistek

Alıntı yapılan: engerex - 01 Aralık 2013, 18:07:46
Yanlış işlemci seçili olabilir mi?

Hayır. Keşke yanlış işlemci seçili olsaydı en azında neyi düzelteceğimi bilirdim. :'(
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

muhittin_kaplan

çalışan bir programı stm util ile yükleyincede olmuyor mu ?

mistek

#10
Alıntı yapılan: muhittin_kaplan - 02 Aralık 2013, 00:17:19
çalışan bir programı stm util ile yükleyincede olmuyor mu ?

Hocam Stlink discovery üzerindekilerle hiç denemedim.

Discovery'e en son ulink2 ile programı keil üzerinden download yapabildim led yak söndür çalıştı.

Lqfp -dip dönüştürücüye f100 taktım breadboarda devreyi kurdum programı ulink2 ilede atabiliyorum ama kod çalışmıyor işlemci hardfaulta düşüyor. Hafızayla ilgili bişeyler ters gidiyor. Araştırıyorum çözeceğim. 
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

mistek

#11
Tamamdır sorunu hallettim.

Yukarıda da bahsettiğim gibi kendi yaptığım karta ulink2 ile kod atıyordum ancak kod çalışmıyor ve memoryhard fault hatası veriyordu. Anlamı ise "hafızaya ulaşılamıyor"

Biraz araştırdıktan sonra sorunun genel bişey olduğunu ve Keil içerisinde bununla ilgili adımlar olduğunu gördüm. Yani kodu attıktan sonra Reset and Run dediğim halde bile kod çalışmıyor harici olarak HWRESET, VECTRESET gibi yazılımsal resetlere ihtiyaç duyuyor. (Bugüne kadar birçok işlemciyi programladım hepsinde Autodetect seçili halde iken problem çıkarmıyordu)
Şurada reset ayarları anlatılmış: http://www.keil.com/support/man/docs/ulink2/ulink2_ctx_debug.htm


.......
Yazıyordum araya başka işler girdi unuttum buradan devam edeceğim.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

mistek

Üst mesajı düzenleyemedim butonlar kaybolmuş.

Reset ayarı yapıldıktan sonra işlemciye kod atıp çalıştırdım problem çıkmadı. Debug moda girmek istiyorsanız Reset modlarından VECTRESET seçmeniz gerekiyormuş. Aksi halde hata veriyor ve işlemci kodu çalıştırmıyor. Şimdilik bu şekilde kullanıyorum ama Reset and Run dediğim halde programı attıktan sonra neden otomatik çalıştırmadığını daha geniş bir zamanda araştıracağım. Enerjiyi kesip yeniden verdiğimde program çalışıyor.

Belki Boot0 pini ile ilgilidir tam olarak bilmiyorum.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R