Özel STM32 Kartı Programlanamıyor


9

Basit bir STM32 kartı tasarladım. Aşağıda şematik ve pcb düzen resimleri:

Şematik:
resim açıklamasını buraya girin

PCB düzeni: resim açıklamasını buraya girin

VDD vurgulanmış PCB düzeni: resim açıklamasını buraya girin

GND'nin vurgulandığı PCB düzeni: resim açıklamasını buraya girin

Yukarıdaki resimlerde bu tasarımın sorumla ilgili kısımları gösterilmiştir.

Benim sorunum: Bu özel kartı programlamak için bir STM32 Discovery Board yerleşik ST-Link kullanmaya çalıştım, ama henüz başaramadım. PC'deki ST-Link Utility uygulaması programlayıcıyı tanıyabilir, ancak hedef MCU'yu algılayamaz. Aldığım hata mesajları: "Hedef bağlı değil" ve "ST-Link USB İletişim Hatası".

İşte benim sorunumla ilgili bazı gerçekler:

  • STM32 Keşif Kartı iyi çalışıyor: Dahili ST-Link'i yerleşik STM32 MCU'yu programlamak için kullanabilirim. Tamamdır.
  • STM32 MCU, özel kartta doğru yönde lehimlenmiştir. Bunu iki kez kontrol ettim.
  • VDD ve SWD izlerini kontrol ettim. İyi bağlanmışlardır (lehimleme problemi yoktur). Pin Boot0 0V'da. Pin NRST 3.3V'dadır.
  • SWD kablosu kısa, sadece 7-8 cm uzunluğunda.
  • Özel kartımdaki STM32, Keşif Kartındaki ile aynı tiptedir.
  • Harici bir STM32 MCU'yu programlamak için Discovery Board'u nasıl kullanacağınıza ilişkin STM32 Discovery Board kılavuzundaki talimatları izledim. Daha spesifik olmak gerekirse, 2 CN3 jumper'ını çıkardım ve ardından panoları bu tablodaki gibi bağladım: resim açıklamasını buraya girin

  • Ayrıca Discovery Board üzerindeki lehim köprüsü SB11'i de kaldırdım (böylece NRST pimi düzgün çalışabilir).

  • Hem ST-Link Utility uygulamasını hem de Keil'i denedim. Aldığım hata mesajları aynı.
  • İlk başta yukarıdaki tabloya (SWO) 6. pimi bağlamamıştım çünkü bilgime göre gerekli değil. Ancak bundan sonra da bağladım, ancak işler hala işe yaramadı.
  • Ayrıca NRST piminden GND'ye 100nF'lik bir kapak ve daha sonra bu pimden VDD'ye 100k'lik bir çekme direnci ekledim. Sorun hala devam ediyor.
  • Ayrıca ST-Link Utility programının "sıfırlama altında bağlan" modunu kullanmaya çalıştım. Şans da yok.

Tasarımda bir sorun olabileceğinden şüpheleniyorum, ama emin değilim. Lütfen sorunu çözmeme yardım et.

Çok teşekkür ederim :)


Hatırladığım kadarıyla, hem st-link'e hem de özel kartınıza güç vermelisiniz. Özel kartınızın SWD konektöründeki 3.3V, st-link'in algılanması için 3.3V sağlamalıdır.
12'de davidrojas

@davidrojas: Cevabınız için teşekkür ederim. Şu anda ST-Link'i bilgisayarımdaki USB bağlantı noktasından çalıştırıyorum. Özel STM32 kartı harici, ayrı bir 3.3V ile güçlendirilmiştir. Bununla birlikte, bu 2 kartın zemini zaten bağlanmıştır (yukarıdaki tabloda olduğu gibi). Ayrıca, özel kartımdan 3.3V, ST-Link üzerinde VDD_TARGET'e de bağlı. Sence bu yeterli mi?
user3286500

Bu yeterli olmalı, evet. Başka bir sorun uzunluğu ve düzeni SWDIO ve SWCLK olabilir, bu nedenle geçmişte aralıklı bağlantı sorunları yaşadım. Mümkün olduğunca kısa olmaları gerekir. SWD'nin hızını da düşürmeyi deneyin.
16:18, davidrojas

SWD hızını varsayılan 1.8 MHz'den 400 kHz'in altına düşürdüm, ancak yine de başarılı değilim. Kablo uzunluğuna gelince, kurulumumda SWD bağlantısının toplam uzunluğu (ST-Link'ten hedef STM32'ye) yaklaşık 12-13 cm'dir. Bu hala sınırlar dahilinde mi?
user3286500

1
Çipin altına dökülen toprağın fiziksel olarak izole edildiğini ve aslında toprak pimlerinin hiçbirine bağlı olmadığını fark ettiniz mi? Topraklama pimleri arasındaki gerçek bağlantılar çip dışındaki kıvrımlı yolları takip eder ve bazıları aslında izole edilmiş olabilir. Boşluklarınızı, toprak dökümü izole adalara sahip olmayacak şekilde ayarlamanız gerekir ve bu, çipin tüm toprak pimlerinin aynı potansiyele çok daha yakın olduğundan emin olmanıza yardımcı olacaktır.
Dave Tweed

Yanıtlar:


5

Harika yorumlarınız için teşekkürler. Onlar yüzünden tasarımımın hatasız olduğundan emindim. Bu yüzden dikkatimi donanımdaki hataları aramaya odakladım. Ve hatayı buldum! Bu bir lehim hatasıdır.

Bu talimatı izledikten sonra bu hatayı buldum: "Bir multimetre kullanın ve tüm bağlantıları şort veya bağlantı eksikliği için test edin. Pimlere / pedlere / gerçekten nazikçe dokunmaya dikkat edin, çünkü proba sert bir şekilde basarsanız, düzeltebilirsiniz" "bağlantı geçici olarak (örneğin IC pimini PCB üzerindeki ize itersiniz ve test tamamdır, ancak bıraktığınız anda pim tekrar yükselir)." Orijinal yayın burada .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.