8-900-374-94-44
[email protected]
Slide Image
Меню

Atmega16 arduino: Использование МК ATMega163, ATMega163L, ATMega16 в Arduino IDE » Журнал практической электроники Датагор

arduino — AVR ISP + Atmega16

Есть микроконтроллер Atmega16L-8PU, который я пытаюсь прошить с помощью Arduino Mega 2560, используя скетч ArduinoISP и avrdude.

  1. Создал тестовый проект в Atmel Studio, скомпилировал под Atmega16.
  2. Прошил Arduino скетчем ArduinoISP
  3. Подключил второй микроконтроллер, также установил конденсатор 10мкФ между Reset и GND Ардуино (без него ошибка «out of sync»)
  4. Запускаю 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 новая.

Модуль AVR с ATmega16 купити в Києві та Україні

Каталог

  • Новинки магазину
  • Подарункові сертифікати, сувеніри
  • Arduino контролери
    • Контролери Arduino (original)
    • Контролери Arduino (Китай)
    • Arduino для розробників
    • Плати розширень Arduino
      • Силові
      • Комунікаційні
      • Прототипування
      • Відображення інформації
      • Переферійні
      • Audio, звук, голос, mp3
      • Інші

Головна  »  Архівні товари

код: PBR102

Архивный товар, который больше не продается в нашем магазине.

голосовать

Популярный 8-ми разрядный микроконтроллер на ядре Atmel AVR8. 16кБ памяти и вся периферия семейства Mega делают этот микроконтроллер практически идеальным для домашних поделок. А крупный DIP корпус позволяет изготовить печатную плату даже неискушенному в ЛУТ или ФР технологиях новичку. Поистинне огромное количество обучающей и справочной литературы по этому семейству микроконтроллеров делают его очень легким в изучении. Модуль позволяет подключать сменные кварцы, выводы удобно сгруппированы и выведены так, чтобы соединять джамперами с периферией платы.

Загрузка Atmega16 с помощью Arduino Uno

Последние два дня я экспериментировал с микроконтроллерами и исследовал, как писать на них приложения. Я купил один 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 на одной машине.

Добавление досок и вариантов: Добавление досок в папку скетчбука у меня не сработало, может я не так понял. Поэтому я сделал следующие шаги.

  1. Перейдите в папку аппаратного обеспечения Arduino, <<расположение IDE для установки IDE>>/hardware/arduino/ и откройте файл boards.txt.

  2. Скопируйте содержимое плат Atmega16 и вставьте в файл boards.txt, открытый на шаге 1.

  3. Создайте новую папку с именем mega16 в разделе <<Место установки IDE>>/hardware/arduino/variants и вставьте файл «pins_arduino.h», созданный для Atmega16.

  4. Откройте Arduino IDE 1. 0.* и перейдите в Tools->Boards, и вы должны увидеть, как показано ниже. Если вы видите новую плату в меню Boards, как показано выше, значит, мы успешно настроили программную среду для загрузки.

  5. Перейти к File->Examples->ArduinoISP, откроется новое окно со скетчем ArduinoISP. Перед загрузкой скетча убедитесь, что вы выбрали Arduino Uno в Tools->Boards->Arduino Uno. Теперь загрузите скетч в Uno. Теперь мы настраиваем наш Uno как программатор.

Аппаратная настройка для начальной загрузки

Здесь я снова следовал схеме подключения контактов, подробно описанной в сообщении Sudar. Пожалуйста, следуйте именно так, как указано в посте. Также не забудьте подключить конденсатор между Reset и GND Arduino.

Примечание. Если вы попытаетесь загрузить какой-либо скетч в Arduino Uno при подключенном конденсаторе, IDE выдаст ошибку. Поэтому, прежде чем что-либо делать с Arduino, удалите конденсатор.

Bootloading

Выполните следующие шаги, чтобы записать загрузчик

  1. Мы должны установить нашу Arduino Uno в качестве интернет-провайдера. Для этого перейдите в Tools->Programmer и выберите «Arduino as ISP»

    .
  2. Установите загрузчик в Tools->Boards и выберите только что добавленную плату, т.е. Atmega16 (внутренние часы 8 МГц).

  3. Теперь запишите загрузчик, выбрав «Записать загрузчик» в меню «Инструменты».

Если все работает нормально, вы увидите сообщение об успешном завершении в нижней части IDE.

Загрузка скетчей в Atmega16

Далее нам нужно загрузить несколько скетчей в только что загруженную Atmega16. Для этого я использовал новую версию Arduino IDE 1.6.3, при желании можете использовать IDE 1.0.*. Как-то старая IDE для меня очень медленная, поэтому я решил использовать новую версию. Пропустите следующий шаг, если вы решили использовать старую версию 1.0.*.

Следуйте инструкциям по использованию платы Atmega16 в новой версии

  1. Создайте новую папку в разделе <<Местоположение установки IDE V1.6.*>>/hardware. Вы можете назвать папку как угодно, я назвал Mega16.

  2. В папке Mega16 создайте еще одну папку с именем «avr».

  3. Внутри папки avr скопируйте boards.txt и создайте другую папку с именем варианты и скопируйте «pins_arduino.h» в папку вариантов.

  4. Откройте файл boards.txt и добавьте строку «atmega16-8.upload.tool=arduino:avrdude»

Выполните следующие действия, чтобы загрузить эскиз (общий для всех версий IDE)

  1. Откройте IDE и загрузите Blink из File->Examples->Basic.

  2. Отредактируйте код так, чтобы вы писали на пин Atmega16, здесь я пишу на Digital 6, это физический пин 20.

  3. Перед загрузкой скетча Выберите Atmega16 (внутренняя 8 МГц) в Tools->Boards.

  4. Выберите «Загрузить с помощью программатора» в меню «Файл».

Просто подключите светодиод с резистором к физическому контакту 20 Atmega16, и вы увидите, как светодиод мигает.

 

Теперь я могу писать что угодно на Atmega16 и подключаться к датчикам или делать все, что я хочу, без Arduino.

Оценить:

Нравится:

Нравится Загрузка…

MightyCore: ядро ​​Arduino для ATmega16, ATmega32, ATmega324 и других… | Случайные коды

elementzonline / 28 октября 2016 г.

MightyCore — это ядро ​​Arduino для больших микросхем AVR, работающих под управлением Optiboot 6. Основные библиотеки, такие как SD, Servo, SPI и Wire, модифицированы для работы с этим ядром. Тем не менее, большое количество сторонних библиотек часто работает без каких-либо модификаций.

Для этого ядра требуется как минимум Arduino IDE v1.6, где рекомендуется v1.6.11+.

Поддерживаемые микроконтроллеры

  • ATmega16*
  • ATmega32*
  • ATmega324*
  • ATmega1284*
  • ATmega644*
  • ATmega164*
  • ATmega8535*

* Все варианты – П, ПА, А кроме ПБ. Выберите нужную версию в меню «Вариант».

Поддерживаемые тактовые частоты

  • Внешний генератор 20 МГц
  • Внешний генератор 16 МГц (по умолчанию)
  • Внешний генератор 12 МГц
  • Внешний генератор 8 МГц
  • Внутренний генератор 8 МГц *
  • Внутренний генератор 1 МГц

Как установить

Установка Boards Manager

Для этого метода установки требуется Arduino IDE версии 1.6.4 или выше.

  • Откройте IDE Arduino.
  • Откройте пункт меню Файл > Настройки .
  • Введите следующий URL-адрес в Дополнительные URL-адреса диспетчера плат : https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index. json
    • Разделяйте URL-адреса запятой (, ), если у вас более одного URL-адреса
  • Откройте пункт меню Tools > Board > Boards Manager… .
  • Дождитесь завершения загрузки индексов платформы.
  • Прокрутите вниз, пока не увидите запись MightyCore , и щелкните ее.
  • Нажмите Установить .
  • После завершения установки закройте Окно диспетчера плат .

Установка вручную

Нажмите кнопку «Загрузить ZIP». Распакуйте ZIP-файл и переместите извлеченную папку в папку « ~/Documents/Arduino/hardware ». Создайте папку «оборудование», если она не существует. Откройте Arduino IDE, и в меню плат появится новая категория под названием «MightyCore».

PlatformIO

PlatformIO — это экосистема с открытым исходным кодом для разработки IoT. Он имеет встроенный менеджер библиотек и совместим с Arduino. Он поддерживает большинство операционных систем; Windows, Mac OSX, Linux 32- и 64-разрядные версии; ARM и X86.

  • Что такое PlatformIO?
  • PlatformIO IDE
  • Начало работы с PlatformIO IDE или интерфейсом командной строки PlatformIO
  • Расширенный функционал
  • MightyCore-совместимые микроконтроллеры
  • Интеграция с другими IDE — Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM и Visual Studio
  • Примеры проектов

Итак, приступим

  • Откройте Tools > Board и выберите микроконтроллер, совместимый с MighyCore.
  • Если представлена ​​опция БПК , можно выбрать, при каком напряжении микроконтроллер будет отключаться. Подробнее о БПК читайте здесь.
  • Выберите предпочитаемую распиновку. Лично я предпочитаю стандартную распиновку, потому что она «чище», но распиновка Bobuino лучше подходит для совместимости с выводами Arduino UNO. Здесь я использую распиновку Bobuino.  Подробнее о различных распиновках читайте здесь.
  • Выберите предпочтительную тактовую частоту. 16 МГц является стандартным для большинства плат Arduino.
  • Выберите, какой программатор вы используете, в меню Programmers . Здесь я использую USBasp (MightyCore). Вы можете купить его в нашем магазине .
  • Если представлена ​​опция Variants , вам нужно будет указать, какую версию микроконтроллера вы используете. Например, ATmega1284 и ATmega1284P имеют разные сигнатуры устройств, поэтому выбор неправильной сигнатуры приведет к ошибке.
  • Нажать Записать загрузчик . Если светодиод подключен к контакту PB0, он должен мигать два раза в секунду.
  • Теперь, когда установлены правильные настройки фьюза и загрузчик сгорел, вы можете загрузить свой код двумя способами:
    • Отключите программатор (USBasp) и подключите преобразователь USB-последовательный порт к микроконтроллеру, как показано на схеме минимальной настройки. Затем выберите правильный последовательный порт в меню Tools . В меню Programmers выберите 9.0005 ArduinoISP(MightyCore) и нажмите кнопку Upload . Если вы получаете какую-то ошибку тайм-аута, это означает, что ваши контакты RX и TX поменялись местами, или ваша схема автоматического сброса не работает должным образом (конденсатор 100 нФ на линии сброса).
    • Не отключайте программатор и, удерживая нажатой кнопку shift , нажмите Upload . Это удалит загрузчик и загрузит ваш код с помощью инструмента программирования.
Теперь ваш код должен работать на вашем микроконтроллере!

Вы можете купить все необходимое оборудование в нашем магазине.

Сообщение форума Arduino для этого конкретного ядра находится здесь.

Нравится:

Нравится Загрузка…

28 октября 2016 г. в Arduino, встроенная система. Поиск
  • Ардуино
  • ардуино-совместимый nrf
  • АТМЕГА
  • АВР
  • Встроенный Linux
  • Встроенная система
  • ESP8266
  • GPS
  • GSM
  • Линукс
  • ЛоРА
  • Линкер M2M
  • Матлаб
  • нрф
  • нрф ксигби
  • nrf xigbee с базовой платой
  • Питон
  • Малиновый Пи
  • Датчики
  • sim800
  • sim808
  • СТМ32
  • Без категории
  • Коммунальные услуги
  • Беспроводная связь
  • беспроводная передача данных
  • XigBee
  • xigbee-модуль
  • STM32CubeIDE — быстрый старт
  • Тест LoRa Urban Range с использованием RAK811
  • Использование SIM-карты 4G VoLTE JIO с SIMCOM SIM7600
  • Раздача интернета от модема SIM7600 4G-GSM
  • Новый SIM7600E 4G/3G/2G GSM МОДЕМ от ElemenzOnline. com