Как новичку, как мне запрограммировать свой Atmega328p?
Я купил плату, на которой вышеуказанный MCU является atmega328p. Поскольку я раньше не использовал микроконтроллер atmel, теперь это немного сбивает с толку. Являются ли программаторы ATMEGA и STM32 не универсальными? Какие методы программирования может поддерживать этот чип? Существует ли последовательное программирование или программирование SWD? Нужна помощь. Большое спасибо!
@Tessie Swfit, 👍2
Обсуждение2 ответа
Являются ли программаторы 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.
Какие методы программирования может поддерживать этот чип? Существует ли последовательное программирование или программирование SWD?
Arduino IDE (скачать бесплатно) поддерживает программирование на C++. Среда IDE немного предварительно обрабатывает ваш код (который они называют "скетчем"), но это все еще C++.
Вы можете перейти на ассемблер, если вам абсолютно необходимо, но компилятор C++ почти всегда хорошо справляется с созданием эффективного кода.
С помощью последовательного интерфейса (многие Arduino, такие как Uno, имеют один встроенный, подключенный к интерфейсу USB) вы можете быстро и легко загрузить свой код. Необходимые для этого средства встроены в среду IDE.
- Не удается снова загрузиться после смены платы
- Путаница с ATmega328P и 3,3 В/8 МГц
- Что означает avrdude: Device signature = 0x000000? Неисправная проводка? Проблема с программным обеспечением? Неправильная инструкция?
- Не могу записать загрузчик на Atmega328P с помощью Arduino Uno
- Можем ли мы записать загрузчик Arduino в любой чип микроконтроллера?
- Atmega328p — переход на низкое энергопотребление 1,8 В с использованием генератора 4 МГц — прошивка загрузчика
- Переход к загрузчику из кода приложения в atmega328p
- Как правильно активировать контакт сброса ATMega328 с помощью ПО, чтобы загрузчик работал, а прошивка могла обновляться через контакты RX/TX?
"Разве программисты ATMEGA и STM32 не универсальны?" Нет, один через интернет-провайдера, а другой-SWD / JTAG, они разные. В большинстве случаев чип ATmega *на платах производителя* поставляется с предварительно запрограммированным загрузчиком, который позволяет запускать его через последовательный (Optiboot). Тогда будет работать использование Arduino IDE с выбранной платой "Uno". В противном случае вам нужно создать программиста ISP, если у вас его нет. Видишь https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP., @Maximilian Gerhardt
*Я купил плату* - какую плату? Ссылка на него?, @Nick Gammon