Как новичку, как мне запрограммировать свой Atmega328p?

Я купил плату, на которой вышеуказанный MCU является atmega328p. Поскольку я раньше не использовал микроконтроллер atmel, теперь это немного сбивает с толку. Являются ли программаторы ATMEGA и STM32 не универсальными? Какие методы программирования может поддерживать этот чип? Существует ли последовательное программирование или программирование SWD? Нужна помощь. Большое спасибо!

, 👍2

Обсуждение

"Разве программисты ATMEGA и STM32 не универсальны?" Нет, один через интернет-провайдера, а другой-SWD / JTAG, они разные. В большинстве случаев чип ATmega *на платах производителя* поставляется с предварительно запрограммированным загрузчиком, который позволяет запускать его через последовательный (Optiboot). Тогда будет работать использование Arduino IDE с выбранной платой "Uno". В противном случае вам нужно создать программиста ISP, если у вас его нет. Видишь https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP., @Maximilian Gerhardt

*Я купил плату* - какую плату? Ссылка на него?, @Nick Gammon


2 ответа


4

Являются ли программаторы ATMEGA и STM32 не универсальными?

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

Какие методы программирования может поддерживать этот чип?

  • Традиционное последовательное программирование AVR в цепи (ICSP) с использованием контактового разъема 2x3 и одного из множества программаторов, таких как STK500, который имеет недорогие клоны, такие как программатор Pololu AVR (менее 10 долларов). Эти программаторы обычно подключаются к USB-порту ПК и могут использоваться либо с инструментами разработки программного обеспечения от Atmel (теперь Microchip), либо с помощью интегрированной среды разработки Arduino (IDE), которая использует программу avrdude для связи с ATmega328P (или другими микроконтроллерами семейства AVR). ICSP иногда называют В Системном программировании (ISP). Он использует SPI-интерфейс MCU, и вы должны быть осторожны с тем, какие другие схемы подключены к этим контактам при программировании устройства.

  • Программирование последовательного порта путем взаимодействия с предварительно загруженной программой "загрузчик", установленной в ATmega328P. Это обычный способ использования Arduino IDE, но это зависит от того, установлен ли этот загрузчик. Большинство голых ATMega328Ps продаются без этого загрузчика. Все платы "Arduino" будут иметь загрузчик, установленный в их микроконтроллере, и многие из них будут иметь встроенный интерфейс последовательного подключения к USB, чтобы плату можно было напрямую подключить к ПК. В противном случае вам понадобится интерфейс USB-последовательный, такой как Adafruit FTDI friend или многие другие.

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

Вы можете использовать Arduino для эмуляции программатора и использовать его для программирования плат, у которых отсутствует последовательный интерфейс USB. Это называется Arduino в качестве ISP

Новое поколение микроконтроллеров AVR Microchip использует другой метод программирования, чем ICSP, называемый UPDI.

,

1

Какие методы программирования может поддерживать этот чип? Существует ли последовательное программирование или программирование SWD?

Arduino IDE (скачать бесплатно) поддерживает программирование на C++. Среда IDE немного предварительно обрабатывает ваш код (который они называют "скетчем"), но это все еще C++.

Вы можете перейти на ассемблер, если вам абсолютно необходимо, но компилятор C++ почти всегда хорошо справляется с созданием эффективного кода.

С помощью последовательного интерфейса (многие Arduino, такие как Uno, имеют один встроенный, подключенный к интерфейсу USB) вы можете быстро и легко загрузить свой код. Необходимые для этого средства встроены в среду IDE.

,