Запрограммировать Arduino, затем удалить Atmega?

Могу ли я запрограммировать Arduino, а затем удалить из него микроконтроллер и использовать его на макетной плате без повторного программирования микроконтроллера?

Мои действия будут такими:

  1. создайте мой код Arduino.
  2. Я загружаю скомпилированный код на плату.
  3. Я удаляю микросхему и использую ее отдельно, без всей платы.

Сохранится ли код на микроконтроллере?

, 👍2


4 ответа


3

Да. Программирование микроконтроллера arduino устанавливает значения внутри FLASH. Это энергонезависимая память, поэтому ее нельзя стереть, вынув микросхему.

Обратите внимание, что речь идет о DIP-пакете IC, поскольку их можно удалить без применения силы, тепла и напряжения. . TQFP и SMT-пакеты, IC может быть повреждена при перемещении их таким образом. Это не значит, что его нужно стирать, это по-прежнему энергонезависимая память, но процесс перемещения намного опаснее для чипа.

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

Также обратите внимание, что вам потребуется добавить источник тактового сигнала для работы чипа (в большинстве случаев). Или вам нужно включить внутренний PLL. В любом случае с вашей стороны потребуются дополнительные усилия, чтобы убедиться, что MCU может работать. Поэтому предпочтительнее использовать всю плату Arduino.

,

Это не PLL, это RC-генератор., @Edgar Bonet


2

Да, вы можете это сделать (как сказал Тарик).

Примечание о часах:

Обязательно запрограммируйте его правильно:

  • Не добавляйте загрузчик, если он вам не нужен
  • Не используйте внешний генератор, если его нет на вашей новой плате! Это важно, так как если вы удалите его, вы не сможете запустить или запрограммировать его снова!

Итак, прежде чем снимать микросхему, установите ее на свой Arduino (я предполагаю, что это ATMega328):

  • Внутренний 8МГц (оставьте внешний, только если у вас есть осциллятор в новой плате!)
  • Загрузчик: нет

Вы увидите, что у вас нет этой опции, если вы выберете обычный Arduino, так как он уже имеет осциллятор.

Поэтому вы должны использовать менеджер платы и добавить это: https://github.com/MCUdude/MiniCore

,

1

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

Поскольку вы планируете удалить микроконтроллер, я предполагаю, что вы используете DIP-пакет Arduino Uno atmega328.

Для правильной работы микроконтроллера на макетной плате необходимо сделать две вещи. Существуют и другие решения. Я всегда предпочитаю этот вариант как простой.

  1. подключите кварцевый резонатор 16 МГц с конденсатором 22p (два) с соответствующим выводом кварцевого резонатора (выводы 9 и 10). Схема кристалла проста. Поиск в Google может помочь.
  2. Потяните контакт сброса с помощью VCC, используя резистор 10 кОм.
,

0

Не забудьте заглушки 0,1 мкФ на контактах VCC и AVCC по отношению к Gnd. На AVCC также должно подаваться питание либо напрямую на контакт VCC, либо через фильтр (маленький индуктор)

,