Ошибка подписи ATmega168PA-AU

soznik
Offline
Зарегистрирован: 20.09.2015

nikolaki  

Огромное спасибо за подсказку нано ожила.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

C:\arduino-1.6.7\hardware\tools\avr\etc\avrdude.conf

У меня есть и это:

#------------------------------------------------------------
# ATmega168P
#------------------------------------------------------------

part parent "m168"
    id              = "m168p";
    desc            = "ATmega168P";
    signature       = 0x1e 0x94 0x0b;

    ocdrev              = 1;
;

И это:

#------------------------------------------------------------
# ATmega168
#------------------------------------------------------------

part
    id              = "m168";
    desc            = "ATmega168";
     has_debugwire = yes;
     flash_instr   = 0xB6, 0x01, 0x11;
     eeprom_instr  = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
	             0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
	             0x99, 0xF9, 0xBB, 0xAF;
    stk500_devcode  = 0x86;
    # avr910_devcode = 0x;
    signature       = 0x1e 0x94 0x06;
    pagel           = 0xd7;
    bs2             = 0xc2;
    chip_erase_delay = 9000;
    pgm_enable       = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
                       "x x x x x x x x x x x x x x x x";

    chip_erase       = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
                       "x x x x x x x x x x x x x x x x";

    timeout         = 200;
    stabdelay       = 100;
    cmdexedelay     = 25;
    synchloops      = 32;
    bytedelay       = 0;
    pollindex       = 3;
    pollvalue       = 0x53;
    predelay        = 1;
    postdelay       = 1;
    pollmethod      = 1;

    pp_controlstack     =
	0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
	0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
	0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
	0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
    hventerstabdelay    = 100;
    progmodedelay       = 0;
    latchcycles         = 5;
    togglevtg           = 1;
    poweroffdelay       = 15;
    resetdelayms        = 1;
    resetdelayus        = 0;
    hvleavestabdelay    = 15;
    resetdelay          = 15;
    chiperasepulsewidth = 0;
    chiperasepolltimeout = 10;
    programfusepulsewidth = 0;
    programfusepolltimeout = 5;
    programlockpulsewidth = 0;
    programlockpolltimeout = 5;

    ocdrev              = 1;

    memory "eeprom"
        paged           = no;
        page_size       = 4;
        size            = 512;
        min_write_delay = 3600;
        max_write_delay = 3600;
        readback_p1     = 0xff;
        readback_p2     = 0xff;
        read            = " 1 0 1 0 0 0 0 0",
                          " 0 0 0 x x x x a8",
                          " a7 a6 a5 a4 a3 a2 a1 a0",
                          " o o o o o o o o";
    
        write           = " 1 1 0 0 0 0 0 0",
                          " 0 0 0 x x x x a8",
                          " a7 a6 a5 a4 a3 a2 a1 a0",
                          " i i i i i i i i";

	loadpage_lo	= "  1   1   0   0      0   0   0   1",
			  "  0   0   0   0      0   0   0   0",
			  "  0   0   0   0      0   0  a1  a0",
			  "  i   i   i   i      i   i   i   i";

	writepage	= "  1   1   0   0      0   0   1   0",
			  "  0   0   x   x      x   x   x  a8",
			  " a7  a6  a5  a4     a3  a2   0   0",
			  "  x   x   x   x      x   x   x   x";

	mode		= 0x41;
	delay		= 20;
	blocksize	= 4;
	readsize	= 256;
        ;

    memory "flash"
        paged           = yes;
        size            = 16384;
        page_size       = 128;
        num_pages       = 128;
        min_write_delay = 4500;
        max_write_delay = 4500;
        readback_p1     = 0xff;
        readback_p2     = 0xff;
        read_lo         = " 0 0 1 0 0 0 0 0",
                          " 0 0 0 a12 a11 a10 a9 a8",
                          " a7 a6 a5 a4 a3 a2 a1 a0",
                          " o o o o o o o o";
        
        read_hi          = " 0 0 1 0 1 0 0 0",
                           " 0 0 0 a12 a11 a10 a9 a8",
                           " a7 a6 a5 a4 a3 a2 a1 a0",
                           " o o o o o o o o";
        
        loadpage_lo     = " 0 1 0 0 0 0 0 0",
                          " 0 0 0 x x x x x",
                          " x x a5 a4 a3 a2 a1 a0",
                          " i i i i i i i i";
        
        loadpage_hi     = " 0 1 0 0 1 0 0 0",
                          " 0 0 0 x x x x x",
                          " x x a5 a4 a3 a2 a1 a0",
                          " i i i i i i i i";
        
        writepage       = " 0 1 0 0 1 1 0 0",
                          " 0 0 0 a12 a11 a10 a9 a8",
                          " a7 a6 x x x x x x",
                          " x x x x x x x x";

        mode        = 0x41;
        delay       = 6;
        blocksize   = 128;
        readsize    = 256;

        ;
        
    memory "lfuse"
        size            = 1;
        min_write_delay = 4500;
        max_write_delay = 4500;
        read            = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
                          "x x x x x x x x o o o o o o o o";
        
        write           = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
                          "x x x x x x x x i i i i i i i i";
        ;
    
    memory "hfuse"
        size            = 1;
        min_write_delay = 4500;
        max_write_delay = 4500;
        read            = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
                          "x x x x x x x x o o o o o o o o";
        
        write           = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
                          "x x x x x x x x i i i i i i i i";
        ;
    
    memory "efuse"
        size            = 1;
        min_write_delay = 4500;
        max_write_delay = 4500;
        read            = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
                          "x x x x x x x x x x x x x o o o";
        
        write           = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
                          "x x x x x x x x x x x x x i i i";
        ;
    
    memory "lock"
        size            = 1;
        min_write_delay = 4500;
        max_write_delay = 4500;
        read            = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
                          "x x x x x x x x x x o o o o o o";
        
        write           = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
                          "x x x x x x x x 1 1 i i i i i i";
        ;
    
    memory "calibration"
        size            = 1;
        read            = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
                          "0 0 0 0 0 0 0 0 o o o o o o o o";
        ;
    
    memory "signature"
        size            = 3;
        read            = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
                          "x x x x x x a1 a0 o o o o o o o o";
        ;
;

#------------------------------------------------------------
# ATmega168P
#------------------------------------------------------------

part parent "m168"
    id              = "m168p";
    desc            = "ATmega168P";
    signature       = 0x1e 0x94 0x0b;

    ocdrev              = 1;
;

 

steelth
Offline
Зарегистрирован: 19.04.2016

maksim пишет:

Как я и говорил... вы что то не там подправили... или не перезапустили IDE... строку видите:

       avrdude.conf -v -v -v -v -patmega168 -cstk500v1...

а должно быть:

      avrdude.conf -v -v -v -v -patmega168p -cstk500v1....

 

Может кому пригодится информация: Проверяйте на какой путь ссылается IDE ! Я мучался, правил boards.txt в ProgramFiles, а IDE ссылалось на "мои документы..///"

И еще! После успешной загрузки бутлоадера не забываем поправить boards обратно (с 168p на 168)!

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

maksim пишет:

 В файле \arduino-1.0.3\hardware\arduino\boards.txt в строке diecimila.build.mcu=atmega168 добавляете

буковку p (пэ англ.), сохраняете файл, перезапускаете IDE.

##############################################################

diecimila.name=Arduino Diecimila or Duemilanove w/ ATmega168

diecimila.upload.protocol=arduino
diecimila.upload.maximum_size=14336
diecimila.upload.speed=19200

diecimila.bootloader.low_fuses=0xff
diecimila.bootloader.high_fuses=0xdd
diecimila.bootloader.extended_fuses=0x00
diecimila.bootloader.path=atmega
diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F

diecimila.build.mcu=atmega168p
diecimila.build.f_cpu=16000000L
diecimila.build.core=arduino
diecimila.build.variant=standard

##############################################################

И будет вам счастье.

а у меня нету такой строки diecimila.build.mcu=atmega168 

что же делать ?  

шью через уно 

плата новая по заводу залит блинк на 1 сек 

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

перепрошить загрузчик выскакивает ошибка

avrdude: Expected signature for ATmega168 is 1E 94 06

         Double check chip, or use -F to override this check.
Ошибка при записи загрузчика.
 

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

гость123 пишет:

а у меня нету такой строки diecimila.build.mcu=atmega168 

Потому что эта строка из древней версии arduino-1.0.3. Сейчас конфиг выглядит немного по-другому. Ищи строчки с окончанием build.mcu=atmega168 . Их там несколько штук для нескольких вариантов плат на атмега168.
 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Интересно, для кого лучшие умы библиотеки составляют )))

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

при попытке залить сразу вылетает ошибка 

Arduino: 1.8.10 (Windows 10), Плата:"Arduino Nano, ATmega168"
 
Ошибка при записи загрузчика.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
 
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
 
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.
 
avrdude: stk500_disable(): unknown response=0x12
 
изменил вот так 
 
 
 
гость123
Offline
Зарегистрирован: 06.01.2020

ua6em пишет:

Интересно, для кого лучшие умы библиотеки составляют )))
 

у меня такого нету 

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

поправил остальные строчки 

 

теперь пишит 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

гость123 пишет:

ua6em пишет:

Интересно, для кого лучшие умы библиотеки составляют )))
 

у меня такого нету 

Клапа запретил поставить библиотеку miniCore?

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

ua6em пишет:

гость123 пишет:

ua6em пишет:

Интересно, для кого лучшие умы библиотеки составляют )))
 

у меня такого нету 

Клапа запретил поставить библиотеку miniCore?

скачал установил ничего не поменялось 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а  винда какая? с 1.8.10 дел не имел, запустите 1.8.3 у неё нет проблем при записи загрузчика

а с какого такого перепугу у вас плата ардуино нана, когда должна быть атмега 168 вариант P

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

да разобрался где выбрать 

но бесполезно через Р и РА тоже не шьётся 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ты текст скинь сюда а не картинки

гость123
Offline
Зарегистрирован: 06.01.2020
Arduino: 1.8.10 (Windows 10), Плата:"ATmega168, Yes (UART0), 168P / 168PA, BOD 2.7V, LTO Disabled, 16 MHz external"
 
avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch
 
         System wide configuration file is "C:\Users\User\Desktop\ideV4\portable\packages\MiniCore\hardware\avr\2.0.3/avrdude.conf"
 
         Using Port                    : COM4
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
Ошибка при записи загрузчика.
         AVR Part                      : ATmega168P
         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        512    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     16384  128    128  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.
 
настройки платы по умолчанию 
 
ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

1. а подключаете как?

2. на версии 1.8.3 пробовали?

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

подключаю как и всегда 

 

я пробовал в 1810 189 182

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Не шьётся именно эта плата? если другая шьётся, тогда посмотреть фото чипа

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

нешьются именно 168РА

328 и 328Р без проблем загрузчик меняю от уно и работают прекрасно 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

может она 8 мегагерцовая?

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

бредятина какаято 

поставил 8 мгц екстернал не прошилась 

поставил 8 мгц интернал прошилась 

поставил 20 мгц прошилась 

поставил 16 мгц прошилась 

до этого на 16 мгц не шилась 

и как это понимать ? 

выбирал из miniCore

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

гость123 пишет:

бредятина какаято 

поставил 8 мгц екстернал не прошилась 

поставил 8 мгц интернал прошилась 

поставил 20 мгц прошилась 

поставил 16 мгц прошилась 

до этого на 16 мгц не шилась 

и как это понимать ? 

выбирал из miniCore

загрузчик оригинально слетел )))

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

только вот всеравно в неё ничего не грузится 

светодиоды мигают и загрузка висит как раньше не завершается 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

гость123 пишет:

только вот всеравно в неё ничего не грузится 

светодиоды мигают и загрузка висит как раньше не завершается 

так всё таки кварц какой?

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

низнаю там кропаль с птичками 

 

в общем всё загрузилось 

но с одним исключением только через miniCore

основная библиотека среды отказывается работать теперь с этими платами перепрошитыми через miniCore

но самое забавное таже плата из той же партии с которой не было проблем заливает как из основной библиотеки так и из miniCore заливает блинк 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

у меня с пьезами плат нет, как маркируется по частоте не знаю, на кварце же всё написано )))

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

я не могу найти маркировку яндекс без понятия что это 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
dima10021992
Offline
Зарегистрирован: 13.06.2020

Решение проблемы:

1. Скачиваете avrdude.

2. В avrdude.conf (открытом через блокнот) находите блок:

#------------------------------------------------------------
# ATmega168
#------------------------------------------------------------
...
..
...
3. Полностью его копируете и вставляете снизу.
4. Меняете строки:
    id              = "m168"; 
    desc            = "ATMEGA168";
    signature       = 0x1e 0x94 0x06;
на значения:
    id              = "m168p"; 
    desc            = "ATMEGA168p";
    signature       = 0x1e 0x94 0x0b;

5. Закрывете и сохраняете.

6. Прошиваете бутлодер от ардуинки с контроллером Atmega168 (который находите в интернете: "ATmegaBOOT_168_diecimila.hex")

Шьете через программатор (я шил через USBasp):

avrdude.exe avrdude.conf -v -patmega168p -cusbasp -Pusb -Uflash:w:ATmegaBOOT_168_diecimila.hex

4. Заходите в Arduino IDE и пользуетесь ))

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

В аддоне miniCore все вариации мк мега 8...328  поддерживаются без шаманств. И позволяют использовать новый бутлоадер (512 байт флэша) а не старый (2к флэша) + куча прочих возможностей :)