Метод призначення унікальних адресних плат


18

Ми розробляємо плати передавача / приймача для програми дистанційного керування РФ. Щоб уникнути розмови між невідповідними парами, нам потрібні унікальні адреси за дошкою. Адреса вказана для мікросхеми кодера / декодера через 8 адресних штифтів.

Ми, мабуть, зіберемо невелику партію (близько 25) вручну, але будемо мати друковані плати професійно виготовлені.

Який ваш улюблений спосіб робити унікальні адреси на борту в такій ситуації? Я розмірковував DIP-перемикачі, перемички та сліди різання / перемички. Я схиляюся до вирізання слідів, але хотів би почути, що зазвичай роблять досвідченіші люди.


наскільки вони повинні бути налаштовані? і як фізично міцний? чи безпечно припустити від дистанційного керування РФ, що буде вороже середовище вібрації?
JustJeff

4
Уникати DIP-перемикачів; люди їх змінять.
Брайан Карлтон

@JustJeff, їх не слід було б переналаштовувати, якщо один з контролерів не виходить з ладу і його потрібно замінити чи щось подібне. Вібрації не буде багато.
Стівен Оурада

@Brian, так, є така можливість, але я не надто переживаю з цього приводу.
Стівен Оурада

1
Я усвідомлюю, що моє питання було, мабуть, занадто широким і думкою. Мені подобаються відповіді і я навчився хорошого; дякую всім, хто зробив свій внесок.
Стівен Оурада

Відповіді:


15

Я здивований, що ніхто не згадав про EEPROM. Нам довелося багато разів вводити унікальні номери в продукти, і більшість часу вони потрапляли в EEPROM процесора або іноді зарезервовані місця пам'яті програми. Зазвичай це просто, як зробити останнім етапом виробничого випробування та процесу калібрування. Після того, як блок вважається працюючим і проводиться будь-яка калібрування, система тестування виробництва надсилає команду мікрофону, щоб дати йому свій серійний номер, або використовує інтерфейс програмування, щоб безпосередньо записати серійний номер у відповідному місці. Іноді файли HEX, які програмуються в мікрофон, одноразово модифікуються з файлу HEX головного шаблону з унікальним серійним номером для цього пристрою, з контрольними сумами та, можливо, іншою інформацією, відповідно зміненою.

Кілька років тому я працював з компанією, яка виробляла 100 тисяч тисяч дрібниць на рік через контрактного виробника в Китаї. Ми надіслали китайським виробником дві повні системи тестування. Тестова програма підтримувала б файл серійного номера, і ми могли б надсилати їм нові файли для налаштування одиниць для нових діапазонів серійних номерів. На деякий час все пройшло досить добре, поки одного разу ми не отримали одиниці з повторюваними серійними номерами. Виявляється, китайці зробили щось дурне з однією із систем, щоб вона більше не працювала. Замість того, щоб сказати нам, що вони мали строгі накази зробити, якщо щось пішло не так, вони зробили повну копію диска з робочої системи в іншу систему. Це, звичайно, теж скопіювало файли серійних номерів та поточний стан, тому з тих пір обидві системи роздавали однакову послідовність порядкових номерів.

Мені довелося розробляти новіші тестові системи, тому я переконався, що діапазон серійних номерів та поточний стан зберігаються в EEPROM в апараті тестера та не надав жодної документації про це виробникові. У нас було близько десятка зроблених тестер-дощок, і ми ретельно присвоювали окремі діапазони серійних номерів кожному. Коли виробнику потрібно було оновити новий блок серійних номерів, ми надіслали їм оновлені тестер-дошки. Поки ця система спрацювала дуже добре. Це також дозволяє легко виготовляти одиничні пристрої тут або на іншому виробничому майданчику. Кожне місце має власний тестер із власним діапазоном серійних номерів, і лише одна людина була головним зберігачем серійних номерів і призначала б тестерам нові діапазони.


1
Привіт Олін! Брайан згадав EEPROM у своїй відповіді, але не додав деталей. Ваша історія покладає палець на слабку точку програмного присвоєння унікальних ідентифікаторів. Існує виробничий ланцюг, який передбачає деякі логістичні кроки, де все може піти не так. Це трапилося і з нами колись, коли служба програмування нашої компанії забула збільшити лічильник. Рано чи пізно такі речі трапляються. IMO нічого не перемагає SSN (див. Мою відповідь): ні програмування, ні адміністрування, ні нічого :-)
stevenvh

15

Мій улюблений - Maxim DS2411 . Це невелика частина SOT-23, яка містить унікальний SSN (серійний номер кремнію). Сама по собі не дуже дешева, але може бути найдешевшою в цілому , коли ви думаєте про накладні витрати на логістику та програмування в інших рішеннях. Рішення SSN не вимагає жодного ручного втручання / операції на додаток до автоматизованого місця вибору.
Ризик повторюваних ідентифікаторів майже дорівнює нулю.
У коментарі до цієї відповіді mikeselecticstuff вказав на ці MAC-адреси EEPROM . Вони є звичайними EEPROM з унікальним ідентифікатором, запрограмованим у захищеній від запису зоні EEPROM. Вони дешевші, ніж у DS2411, і зберігають дещо даних для користувачів.

Ω

введіть тут опис зображення

Операторові просто потрібно покласти краплю припою на обидві половинки, щоб "програмувати" один біт. Менше половини часу (одна точка пайки замість двох, і компонент не потрібно вибирати та розміщувати), і не потрібні компоненти. Так ви економите двічі. І, як каже Олін, при правильному розмірі та проміжку вони легко і простувати, і перетинати.

Якщо на вашій платі є мікроконтролер (яка плата немає в ці дні?), Ви можете мати серійний номер, запрограмований в ній службою програмування. Логістична вартість на вашій стороні мінімальна: просто слідкуйте, з якої серії потрібно починати на кожній партії програмування.
Ризик помилок у результаті повторюваних ідентифікаторів низький, залежно від того, наскільки добре організована служба програмування, але я знаю, що це відбувається.

Я знав про наступне, але не пам’ятав, як їх називали, і також думав, що мені потрібна картина, щоб пояснити це краще.

програмований DIP-шунт
Мабуть, це називається програмованим DIP шунтом . Ви використовуєте його як DIP-перемикач, але замість мініатюрних вимикачів він використовує слабкі з'єднання, які ви можете «запрограмувати», розірвавши їх ручкою або маленькою викруткою.
Це має той самий великий недолік, що і рішення для вибіркового паяння: оператор повинен вирішити, які з'єднання розірвати, а які слід залишити неушкодженими, і тоді людська помилка ніколи не буде далеко. Надійність, що стосується унікальності: низька.


2
Я погоджуюсь про перемички припою, якщо людина повинна робити кожен. Я спробував кілька різних речей, але виявив дві колодки з півкола, щоб вони працювали найкраще. Маючи правильний розмір і проміжок, вони легко перемикати і відміняти. Деякі з них ви можете побачити на платі за адресою embedinc.com/products/ready02/qprot05_1280.jpg нижче правого кінця роз'єму DB-9 біля верхньої частини плати.
Олін Латроп

7

I2C EEPROM хороші та малі. Є однопровідні мікросхеми серійного номера.


Хм, не задумувався над цим, хоча мені довелося б розробити якийсь інтерфейс, щоб прочитати це і постійно представляти адресу кодеру / декодеру, оскільки я не маю готового доступу до внутрішніх даних згаданого чіпа. Тепер, коли ви згадуєте про це, схоже, постачальник може запропонувати, оскільки кодер / декодери - це лише мікроконтролери з деякою власною прошивкою. Можливо, доведеться поговорити з ними про це.
Стівен Оурада

3

Якщо адресу повинен встановити хтось із можливістю пайки, ви можете викласти слід резистора на кожний штифт і вибірково паяти в перемичках 0 Ом.


Так, це один шлях. Моя теорія полягає в тому, що дещо простіше вирізати сліди, ніж паяльні перемички, але я можу помилитися.
Стівен Оурада

5
@Steven - на перший погляд сліди різання можуть виглядати простішими, оскільки вам не потрібні компоненти, але різання брудно, і дорого перевірити, чи немає у вас належного переривання. Пайка дешевша, особливо. коли вам не потрібні перемички (Дивіться мою відповідь).
stevenvh

1

Для простої 8-розрядної адреси я зазвичай використовую скорочення. Це більш постійне, ніж перемички / паяльні ланки, і відвертає людей від його зміни настільки ж. Ось як це я зазвичай роблю на дошці:

введіть тут опис зображення

Кожне посилання є майданчиком (але це обмеження мого програмного забезпечення - я вважаю за краще, щоб він не був луджений), щоб він не мав паяльної маски, а лише 5 мил (на відміну від 10 млів для решти треку), які полегшує різання. 5 миль - це мінімум для сигналу, який вони несуть у моєму випадку - ви можете використовувати товщі. У моєму прикладі це просто використання пакету резисторів як підтягуючих резисторів. Ви, очевидно, можете замінити це тим, що хочете.

Просто пам’ятайте, щоб переконатися, що над ними немає паяльної маски.

Інший варіант - використовувати (як хтось інший) використання прокладок резисторів SMT і перемикати їх. Але якщо ви просто збираєтесь потім перейти до резисторів, щоб вони виступали як підтягувачі, чому б просто не відмовитися від резисторів, до яких ви б не підключили в першу чергу?


4
Щоб відповісти на ваше останнє питання: адже витрати на розміщення селективних компонентів дорогі; ви повинні до цього вручну. Дешевіше розміщувати компонент підхоплювачем та припоєм на 1 бал вручну, ніж вручну, а потім вручну припаювати дві точки. Крім того, якщо ви розміщуєте всі резистори, ви можете використовувати резисторний масив (як і ви), що також дешевше. Вартість розміщення 1 резистора >> вартість самого резистора.
stevenvh

2
Як різання більш постійне, ніж пайка? Я можу вирізати ваш виріз так само просто, як ви можете видалити мій припой. Пайка теж надійніша (як ти знаєш, що вона правильно ріжеться). Якщо чесно, то мені зовсім не подобається ідея вирізання, але це було очевидно, я припускаю :-)
stevenvh

Це дуже правда. Я ще не використовую P&P - мої обсяги не роблять цього вартим. Хоча я хотів би побудувати свій власний верстат P&P якийсь день ... Але спочатку мені потрібно побудувати свердлильний верстат з ЧПУ для отворів;)
Majenko

Можна припаяти його так само легко, так. Постійність більше психологічна, ніж фізична.
Majenko

Якщо ваш P&P зможе виконати 01005 (0,25 мм х 0,12 мм), я хочу прийти і подивитися! Я поняття не маю, як вони це роблять!
stevenvh

1

Якщо у вас є будь-який 1-провідний пристрій у вашій схемі, ваша плата народиться із порядковим номером.

У мене є плата інвертора живлення, і оскільки MOSFET мають тенденцію до нагрівання, я додав на тепловідвідник датчик температури DS18B20, відчуваючи температуру MOSFET. Це також дало моєму інвертору серійний номер, присвоєний датчику температури.

Крім того, ви можете використовувати кілька запобіжників на своїй платі і продути деякі з них, перш ніж виїхати з заводу, щоб вони функціонували як пристрій із серійним номером.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.