Программа клавиатуры Fio вышла из-под контроля, как ее сбросить?

Мой вопрос связан с Sparkfun Fio v3, похожим на Arduino Fio.

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

Итак, теперь, когда я подключаю его через USB, я не могу загрузить новый скетч, потому что последовательный канал забит этим выходом. (Сообщение об ошибке: "avrdude: stk500_getsync() попытка 1 из 10: не синхронизировано: resp=0x00" и так далее)

Я попытался поместить курсор внутри комментария заголовка в "Blink", так что новые символы, которые спамятся в мой код, находятся внутри комментария, и это позволяет компилировать, но он не синхронизируется и не загружается. Я пробовал записать новый загрузчик, и это тоже не удается (сообщение: "Ошибка при записи загрузчика.").

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

Есть ли способ спасти это устройство?

, 👍0


2 ответа


1

Хе-хе... Это весело, чтобы попытаться выбраться из этого. Обычный способ - перезапустить загрузчик...

Если это то же самое, что и у Leonardo, вы получаете примерно через 8 секунд после сброса, когда запускается только загрузчик, прежде чем он начнет рассылать все спамом с текстом. Таким образом, вы можете попробовать:

  1. Откройте блокнот или что-то в этом роде
  2. Подключите плату
  3. Нажмите и удерживайте кнопку СБРОСА (или подключите контакт СБРОСА к GND проводом)
  4. Откройте интегрированную среду разработки и загрузите Blink.ino

Теперь самое сложное. Если правильный последовательный порт не выбран, вам необходимо в течение 8 секунд:

  1. Отпустите кнопку сброса.
  2. Пусть компьютер перечислит устройство
  3. Откройте меню последовательные порты и выберите нужный порт
  4. Нажмите и удерживайте кнопку СБРОСА еще раз.

Теперь вы можете запрограммировать его аналогичным образом:

  1. Нажмите "ЗАГРУЗИТЬ" в интегрированной среде разработки.
  2. Как раз перед тем, как он завершит компиляцию (включение подробного вывода может помочь вам лучше его настроить), отпустите кнопку СБРОСА.

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

,

Я пробовал это много раз, но ничего не получалось. Хотя, спасибо., @Mburg Dr J


0

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

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

Судя по схеме, а также фотографии платы, вам нужно будет припаять 6-контактный наконечник (обведен).

Fio photo

Затем запустите 6 проводов, как описано на моей странице выше, к другому Arduino (см. "Проводка для Leonardo") и запишите загрузчик. Это займет всего пару секунд. Вы могли бы сделать подходящий кабель с 6-контактным разъемом, чтобы в следующий раз учащемуся было проще делать то же самое. :)

Это определенно сработает (если вы правильно подберете проводку), потому что в нем используется программирование ICSP, а это значит, что у скетча на плате нет шансов для запуска. На самом деле программирование осуществляется вовсе не через интерфейс USB.

Загрузка загрузчика начинается со стирания чипа, которое, следовательно, удаляет все существующие скетчи.

,

Спасибо вам дважды! Я обнаружил, что уже скачивал ваш скетч раньше, думаю, это помогло мне спасти Мега некоторое время назад., @Mburg Dr J

Ваш скетч успешно идентифицировал SF Fio V3 как ATmega32U4 и перенес загрузчик. Потребовалось немного повозиться, потому что SF не поставил точку, чтобы сказать мне, какой конец находится в заголовке ICSP, и он перевернут вверх дном по сравнению с Uno, который я использовал для его отправки. Однако теперь мой Mac вообще не распознает Fio, когда я подключаю его к USB. Когда я заглядываю в /dev/, я вижу новое устройство, поэтому Linux берет его, но Mac не распознает в нем ничего интересного. Я еще немного поиграю. Я понял, что этот компьютер новый, поэтому у меня могут быть установлены не все драйверы., @Mburg Dr J

Водитель Леонардо должен это сделать., @Nick Gammon