Заливка скетча в Pro Mini на Mega168

Valentinych
Offline
Зарегистрирован: 13.08.2014

Доброго времени, форумчане!

При попытке залить скетч в Arduino Pro Mini Mega168 3,3 V / 8 MHz с помощью программатора ArduinoSPI на базе Arduino Mega2560, выдается сообщение:

Sketch uses 1 030 bytes (7%) of program storage space. Maximum is 14 336 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 1 015 bytes for local variables. Maximum is 1 024 bytes.

avrdude: Expected signature for ATmega168 is 1E 94 06
         Double check chip, or use -F to override this check. 

Найден неправильный микроконтроллер. Вы указали правильную плату в меню Инструменты -> Плата? 

Тот же скетч нормально заливается в Pro Mini Mega328 3.3 V/ 8 MHz. С бордами на Меге168 до этого дня дела не имел. Это пришла новая партия. Возможно кто-то подскажет, где собака порылась, и как решить проблему?

 

bwn
Offline
Зарегистрирован: 25.08.2014

В boards.txt найдите строчку: "pro.menu.cpu.8MHzatmega168.build.mcu=atmega168" и замените на: "pro.menu.cpu.8MHzatmega168.build.mcu=atmega168p". Должно взлететь. Философский смысл, у гуру спрашивайте.

Valentinych
Offline
Зарегистрирован: 13.08.2014

bwn, если еще подскажете, где лежит этот текстовый фал, буду вдвойне благодарен!

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

Хм... Ни в Караганде, ни в Улан-Уде, ни на других созвездиях нужный boards.txt не обнаруживается... (((

Попытка поиска по компу выдает две ссылки на файл с аналогичным названием только в каталогах ESP. 

Win10, ArduinoIDE 1.6.2. Куда копать дальше?

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

Поиск файлов на дисках - в этом я профессионал.
А всё началось с простого хобби - Ардуино

Буду тыкать носом дальше, пока не найдёте:
http://samopal.pro/board-txt/

Сразу вам выдам бонус:
https://sourceforge.net/projects/arduinobdeditor/

bwn
Offline
Зарегистрирован: 25.08.2014

Ты чего такой сердитый сегодня? Или это Клапа, ник спер?)))))

To ТС, где там у вас IDE установлено/hardware/arduino/avr/

Valentinych
Offline
Зарегистрирован: 13.08.2014

bwn пишет:
To ТС, где там у вас IDE установлено/hardware/arduino/avr/
А нету... 

Только: C:\Program Files (x86)\Arduino\hardware\tools. Дальше лежит только один listComPorts.exe.

Поиск в папке "Пользователи" тоже нее дает нужного результата. Чудны дела твои, Гейтц! ))) 

bwn
Offline
Зарегистрирован: 25.08.2014

Шукайте, должон где то быть.

Valentinych
Offline
Зарегистрирован: 13.08.2014

Нашел такой файл boards.txt в архиве default_package.zip, который лежит в папке C:\Program Files (x86)\Arduino\dist\default_package.zip. 

Добавил букаффку "p" в зад к "atmega168" в нужной строке. Архив перепаковал. Открыл IDE. Пытаюсь залить модифицированный blink с другой частотой мырганья (в МК уже залит стандартный блинк). Снова выдается сообщение:

Arduino: 1.6.2 (Windows 8.1), Плата"Arduino Pro or Pro Mini, ATmega168 (3.3V, 8 MHz)"
 
Sketch uses 1 030 bytes (7%) of program storage space. Maximum is 14 336 bytes.
 
Global variables use 9 bytes (0%) of dynamic memory, leaving 1 015 bytes for local variables. Maximum is 1 024 bytes.
 
avrdude: Expected signature for ATmega168 is 1E 94 06
 
         Double check chip, or use -F to override this check.
 
Найден неправильный микроконтроллер. Вы указали правильную плату в меню Инструменты -> Плата?
 
Система опознается как Win 8.1 (наплевать), главное, что IDE снова ругается на неправильный МК... 
Полный билгейтц! 
bwn
Offline
Зарегистрирован: 25.08.2014

Я, фак его знает. У меня portable 1.6.4 стоит. Куда запихаешь, там и лежит все.

Valentinych
Offline
Зарегистрирован: 13.08.2014

Поделитесь ссылкой на дистрибутив портабле?

Valentinych
Offline
Зарегистрирован: 13.08.2014

Все ссылки в Гугле ведут на оф.сайт дуни. А там только 1.8.5.

bwn
Offline
Зарегистрирован: 25.08.2014

Вроде оно. Там все старые релизы есть. "Just Download"

Valentinych
Offline
Зарегистрирован: 13.08.2014

Спс! Буду воевать дальше. Иначе придется всю партию новых камней (20 штук) выкинуть.

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

У вас что, даже этого нет?

bwn
Offline
Зарегистрирован: 25.08.2014

Valentinych пишет:

Спс! Буду воевать дальше. Иначе придется всю партию новых камней (20 штук) выкинуть.

Да рабочие они, сам недавно мудохался, поэтому и знаю. 

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

Valentinych пишет:

Спс! Буду воевать дальше. Иначе придется всю партию новых камней (20 штук) выкинуть.

Сигнатуры правятся в файле avrdude.conf

Боюсь даже говорить вам где его искать...... :)

Valentinych
Offline
Зарегистрирован: 13.08.2014

Я даже боюсь спросить, что же там нужно поправить... )))

А меня бояться не надо. Я если укушу, то не сильно, по локоть. Зубы-то уже старые, вставные. )))

bwn
Offline
Зарегистрирован: 25.08.2014

Valentinych пишет:

Я даже боюсь спросить, что же там нужно поправить... )))

Не поверите, сигнатуру.)))))

Valentinych
Offline
Зарегистрирован: 13.08.2014

bwn пишет:
Не поверите, сигнатуру.)))))
И ты, Брут? (((

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

Какждый раз столько нового узнаешь про себя от абсолютно незнакомых людей!  )))

bwn
Offline
Зарегистрирован: 25.08.2014

Оно действительно так, находите "неправильную" и меняете на требуемую. Мне этот способ не нравится.

Valentinych
Offline
Зарегистрирован: 13.08.2014

И как "неправильную" отличить от "правильной"? И где взять "правильную"?

Нашел файл iom168p.h, в нем есть такие строки:

/* Signature */
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x0B
 
В них живет какашка?
bwn
Offline
Зарегистрирован: 25.08.2014

Не, вот обижаетесь, а: "Ожидаемая подпись для ATmega168-1E 94 06" после гугла переводчика. А в преференсах по контексту посмотрите. Хотя буковку "p" проще подставить. ИМХО.

Valentinych
Offline
Зарегистрирован: 13.08.2014

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

bwn
Offline
Зарегистрирован: 25.08.2014

Valentinych пишет:

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

Если в каком то непонятном зипе, то не могу прокомментировать. В правильном "boards" помогает. Буква маленькая, латинская.

Valentinych
Offline
Зарегистрирован: 13.08.2014

А в файле iom168.h, такие строки:

//* Signature */
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x06
 
Оба файла есть в мозгах IDE. Там же есть еще и  iom168pa.h, iom168pb.h, iom168a.h, но там больших различий не вижу.
Valentinych
Offline
Зарегистрирован: 13.08.2014

Я поставил 1.6.4 (портабле) по вашей ссылке. Латинскую "p" дописал в указанной вами строке в boards.txt (не архивный!), который лежит там, где и у вас. Все свои действия описал выше. Не работает.

Вот цитата из правленного файла boards.txt:

## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
## --------------------------------------------------
pro.menu.cpu.8MHzatmega168=ATmega168 (3.3V, 8 MHz)
 
pro.menu.cpu.8MHzatmega168.upload.maximum_size=14336
pro.menu.cpu.8MHzatmega168.upload.maximum_data_size=1024
pro.menu.cpu.8MHzatmega168.upload.speed=19200
 
pro.menu.cpu.8MHzatmega168.bootloader.low_fuses=0xc6
pro.menu.cpu.8MHzatmega168.bootloader.high_fuses=0xdd
pro.menu.cpu.8MHzatmega168.bootloader.extended_fuses=0x00
pro.menu.cpu.8MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_pro_8MHz.hex
 
pro.menu.cpu.8MHzatmega168.build.mcu=atmega168p
pro.menu.cpu.8MHzatmega168.build.f_cpu=8000000L
 
Что не так?
 
P.S. А в первоначально установленной IDE 1.6.2 вообще нет такого файла! Только в архиве.
bwn
Offline
Зарегистрирован: 25.08.2014

Брр, вы уже на третий уровень сумрака забрались, я так глубоко не нырял.

Valentinych
Offline
Зарегистрирован: 13.08.2014

Ладно, bwn, еще раз спасибо за попытку помочь мне, и за потраченное на меня время. Буду дальше ломать голову в гордом одиночестве. Похоже, сходу эту проблеммку не решить. А решать надо... 

bwn
Offline
Зарегистрирован: 25.08.2014

Давайте по шажкам, IDE после правки и сохранения перезагружаете?

Valentinych
Offline
Зарегистрирован: 13.08.2014

Разумеется

bwn
Offline
Зарегистрирован: 25.08.2014

А попробуйте большую "P", может я вас в блудняк ввел?

Valentinych
Offline
Зарегистрирован: 13.08.2014

Не думаю. В описании 328-й стоит маленькая "р", но могу попробовать и большую.

pro.menu.cpu.16MHzatmega328.build.mcu=atmega328p
pro.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
Valentinych
Offline
Зарегистрирован: 13.08.2014

То же самое. (

bwn
Offline
Зарегистрирован: 25.08.2014

Тут я уже пас. Дудка их знает всего две:

#------------------------------------------------------------
# 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;
;

Либо мы где то друг друга не понимаем, либо у вас чипы с какой то другой, хотя мало верю.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

1. Настройки-Показать подробный вывод-Загрузка

Покажите же уже, какая сигнатура считывается!

У 168 - 1E9406, у 168p - 1E940B.

avrdude берет настройку из переменной build.mcu. Вы ее правильно поменяли. Если не  работает -то это уже к "Секреным материалам"... ну там агент Скалли и все эти вещи.

Проверьте, что вы поменяли build.mcu именно в описании той платы, которую выбираете при загрузке.

Вообще - опубликуйте весь подробный вывод загрузки.так мне проще будет.

Valentinych
Offline
Зарегистрирован: 13.08.2014

Нашел у себя pro mini mega168 5V 16 MHz, куплена была давно, но не использовалась ни разу.

Попытка залить в нее скетч так же закончилась руганью на неправильный МК и сигнатуру. Так что вряд ли это чипы. 

Valentinych
Offline
Зарегистрирован: 13.08.2014

  Arduino: 1.6.4 (Windows 8.1), Плата"Arduino Pro or Pro Mini, ATmega168 (3.3V, 8 MHz)"

 
Изменена опция сборки, пересобираем все
 
Подробности компиляции пропускаю - стандартный скетч blink. На других досках заливается нормально.
 
Sketch uses 926 bytes (6%) of program storage space. Maximum is 14 336 bytes.
 
Global variables use 9 bytes (0%) of dynamic memory, leaving 1 015 bytes for local variables. Maximum is 1 024 bytes.
 
C:\Users\Igorxxx\AppData\Roaming\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\Igorxxx\AppData\Roaming\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega168 -cstk500v1 -PCOM8 -b19200 -Uflash:w:C:\Users\IGORxxx\AppData\Local\Temp\build4577277959358217078.tmp/Blink.cpp.hex:i 
 
 
 
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
 
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
 
         Copyright (c) 2007-2014 Joerg Wunsch
 
 
 
         System wide configuration file is "C:\Users\Igorxxx
\AppData\Roaming\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"
 
 
 
         Using Port                    : COM8
 
         Using Programmer              : stk500v1
 
         Overriding Baud Rate          : 19200
 
         AVR Part                      : ATmega168
 
         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
 
         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.05s
 
 
 
avrdude: Device signature = 0x1e940b (probably m168p)
 
avrdude: Expected signature for ATmega168 is 1E 94 06
 
         Double check chip, or use -F to override this check.
 
 
 
avrdude done.  Thank you.
 
 
 
Найден неправильный микроконтроллер. Вы указали правильную плату в меню Инструменты -> Плата?
Valentinych
Offline
Зарегистрирован: 13.08.2014

Показать настройки не получается - не знаю, как приклеить скан экрана в сообщение. 

bwn
Offline
Зарегистрирован: 25.08.2014

Чет мне только радикальные методы видятся. 1 - найти  где спрятался boards.txt для 1.6.2. 2 - снести 1.6.2 нах, вместе со всеми пристанями и пароходами. Может Влад ченить поумнее предложит.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Правьте boards.txt в папке adruino15. Посмотрите точный путь в вашем листинге выше.
Или все сносите, включая эту папку и ставьте чистый вариант. Я сейчас с телефона. Долго набирать подробнее.

Valentinych
Offline
Зарегистрирован: 13.08.2014

1.6.2. снес перед тем, как поставить ваш релиз портабле. Но в реесте, возможно, что-то осталось, или еще где. Попробую поискать с миноискателем.

bwn
Offline
Зарегистрирован: 25.08.2014
C:\Users\Igorxxx\AppData\Roaming\Arduino15\ .... где то здесь его ищите.
AppData по умолчанию обычно скрытая, возможно поэтому поиск и не нашел ничего.
Valentinych
Offline
Зарегистрирован: 13.08.2014

Сцукко!!! Нашел!!! Действительно, в AppData осталось две папки Arduino15 от предудущих версий IDE. Убил, и все сразу заработало.

Всем спасибо! Проблемма решена. 

========================================

Добавлю с удовольствием: ДЕНЬ ПРОЖИТ НЕ ЗРЯ!!! )))