Jak atakujesz nową tablicę?


24

Otrzymujesz płytkę z powrotem od producenta. Jest to nowy projekt, oczywiście wszystkie elementy główne są wyłożone chlebem, ale wiesz, że będą problemy. Jest zbyt wiele rzeczy, które mogą powodować problemy, np .:

  • Błędy na schemacie
  • Błędy w układzie, nie wykryte przez ERC / DRC
  • Niewłaściwie umieszczone części podczas lutowania
  • Spodenki i tym podobne podczas lutowania
  • dowolna kombinacja powyższych

Miałem ostatnio dwie stosunkowo skomplikowane tablice, w których po złożeniu musiałem zasadniczo wypełnić całe tablice, aby zlokalizować błąd. Znalazłem błędy, ale deski były złomowane.

Próbowałem zacząć od minimalnej liczby części i części, które nie mogą być lutowane ręcznie (używam pasty, szablonu i tostera). Zazwyczaj byłby to MCU, złącze JTAG i kilka kondensatorów. Potem stopniowo zapełniam inne obszary, sprawdzając je pod kątem problemów.

To podejście działa, ale jest bardzo powolne. Muszę również komentować / komentować w dowolnym kodzie, który zakłada obecność określonego sprzętu.

Czy ktoś ma porady / sugestie, jak podejść do nowo zaprojektowanych płytek drukowanych?

EDYCJA: Głównie myślę o rodzajach problemów, które powodują, że twoja deska nie żyje, takich jak ukryte zwarcia na szynie zasilającej lub cokolwiek, co wpływa na MCU.


2
dobrym pomysłem może być wypełnienie zasilacza i dystrybucji, w tym masowych i bocznikowych zaślepek, a następnie doprowadzenie zasilania wejściowego do płyty. jeśli masz czapkę tantalu do tyłu, szybko się dowiesz. następnie sprawdź, czy MCU (i itp.) ma odpowiednie napięcia zasilania na odpowiednich pinach, zanim przejdziesz do wypełnienia tych urządzeń.
JustJeff

1
Na marginesie uważam, że dobrą praktyką jest utrzymywanie kodu w sposób modułowy, tak jak Ty (usuwanie funkcjonalności dla brakujących urządzeń peryferyjnych). Zawsze piszę mój kod tak, aby działał w trybie „demonstracyjnym”, który ignoruje brakujące urządzenia peryferyjne, ale nadal działa przez logikę programu, dopóki nie upewnię się, że urządzenia peryferyjne zostały poprawnie debugowane. Następnie twój program przynajmniej działa, abyś mógł stwierdzić, czy został zaprogramowany.
AngryEE

2
Po zastosowaniu mocy wejściowej zacznij od niskiego limitu prądu.
starblue

1
Powinna być wiki społeczności.
Brian Carlton

1
@Morten - Ach, ma sens. Masz rację, czapki raczej nie będą powodować problemów.
Kevin Vermeer

Odpowiedzi:


10

Zdecydowałem, że przedwczesne wprowadzenie na pokład jest stratą czasu, chyba że istnieją aspekty wydajności części, które należy samodzielnie zmierzyć.

Myślę nawet, że budowanie planszy na kawałki to strata czasu. Początkowy debugowanie sprzętowe zajmuje tylko dzień lub dwa. W każdym razie subtelne problemy nie pojawią się aż do integracji oprogramowania. Wolę debugować jeden obwód (cały) niż kilka doraźnych redukcji obwodu.

Po prostu zbuduj coś! Złóż całą płytę i włącz ją. Spójrz na napięcie zasilania. Ile mA pobiera? Która część się pali? Która część jest ciepła? Następnie spróbuj wypalić oprogramowanie na dowolnym mikrokontrolerze znajdującym się na płycie. Następnie zacznij pisać oprogramowanie układowe. Uruchom zegar i przełącz pinezkę. Uzyskaj łączność szeregową (lub cokolwiek). Teraz napisz programy testowe dla każdego urządzenia peryferyjnego. Następnie zbuduj testowe urządzenie produkcyjne i zacznij pisać „prawdziwe” oprogramowanie układowe.


Edytować:

Po znalezieniu zablokowanych szyn

Jeśli szyna zasilająca jest przyklejona do ziemi (mierzy 0 omów za pomocą omomierza), włącz ją na zasilaniu stołowym. Ustaw napięcie normalnie i ograniczenie prądu na kilkaset mA. Wydrukuj projekt płytki drukowanej na papierze i znajdź DMM, który mierzy mikrowolty. Zmierz mikrowolty zaczynając od zacisków zasilania i zanotuj spadki napięcia na wydruku płytki drukowanej. Analizując różnice w mikrowoltach, możesz dokładnie prześledzić, gdzie płynie prąd, bez wyładowywania lub rąbania płytki drukowanej. Ta technika jest lepsza niż zastosowanie omomierza, ponieważ można przepompować dużo prądu przez obwód, więcej niż jakikolwiek zwykły omomierz dostarczy.

Podobna technika działa w celu znalezienia zwartych śladów na zaludnionej planszy. Uruchom tablicę i użyj lunety, aby znaleźć „cyfrowe” ślady, które znajdują się w pośrednim zakresie napięcia.


Użyłem tego samego podejścia. Zwykle działa, ale kilka razy wrócił, by mnie źle ugryźć. Ostatnim razem była to pozornie niewinna szczelina pod złączem, które zostało pokryte podczas produkcji i doprowadziło do zwarcia płaszczyzny uziemienia i zasilania. Moja własna wina całkowicie, ale był to frustrujący i trudny do znalezienia błąd.
morten

1
Aby zastosować podejście „Po prostu zbuduj coś”, myślę, że muszę zamówić więcej niż jedną płytkę drukowaną.
Morten

Widziałem sondy piszczące używane w podobnym celu - do zera w skrócie. Niestety nie mogę znaleźć linku do produktu.
Toybuilder


20

Robię to, wypełniając płytkę początkowo absolutnym minimum, najpierw uruchamiając dostawę, potem MCU, a następnie dodając poszczególne podsystemy jeden po drugim i testując je przed kontynuowaniem, w razie potrzeby pisząc oprogramowanie testowe. Nie uważam tego procesu za wolny.

Mam przetestowane deski o dowolnej złożoności. Kosztuje dodatkowo, ale warto.


3
wystarczy tylko jeden poważny błąd znaleziony w ten sposób, aby uczynić go znacznie szybszym
Kortuk

11

Mam tylko małe obwody. Następnie lutuję małe obwody na proto-boardy. Podczas pracy z układami SMD pomaga uzyskać przejściówki SMD-> Thru-hole.

Zasadniczo daje to „bloki konstrukcyjne”. Następnie przylutowałem te bloki do zestawu deweloperskiego lub starej płytki z MCU, której próbuję użyć. Wygląda okropnie, z czterema lub pięcioma różnymi małymi płytkami drukowanymi zwisającymi z większej, ale działa.

Kiedy już mam bloki konstrukcyjne na płycie deweloperskiej, przechodzę na płytkę drukowaną. Jeśli schemat zmienia się w ogóle podczas tworzenia płytki drukowanej, wracam, przerabiam bloki konstrukcyjne i testuję je ponownie na płycie deweloperskiej.


Na marginesie, zamiast komentowania kodu, powinieneś rozważyć użycie dyrektyw preprocesora #define i #ifdef. Znacznie ułatwia to dodawanie i usuwanie funkcjonalnych bloków kodu w MCU.


Brzmi jak to, co robię, co według mnie jest bardzo dobrym sposobem na rozwinięcie projektu. Umożliwia także późniejsze ponowne użycie części.
Trygve Laugstøl

9

W przypadku płyt o dowolnej złożoności opracowanie planu testów jest równie ważne, jak samo opracowanie płyty. Nawet na początku projektowania płyty warto wiedzieć, co przetestujesz, mimo że implementacja jeszcze nie istnieje; „projekt do testu”, jak mówią. Pamiętaj, aby przynieść kluczowe sygnały do ​​padów punktów testowych. Spróbuj podzielić projekt na partycje, aby poszczególne podsystemy mogły być wywoływane niezależnie lub prawie tak niezależnie, jak to możliwe.


Hmm, świetna sugestia! Z jakiegoś powodu tak naprawdę wcześniej nie myślałem o „projektowaniu do testu” w tym kontekście.
Morten

2
możesz przejść na wyższy poziom, projektując funkcję autotestu. zwiększa złożoność Twojej płyty, ale może ułatwić weryfikację projektu, a nawet daje możliwość włączenia autotestów przy uruchamianiu do produktu.
JustJeff

8

Przypuszczam, że jedno kluczowe pytanie brzmi: jaka jest lista kontrolna przed lotem, zanim wydasz płytę do produkcji. Moja lista przed lotem to:

  1. Schematyczny przegląd projektu
    1. Nazwy sieci i porty pozabilansowe
    2. Podłączone styki zasilania
  2. Schemat DRK
  3. Peeling odcisków stóp
    1. Pełny numer części producenta
    2. Numer części odpowiada śladowi na płytce drukowanej i pinoutowi w schemacie
    3. Numer PIN śladu jest „prawą stroną do góry” i jest poprawny
    4. Wymiary śladu dwukrotnie sprawdzane pod kątem rozmiarów otworów, luzu, ograniczników itp.
    5. Złącza współpracujące są zorientowane poprawnie; styki 1 do 1, 2 do 2 itp.
  4. Wymiary płytki drukowanej i otwory
  5. PCB DRC
  6. Fab Drawings ma wszystkie warstwy i objaśnienia.

Ta odpowiedź społeczności wiki'd.


5

To, co powiedzieli inni, jest ważne, ale chciałbym dodać moje 2 centy.

Absolutnie najlepszą rzeczą do zrobienia jest nie popełnianie błędów. Głupio jest o tym wspominać, ale zbyt często jest to pomijane. Wykonaj przegląd schematu i PCB. Niech kilka osób przyjrzy się twojemu projektowi - nawet początkującym inżynierom. Użyj kontroli reguł projektowych w swoim oprogramowaniu. Użyj dowolnego dostępnego zasobu, aby upewnić się, że projekt jest dobry. Stosuj dobre praktyki inżynierskie, aby zwiększyć swoje szanse na złapanie błędu.

W ciągu ostatnich 20 lat i po zaprojektowaniu kilkudziesięciu obwodów drukowanych (niektóre z 14 warstwami i 2000 podzespołów), miałem tylko DWIE pcb, które nie nadawały się do użytku w pierwszej rundzie prototypów. Oczywiście miałem błędy, ale tylko dwie płyty zostały „zamurowane”.

W każdym przypadku prototypy były w pełni zapełnione, zanim zacząłem je debugować. Omówię szyny zasilania, aby upewnić się, że nie ma zwarć. Następnie wykonaj oględziny za pomocą mikroskopu. Następnie włącz go. Następnie zacznę od metodycznej sesji testowej i debugowania - pracuję na małych odcinkach obwodu, aż wszystko zostanie przetestowane i działa. W większości przypadków dokonam kilku zmian i przejdę do produkcji seryjnej przy kolejnej wersji płytki drukowanej.

Nie byłoby to możliwe bez większych wysiłków w celu zmniejszenia liczby błędów z góry.


Niektórzy producenci (np. 4 pc) oferują nawet bezpłatne testy DFM na gerberach. Te bezpłatne testy są miłym dodatkiem do DRC narzędzi PCB.
ajs410

4

Jeśli chodzi o zupełnie nowy projekt, zazwyczaj stosuję podejście „dziel i podbij”.

Staram się izolować główne bloki architektoniczne i zasilać każdą sekcję niezależnie za pomocą przełączników / zasilaczy DC / potencjometrów itp., Aby zasymulować zależności potrzebne do uruchomienia obwodu.

Takie podejście na ogół nie jest trudne, gdy mamy do czynienia z zasilaczami - większość konwerterów potrzebuje tylko wejścia i być może kilku sygnałów logicznych, aby zacząć się przełączać (i mam nadzieję, że nie uwolni magicznego dymu awarii).

Tablice, które są drugimi / trzecimi spinami (porządki) zwykle nie wymagają takiej staranności. Mogę izolować tylko te części obwodu, które zostały zmienione, przetestować je niezależnie i zapisać testowanie pozostałej części obwodu pod kątem całkowitego włączenia.

Nie zapomnij o swoim osobistym wyposażeniu ochronnym. Bardzo niewygodne jest zasilanie czegokolwiek z odsłoniętymi komponentami bez okularów ochronnych (a czasami zatyczek do uszu ...)


1
+1 za ochronę oczu / uszu! Kiedyś usłyszałem eksplodujący przetwornik cyfrowo-analogowy z całego laboratorium - facet nad nim miał chwilowe martwe pole widzenia przez około 5 minut!
Toybuilder

3

Cóż, jednym z pierwszych kroków, aby zapobiec wystąpieniu zwartych sieci, jest dobre wykorzystanie kontroli reguł projektowania w oprogramowaniu tablicy. Zarówno na poziomie schematu, aby upewnić się, że sieci nie zostaną przypadkowo ze sobą połączone, kiedy nie powinny; i na poziomie PCB, aby zapewnić wystarczające odstępy między sieciami.

Jeśli są jakieś elementy projektu, które nie zostały przetestowane, zamiast zajmować się zupełnie nowym projektem na jednej płycie, staram się budować płyty testowe proof-of-concept i proof-performance na tanich proto PCB (jak usługa BareBonesPCB Advanced Circuit - dwa warstw, bez maski lutowniczej, około 80 USD za 24-godzinny obrót).

Nawet kiedy robię kompletną płytę, na płytach pierwszej generacji lubię wkładać wiele przełomowych nagłówków. W niektórych przypadkach można zapełnić dwie identyczne płytki drukowane, jedną z częścią „stabilną”, z pinami głowicy wychodzącymi na górę; a drugi z częścią „testującą”, z dolnymi gniazdami sworznia wejściowego. Jeśli wszystko się powiedzie, możesz zakończyć wypełnianie obu tablic. Lub możesz zakręcić nowymi wersjami obwodu „testującego”, który możesz zamienić na swoje miejsce.


nagłówki są świetne, szczególnie jeśli potrzebujesz przerobić lub dodać funkcje później lub potrzebujesz improwizowanych wyników debugowania. Podoba mi się również pomysł zrobienia BareBones na małe prototypy ... mógłbym to zrobić sam
ajs410
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.