Skocz do zawartości

Pomocna odpowiedź

Napisano (edytowany)

Cześć.

Zdarza mi się popełnić jakiś układ, który wykonuję samodzielnie - trawienie, lutowanie, programowanie itp. Hobbystycznie - dla siebie, ewentualnie coś dla znajomych. Zwykle korzystam z uC AVR, ale ostatnio bawię się płytkami Nucleo od STM. Powoli myślę o przesiadce z THT na SMT. I tu pojawia się pytanie - w jaki sposób programować takie mikrokontrolery?

Mam w domu jakieś przejściówki z QFP na DIP, ale to wymaga przylutowania, zaprogramowania, odlutowania i przylutowania na gotowej płytce. Trochę mnie taki proces przeraża. Chciałem zakupić taki adapter z klipsem, ale okazuje się, że to uzależnia mnie zarówno od danej wielkości układu (QFP48, QPT64 itd.), jak i rozstawu nóżek (np. 0.8 mm dla AVR i 0.5 mm dla STM32). Znalazłem też takie igły-sondy z wysuwanymi szczypcami do chwytania nóżek, ale czy to mi chwyci 0.5 mm bez zwierania sąsiednich nóżek???

Czy jest jakieś w miarę uniwersalne rozwiązanie, które pozwoli mi na programowanie układów SMD o różnym rastrze, a przynajmniej różnej liczbie nóżek? Takie dedykowane adaptery są dość drogie (ok. 60 zł zwykły i ok. 300 zł z wyprowadzeniami JTAG/SWD i USART) i nie chciałbym kupować kilku, by móc używać różnych uC. Czy pozostaje mi wlutowywanie na docelowej płytce pinów do programowania? Używając SMD chciałbym przede wszystkim uniknąć wiercenia w płytce i zająć jak najmniej miejsca na niej, a takie piny trochę mi się z tym kłócą.

Jakie rozwiązanie polecacie dla mnie?

I drugie - poboczne pytanie: jak najlepiej/najłatwiej programować gołe scalaki z STM32, jeśli posiadam programatory z płytek Nucleo-64 i Nucleo-144?

Edytowano przez radek04

Oczywiście są.

Jesteś zaznajomiony z AVR? Więc wiesz co to ISP? Kolejne pytanie, słyszałeś o igłach testowych? Dla przykładu takich: https://www.tme.eu/pl/details/it075-p84/igly-testowe/ ?

Wystarczy wyprowadzić takie złącze (ISP) na pola stykowe - bez wiercenia po prostu gołe pady. Przykładasz takie igiełki i jesteś w stanie zaprogramować układ przy użyciu tych igiełek - bez żadnego adaptera, przejściówek itp. 

Te programatory które posiadasz (Nucleo-64 i Nucleo -144) posiadają złącza SWD - jest to złącze programatora które możesz użyć do własnych celów. Chyba najwygodniej do programowania używać St-link utility.

Jak najlepiej/najwygodniej programować scalaki STM32? Już w sumie napisałem 🙂

Takie igły i pola testowe zastępują po prostu złącza do których musiałbyś podłączać przewody. Powszechnie jest to używane w przemyśle chociażby do przeprowadzania ICT (in circuit test) czy programowania układów. Zasada działania nie różni się od podłączania tego do złącza. Czyli zasadniczo wyprowadzasz sobie pola testowe/do programowania w miejsce które Ci pasuje. Dla wygody złącza (pola testowe) do programowania można ułożyć w linii w określonych odstępach. W kroku drugim tworzysz sobie adapterek do programowania z kawałka PCB i tych igiełek testowych (w większości przypadków można je bez problemu lutować do PCB). W odpowiedni sposób podłączasz te igiełki do programatora i poprzez przyłożenie ich i dociśnięcie do pól testowych można układ zaprogramować. Tak jak na tym zdjęciu:

zdjęcie

Te igiełki składają się z igły właściwej, sprężynki i tulejki (obudowy idły) - igła może się częściowo schować w tulejce a sprężynka zapewnia stały docisk. Nie musisz mieć igiełek ustawionych jakoś bardzo dokładnie by mieć dobry styk.

Wyprowadzasz złącze np. samo SWD na goldpinach i tyle, igly są drogie i nie wygodne jak programujesz coś dużą ilość razy w czasie  testów.

Na Nucleo odpinasz zworki i masz je jako programator a linie są wyprowadzone właśnie na goldpinach. Tak samo robisz na swoim PCB i problem z głowy.

Ja mam zamiast goldpinów gniazdo IDC wyprowadzone zgodnie ze standardem SWD.

  • Lubię! 1
(edytowany)

No właśnie chciałem uniknąć goldpinów i innych dużych gniazd. Do SWD potrzeba 5 pinów?

Z drugiej strony jednak - nauczony doświadczeniem - wolałbym mieć dostęp do jakiegokolwiek złącza umożliwiającego programowanie. @ps19, czy mógłbyś pokazać, jak to gniazdo u Ciebie wygląda? Stosujesz jakieś dedykowane taśmy, czy zwykłe przewody?

Edytowano przez radek04

@deshipu, bardzo fajne rozwiązanie. Czy są też podobne ze złączami po 1 stronie, bądź z większą liczbą takich złączy, żeby wystarczyło także przy stosowaniu 1-str. PCB? Ile minimalnie wyprowadzeń potrzebuję przy programowaniu STM32?

obraz.thumb.png.f95054ea3853d345bc36d46efd2a7ef6.png

Takie złącze, możesz dać 6 pinowe bez problemu (SWO nie jest potrzebne).
Nie musi to być raster 2,54 mm są też 2 mm - z jednej strony normalne goldpiny  2,54 mm na tasiemce a z drugiej goldpiny na 2mm.

Można dać też 1x6 wg pinologii z Nucleo.


Przykłady:

https://botland.com.pl/pl/80-przewody-i-zlacza-idc

https://botland.com.pl/pl/przewody-i-zlacza-idc/1246-przewod-idc-6-pin-zensko-zenski-30-cm.html

 

(edytowany)

Podoba mi się pomysł z klipsem. Znalazłem także SOIC16, nie są drogie, więc mogę kupić 2 wersje. @deshipu, o jakie 2 dziurki Ci chodzi? W projekcie widziałem 5 dziur między padami. Czy są one konieczne? Czy chodzi jedynie o stabilność klipsa, a bez nich też da radę podłączyć?

Edytowano przez radek04
4 godziny temu, radek04 napisał:

@deshipu, o jakie 2 dziurki Ci chodzi? W projekcie widziałem 5 dziur między padami. Czy są one konieczne? Czy chodzi jedynie o stabilność klipsa, a bez nich też da radę podłączyć?

Tak, przepraszam, wydawało mi się, że są dwie, źle pamiętałem. Dziurki są konieczne do ustawienia i ustabilizowania klipsa — bez nich nie będzie dobrego kontaktu, bo wystające części klipsa spowodują, że styki będą zbyt daleko od płytki. Na szczęście jak zamawiasz płytki, to dodatkowe dziurki nic nie kosztują.

  • 3 tygodnie później...

Kupiłem klipsy do programowania (8- i 16-pinowe <żeby w razie czego na 1-warstwowej płytce też móc robić>) i teraz muszę zwężyć przestrzeń między szczękami klipsa. Robił ktoś to kiedyś? Wystarczy spiłować trochę plastiku?

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...