Есть микроконтроллер Atmega16L-8PU, который я пытаюсь прошить с помощью Arduino Mega 2560, используя скетч ArduinoISP и avrdude.
avrdude -v -p m16 -c avrisp -P COM3 -b 19200 -D -U flash:w:".\hex\test.hex":i
avrdude: Version 5.4-arduino, compiled on Oct 11 2007 at 19:12:32 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ System wide configuration file is "C:\Users\Public\avr\avrdude.conf" Using Port : COM3 Using Programmer : avrisp Overriding Baud Rate : 19200 AVR Part : ATMEGA16 Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PA0 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 4 10 128 0 no 512 4 0 9000 9000 0xff 0xff flash 33 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00 Programmer Type : STK500 Description : Atmel AVR ISP Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. avrdude done. Thank you.
Видно, что сигнатура устройства неверная (0x000000
). (UPD: Если запустить avrdude без подключенного целевого МК, то происходит абсолютно такой же вывод в консоль, т.е. проблема в том, что целевой МК не обнаруживается в принципе).
В скетче ArduinoISP сделал #define SPI_CLOCK (128000/6)
.
Если в avrdude установить флаг -F, то запись как будто бы идет, но проверка в итоге не проходит:
avrdude: Version 5.4-arduino, compiled on Oct 11 2007 at 19:12:32 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ System wide configuration file is "C:\Users\Public\avr\avrdude.conf" Using Port : COM3 Using Programmer : avrisp Overriding Baud Rate : 19200 AVR Part : ATMEGA16 Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PA0 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 4 10 128 0 no 512 4 0 9000 9000 0xff 0xff flash 33 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00 Programmer Type : STK500 Description : Atmel AVR ISP Hardware Version: 2 Firmware Version: 1.
![]()
18 Topcard : Unknown Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. avrdude: Expected signature for ATMEGA16 is 1E 94 03 avrdude: safemode: lfuse reads as 0 avrdude: safemode: hfuse reads as 0 avrdude: reading input file ".\hex\test.hex" avrdude: writing flash (150 bytes): Writing | ################################################## | 100% 0.48s avrdude: 150 bytes of flash written avrdude: verifying flash memory against .\hex\test.hex: avrdude: load data flash data from input file .\hex\test.hex: avrdude: input file .\hex\test.hex contains 150 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.34s avrdude: verifying . .. avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x00 avrdude: verification error; content mismatch avrdude: safemode: lfuse reads as 0 avrdude: safemode: hfuse reads as 0 avrdude: safemode: Fuses OK avrdude done. Thank you.
P.S. Atmega16 новая.
Каталог
Arduino Arduino Original ARM AVR bluetooth CPLD dc-dc DISCOVERY DIY ESP32 ESP8266 Ethernet FPGA FPV GPS GSM IR LCD LED LoRa Micro:Bit MSP Nucleo NXP Odroid OrangePi PIC Raspberry Pi RFID RTC SD card servo Sonoff STEM STM32 TFT LCD Wi-Fi WiFi XBee Zigbee Драйвер Зарядний Іграшка виміри інструмент Книги конектори Корпус Набір KIT перехідник Живлення реле Кроковий |
Головна » Архівні товари
Популярный 8-ми разрядный микроконтроллер на ядре Atmel AVR8. 16кБ памяти и вся периферия семейства Mega делают этот микроконтроллер практически идеальным для домашних поделок. А крупный DIP корпус позволяет изготовить печатную плату даже неискушенному в ЛУТ или ФР технологиях новичку. Поистинне огромное количество обучающей и справочной литературы по этому семейству микроконтроллеров делают его очень легким в изучении. Модуль позволяет подключать сменные кварцы, выводы удобно сгруппированы и выведены так, чтобы соединять джамперами с периферией платы. |
Последние два дня я экспериментировал с микроконтроллерами и исследовал, как писать на них приложения. Я купил один Atmega16A и решил использовать загрузчик Arduino. Так что я могу писать программы, используя Arduino IDE и синтаксис. В этом посте объясняется, как загрузить Atmega16. У меня не было никакого опыта работы с Arduino, у меня уже давно лежит uno за столом, но я никогда им не пользовался. Последние три ночи я больше узнавал о кодировании Arduino, о конфигурации плат и других вещах.
Настройка программного обеспечения для начальной загрузки
Я выполнил шаги, опубликованные Sudar в его блоге, пожалуйста, просмотрите сообщение, прежде чем читать дальше. Здесь я напишу некоторые моменты, которые мне пришлось сделать, чтобы завершить процесс загрузки.
Arduino IDE версии : Для запуска ядра, созданного Sudar, нам нужна IDE версии 1. 0.x. У меня последняя версия 1.6.3. Есть некоторые отличия в настройке boards.txt от 1.0 до 1.6. Пробовал переписать boards.txt по стандарту 1.6.*, но не понравилось. Поэтому я скачал старую версию 1.0.6 с сайта Arduino. Если у вас уже установлена версия 1.6.*, лучше скачайте zip-файл и извлеките его в папку. Таким образом, вы можете использовать 1.6 и 1.0 на одной машине.
Добавление досок и вариантов: Добавление досок в папку скетчбука у меня не сработало, может я не так понял. Поэтому я сделал следующие шаги.
Перейдите в папку аппаратного обеспечения Arduino, <<расположение IDE для установки IDE>>/hardware/arduino/ и откройте файл boards.txt.
Скопируйте содержимое плат Atmega16 и вставьте в файл boards.txt, открытый на шаге 1.
Создайте новую папку с именем mega16 в разделе <<Место установки IDE>>/hardware/arduino/variants и вставьте файл «pins_arduino.h», созданный для Atmega16.
Откройте Arduino IDE 1. 0.* и перейдите в Tools->Boards, и вы должны увидеть, как показано ниже. Если вы видите новую плату в меню Boards, как показано выше, значит, мы успешно настроили программную среду для загрузки.
Перейти к File->Examples->ArduinoISP, откроется новое окно со скетчем ArduinoISP. Перед загрузкой скетча убедитесь, что вы выбрали Arduino Uno в Tools->Boards->Arduino Uno. Теперь загрузите скетч в Uno. Теперь мы настраиваем наш Uno как программатор.
Аппаратная настройка для начальной загрузки
Здесь я снова следовал схеме подключения контактов, подробно описанной в сообщении Sudar. Пожалуйста, следуйте именно так, как указано в посте. Также не забудьте подключить конденсатор между Reset и GND Arduino.
Примечание. Если вы попытаетесь загрузить какой-либо скетч в Arduino Uno при подключенном конденсаторе, IDE выдаст ошибку. Поэтому, прежде чем что-либо делать с Arduino, удалите конденсатор.
![]()
Bootloading
Выполните следующие шаги, чтобы записать загрузчик
Мы должны установить нашу Arduino Uno в качестве интернет-провайдера. Для этого перейдите в Tools->Programmer и выберите «Arduino as ISP»
.Установите загрузчик в Tools->Boards и выберите только что добавленную плату, т.е. Atmega16 (внутренние часы 8 МГц).
Теперь запишите загрузчик, выбрав «Записать загрузчик» в меню «Инструменты».
Если все работает нормально, вы увидите сообщение об успешном завершении в нижней части IDE.
Загрузка скетчей в Atmega16
Далее нам нужно загрузить несколько скетчей в только что загруженную Atmega16. Для этого я использовал новую версию Arduino IDE 1.6.3, при желании можете использовать IDE 1.0.*. Как-то старая IDE для меня очень медленная, поэтому я решил использовать новую версию. Пропустите следующий шаг, если вы решили использовать старую версию 1.0.*.
Следуйте инструкциям по использованию платы Atmega16 в новой версии
Создайте новую папку в разделе <<Местоположение установки IDE V1.6.*>>/hardware. Вы можете назвать папку как угодно, я назвал Mega16.
В папке Mega16 создайте еще одну папку с именем «avr».
Внутри папки avr скопируйте boards.txt и создайте другую папку с именем варианты и скопируйте «pins_arduino.h» в папку вариантов.
Откройте файл boards.txt и добавьте строку «atmega16-8.upload.tool=arduino:avrdude»
Выполните следующие действия, чтобы загрузить эскиз (общий для всех версий IDE)
Откройте IDE и загрузите Blink из File->Examples->Basic.
Отредактируйте код так, чтобы вы писали на пин Atmega16, здесь я пишу на Digital 6, это физический пин 20.
Перед загрузкой скетча Выберите Atmega16 (внутренняя 8 МГц) в Tools->Boards.
Выберите «Загрузить с помощью программатора» в меню «Файл».
Просто подключите светодиод с резистором к физическому контакту 20 Atmega16, и вы увидите, как светодиод мигает.
Теперь я могу писать что угодно на Atmega16 и подключаться к датчикам или делать все, что я хочу, без Arduino.
Нравится Загрузка…
elementzonline / 28 октября 2016 г.
MightyCore — это ядро Arduino для больших микросхем AVR, работающих под управлением Optiboot 6. Основные библиотеки, такие как SD, Servo, SPI и Wire, модифицированы для работы с этим ядром. Тем не менее, большое количество сторонних библиотек часто работает без каких-либо модификаций.
Для этого ядра требуется как минимум Arduino IDE v1.6, где рекомендуется v1.6.11+.
* Все варианты – П, ПА, А кроме ПБ. Выберите нужную версию в меню «Вариант».
Для этого метода установки требуется Arduino IDE версии 1.6.4 или выше.
https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.
json
Нажмите кнопку «Загрузить ZIP». Распакуйте ZIP-файл и переместите извлеченную папку в папку « ~/Documents/Arduino/hardware ». Создайте папку «оборудование», если она не существует. Откройте Arduino IDE, и в меню плат появится новая категория под названием «MightyCore».
PlatformIO — это экосистема с открытым исходным кодом для разработки IoT. Он имеет встроенный менеджер библиотек и совместим с Arduino. Он поддерживает большинство операционных систем; Windows, Mac OSX, Linux 32- и 64-разрядные версии; ARM и X86.
shift
, нажмите Upload . Это удалит загрузчик и загрузит ваш код с помощью инструмента программирования.Вы можете купить все необходимое оборудование в нашем магазине.
Нравится Загрузка…
28 октября 2016 г. в Arduino, встроенная система. Поиск