#1 2016-02-29 19:47:16

seri0shka
Учасник
Зареєстрований: 2016-02-21
Повідомлень: 33

Программирование ATmega32 с помощью Arduino

Попробовал запрограммировать ATmega32 (не путать с ATmega328) с помощью Arduino.
Последовательность действий такая:
К ATmega32 подпаиваю кварц с двумя конденсаторами и 6 проводов (2 питание, miso, mosi, clk, RESET).
Запускаю Arduino IDE
Добавляем поддержку не родных м/к в среду Arduino IDE (есть статья с таким названием, ссылку не даю, не работает чё-то). Кстати данная функция заработала только с Arduino IDE 1.0.5, не получилось с Arduino IDE 1.6.7 и 1.6.0 (два часа потерянного времени, никак не мог понять, что я не так делаю)
Arduino Uno подключил к компьютеру и загрузил скетч ArduinoISP из стандартных примеров.
Отсоединил от компа, подсоединил ATmega32 к Arduino согласно стандартной схемы. Смотреть, например https://geektimes.ru/post/255342/
Подсоединяю к компу. Выбираю "Инструменты"- "Программатор"- "ArduinoISP". Выбираю "Инструменты"- "Плата"- "ATmega32" (появился такой пункт после вышеописанных процедур). Заливаю простой скетч с помощью пункта меню "Файл"- "Загрузить через программатор"
Получаю ошибку:
avrdude: Expected signature for ATMEGA32 is 1E 95 02
         Double check chip, or use -F to override this check.
Что я делаю не так?
Буду рад пошаговому описанию программирования ATmega32 с помощью Arduino, или ссылке на такое. Долгие поиски в гугле привели меня к вышеописанным действиям.

Неактивний

#2 2016-03-01 12:58:35

Pablito
Гість

Re: Программирование ATmega32 с помощью Arduino

Нужно прописать сигнатуру добавляемого контроллера.

#3 2016-03-01 13:14:37

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Программирование ATmega32 с помощью Arduino

Я использовал АТ32 в Arduino IDE. Но делал не много не так, при помощи Atmel Studio (хотя это не принципиально) прошивал загрузчик (правда пришлось перепробовать многие, не все рабочие) при помощи STK500 (тоже не принципиально). Очень важно правильно выставить фьюзы. Также нужно в файл board в Arduino IDE внести изменения. Таким образом я получил рабочую плату которая программируется через serial. На Вашем этапе важно проверить видит ли программатор микроконтроллер, а потом двигать дальше. Дело в том что если МК уже был в работе ( в новых 32х фьюзы настроены если не ошибаюсь на 16мГц) то он может работать от внутреннего осцилятора (и кварц ему не указ). Почему не работает вариантов очень много, начиная от настройки IDE и кончая настройками MK.

Остання редакція Nefreemen (2016-03-01 13:47:17)

Неактивний

#4 2016-03-01 17:42:10

seri0shka
Учасник
Зареєстрований: 2016-02-21
Повідомлень: 33

Re: Программирование ATmega32 с помощью Arduino

Pablito пише:

Нужно прописать сигнатуру добавляемого контроллера.

Про фьюзы слышал, про сигнатуры даже сейчас ничего толком не смого найти.

Неактивний

#5 2016-03-01 17:51:53

seri0shka
Учасник
Зареєстрований: 2016-02-21
Повідомлень: 33

Re: Программирование ATmega32 с помощью Arduino

Контроллер новый, фьюзы не трогал, да и не знаю как. Кстати, где-то встречал информацию, что в новых фьюзы настроены на 1мГц.
Программатор микроконтроллер видит наверно, так как при первой попытке я не выставил контроллер в настройках, получил что-то типа "контроллер не соответствует указанному"
В файл board в Arduino IDE внес изменения:
anio32.bootloader.file=chip45boot2_atmega32_uart0_v2.9C.hex

Неактивний

#6 2016-03-01 20:29:35

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Программирование ATmega32 с помощью Arduino

Вы хотите программировать в IDE по SPI или COM порт? Но в любом случае в board нужно дописать целую секцию, у меня такая:
##################################################
# anio32: avrnetio /w atmega32 (optiboot.c)
##################################################
anio32.name=avrnetio w/ atmega32 (optiboot.c)
anio32.build.mcu=atmega32
anio32.build.f_cpu=16000000L
anio32.build.core=avrnetio
anio32.build.variant=avrnetio
anio32.upload.protocol=stk500
anio32.upload.maximum_size=30720
anio32.upload.speed=19200
anio32.bootloader.path=optiboot
anio32.bootloader.file=optiboot_anio32.hex
#    text       data        bss        dec        hex    filename
#     498          0          0        498        1f2
optiboot_anio32.elf
anio32.bootloader.low_fuses=0xFF
anio32.bootloader.high_fuses=0xDA
# anio32.bootloader.extended_fuses=0x
anio32.bootloader.unlock_bits=0x0f
anio32.bootloader.lock_bits=0x3f
### for ChipKit mpide:
# anio32.platform=avr
# anio32.board=AVR_NET_IO
##################################################
Эту секцию нужно внести в board.txt который в папке hardware->avrnetio. Хотя я внес и в тот который находится в hardware->arduino roll . В этой секции указано все что должна знать среда IDE для программирования МК  через SPI. Причем если программировать через SPI то не нужно пытаться залить boot, могут возникнуть проблемы. Во первых я точно знаю что тот файл boot который Вы указали не рабочий, фьюзы указаны в этой секции тоже не правильные ( даже у меня ). Если Вы захотите программировать АТ32 через ком порт то придется повозится. Но оно того стоит (отладка программ через Serial.print smile ) для начинающих незаменимая вещь big_smile .

Неактивний

#7 2016-03-01 20:52:59

seri0shka
Учасник
Зареєстрований: 2016-02-21
Повідомлень: 33

Re: Программирование ATmega32 с помощью Arduino

Через SPI, не через ком.
Попробую исправить секцию (не сегодня).
Спасибо!

Неактивний

#8 2016-03-01 21:46:48

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Программирование ATmega32 с помощью Arduino

Извините, а смысл возится с этой лабудой без комп порта? А не проще ли если скетч компилируется в IDE под 32 МК нормально, то взять BIN файл с IDE,  avrISP программатор и залить даже той же "дудкой" или другой прогой, которая показывает состояние фьзов МК. Тем более что рано или поздно Вы все равно упретесь  smile в необходимость чтения и записи фьзов (все равно придется разбираться с ними, хотя бы для того что бы правильно указать их в этой секции). Это мое имхо. Вам видней.

Неактивний

#9 2016-03-01 22:16:49

seri0shka
Учасник
Зареєстрований: 2016-02-21
Повідомлень: 33

Re: Программирование ATmega32 с помощью Arduino

А смысл летать в самолёте пассажиром, ведь можно выучиться на лётчика  smile
Это не так просто, как тем, кто УЖЕ умеет. Для меня ардуина ещё пока тёмный лес, а контроллеры тем более. Может, всё гораздо проще, но информации не хватает, много пробелов (типа "это ж и так понятно").
А по делу- как выдрать BIN файл с IDE? И что такое "дудка"?

Неактивний

#10 2016-03-02 03:04:57

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Программирование ATmega32 с помощью Arduino

"Дудкой" часто называют avrdude.exe https://ru.wikipedia.org/wiki/Avrdude. Эта программа вызывается каждый раз при записи скетча в МК через программаторы ( не через КОМ порт). Этот файл берет настройки именно с "той секции ", работа с ним напрямую (а он есть в IDE) тот еще случай big_smile (купа параметров в консольном режиме). Для упрощения "жизни" есть GUI (графический интерфейс) наберите в гугле avrdudeGUI  и скачайте, посмотрите, я думаю осилите. Я ошибся, правильно не BIN файл а HEX ,  компилятор IDE создает его во временной директории. Как его можно найти написано например здесь :  http://bsideup.blogspot.com/2010/08/hex-arduino.html

Остання редакція Nefreemen (2016-03-02 03:05:35)

Неактивний

#11 2016-03-02 07:23:02

seri0shka
Учасник
Зареєстрований: 2016-02-21
Повідомлень: 33

Re: Программирование ATmega32 с помощью Arduino

спасибо, буду пробовать

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму