Я разработал печатную плату для мелкого производства; В настоящее время я вручную паяю их партиями по 20 штук за раз. Эта печатная плата использует микроконтроллер ATMEGA168, который я программирую перед пайкой на плату - в данный момент этот метод хорошо работает для меня.
Я рассчитываю получить партию из 200 досок, изготовленных и собранных для меня, поскольку продукт, который я разработал, кажется довольно популярным. Будет ли лучше включить заголовок ICSP на плату или продолжать самостоятельно программировать микросхемы? Перепрограммирование платы после изготовления или сборки не является обязательной или обязательной функцией.
Я не уверен, как это делается в более масштабной производственной среде? Добавление заголовка ICSP немного увеличит стоимость производства, поэтому предварительное программирование является стандартной практикой?
Если у вас есть место для заголовка, это, вероятно, лучший вариант, и слегка смещенные контакты, которые Majenko рекомендует, - это хороший способ удерживать соединитель на месте, не добавляя сложности.
Но вот альтернативный подход, для плат, у которых нет места для заголовка, или стандартный заголовок не выполняет все ваши задачи по программированию / настройке / тестированию платы.
Учитывая небольшую форм-фактор PCB, как здесь (диаметр 33 мм)
вы можете выложить его с контрольными точками (с надписью на спине)
и создайте для него тестовый прибор (используя Pogo Pins )
Это требует некоторой способности к обработке и, по крайней мере, сверла для стойки (потому что штифты pogo должны быть точно вертикальными). Однако, если вы готовы рискнуть прототипом печатной платы, вы можете прикрепить ее к листу материала и «проткнуть» через отверстия контрольной точки, чтобы получить pogo-штифты точно в нужном месте. (Я получаю 10 печатных плат по смехотворно низкой цене от Itead, так что потерять одну не составляет особого труда).
С токарным станком и фрезой изготовление столбов и зажимов для размещения печатной платы в нужном месте - пустяк, но это не так уж сложно с более простыми инструментами.
Затем вы просто устанавливаете каждую плату, программируете и тестируете ее. Свободный разъем обычно идет к контактам заголовка на Панели запуска TI, используемой для программирования этого MPU (TI MSP430) через интерфейс SBW, но тот же принцип применим к JTAG или другим интерфейсам. (Коричневый кабель наверху - это коаксиальный кабель, который передает калибровочный сигнал на частотомер).
Полированная основа из красного дерева является необязательной; Я просто предпочитаю стиль стимпанк для своих тестовых приспособлений.
источник
Я всегда добавляю место для заголовка ICSP, даже если он не заполнен. У меня есть три способа сделать это на данный момент в зависимости от ситуации.
У одного из моих проектов есть очень тонкий заголовок шага, для которого я построил адаптер (провод с твердой жилой 0,6 мм идеально подходит для этого):
Я использую этот разъем, когда пространство в абсолютной премии. (Извините, это размыто, камера моего телефона отключена).
Второе расположение, которое я часто использую, - это включение ICSP в другой заголовок. Если выводы ICSP также можно использовать в качестве выводов GPIO, и вы можете использовать их с отсоединяемым соединением, то достаточно просто включить любые другие соединения ICSP, которые вам могут понадобиться (например, MCLR), с минимальными затратами. Затем вы просто подключаете свой программист к этому заголовку с помощью адаптера, который должен быть достаточно простым для создания.
Третий способ состоит в том, чтобы предоставить «ступенчатый» или «смещенный» заголовок для ICSP. Я использую это в основном на платах разработки, где конечный пользователь может захотеть сделать ICSP, но не хочет испортить свою плату, запаяв заголовок навсегда. Эта площадь позволяет стандартному жатке плотно прилегать и обеспечивает хороший твердый контакт без припоя:
Когда вы начинаете работать с гораздо большими количествами, то, безусловно, может быть более выгодно заставить производителя микросхем предварительно запрограммировать микросхемы для вас с помощью вашей прошивки. Я думаю, что все основные производители предоставляют такую возможность.
источник
Если кто-то использует процессор, который может быть перепрограммирован в схеме, я настоятельно рекомендую, чтобы платы были сконструированы таким образом, чтобы разрешить его использование, даже если для фактического использования этой функции потребуется создание приспособления для этой конкретной цели, а не планирую строить один. Если проблема с микропрограммой обнаружена после изготовления большой партии плат, сборка устройства, которое может перепрограммировать эти платы, может быть намного дешевле, чем необходимость переделывать или перестраивать их.
В некоторых случаях хорошим подходом может быть выбор схемы ввода / вывода платы, чтобы выводы контроллера, необходимые для перепрограммирования внутри цепи, были предназначены для целей, которые «естественным образом» приводят к тому, что они подвергаются воздействию легко доступных точек контакта. Например, плата, предназначенная для использования с металлическими купольными контактами, может иметь сами контакты, подключенные к контактам внутрисхемного программирования. Такой дизайн не потребовал бы выделение какого-либо места в макете для разъема для программирования, но - особенно, если контакт батареи также был, как правило, имеет размеры, допускается, чтобы разъем для программирования проходил с помощью простых подпружиненных контактов.
Обратите внимание, что это не обязательно имеет значение, если код кажется хорошо протестированным; переход от одной партии чипов к другой все еще может вызвать неожиданные проблемы. Например, я разработал продукт, который должен был отключаться под управлением процессора, так как вывод процессора был «высоким» на выводе, когда он должен был быть «включен». В первой партии из 10000 единиц все работало нормально, но в более поздней партии процессор начал работать со сбоями, когда его напряжение достигало около 2 вольт, и мог переключить этот вывод обратно на «высокий»; 2-вольтного «высокого» выхода было едва достаточно, чтобы снова включить устройство. Поскольку было указано, что процессор остается в режиме ожидания до 1,6 вольт IIRC, можно было исправить проблему, перепрограммировав устройства так, чтобы они переходили в спящий режим при активации их состояния выключения. Если бы такое перепрограммирование было бы невозможным, потребовалась бы гораздо более дорогая переделка (или же слом и восстановление).
источник