Metoda przypisywania unikalnych adresów na pokładzie

18

Projektujemy płytki nadajnika / odbiornika do aplikacji zdalnego sterowania RF. Aby uniknąć rozmów między niedopasowanymi parami, chcemy unikatowych adresów na płycie. Adres jest podawany do układów enkodera / dekodera poprzez 8 pinów adresowych.

Prawdopodobnie ręcznie zmontujemy niewielką partię (około 25), ale PCB profesjonalnie wykonamy.

Jaki jest twój ulubiony sposób na tworzenie unikalnych adresów na pokładzie w takiej sytuacji? Zastanawiałem się nad przełącznikami DIP, zworkami i śladami cięcia / skakania. Skłaniam się do wycinania śladów, ale chciałbym usłyszeć, co zwykle robią bardziej doświadczeni ludzie.

Steven Ourada
źródło
jak musiałyby być one rekonfigurowalne? i jak fizycznie wytrzymały? czy można bezpiecznie założyć ze zdalnego sterowania RF, że powstanie wrogie środowisko wibracyjne?
JustJeff,
4
Unikaj przełączników DIP; ludzie je zmienią.
Brian Carlton,
@JustJeff, nie trzeba ich ponownie konfigurować, chyba że jeden z kontrolerów ulegnie awarii i trzeba go wymienić lub coś w tym rodzaju. Nie będzie dużo wibracji.
Steven Ourada,
@Brian, tak, istnieje taka możliwość, ale nie martwię się zbytnio.
Steven Ourada,
1
Zdaję sobie sprawę, że moje pytanie było prawdopodobnie zbyt ogólne i wyrażone. Lubię odpowiedzi i nauczyłem się dobrych rzeczy; dzięki wszystkim, którzy przyczynili się.
Steven Ourada,

Odpowiedzi:

15

Dziwię się, że nikt nie wspomniał o EEPROM. Wiele razy musieliśmy umieszczać unikalne liczby w produktach i przez większość czasu trafiały one do pamięci EEPROM procesora lub czasami do zarezerwowanych miejsc pamięci programu. Zazwyczaj jest to prosta czynność, która jest ostatnim etapem testu produkcyjnego i procesu kalibracji. Gdy jednostka zostanie uznana za działającą i zostanie przeprowadzona jakakolwiek kalibracja, system testowania produkcji wysyła polecenie do mikro w celu nadania jej numeru seryjnego lub używa interfejsu programowania do bezpośredniego zapisania numeru seryjnego w odpowiedniej lokalizacji. Czasami pliki HEX programujące się w mikro są jednorazowo modyfikowane z pliku HEX szablonu głównego z unikalnym numerem seryjnym dla tego urządzenia, z sumami kontrolnymi i ewentualnie innymi informacjami odpowiednio zmodyfikowanymi.

Kilka lat temu współpracowałem z firmą, która produkowała setki tysięcy drobiazgów rocznie za pośrednictwem producenta kontraktowego w Chinach. Wysłaliśmy dwa kompletne systemy testowe do chińskiego producenta. Program testowy zachowałby plik z numerem seryjnym i moglibyśmy wysłać im nowe pliki, aby skonfigurować jednostki dla nowych zakresów numerów seryjnych. Przez jakiś czas wszystko szło dobrze, aż pewnego dnia dostaliśmy jednostki o zduplikowanych numerach seryjnych. Okazuje się, że Chińczycy zrobili coś głupiego z jednym z systemów, aby przestał działać. Zamiast powiedzieć nam, co mają zrobić, jeśli coś pójdzie nie tak, zrobili pełną kopię dysku z działającego systemu do innego systemu. To oczywiście skopiowało również pliki numerów seryjnych i bieżący stan, więc od tego momentu oba systemy wydały tę samą sekwencję numerów seryjnych.

Zaprojektowałem nowsze systemy testowe, więc upewniłem się, że zakres numerów seryjnych i aktualny stan zostały zachowane w pamięci EEPROM w sprzęcie testera i nie dostarczyłem żadnej dokumentacji na ten temat producentowi. Zrobiliśmy około tuzina płyt testowych i ostrożnie przypisaliśmy do każdego z nich osobne zakresy numerów seryjnych. Kiedy producent musiał zostać zaktualizowany o nowy blok numerów seryjnych, wysłaliśmy mu zaktualizowane płyty testowe. Jak dotąd ten system działał bardzo dobrze. Ułatwia także produkcję okazjonalnej jednostki tutaj lub w innym miejscu produkcji. Każde miejsce ma własny tester z własnym zakresem numerów seryjnych, a tylko jedna osoba była głównym opiekunem numerów seryjnych i przypisywała nowe zakresy testerom.

Olin Lathrop
źródło
1
Cześć Olin! Brian wspomniał o EEPROM w swojej odpowiedzi, ale nie dodał szczegółów. Twoja historia wskazuje na słaby punkt programowego przypisywania unikalnych identyfikatorów. Istnieje łańcuch produkcji, który obejmuje pewne logistyczne kroki, w których może się nie udać. Zdarzyło się nam to także wtedy, gdy usługa programowania naszego disti zapomniała zwiększyć licznik. Wcześniej czy później takie rzeczy się zdarzają. IMO nic nie przebije SSN (patrz moja odpowiedź): bez programowania, bez administracji, bez niczego :-)
stevenvh
15

Moim ulubionym jest Maxim DS2411 . Jest to niewielka część SOT-23, która zawiera unikalny numer SSN (silikonowy numer seryjny). Sam w sobie niezbyt tani, ale może być najtańszy ogólnie , jeśli myślisz o kosztach logistycznych i kosztach programowania w innych rozwiązaniach. Rozwiązanie SSN nie wymaga żadnej ręcznej interwencji / operacji oprócz automatycznego pick-and-place.
Ryzyko duplikatów identyfikatorów wynosi prawie zero.
W komentarzu do tej odpowiedzi mikeselecticstuff wskazał na te adresy EEPROM adresów MAC . Są to wspólne pamięci EEPROM z unikalnym identyfikatorem zaprogramowanym w chronionym przed zapisem obszarze pamięci EEPROM. Są tańsze niż DS2411 i mają trochę miejsca na dane użytkownika.

Ω

wprowadź opis zdjęcia tutaj

Operator musi po prostu położyć kroplę lutu na obu połówkach, aby „zaprogramować” jeden bit. Mniej niż połowa czasu (jeden punkt lutowniczy zamiast dwóch i brak elementu do pobrania i umieszczenia) i nie wymaga komponentów. Więc oszczędzasz dwa razy. I jak mówi Olin, z odpowiednim rozmiarem i odstępem, oba są łatwe do zmostkowania i odblokowania.

Jeśli Twoja tablica ma mikrokontroler (która tablica obecnie nie?), Możesz zaprogramować w niej numer seryjny przez usługę programowania. Koszt logistyki po twojej stronie jest minimalny: po prostu śledź, od którego numeru seryjnego powinny zacząć od każdej partii programowania.
Ryzyko błędów powodujących duplikaty identyfikatorów jest niskie, w zależności od tego, jak dobrze zorganizowana jest usługa programowania, ale wiedziałem, że tak się stało.

Wiedziałem o następujących rzeczach, ale nie pamiętałem, jak się nazywają, i pomyślałem również, że potrzebuję zdjęcia, aby lepiej to wyjaśnić.

programowalny bocznik DIP
Najwyraźniej nazywa się to programowalnym bocznikiem DIP . Używasz go jak przełącznika DIP, ale zamiast miniaturowych przełączników używa słabych połączeń, które możesz „zaprogramować”, rozbijając je długopisem lub małym śrubokrętem.
Ma to tę samą dużą wadę, co rozwiązania do lutowania selektywnego: operator musi zdecydować, które połączenia należy przerwać, a które należy pozostawić nietknięte, a wtedy błąd ludzki nigdy nie będzie daleko. Niezawodność pod względem wyjątkowości: niska.

stevenvh
źródło
2
Zgadzam się co do zworek lutowniczych, jeśli człowiek musi to zrobić. Próbowałem kilku różnych rzeczy, ale znalazłem dwa pady półkola, które działają najlepiej. Przy odpowiednim rozmiarze i odstępie można je zarówno łatwo, jak i odblokować. Niektóre z nich można zobaczyć na płycie pod adresem embedinc.com/products/ready02/qprot05_1280.jpg poniżej prawego końca złącza DB-9 w górnej części płyty.
Olin Lathrop,
7

EEPROM I2C są dobre i małe. Istnieją 1-żyłowe układy numerów seryjnych.

Brian Carlton
źródło
Hmm, nie myślałem o tym zbyt wiele, chociaż musiałbym zaprojektować jakiś interfejs, aby to odczytać i stale prezentować adres koderowi / dekoderowi, ponieważ nie mam gotowego dostępu do wewnętrznych elementów tego układu. Teraz, kiedy o tym wspominasz, wydaje się, że sprzedawca może to zaoferować, ponieważ koder / dekoder to tylko mikrokontrolery z jakimś zastrzeżonym oprogramowaniem. Może muszę z nimi o tym porozmawiać.
Steven Ourada,
3

Jeśli adres ma zostać ustawiony przez osobę zdolną do lutowania, można ułożyć ślad opornika do montażu powierzchniowego dla każdego styku i selektywnie lutować w zworkach 0 omów.

B Pete
źródło
Tak, to jedna droga. Moja teoria jest taka, że ​​nieco łatwiej jest wycinać ślady niż skoczki lutownicze, ale mogę się mylić.
Steven Ourada,
5
@Steven - na pierwszy rzut oka ślady cięcia mogą wyglądać na prostsze, ponieważ nie potrzebujesz komponentów, ale cięcie jest nieuporządkowane, a sprawdzenie, czy masz odpowiednią przerwę, jest kosztowne. Lutowanie jest tańsze, szczególnie. kiedy nie potrzebujesz zworek (zobacz moją odpowiedź).
stevenvh,
1

Do prostego adresowania 8-bitowego zwykle używam wycinków. Jest bardziej trwały niż zworki / łącza lutownicze i odstrasza ludzi od jego zmiany. Tak zazwyczaj robię to na tablicy:

wprowadź opis zdjęcia tutaj

Każde łącze jest podkładką (ale jest to ograniczenie mojego oprogramowania - wolałbym, żeby nie było cynowane), więc nie dostaje maski lutowniczej, a jedynie 5 mil (w przeciwieństwie do 10 mil dla reszty toru), co ułatwia cięcie. 5 mil to minimum dla sygnału, który niosą w moim przypadku - możesz użyć grubszego. W moim przykładzie jest to po prostu użycie zestawu rezystorów jako rezystorów podciągających. Możesz oczywiście zastąpić to, co chcesz.

Pamiętaj tylko, aby upewnić się, że nie ma nad nimi maski lutowniczej.

Inną opcją jest (jak ktoś już wspomniał) użycie podkładek oporowych SMT i zmostkowanie ich. Ale jeśli masz zamiar przejść do rezystorów, które działają jak podciągnięcia, dlaczego nie po prostu zrezygnować z rezystorów, z którymi w pierwszej kolejności nie chciałbyś się połączyć?

Majenko
źródło
4
Aby odpowiedzieć na ostatnie pytanie: ponieważ koszty selektywnego umieszczania komponentów są drogie; musisz to zrobić ręcznie. Tańsze jest umieszczenie komponentu za pomocą pick-and-place i lutowanie 1 punktu ręcznie niż manualne pick-and-place, a następnie ręczne lutowanie dwóch punktów. Ponadto, jeśli umieścisz wszystkie rezystory, możesz użyć tablicy rezystorów (tak jak zrobiłeś), co jest również tańsze. Koszt umieszczenia 1 opornika >> koszt samego opornika.
stevenvh,
2
W jaki sposób cięcie jest bardziej trwałe niż lutowanie? Mogę odsprzedać twoje cięcie tak łatwo, jak możesz usunąć mój lut. Lutowanie jest również bardziej niezawodne (skąd wiesz, że jest odpowiednio przycięte). Szczerze mówiąc, wcale nie podoba mi się pomysł cięcia, ale to było oczywiste, zakładam :-)
stevenvh
To najprawdziwsza prawda. Nie korzystam jeszcze z P&P - moje tomy nie są tego warte. Chciałbym jednak kiedyś zbudować własną maszynę P&P ... Ale najpierw muszę zbudować wiertarkę CNC do otworów;)
Majenko,
Tak, możesz go przylutować tak łatwo. Trwałość jest bardziej psychologiczna niż fizyczna.
Majenko,
Jeśli twoje P&P będą w stanie wykonać 01005s (0,25 mm x 0,12 mm), chcę przyjść i rzucić okiem! Nie mam pojęcia, jak to robią!
stevenvh,
1

Jeśli masz w obwodzie jakieś urządzenie 1-Wire, twoja płytka urodzi się z numerem seryjnym.

Mam płytkę z falownikiem, a ponieważ MOSFET-y są bardzo ciepłe, dodałem czujnik temperatury DS18B20 na radiatorze, wykrywając temperaturę MOSFET-ów. Dzięki temu mój falownik otrzymał numer seryjny przypisany do czujnika temperatury.

Możesz również użyć kilku bezpieczników na swojej płycie i wysadzić niektóre z nich przed opuszczeniem fabryki, aby działać jako urządzenie z numerem seryjnym.

Maxthon Chan
źródło