Программирование AVR BASCOM AVR: поддержка платформы Arduino Tue, April 16 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

BASCOM AVR: поддержка платформы Arduino Печать
Добавил(а) microsin   

Arduino - аппаратная платформа, основанная на микроконтроллерах архитектуры AVR. Платы Arduino (т. е. микроконтроллеры, которые на них установлены) программируются с помощью загрузчика (bootloader). Этот загрузчик работает на старом протоколе STK500 [2], который больше не поддерживается компанией Atmel в AVR Studio. Есть несколько утилит программирования для ARDUINO, и вероятно самая универсальная это AVRDUDE (поскольку она работает на нескольких операционных системах, и поддерживает множество программаторов и протоколов программирования). 

[ARDUINO v1

BASCOM также поддерживает старый протокол ARDUINO/STK500 v1. Сигналы DTR/RTS используются для сброса платы перед программированием (так называемый автосброс, который запускает загрузчик платы). С помощью загрузчика Вы можете запрограммировать / прочитать память FLASH (это память программ; не вся память программ доступна при этом для записи, т. к. старшие адреса заняты под секцию bootloader) и память EEPROM (здесь обычно сохраняются энергонезависимые данные), но Вы не можете прочитать / записать байты фьюзов / защиты (fuse/lock bytes). Загрузчик STK500, встроенный в ARDUINO, не позволяет этого делать (если быть абсолютно точным, этого не позволяет система команд AVR). 

В настройках BASCOM Вам нужно только выбрать тип утилиты программатора, и выбрать COM-порт. Поскольку на большинстве плат Arduino используются чипы FTDI (однако могут использоваться и чипы ATmega8U2, а на последних ревизиях плат ATmega16U2), то это виртуальный COM-порт (USB CDC). Он появляется в системе только тогда, когда Вы подключаете плату к компьютеру кабелем USB. Выберите скорость передачи 57600. Старые платы ARDUINO работают на скорости 19200 бод. 

[ARDUINO v2

Разработчики ARDUINO наконец реализовали в своих новых платах поддержку протокола STK500V2 (см. [3]). Этот протокол поддерживается Atmel, и конечно он поддерживается в BASCOM. 

Выберите в настройках выбора программатора ARDUINO STK500V2, чтобы использовать этот новый протокол. Платы наподобие Arduino MEGA2560 R3 используют этот протокол, и возможно его также будут использовать все новые платы ARDUINO, основанные на AVR. Скорость передачи должна быть установлена 115200 (так например нужно сделать для платы Arduino MEGA2560 R3), но скорость для Вашей платы может быть и другой. 

[Использование Bascom-AVR вместе с Arduino Optiboot Bootloader (на Windows 7)

Дополнительную информацию по загрузчику Optiboot можно получить на сайте [4]. 

1. Загрузите AVRDUDE с сайта [5]. Последняя версия на момент апреля 2012 г. была avrdude-5.11-Patch7610-win32.zip.

2. Создайте на диске папку наподобие  c:\AVRDUDE.

3. Распакуйте содержимое avrdude-5.11-Patch7610-win32.zip в эту новую папку.

4. Запустите Bascom-AVR. Выберите в меню пункт Options -> Programmer -> External programmer. Поставьте галочку "Use HEX file" (использовать HEX-файл).

5. Укажите путь до утилиты avrdude.exe.

6. В поле ввода параметров введите: 

-C c:\avrdude\avrdude.conf -p m328p -P com19 -c arduino -b 115200 -U flash:w:{FILE}:i 

optiboot bascom 1

Пояснение по параметрам: 

-C        

c:\avrdude\avrdude.conf это файл конфигурации, который описывает для avrdude все различные пути обмена данными с программатором (в нашем случае с UART-загрузчиком платы Arduino). 

-p        

m328p эта опция говорит, какой микроконтроллер будет программироваться. Например, если на плате Arduino стоит Atmega328p, используйте m328p в качестве типа микроконтроллера. 

-P        

com19 это номер порта соединения с программатором (COM19). Поменяйте номер после COM, чтобы соответствовать реально используемому виртуальному COM-порту (номер COM-порта можно узнать из Диспетчера Устройств после подключения платы через USB). 

-c

arduino здесь указывается тип программатора. Если Вы используете кит STK500, на котором работает протокол stk500, то используйте arduino для Optiboot. 

-b

115200 устанавливает скорость обмена данными (baudrate) с программатором. Для Optiboot используйте 115200. 

-U

flash:w:{FILE}:i здесь Вы задаете следующее: 

• тип программируемой памяти: flash или eeprom. В случае программатора (не загрузчика!) это может быть также hfuse, lfuse или effuse, если Вам нужно проверить фьюзы.
• r (read, чтение), w (write, запись) или v (verify, проверка).
• используйте {FILE}, чтобы вставить имя файла кода программы, и {EEPROM} для вставки имени сгенерированного файла EEP.
• i означает, что файл в формате Intel Hex. 

После нажатия F4 (Program Chip) в Bascom-AVR на Windows 7 Вы увидите окно CMD, где будет отображаться процесс программирования Arduino с помощью утилиты AVRDUDE.

optiboot bascom 2

Полную документацию по параметрам AVRDUDE см. [6]. 

[Ссылки

1. BASCOM-AVR, ARDUINO site:avrhelp.mcselec.com.
2. AVR061: старая версия протокола обмена STK500.
3. AVR068: протокол обмена STK500 ver. 2.0.
4. Optiboot bootloader site:code.google.com.
5. AVRDUDE - AVR Downloader/UploaDEr site:nongnu.org.
6. AVRDUDE Option Descriptions site:nongnu.org.
7. BASCOM Supported Programmers site:avrhelp.mcselec.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page