Запрограммировать сразу несколько ардуино
Я знаю, что с помощью USB-концентратора можно подключить несколько arduino к одному компьютеру и либо загружать код один за другим, либо использовать скрипт bash для загрузки кода на все ардуино вместе. Но можно подключить к компьютеру несколько arduino. Мне нужно программировать около 100 ардуино/atmega ICs сразу. Есть ли способ сделать это? Есть и другие методы, которые я нашел в Интернете, например программирование микросхем по сети Wi-Fi. Но для этого требуется много Wi-Fi-чипов, подключенных к arduino. Я не могу настроить это. Кроме того, это не кажется экономически эффективным. Также Arduino продает свои uno и другие платы с предустановленной программой blink. Они, наверное, выполняют пакетное программирование (несколько ИС одновременно). Есть идеи, как они это делают?
@Robot, 👍3
Обсуждение3 ответа
Компания 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
Я рекомендую использовать optiloader, который использует автономный arduino для программирования подключенного к нему arduino. Таким образом, вы можете создать столько программаторов arduino, сколько захотите, каждый из которых может работать без подключения к хост-компьютеру. Именно так загружается прошивка для крупносерийного производства.
Есть идеи, как они это делают?
Вы можете купить гаджеты, которые позволят вам загружать код за секунду или около того. Например, здесь. Вы подключаете целевую плату, нажимаете кнопку, и все готово.
Они программируют плату за пару секунд. Хотя это вряд ли буквально "сразу", в любом случае потребуется время, чтобы подключить 100 Arduino к "чему-то", поэтому подключение и отключение каждые пару секунд-это примерно одно и то же.
Эта плата, упомянутая выше, использует код, который я написал, который может работать на обычном Arduino. Другими словами, используйте одно для программирования другого, где загружаемый код хранится на карте micro-SD.
- Помогите решить проблему с загрузкой программы!
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
- Печать string and integer LCD
- Проблема с загрузкой кода
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Скетчи не загружаются в Uno
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
Каков же вариант использования? Производственная линия? Я сделал щит для 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