ICSP lub wstępnie zaprogramowany mikrokontroler

11

Zaprojektowałem płytkę drukowaną do produkcji na małą skalę; obecnie lutuję ręcznie partiami po 20 sztuk. Ta płytka drukowana wykorzystuje mikrokontroler ATMEGA168, który programuję przed lutowaniem na płytce - ta metoda w tej chwili działa dla mnie dobrze.

Mam na myśli wyprodukowanie i zmontowanie partii 200 płyt, ponieważ projektowany przeze mnie produkt wydaje się dość popularny. Czy lepszym rozwiązaniem byłoby włączenie nagłówka ICSP do tablicy lub samodzielne wstępne programowanie układów scalonych? Przeprogramowanie płyty po produkcji lub montażu nie jest zamierzoną ani wymaganą funkcją.

Nie jestem pewien, jak to się robi w środowisku produkcyjnym na większą skalę? Dodanie nagłówka ICSP nieznacznie zwiększy koszt produkcji, więc czy wstępne programowanie jest standardową praktyką?

edcs
źródło

Odpowiedzi:

18

Sugerowałbym zawsze dołączanie nagłówka w tego rodzaju ilości (małe). Jeśli dojdziesz do większych ilości, możesz rozważyć podkładki do szpilek pogo (musisz zrobić urządzenie, aby utrzymać płytkę w wyrównaniu) lub, w swoich ilościach, możesz użyć jednego z kabli Tag Connect, które wymagają tylko otworów i nie są wypełnione podkładki (zatrzaskują się na desce).

wprowadź opis zdjęcia tutaj

Oprócz tego, że możesz wyjść z konieczności aktualizacji oprogramowania, pozwoli to na zapełnienie tablic przed montażem przez dom montażu, co może poprawić logistykę.

Wstępne programowanie jest z pewnością opcją, nawet w ilościach produkcyjnych (możesz nawet zlecić to dystrybutorowi), ale wydaje się, że jest najczęściej stosowane w najprostszych aplikacjach. Zwykle układy scalone na płytkach programuje się (lub można je programować) po montażu.

Spehro Pefhany
źródło
To wygląda na dobre rozwiązanie - dzięki za pomoc, te kable wyglądają całkiem przydatne!
edcs
1
Tag-Connect działa dobrze w tym celu. Możesz również uzyskać wersje bez kołków zabezpieczających (czarny plastik po prawej stronie obrazu), które zamiast tego polegają na nacisku lub płytce tylnej, która chwyta kołki. Pamiętaj, że przedstawiony kabel kosztuje około 50 USD. Plusem jest to, że kontakty na płytce drukowanej wynoszą około 0 USD.
Ben Jackson,
20

Jeśli masz miejsce na nagłówek, to prawdopodobnie najlepsza opcja, a lekko rozłożone szpilki, które zaleca Majenko, to dobry sposób na utrzymanie złącza na miejscu bez zwiększania złożoności.

Ale oto alternatywne podejście, w przypadku płyt, w których nie ma miejsca na zmieszczenie nagłówka lub standardowy nagłówek nie spełnia wszystkich zadań związanych z programowaniem / konfiguracją / testowaniem płyty.

Biorąc pod uwagę małą płytkę drukowaną jak tutaj (średnica 33 mm) wprowadź opis zdjęcia tutaj

możesz rozłożyć go za pomocą punktów testowych (oznaczonych z tyłu) wprowadź opis zdjęcia tutaj

i stwórz dla niego urządzenie testowe (używając pinów Pogo ) wprowadź opis zdjęcia tutaj

Wymaga to pewnej zdolności obróbki i przynajmniej wiertarki kolumnowej (ponieważ sworznie pogo muszą być dokładnie pionowe). Jeśli jednak zechcesz zaryzykować prototypową płytkę drukowaną, możesz przymocować ją do arkusza materiału i „przeszukać” przez otwory w punkcie testowym, aby umieścić piny pogo we właściwym miejscu. (Dostaję 10 płytek drukowanych za absurdalnie niską cenę od Itead, więc utrata jednej nie jest niczym wielkim).

Dzięki tokarce i frezowi tworzenie słupków i zacisków w celu umiejscowienia płytki drukowanej w dokładnie odpowiednim miejscu jest unikalne, ale przy prostszych narzędziach nie jest to zbyt trudne.

Następnie po prostu dopasowujesz każdą płytkę drukowaną, programujesz i testujesz. Luźne złącze zwykle przechodzi do pinów nagłówka na Launchpadzie TI, używanym do programowania tego MPU (TI MSP430) przez interfejs SBW, ale ta sama zasada miałaby zastosowanie do JTAG lub innych interfejsów. (Brązowy kabel u góry to kabel współosiowy przenoszący sygnał kalibracji do licznika częstotliwości). wprowadź opis zdjęcia tutaj

Polerowana mahoniowa podstawa jest opcjonalna; Po prostu wolę styl steampunk dla moich urządzeń testowych.

Brian Drummond
źródło
To świetna odpowiedź i dziękuję za poświęcenie czasu na udzielenie tak przydatnej szczegółowej odpowiedzi! Nie zaznaczyłem tego jako odpowiedzi, ponieważ w moim przypadku mam miejsce, aby zmieścić się w nagłówku ICSP, ale to coś, o czym będę pamiętać, jeśli będę musiał zbudować coś małego.
edcs
2
To niezły przyrząd (a może to urządzenie?). Czy jest coś, co może wpasować płytkę drukowaną pod kątem, czy może jest ona ustawiona tylko w linii wzrokowej?
Spehro Pefhany,
Wpatruję się w szpilki pogo przez widoczne otwory w punkcie testowym, zanim popchnę i zacisnę zaciski. Surowy, ale działa. Na większej płytce drukowanej poleciłbym kilka kołków ustalających, np. W otworach montażowych płytki.
Brian Drummond,
13

Zawsze dodam miejsce na nagłówek ICSP, nawet jeśli nie jest wypełniony. Mam na to obecnie trzy sposoby, w zależności od sytuacji.

Jeden z moich projektów ma bardzo drobną podziałkę, dla której zbudowałem adapter (idealnie nadaje się do tego drut z rdzeniem 0,6 mm):

wprowadź opis zdjęcia tutaj

Używam tego złącza, gdy przestrzeń jest absolutnie premium. (Przepraszam, jest niewyraźny, aparat mojego telefonu jest niesprawny).

Drugim układem, którego często używam, jest włączenie ICSP do innego nagłówka. Jeśli piny ICSP mogą być również używane jako piny GPIO, a można ich używać z odłączalnym połączeniem, wówczas wystarczy dołączyć inne potrzebne połączenia ICSP (na przykład MCLR) przy minimalnym koszcie. Następnie wystarczy podłączyć programator do tego nagłówka za pomocą adaptera, który powinien być wystarczająco prosty do wykonania.

Trzecim sposobem jest zapewnienie „rozłożonego” lub „przesuniętego” odcisku nagłówka dla ICSP. Używam tego głównie na płytach programistycznych, w których użytkownik końcowy może chcieć wykonać ICSP, ale nie chce zepsuć swojej płyty poprzez wlutowanie nagłówka na stałe. Ten ślad pozwala na dopasowanie standardowego hedera i zapewnia dobry stały kontakt bez lutowania:

wprowadź opis zdjęcia tutaj

Kiedy zaczniesz zajmować się znacznie większymi ilościami, z pewnością bardziej opłacalne może być skłonienie producenta układu do wstępnego zaprogramowania układów za pomocą oprogramowania układowego. Myślę, że wszyscy główni producenci zapewniają ten obiekt.

Majenko
źródło
Dzięki za szczegółową odpowiedź - tutaj zdecydowanie przydatna informacja! Nie zaakceptowałem twojej odpowiedzi, ponieważ zamierzam użyć sugerowanego kabla Tag Connect, choć metoda pinów naprzemiennych działałaby równie dobrze.
edcs
Atmel zdecydowanie zapewnia to jako opcję.
Ignacio Vazquez-Abrams
2
Rozłożony ślad nagłówka jest genialny. +1
Vladimir Cravero
5

Jeśli używa się procesora, który można przeprogramować w obwodzie, zdecydowanie zaleciłbym zaprojektowanie płyt w taki sposób, aby umożliwić jego użycie, nawet jeśli faktyczne użycie tej funkcji wymagałoby zbudowania urządzenia do tego konkretnego celu, a nie nie planuję tego budować. Jeśli problem z oprogramowaniem układowym zostanie wykryty po wyprodukowaniu dużej partii płyt, zbudowanie urządzenia, które może przeprogramować te płyty, może być znacznie tańsze niż konieczność ich przerobienia lub przebudowy.

W niektórych przypadkach dobrym podejściem może być wybranie układu I / O płytki, aby szpilki kontrolera potrzebne do przeprogramowania w obwodzie zostały przekazane do celów, które „naturalnie” powodują, że są narażone na łatwo dostępne punkty kontaktowe. Na przykład płyta zaprojektowana do użytku ze stykami z metalową kopułą może mieć same styki podłączone do styków programujących w obwodzie. Taki projekt nie wymagałby poświęcania żadnego miejsca w układzie na złącze programujące, ale - zwłaszcza jeśli styk akumulatora ma również ogólnie wymiary, pozwól złączu programującemu przejść przez proste styki sprężynowe.

Zauważ, że nie musi mieć znaczenia, czy kod wydaje się być dobrze przetestowany; zmiany z jednej partii żetonów na drugą mogą nadal powodować nieoczekiwane problemy. Na przykład zaprojektowałem produkt, który miał się wyłączać pod kontrolą procesora, gdy wyjście procesora było „wysokie” na pinie, gdy miało być „włączone”. W pierwszej partii 10.000 jednostek wszystko działało dobrze, ale w późniejszej partii procesor zacząłby działać nieprawidłowo, gdy jego napięcie osiągnęłoby około 2 woltów, i mógł przełączyć ten pin z powrotem na „wysoką”; 2-woltowe „wysokie” wyjście ledwo wystarczało, aby ponownie włączyć urządzenie. Ponieważ określono, że procesor ma pozostać w trybie uśpienia do poziomu napięcia IIRC 1,6 V, możliwe było rozwiązanie problemu poprzez przeprogramowanie urządzeń, aby przechodziły one w tryb uśpienia podczas aktywacji stanu wyłączenia. Gdyby takie przeprogramowanie nie było możliwe, konieczna byłaby znacznie droższa przeróbka (lub złomowanie i przebudowa).

supercat
źródło