ICSP или предварительно запрограммированный микроконтроллер

11

Я разработал печатную плату для мелкого производства; В настоящее время я вручную паяю их партиями по 20 штук за раз. Эта печатная плата использует микроконтроллер ATMEGA168, который я программирую перед пайкой на плату - в данный момент этот метод хорошо работает для меня.

Я рассчитываю получить партию из 200 досок, изготовленных и собранных для меня, поскольку продукт, который я разработал, кажется довольно популярным. Будет ли лучше включить заголовок ICSP на плату или продолжать самостоятельно программировать микросхемы? Перепрограммирование платы после изготовления или сборки не является обязательной или обязательной функцией.

Я не уверен, как это делается в более масштабной производственной среде? Добавление заголовка ICSP немного увеличит стоимость производства, поэтому предварительное программирование является стандартной практикой?

EDCS
источник

Ответы:

18

Я бы предложил всегда включать заголовок в таком количестве (маленький). Если вы получаете большее количество, вы можете рассмотреть прокладки для pogo-выводов (вам нужно было бы сделать приспособление для выравнивания платы) или, в ваших количествах, вы можете использовать один из кабелей Tag Connect, для которого требуются только отверстия и не заселены колодки (они защелкиваются на доске).

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

Помимо того, что вы сможете избавиться от необходимости обновления программного обеспечения, это позволит вам иметь сборочный цех, который будет заполнять доски перед программированием, что может улучшить логистику.

Предварительное программирование, безусловно, является опцией, даже в производственных количествах (вы можете даже сделать так, чтобы дистрибьютор сделал это за вас), но, похоже, оно в основном используется в самых простых приложениях. Обычно микросхемы на платах программируются (или могут программироваться) после сборки.

Спехро Пефхани
источник
Это выглядит как хорошее решение - спасибо за вашу помощь, эти кабели выглядят довольно полезными!
edcs
1
Tag-Connect хорошо работает для этого. Вы также можете получить версии без фиксирующих штифтов (черный пластик справа на изображении), которые вместо этого полагаются на давление или заднюю пластину, которая фиксирует штифты. Обратите внимание, что стоимость изображенного кабеля составляет около 50 долларов. С положительной стороны, контакты PCB стоят около $ 0.
Бен Джексон
20

Если у вас есть место для заголовка, это, вероятно, лучший вариант, и слегка смещенные контакты, которые Majenko рекомендует, - это хороший способ удерживать соединитель на месте, не добавляя сложности.

Но вот альтернативный подход, для плат, у которых нет места для заголовка, или стандартный заголовок не выполняет все ваши задачи по программированию / настройке / тестированию платы.

Учитывая небольшую форм-фактор PCB, как здесь (диаметр 33 мм) введите описание изображения здесь

вы можете выложить его с контрольными точками (с надписью на спине) введите описание изображения здесь

и создайте для него тестовый прибор (используя Pogo Pins ) введите описание изображения здесь

Это требует некоторой способности к обработке и, по крайней мере, сверла для стойки (потому что штифты pogo должны быть точно вертикальными). Однако, если вы готовы рискнуть прототипом печатной платы, вы можете прикрепить ее к листу материала и «проткнуть» через отверстия контрольной точки, чтобы получить pogo-штифты точно в нужном месте. (Я получаю 10 печатных плат по смехотворно низкой цене от Itead, так что потерять одну не составляет особого труда).

С токарным станком и фрезой изготовление столбов и зажимов для размещения печатной платы в нужном месте - пустяк, но это не так уж сложно с более простыми инструментами.

Затем вы просто устанавливаете каждую плату, программируете и тестируете ее. Свободный разъем обычно идет к контактам заголовка на Панели запуска TI, используемой для программирования этого MPU (TI MSP430) через интерфейс SBW, но тот же принцип применим к JTAG или другим интерфейсам. (Коричневый кабель наверху - это коаксиальный кабель, который передает калибровочный сигнал на частотомер). введите описание изображения здесь

Полированная основа из красного дерева является необязательной; Я просто предпочитаю стиль стимпанк для своих тестовых приспособлений.

Брайан Драммонд
источник
Это отличный ответ, и спасибо, что нашли время, чтобы предоставить такой полезный подробный ответ! Я не пометил его как ответ, потому что в моем случае у меня есть место для заголовка ICSP, но я буду помнить об этом, если мне придется создавать что-то крошечное.
edcs
2
Это хороший джиг (или это приспособление?). Есть ли что-нибудь, что могло бы повернуть печатную плату под углом или она выстроена на глаз?
Спехро Пефхани
Я смотрю на pogo-штыри через видимые отверстия для контрольных точек, прежде чем толкнуть и повернуть зажимы. Грубо, но это работает. На больших печатных платах я бы порекомендовал пару установочных штырьков, например, в монтажных отверстиях на печатной плате.
Брайан Драммонд
13

Я всегда добавляю место для заголовка ICSP, даже если он не заполнен. У меня есть три способа сделать это на данный момент в зависимости от ситуации.

У одного из моих проектов есть очень тонкий заголовок шага, для которого я построил адаптер (провод с твердой жилой 0,6 мм идеально подходит для этого):

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

Я использую этот разъем, когда пространство в абсолютной премии. (Извините, это размыто, камера моего телефона отключена).

Второе расположение, которое я часто использую, - это включение ICSP в другой заголовок. Если выводы ICSP также можно использовать в качестве выводов GPIO, и вы можете использовать их с отсоединяемым соединением, то достаточно просто включить любые другие соединения ICSP, которые вам могут понадобиться (например, MCLR), с минимальными затратами. Затем вы просто подключаете свой программист к этому заголовку с помощью адаптера, который должен быть достаточно простым для создания.

Третий способ состоит в том, чтобы предоставить «ступенчатый» или «смещенный» заголовок для ICSP. Я использую это в основном на платах разработки, где конечный пользователь может захотеть сделать ICSP, но не хочет испортить свою плату, запаяв заголовок навсегда. Эта площадь позволяет стандартному жатке плотно прилегать и обеспечивает хороший твердый контакт без припоя:

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

Когда вы начинаете работать с гораздо большими количествами, то, безусловно, может быть более выгодно заставить производителя микросхем предварительно запрограммировать микросхемы для вас с помощью вашей прошивки. Я думаю, что все основные производители предоставляют такую ​​возможность.

Majenko
источник
Спасибо за подробный ответ - определенно полезная информация здесь! Я не принял ваш ответ, потому что я собираюсь использовать предложенный кабель Tag Connect, хотя метод разнесенных контактов будет работать так же хорошо.
edcs
Atmel определенно предоставляет это в качестве опции.
Игнасио Васкес-Абрамс
2
Шатонный след заголовка - чисто гениальный. +1
Владимир Краверо
5

Если кто-то использует процессор, который может быть перепрограммирован в схеме, я настоятельно рекомендую, чтобы платы были сконструированы таким образом, чтобы разрешить его использование, даже если для фактического использования этой функции потребуется создание приспособления для этой конкретной цели, а не планирую строить один. Если проблема с микропрограммой обнаружена после изготовления большой партии плат, сборка устройства, которое может перепрограммировать эти платы, может быть намного дешевле, чем необходимость переделывать или перестраивать их.

В некоторых случаях хорошим подходом может быть выбор схемы ввода / вывода платы, чтобы выводы контроллера, необходимые для перепрограммирования внутри цепи, были предназначены для целей, которые «естественным образом» приводят к тому, что они подвергаются воздействию легко доступных точек контакта. Например, плата, предназначенная для использования с металлическими купольными контактами, может иметь сами контакты, подключенные к контактам внутрисхемного программирования. Такой дизайн не потребовал бы выделение какого-либо места в макете для разъема для программирования, но - особенно, если контакт батареи также был, как правило, имеет размеры, допускается, чтобы разъем для программирования проходил с помощью простых подпружиненных контактов.

Обратите внимание, что это не обязательно имеет значение, если код кажется хорошо протестированным; переход от одной партии чипов к другой все еще может вызвать неожиданные проблемы. Например, я разработал продукт, который должен был отключаться под управлением процессора, так как вывод процессора был «высоким» на выводе, когда он должен был быть «включен». В первой партии из 10000 единиц все работало нормально, но в более поздней партии процессор начал работать со сбоями, когда его напряжение достигало около 2 вольт, и мог переключить этот вывод обратно на «высокий»; 2-вольтного «высокого» выхода было едва достаточно, чтобы снова включить устройство. Поскольку было указано, что процессор остается в режиме ожидания до 1,6 вольт IIRC, можно было исправить проблему, перепрограммировав устройства так, чтобы они переходили в спящий режим при активации их состояния выключения. Если бы такое перепрограммирование было бы невозможным, потребовалась бы гораздо более дорогая переделка (или же слом и восстановление).

Supercat
источник