Comments 23
А по USB оно умеет загружаться? Мы с am335x от TI пробовали такой вариант: встроенный загрузчик грузит по USB специально собранный uboot, uboot грузится и создаёт поверх USB сетевой интерфейс и запускает TFTP-сервер, а потом ПК на этот сервер шлёт прошивку, которая записывается uboot-ом во флэш. Всё по одному интерфейсу. Правда, фьюзы мы не прожигали
И не забыть предусмотреть направляющие или рамку для позиционирования SoM на стенде.
Зачем мучения с пружинными контактами и сложной приспособой к ним, когда проще для программирования и отладки добавить один дешевый коннектор (1.27mm double row pin header) который может быть подключен вручную (это проще...) На который вывести:
сигналы для программирования (JTAG, SWD, etc...);
питание от внешнего источника;
контрольные точки (измерение напряжений вторичных источников питания размещённых на плате, частоты опорного генератора и т.п.);
последовательный порт, USB или сеть (настройка, вывод диагностической информации от процедуры самотестирования).
Если речь о тестировании, то проще реализовать самотестирование путём прошивки отдельной программы или чем-то вроде, а не путём подключения к исключительно сложному внешнему стенду (причем еще разному для каждой новой версии или варианта изделия...) И для чего ещё на этапе разработки электронной схемы предусмотреть механизмы самотестирования.
Причём это может быть даже не разъём, а контакты с краю печатной платы наподобии PCI-ex ламелей и включаться может в какой-либо подходящий ламельный разъём. Соответственно можно сделать "материнскую плату" для программирования и тестирования разом десятка дочерних плат.
Или что-то вроде tag-connect, который может быть как в виде отверстий и контактов на плате (занимает площадь), так и в виде краевых контактов (плата сложней).
Разумеется нужна минимальная защита от дурака, вроде того, что коннектор должен быть или симметричным, или не позволять неправильное включение. И контакты "земли" должны быть продублированы со всех возможных сторон, чтоб питание не осуществлялось через сигнальные цели и защитные диоды при включении "на горячую".
Лучше конечно, чтоб после замыкания контакта и выдержки паузы в полсекунды просто автоматически включалось питание и запускалось программирование, чтоб на компе ничего нажимать не надо было.
проще для программирования и отладки добавить один дешевый коннектор (1.27mm double row pin header)
Предлагаете тестируемое устройство габаритами 42 х 43 х 3 мм превратить в устройство габаритами 42 х 49 х 7 мм ?
Если речь о тестировании, то проще реализовать самотестирование путём прошивки отдельной программы или чем-то вроде, а не путём подключения к исключительно сложному внешнему стенду
Каким образом прошивка протестирует работу аудио, видео, LoRaWAN, 2 езернета, 2 юсб и пр без стенда, к которому подключена вся эта периферия?
а контакты с краю печатной платы наподобии PCI-ex ламелей
http://suddendocs.samtec.com/catalog_english/pcie.pdf
PCI Express разъем на 98 пинов (количество пинов в нашем SoM-модуле) имеет длину 56 мм. Предлагаете устройство габаритами 42 х 43 х 3 мм превратить в устройство габаритами 42 х 56 х 3 мм?
Соответственно можно сделать "материнскую плату" для программирования и тестирования разом десятка дочерних плат
десяток JTAG программаторов, десяток USB-UART адаптеров, два десятка USB-портов на ПК, десяток подключенных аудио-модулей, десяток подключенных видео-модулей, ....
А вариант вывести MicroSD и пару boot битов на контакты SoM-а не рассматривали? Тогда на стенде, за счёт переподтяжки boot битов, можно было бы грузиться с MicroSD и прошивать без программатора. А через нескольких GPIO контролировать результат.
Опять же все в габариты упирается. Размеры SoM-модуля 42 х 43 мм. Разместить на нем разъем для microSD карты не представляется возможным. Плюс, если посмотрите на SoM-модули таких известных производителей, как variscite, например, то SD-карту все-таки выносят на платы расширения.
то SD-карту все-таки выносят на платы расширения.
Так я об этом и говорю.
Аа, понял)
Даже не думали. JTAG нас в принципе устраивает. Видимо, у любой задачи может быть несколько решений.
Доводилось работать с похожим. Если я правильно понял, то его нужно удерживать руками во время обновления прошивки и тестирования? Автоматизация тут не светит.
Да, все верно, держать руками нужно, вопрос лишь только в том , сколько времени занимает весь процес программирования и тестирования , если в течении 1 минуты , то вполне рабочий вариант, если дольше , то тут уже все будет зависеть от выносливости работника, который подготавливает оборудование =) . Но в вашем случае, тоже ведь нужно , чтобы кто-то менял модуль после программирования и тестирования ? =) а могу ещё поинтересоваться , где вы достали подпружиненные контакты ?
Извиняюсь, нашел ссылку на контакты в статье
Да, модуль сменил, запустил скрипт и 5 минут (время работы скрипта) я свободен)
А сидеть неподвижно, затаив дыхание, в течении 5 минут, - нет спасибо)
Согласне , что этим Ваш вариант лучше, что можно раслабляться во время тестирования =)
Вот поэтому я и предлагал материнскую плату на N изделий разом. Логика в том, чтобы экономить время человека. Так получается эти самые 5 минут всё равно человек нужен и за рабочую смену не выпустить более 96 изделий, реально раза в два меньше, и не может работник ничем заниматься ещё.
Вот если бы можно было те же самые 96 плат подключить, условно, за полтора часа, а потом на три часа идти чем-то другим заниматься -- совершенно другое дело было бы. Чтоб потом только где-то на той же матьплате красными диодиками, или на компе, отображались прошедшие тест и неисправные изделия.
Иметь 96 программаторов для этого не нужно. Нужен какой-то коммутатор, мультиплексор, переключающий единственный программатор и всё прочее ко всем приборам по-очереди. Я понимаю, что в случае USB это уже не просто... И в данном случае может быть практически не применимо (много слишком разнотипных сигналов). Но в общем случае такая идея может быть стоящая.
Конечно это зависит от объёмов, зарплат и всего прочего... Если, условно, лишняя сотня рублей в себестоимости производства важна. Или если тест не дай бог не пять минут, а все два часа (с прожаркой в духовке для куры гриль).
PS: честно говоря пост прочитал по диагонали в первый раз и подумалось, что ваш стенд и есть ваше изделие, потому такой странный на ваш взгляд комментарий и написал изначально. Да, в в случае мелкого модуля ваш вариант вполне оптимален...
Наверное я еще по объемам не дорос - 8-ми часовой полноценно загруженной смены нет и в помине.
Наверное, в ближайшее время придем к подобному стенду - на miniPCIe разъемы переходим прямо сейчас. Не соображу пока, как 5-6 пинов JTAG мультиплексировать на N модулей, - но и это решаемо наверное.
А производительность можно ускорить и без распараллеливания. Достаточно скрипт довести до ума, - заменить JTAG на ethernet при обновлении прошивки. В этом случае вполне реально снизить время работы скрипта с 5-ти до 2-х минут.
Бывают похожие с защелками: https://www.tag-connect.com/wp-content/uploads/bsk-pdf-manager/TC2050-IDC_Datasheet_7.pdf
Бывают ещё "летающие контакты".
Мы вот поджимаем "иголками" при тестировании и прошивки ( используем VAR Som Solo).
Да, SD карточка на материнской плате, да с тестированием одновременным и её и usb. Да, сотнями приборов.
Считается хорошим тоном всё таки посмотреть после прошивки, по Ethernet версию того, что зашилось. Мы так вообще ставим в usb на стенде прошички и тестирования wifi и отдельно проверяем трафик с него в эзернет порт.
А зачем тестировать/прошивать готовый SoM-модуль? Он же почти наверняка тестировался производителем и к вам приходят заведомо исправные модули с уже прожжеными фьюзами и прошитой прошивкой, которую можно обновить стандартными средствами (sysupgrade, например)?
Вопрос:
"А зачем тестировать/прошивать готовый SoM-модуль? Он же почти наверняка тестировался производителем и к вам приходят заведомо исправные модули с уже прожжеными фьюзами и прошитой прошивкой, которую можно обновить стандартными средствами (sysupgrade, например)? "
Первая часть ответа : Для того чтобы обеспечить надёжность в соответствии со стандартом надёжности в компании. Типичный пример для нас - прибор 15-и летней давности достают из за фальш потолка, сдувают пыль, обновляют прошивку и ставят работать дальше.
Вторая часть Вопроса "Он же почти наверняка тестировался производителем и к вам приходят заведомо исправные модули с уже прожжеными фьюзами и прошитой прошивкой, которую можно обновить стандартными средствами (sysupgrade, например)? "
Ответ делиться тоже на две части. Первая часть говорит о том, что мы делаем ВСЮ прошивку Сами. и фьюзы и секьюр область шьём сами, свои номера.
Вторая часть ответа на этот вопрос заключается в том, что до этого я работал в компании Овен. и мы делали похожие SOM модули, только на ситаре. Они до сих пор используются в плк110[m02]. И как бы маштаб производства достаточно большой, и при этом мы накушались Внезапных проблемм на SOM модулях. И предпочитаю надёжность в тестировании и прошивке проблемам по возврату дорогих модулей от Потребителя.
Тем более что если модуль сторонний - стоит понимать его Гарантийный срок в соотнесении с Гарантийным сроком Вашего изделия. А он зачастую исчисляется временем попадания на Ваш склад. А в текущих реалиях, я думаю Вы можете прикинуть когда возникшая у Потребителя проблема может вернуться, относительно уже истёкшего гарантийного срока к Вам, и темболее поставщику модулей.
pogo-pin в помощь
можно не ставить в ряд как разъем, а в удобных местах по плате раскидать
Разработка стенда серийной прошивки и первоначального тестирования