Ошибка при записи загрузчика atmega328p

Tomasina аватар

Offline

Зарегистрирован: 09.03.2013

МК Atmega328p магазинные, куплены в Чип и Дипе, т.е. непрошитый.

Припаял МК на плату, кварц 16 МГц тоже припаял.
Пробую прошить загрузчик, в IDE выбираю Uno, в качестве программатора  «Arduino as ISP» (через другую ардуинку):

         Using Port                    : COM4
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
Ошибка при записи загрузчика.
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         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        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x02

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10
         Hardware Version: 4744608
         Firmware Version: 0.4611299
         Topcard         : STK502
         Vtarget         : 1.8 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: stk500_initialize(): (b) protocol error, expect=0x10, resp=0x01
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10

avrdude done.  Thank you.

Пробую через программатор USBasp (что с установленной перемычкой JP3, что без нее):

Using Port                    : usb
         Using Programmer              : usbasp
avrdude: Warning: cannot open USB device: Function not implemented
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         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        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: error: program enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Ошибка при записи загрузчика.

Другие ардуинки, валявшиеся в столе, обеими способами прошиваются загрузчиком нормально, без ошибок.
А вот с новыми магазинными МК затык.

Где порыться?

Автор

AlexeyStudent · Опубликовано

Если интересно — никто и не препятствует, чините, пожалуйста, в свое безмерное удовольствие.
Мне подобных «рамок» в день приходит пучок, а заодно десятки наушников-затычек с оторванными «концами», раздавленные сочными задницами бухгалтерш калькуляторы, разломанные надвое тинэйджерами флешки, обугленные молнией телефонные зарядки, частично употребленные собаками телевизорные пульты, наглухо сожженные РЭСом светодиодные лампы… А помимо них — телевизоры, компьютеры, стабилизаторы, усилители, автомагнитолы, тюнеры, телефоны, музцентры, SMPS, всевозможнейшее ископаемое ретро эпохи исторического материализма, плойки, ТЭВ, вентиляторы, вытяжки и бесконечный список прочей предельно популярной и трудноперечислимой хери. Поэтому интерес — понятие сугубо субъективное, весьма нечетко очерченное и крайне малоактуальное, когда со вчера очень хочется кушать. @KRAB (Руслан, здравия тебе, дружище!) наверняка подтвердит: «У меня на работе диреХтор любит притаскивать что-то со словами: «посмотришь, когда будет неФуй делать» — я даже стол для подобного завел дополнительный …»(С)

 

Arduino Forum

Loading

Introduction: How to Fix «Expected Signature for ATMEGA328P Is 1E 95 0F Double Check Chip, or Use -F to Override This»

If you are like me and you bought the slightly cheaper ATMEGA328-PU instead of the ATMEGA328P-PU, without understanding the difference, then you may encounter some issues when burning the bootloader. I was stuck with this myself for some time and decided to share my learnings. Hope it helps some others out there!

Step 1: Editing the Avrdude.CONF File

There are countless forums with advice on how to deal with the following two errors you may encounter when burning the bootloader of an Atmega328P:

  1. «avrdude: Yikes! Invalid device signature.” or
  2. «avrdude: Expected signature for ATMEGA328P is 1E 95 0F»

As other forums will tell you, the solution is to modify the avrdude.conf file. This is located in C:\Program Files (x86)\Arduino\hardware\tools\avr\etc.******

Open the file and search for «0x1e 0x95 0x0F». Replace this with «0x1e 0x95 0x14«.

Restart the Arduino IDE and burn the bootloader on your chip/s.

After completing this, revert the changes in the avrdude.conf file and restart the Arduino IDE once more. Now you can upload code as per usual.

****** IF THIS DOES NOT WORK, READ THE BELOW PARAGRAPH ******

If like me you followed the above instructions and still met the same error message, do not fear! This simply means that the avrdude.conf file that your system is using is actually somewhere else. To find the location of the avrdude.conf that your system is using, upload any sketch to your arduino board and search the output for «avrdude». From here you will see the folder it is located within. Copy this path into a windows explorer and edit the avrdude.conf file here instead.

For me this was:

C:\Users\YOUR_USER_NAME\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\etc

I hope this helps somebody else out there struggling with this issue!

Have a great day :)

не могу востановить загрузчик в четырёх нано

Offline

Зарегистрирован: 06.01.2020

допустим в одной пишет ошибку

Arduino: 1.8.11 (Windows 10), Плата:»Arduino Nano, ATmega328P (Old Bootloader)»

avrdude: Expected signature for ATmega328P is 1E 95 0F

         Double check chip, or use -F to override this check.

Ошибка при записи загрузчика.

прошиваю через уно 

соединил 13-13 / 12-12 / 11-11 / 10-ресет и питание

на двух нано при заливки блинка он залился но после этого на неё нельзя ничего залить 

у третий нано изначально пишит — выбранный последовательный порт не существует или плата не подключена к нему

у четвёртой слетел после попытки востановить на предыдущих трёх но как прошивалка она работает а именно я соединяю с промини рх-рх / тх-тх и промини прошивается через неё без проблем

помогите востановить я уже весь ютуб перепробывал их стандартные примеры не помогают 

  1. МК Atmega328p магазинные, куплены в Чип и Дипе, т.е. непрошитый.

    Припаял МК на плату, кварц 16 МГц тоже припаял.
    Пробую прошить загрузчик, в IDE выбираю Uno, в качестве программатора «Arduino as ISP» (через другую ардуинку):

    Пробую через программатор USBasp (что с установленной перемычкой JP3, что без нее):Другие ардуинки, валявшиеся в столе, обеими способами прошиваются загрузчиком нормально, без ошибок.
    А вот с новыми магазинными МК затык.

    Где порыться?

  2. Попробуйте через AVRDUDEPROG и USBasp (с установленной перемычкой JP3) считать фьюзы. Если получится, запишите в МК фьюзы для ардуины. Значения фьюзов можно взять в boards.txt. Если всё пройдёт удачно, заливка загрузчика из IDE потом должна пройти удачно.

  3. Надо разрешить секцию загрузчика и указать область памяти под него.

  4. А других программаторов ( Громова ,5 проводков) нет?Я бы ими попробовал.

  5. При записи загрузчика через IDE нужные FUSE биты должны устанавливаться автоматом.

  6. Так и есть.У меня под это дело Шилд есть—пишет без проблем

  7. Я шью с помощью AVRISPmkII через AtmelStudio. Никогда не было никаких проблем.

  8. У меня для голых МК такой.
    [​IMG]
    Впаял для кварца разъём, теперь подходит для всех случаев жизни.

  9. а если МК такой
    [​IMG]

  10. Тогда никак

    Там же вроде есть кварц? Только не на 16?Есть у меня такой конструктор так и не собрал

  11. Да, кварц по задумке разработчиков должен впаиваться на плату. Я впаял вместо кварца такие разъёмы.
    [​IMG]
    Теперь оперативно можно поставить кварц на любую частоту, или убрать совсем.

  12. Так это высоковольтный программатор или нет?

  13. ну как там? фьюзы прочитываются? неужели в чипдипе уже и атмеги паленые появились?
    мне попадались звукозаписывающие микросхемы ISD у которых ноги не работали, CP2102 переделанные в фитнес-браслет и залоченные продали однажды. но атмеги пока все нормальные были.

  14. У меня такие есть.
    [​IMG]
    Справа-кетайский Шилд. Слева-мой Самопал под Мегу-328.Под Шилды и ISP программатор. Может работать как Ардуино.

Introduction: How to Fix «Expected Signature for ATMEGA328P Is 1E 95 0F Double Check Chip, or Use -F to Override This»

If you are like me and you bought the slightly cheaper ATMEGA328-PU instead of the ATMEGA328P-PU, without understanding the difference, then you may encounter some issues when burning the bootloader. I was stuck with this myself for some time and decided to share my learnings. Hope it helps some others out there!

Step 1: Editing the Avrdude.CONF File

There are countless forums with advice on how to deal with the following two errors you may encounter when burning the bootloader of an Atmega328P:

  1. «avrdude: Yikes! Invalid device signature.” or
  2. «avrdude: Expected signature for ATMEGA328P is 1E 95 0F»

As other forums will tell you, the solution is to modify the avrdude.conf file. This is located in C:Program Files (x86)Arduinohardwaretoolsavretc.******

Open the file and search for «0x1e 0x95 0x0F». Replace this with «0x1e 0x95 0x14«.

Restart the Arduino IDE and burn the bootloader on your chip/s.

After completing this, revert the changes in the avrdude.conf file and restart the Arduino IDE once more. Now you can upload code as per usual.

****** IF THIS DOES NOT WORK, READ THE BELOW PARAGRAPH ******

If like me you followed the above instructions and still met the same error message, do not fear! This simply means that the avrdude.conf file that your system is using is actually somewhere else. To find the location of the avrdude.conf that your system is using, upload any sketch to your arduino board and search the output for «avrdude». From here you will see the folder it is located within. Copy this path into a windows explorer and edit the avrdude.conf file here instead.

For me this was:

C:UsersYOUR_USER_NAMEAppDataLocalArduino15packagesarduinotoolsavrdude6.3.0-arduino17etc

I hope this helps somebody else out there struggling with this issue!

Have a great day :)

Be the First to Share

Recommendations

well…
the problem starts from the time that I accidentally touched the crystal on my arduino and all of a sudden everything messed up; the leds on arduino turned on and off while being touched, and after that I was unable to program it…
after a lot of searches, I decided t burn bootloader again…
so I got a USBasp and wired it to arduino and tried to program it using programmer or burning bootloader…
but…
It is not posible because of the following ERROR:

**Arduino: 1.8.15 (Windows 10), Board: "Arduino Uno"

avrdude: warning: cannot set sck period. please check for usbasp firmware update.

avrdude: Expected signature for ATmega328P is 1E 95 0F

         Double check chip, or use -F to override this check.

Error while burning bootloader.**

I tried changing that 0xF in config file to 0x14, because of the difference between ATmega328 and ATmega328p…
but still no progress…
I will be very glad if someone can help me run this UNO…

by the way, is it possible that the crystal which I touched with hand is ruined or interrupted and all of these stuff is because of that?

well…
the problem starts from the time that I accidentally touched the crystal on my arduino and all of a sudden everything messed up; the leds on arduino turned on and off while being touched, and after that I was unable to program it…
after a lot of searches, I decided t burn bootloader again…
so I got a USBasp and wired it to arduino and tried to program it using programmer or burning bootloader…
but…
It is not posible because of the following ERROR:

**Arduino: 1.8.15 (Windows 10), Board: "Arduino Uno"

avrdude: warning: cannot set sck period. please check for usbasp firmware update.

avrdude: Expected signature for ATmega328P is 1E 95 0F

         Double check chip, or use -F to override this check.

Error while burning bootloader.**

I tried changing that 0xF in config file to 0x14, because of the difference between ATmega328 and ATmega328p…
but still no progress…
I will be very glad if someone can help me run this UNO…

by the way, is it possible that the crystal which I touched with hand is ruined or interrupted and all of these stuff is because of that?

Первая прошивка


Итак, разобрались со средой разработки, теперь можно загрузить прошивку. Рекомендую загрузить пустую прошивку, чтобы убедиться, что все драйвера установились и плата вообще прошивается. Также лучше делать это с новой или заведомо рабочей платой.

1. Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:

  • Неисправен USB кабель.
  • Неисправен USB порт компьютера.
  • Неисправен USB порт Arduino.
  • Попробуйте другой компьютер, чтобы исключить часть проблем из списка.
  • Попробуйте другую плату, чтобы исключить часть проблем из списка.
  • На плате Arduino сгорел диод по питанию USB.
  • Плата Arduino сгорела полностью из-за неправильного подключения питания или короткого замыкания

2. Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:

  • См. предыдущий список неисправностей.
  • Кабель должен быть data-кабелем, а не “зарядным”.
  • Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб.
  • Не установлены драйверы для Arduino.

3. В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, отличный от COM1. Если этого не произошло:

  • См. предыдущий список неисправностей.
  • Некорректно установлен драйвер CH341.
  • Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
  • Возникла системная ошибка, обратитесь к знакомому компьютерщику

4. Выбираем свою плату. Если это Arduino Nano, выбираем в ИнструментыПлатаArduino Nano. Если другая – выбираем другую. Нажимаем стрелочку в левом верхнем углу (загрузить прошивку). Да, загружаем пустую прошивку.

  • [Для Arduino Nano] В микроконтроллер китайских нанок зашит “старый” загрузчик, поэтому выбираем ИнструментыПроцессорATmega328p (Old Bootloader). Некоторые китайцы зашивают в свои платы новый загрузчик, поэтому если прошивка не загрузилась (загрузка идёт минуту и вылетает ошибка avrdude: stk500_getsync()) – попробуйте сменить пункт Процессор на ATmega328p.

Если появилась надпись “Загрузка завершена” – значит всё в порядке и можно прошивать другие скетчи. В любом случае на вашем пути встретятся другие два варианта событий, происходящих после нажатия на кнопку “Загрузка” – это ошибка компиляции и ошибка загрузки. Вот их давайте рассмотрим более подробно.

Ошибки компиляции


Возникает на этапе компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки.

  • В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
  • В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки и понять, куда копать.
  • В скачанных с интернета готовых скетчах часто возникает ошибка с описанием название_файла.h no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по название файла.
  • При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
  • Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
  • Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча
  • Ошибка недостаточно свободного места возникает по вполне понятным причинам. Возможно поможет урок по оптимизации кода.

Частые ошибки в коде, приводящие к ошибке компиляции


  • expected ‘,’ or ‘;’ – пропущена запятая или точка запятой на предыдущей строке
  • stray ‘320’ in program – русские символы в коде
  • expected unqualified-id before numeric constant – имя переменной не может начинаться с цифры
  • … was not declared in this scope – переменная или функция используется, но не объявлена. Компилятор не может её найти
  • redefinition of … – повторное объявление функции или переменной
  • storage size of … isn’t known – массив задан без указания размера

Ошибки загрузки


Возникают на этапе, когда программа успешно скомпилирована и производится загрузка в плату по кабелю. Ошибка может возникать как по причине неисправностей железа, так и из-за настроек программы и драйверов.

  • USB кабель, которым подключается Arduino, должен быть Data-кабелем, а не кабелем только для зарядки. Нужным нам кабелем подключаются к компьютеру плееры и смартфоны.
  • Причиной ошибки загрузки являются не установленные/криво установленные драйвера CH340, если у вас китайская NANO.
  • Также будет ошибка avrdude: ser_open(): can’t open device, если не выбран COM порт, к которому подключена Arduino. Если кроме COM1 других портов нет – читай два пункта выше, либо попробуй другой USB порт, или вообще другой компьютер.
  • Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением ардуины от питания. Потом вставляем USB и по новой прошиваем.
  • Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”. Также в свежих версиях IDE нужно выбирать ATmega328P (Old Bootloader) для китайских плат NANO.
  • Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
  • Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
  • Если в описании ошибки встречается bootloader is not responding и not in sync, а все предыдущие пункты этого списка проверены – с вероятностью 95% сдох загрузчик. Второй неприятный исход – загрузчик “слетел”, и его можно прошить заново.

Предупреждения


Помимо ошибок, по причине которых проект вообще не загрузится в плату и не будет работать, есть ещё предупреждения, которые выводятся оранжевым текстом в чёрной области лога ошибок. Предупреждения могут появиться даже тогда, когда выше лога ошибок появилась надпись “Загрузка завершена“. Это означает, что в прошивке нет критических ошибок, она скомпилировалась и загрузилась в плату. Что же тогда означают предупреждения? Чаще всего можно увидеть такие:

  • # Pragma message… – это просто сообщения, оставленные разработчиком проекта или библиотеки. Чаще всего номер версии и прочая информация.
  • Недостаточно памяти, программа может работать нестабильно – Чуть выше этого предупреждения обычно идёт информация о задействованной памяти. Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85-90%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти. Так что ещё раз: это всего лишь предупреждение, а не ошибка.

FAQ


Завершая раздел Введение в Arduino поговорим о вопросах, которые очень часто возникают у новичков:

  • Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс Flash памяти. А он довольно большой.
  • Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
  • Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов. Подробнее в этом уроке.
  • Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию. Подробнее в этом уроке.
    • Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
    • Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу.
    • Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь.
    • Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI

Видео


Полезные страницы


  • Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
  • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
  • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
  • Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
  • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
  • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
  • Поддержать автора за работу над уроками
  • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])

I just compared the avrdude versions hipped with 1.6.9 and 1.6.10 with the STK500 and JTAGICE3 programmers I have lying around. As I remembered, they return different values for the unused bits (note the differences in the high fuse).

matthijs@grubby:~/arduino-1.6.9$ ./hardware/tools/avr/bin/avrdude -C ./hardware/tools/avr/etc/avrdude.conf -h 2>&1 |grep version
avrdude version 6.0.1, URL: <http://savannah.nongnu.org/projects/avrdude/>
matthijs@grubby:~/arduino-1.6.9$ ./hardware/tools/avr/bin/avrdude -C ./hardware/tools/avr/etc/avrdude.conf -c stk500v2 -p m328p -P /dev/ttyUSB0

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.09s

avrdude: Device signature = 0x1e950f

avrdude: safemode: Fuses OK (H:05, E:DE, L:FF)

avrdude done.  Thank you.

matthijs@grubby:~/arduino-1.6.9$ ./hardware/tools/avr/bin/avrdude -C ./hardware/tools/avr/etc/avrdude.conf -c jtag3isp -p m328p

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.20s

avrdude: Device signature = 0x1e950f

avrdude: safemode: Fuses OK (H:FD, E:DE, L:FF)

avrdude done.  Thank you.

However, with avrdude 6.3, both programmers return «1» for unused bits:

matthijs@grubby:~/arduino-1.6.10$ ./hardware/tools/avr/bin/avrdude -C ./hardware/tools/avr/etc/avrdude.conf -h 2>&1 |grep version
avrdude version 6.3, URL: <http://savannah.nongnu.org/projects/avrdude/>
matthijs@grubby:~/arduino-1.6.10$ ./hardware/tools/avr/bin/avrdude -C ./hardware/tools/avr/etc/avrdude.conf -c stk500v2 -p m328p -P /dev/ttyUSB0

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.09s

avrdude: Device signature = 0x1e950f (probably m328p)

avrdude: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude done.  Thank you.

matthijs@grubby:~/arduino-1.6.10$ ./hardware/tools/avr/bin/avrdude -C ./hardware/tools/avr/etc/avrdude.conf -c jtag3isp -p m328p

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.19s

avrdude: Device signature = 0x1e950f (probably m328p)

avrdude: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude done.  Thank you.

This suggests that indeed the unused bits are now consistent among multiple programmers (though testing on more programmers would be good), however they are inverted as to what boards.txt now lists. I’m mostly confirming what is already stated, though.

This bugreport suggests that there might still be a problem (introduced in 6.2) with the lock bits. I’m not sure if this is already fixed in 6.3, and I didn’t dig in the code to see. Testing is probably a good idea (if burn bootloader works, then I think it’s ok).

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста отправитьдляобработки bitrix24
  • Ошибка при записи загрузчика arduino usbasp
  • Ошибка при загрузке фейсита
  • Ошибка при вызове метода контекста открытьфайл xml
  • Ошибка при записи файла coreldraw 2020