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ą?
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)
możesz rozłożyć go za pomocą punktów testowych (oznaczonych z tyłu)
i stwórz dla niego urządzenie testowe (używając pinów Pogo )
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).
Polerowana mahoniowa podstawa jest opcjonalna; Po prostu wolę styl steampunk dla moich urządzeń testowych.
źródło
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):
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:
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.
źródło
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).
źródło