Мы разрабатываем платы передатчика / приемника для применения с дистанционным управлением. Чтобы избежать разговоров между несовпадающими парами, нам нужны уникальные адреса для каждой платы. Адрес задается микросхемам кодера / декодера через 8 адресных контактов.
Мы, вероятно, соберем небольшую партию (около 25) вручную, но профессионально изготовим печатные платы.
Какой ваш любимый способ делать уникальные адреса для каждой платы в такой ситуации? Я размышлял о DIP-переключателях, перемычках и следах резки / перемычек. Я склоняюсь к сокращению следов, но я хотел бы услышать, что обычно делают более опытные люди.
pcb-design
addressing
Стивен Оурада
источник
источник
Ответы:
Я удивлен, что никто не упомянул EEPROM. Нам приходилось вводить уникальные числа в продуктах несколько раз, и большую часть времени они помещались в EEPROM процессора или иногда в зарезервированные места памяти программ. Это, как правило, простая вещь в качестве заключительного этапа производственного испытания и процесса калибровки. После того, как устройство считается работающим и любая калибровка была выполнена, система производственного тестирования отправляет микро команду команду присвоить ей свой серийный номер или использует программный интерфейс для прямой записи серийного номера в соответствующее место. Иногда HEX-файлы, которые программируются на micro, одноразово модифицируются из HEX-файла основного шаблона с уникальным серийным номером для этого устройства, с соответствующими контрольными суммами и, возможно, другой информацией.
Несколько лет назад я работал с компанией, которая производила сотни тысяч штук в год через контрактного производителя в Китае. Мы отправили две полные тестовые системы китайскому производителю. Тестовая программа будет поддерживать файл серийного номера, и мы можем отправить им новые файлы, чтобы настроить устройства для новых диапазонов серийных номеров. Некоторое время все шло достаточно хорошо, пока однажды мы не получили устройства с дублирующимися серийными номерами. Оказывается, китайцы сделали что-то глупое с одной из систем, чтобы она больше не работала. Вместо того, чтобы сказать нам, что они должны были строго выполнять, если что-то пошло не так, они сделали полную копию диска с рабочей системы на другую. Это, конечно, скопировало файлы серийных номеров и текущее состояние, так что с тех пор обе системы раздавали одинаковую последовательность серийных номеров.
Я начал проектировать новые тестовые системы, поэтому я удостоверился, что диапазон серийных номеров и текущее состояние были сохранены в EEPROM в оборудовании тестера и не предоставил никакой документации об этом производителю. У нас было изготовлено около десятка плат тестеров, и мы тщательно присвоили отдельные диапазоны серийных номеров каждому. Когда производителя нужно было обновить новым блоком серийных номеров, мы отправили им обновленные платы тестеров. До сих пор эта система работала очень хорошо. Это также позволяет легко производить единицу измерения здесь или на другом производственном участке. Каждое место имеет своего собственного тестера с собственным диапазоном серийных номеров, и только один человек был главным хранителем серийных номеров и назначал новые диапазоны для тестеров.
источник
Мой любимый это Максим DS2411 . Это небольшая часть SOT-23, которая содержит уникальный SSN (кремниевый серийный номер). Не очень дешево само по себе, но может быть самым дешевым в целом , если учесть затраты на логистику и затраты на программирование в других решениях. Решение SSN не требует какого-либо ручного вмешательства / операции в дополнение к автоматическому захвату и размещению.
Риск дублирования идентификаторов практически равен нулю.
В комментарии к этому ответу mikeselecticstuff указал на эти EEPROM MAC-адреса . Это обычные EEPROM с уникальным идентификатором, запрограммированным в защищенной от записи области EEPROM. Они дешевле, чем DS2411, и у них осталось место для хранения пользовательских данных.
Оператор просто должен положить каплю припоя на обе половины, чтобы «запрограммировать» один бит. Менее половины времени (одна точка пайки вместо двух, и не нужно выбирать и размещать компоненты), и никаких компонентов не требуется. Таким образом, вы экономите дважды. И, как говорит Олин, при правильном размере и зазоре их легко соединять и разбирать.
Если на вашей плате есть микроконтроллер (какой платы нет в наши дни?), Вы можете запрограммировать серийный номер на нем службой программирования. Затраты на логистику на вашей стороне минимальны: просто следите за тем, с какого серийного номера они должны начинаться в каждом пакете программ.
Риск ошибок, приводящих к дублированию идентификаторов, низок, в зависимости от того, насколько хорошо организована служба программирования, но я знаю, что это происходит.
Я знал о следующем, но я не помнил, как они назывались, и я также думал, что мне нужна картина, чтобы объяснить это лучше.
Видимо это называется программируемым шунтом DIP . Вы используете его как DIP-переключатель, но вместо миниатюрных переключателей используются слабые соединения, которые вы можете «запрограммировать», сломав их ручкой или небольшой отверткой.
Это имеет тот же большой недостаток, что и решения для выборочной пайки: оператор должен решить, какие соединения разорвать, а какие оставить нетронутыми, и тогда человеческая ошибка никогда не исчезнет. Надежность в отношении уникальности: низкая.
источник
I2C EEPROM хорошие и маленькие. Существуют 1-проводные чипы серийного номера.
источник
Если адрес должен быть установлен кем-то с возможностью пайки, вы можете расположить контактное сопротивление для каждого контакта и выборочно припаять с помощью перемычек на 0 Ом.
источник
Для простой 8-битной адресации я обычно использую треки. Он более постоянен, чем перемычки / паяные ссылки, и отговаривает людей от его изменения. Вот как я обычно делаю это на доске:
Каждая ссылка - это пэд (но это ограничение моего программного обеспечения - я бы предпочел, чтобы оно не было луженым), поэтому оно не получает маску припоя и только 5 мил (в отличие от 10 мил для остальной части трека), которые облегчает резку 5 мил - это минимум для сигнала, который они несут в моем случае - вы можете использовать толще. В моем примере это просто использование пакета резисторов в качестве подтягивающих резисторов. Очевидно, вы могли бы заменить это на что угодно.
Просто помните, чтобы над ними не было маски припоя.
Другой вариант заключается в том, чтобы (как кто-то еще упомянул) использовать контактные площадки SMT и соединить их. Но, если вы просто собираетесь пойти к резисторам, чтобы они работали как подтягивающие, почему бы просто не отключить резисторы, к которым вы бы не подключались?
источник
Если в вашей схеме есть какое-либо устройство 1-Wire, ваша плата будет иметь серийный номер.
У меня есть плата силового инвертора, и поскольку МОП-транзисторы имеют тенденцию нагреваться, я добавил датчик температуры DS18B20 на радиатор, измеряющий температуру МОП-транзисторов. Это также дало моему инвертору серийный номер, присвоенный датчику температуры.
Также вы можете использовать несколько предохранителей на своей плате и перегнать некоторые из них перед отправкой с завода, чтобы они функционировали как устройство с серийным номером.
источник