Запрограммировать сразу несколько ардуино

Я знаю, что с помощью USB-концентратора можно подключить несколько arduino к одному компьютеру и либо загружать код один за другим, либо использовать скрипт bash для загрузки кода на все ардуино вместе. Но можно подключить к компьютеру несколько arduino. Мне нужно программировать около 100 ардуино/atmega ICs сразу. Есть ли способ сделать это? Есть и другие методы, которые я нашел в Интернете, например программирование микросхем по сети Wi-Fi. Но для этого требуется много Wi-Fi-чипов, подключенных к arduino. Я не могу настроить это. Кроме того, это не кажется экономически эффективным. Также Arduino продает свои uno и другие платы с предустановленной программой blink. Они, наверное, выполняют пакетное программирование (несколько ИС одновременно). Есть идеи, как они это делают?

, 👍3

Обсуждение

Каков же вариант использования? Производственная линия? Я сделал щит для raspberry pi zero so с кнопкой, несколькими светодиодами состояния и двумя линиями ISP для загрузки communucation 16u2 и 2560 firmware+bootloader примерно за минуту. Это не так много времени, чтобы делать это параллельно. Кстати, вы можете связать USB - концентраторы-один 16-портовый - > 16x 16-портовый (=256, если нет ограничений на сам USB), и это будет медленно.., @KIIV

Для программирования через USB вам нужно 1 соединение на Arduino. Я думаю, что последовательное соединение не может быть просто общим. Небольшие отклонения во времени могли нарушить всю связь. Для программирования через ISP вам нужен программатор для каждого Arduino. Я бы подумал, что производство использует отдельных программистов ISP для программирования небольшой партии ардуино сразу, а затем переходит к следующей партии. Когда уже строится автоматизация продуктовой линейки, зачем им нужно программировать 100 из них сразу, когда автоматизация также может легко перемещать программистов между партиями, @chrisl

Зачем вам нужно программировать 100 ардуино сразу? Не могли бы вы дать здесь небольшой контекст?, @chrisl

@chrisl I фактически сделал прототип с мультиплексирующим чипом select pin на arduino, который подключен к сбросу pin целевой платы в программу. Когда я подключаю одну целевую плату сразу, я могу запрограммировать ее, но когда я подключаю несколько целевых плат, тогда даже одна не программирует. Я использую код Ника Гэммона для программирования целевого arduino с помощью master arduino https://github.com/nickgammon/arduino_sketches/tree/master/Atmega_Hex_Uploader_Fixed_Filename Это грубая структурная схема мультиплексирования чипа select pin - https://imgur.com/a/XX4Nyf8, @Robot


3 ответа


1

Компания Arduino может продавать продукцию в достаточном объеме, чтобы было целесообразно заставить производителя микроконтроллеров программировать микроконтроллеры в процессе производства Это не будет стоить им дополнительных затрат, если они уже запрограммировали загрузчик заранее. Я читал, что программирование микросхем-это услуга, доступная крупным заказчикам.

Я предполагаю, что производители с низким уровнем громкости используют приспособления, которые используют заголовки ICSP, палочки пого или зажимы IC и которые запускают программирование при контакте с помощью микропереключателя и т. Д.

Я подозреваю, что Adafruit делает что-то в этом роде, смотрите GIF-файлы и видео, в которых обсуждается тестирование на

https://www.adafruit.com/product/2458

,

Я на самом деле сделал прототип с выводом выбора микросхемы мультиплексирования на arduino, который подключен к выводу СБРОСА целевой платы для программирования. Когда я подключаю одну целевую плату одновременно, я могу ее запрограммировать, но когда я подключаю несколько целевых плат, даже одна из них не программируется. Я использую код Ника Гэммона для программирования целевого arduino с помощью главного arduino https://github.com/nickgammon/arduino_sketches/tree/master/Atmega_Hex_Uploader_Fixed_Filename Это примерная структурная схема мультиплексирования микросхемы с выбранным выводом - https://imgur.com/a/XX4Nyf8, @Robot


1

Я рекомендую использовать optiloader, который использует автономный arduino для программирования подключенного к нему arduino. Таким образом, вы можете создать столько программаторов arduino, сколько захотите, каждый из которых может работать без подключения к хост-компьютеру. Именно так загружается прошивка для крупносерийного производства.

,

0

Есть идеи, как они это делают?

Вы можете купить гаджеты, которые позволят вам загружать код за секунду или около того. Например, здесь. Вы подключаете целевую плату, нажимаете кнопку, и все готово.

Они программируют плату за пару секунд. Хотя это вряд ли буквально "сразу", в любом случае потребуется время, чтобы подключить 100 Arduino к "чему-то", поэтому подключение и отключение каждые пару секунд-это примерно одно и то же.

Эта плата, упомянутая выше, использует код, который я написал, который может работать на обычном Arduino. Другими словами, используйте одно для программирования другого, где загружаемый код хранится на карте micro-SD.

,