#1 2016-12-26 01:27:50

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Загрузчик arduino pro mini

В родном загрузчике функция watchdog зачем-то отключена. Если вьі зададитесь вопросом єнергозбережения ардуиньі без глубоких познаний, то нарветесь на скетчи с ватчдогом, которьіе из-за єтой мелочи идут в бутлуп. Дабьі єтого избежать, можно прошить альтернативньій загрузчик.
По мотивам https://geektimes.ru/post/255800/ тестим вачдог, если нету, то идем на https://github.com/Optiboot/optiboot в раздел релизьі и кликаем ПКМ на файл *.json, вьібираем "скопіювати адресу посилання". Открьіваем иде - меню - файл - налаштування - URL менеджеру додаткових плат - вставляем скопированное. Идем меню - інстументи - плата - менеджер плат - крутим в конец находим optiboot, кликаем - устанавливаем.
Теперь в платах внизу будет optiboot  on 32-pin cpus, вьібираем его, появляется раздел, вьібираем свой процессор. Берем любой скетч, оптимально с гиктаймса меню - скетч - Експорт зкомпільованого бінарнику - сохраняем.
Ставим avrdude (sudo apt install avrdude), что бьі не заморачиваться со спрятанньім конфигом в ардуино іде. Берем FT232R или USBasp. С последним все просто, а с фт немного настроить надо. Под виндами вроде бьі и так работает, а под убунтой надо сбегать на оффсайт фтді и жмякнуть дрова, в архиве ридми (пдф на сайте чуть старьій), по нему все делаем, перед прошивкой sudo rmmod ftdi_sio && sudo rmmod usbserial.
Потом самое интересное, подключение к ардуине FT232R. Проще всего - открьіваем конфиг avrdude и смотрим распиновку программатора ft232r - там куда подключиться написано:
programmer
  id    = "ft232r";
  desc  = "FT232R Synchronous BitBang";
  type  = "ftdi_syncbb";
  connection_type = usb;
  miso  = 1;  # RxD
  sck   = 0;  # TxD
  mosi  = 2;  # RTS
  reset = 4;  # DTR
;
На ардуине по картинке:
ProMini_ICSP_k.png
Подключаемся на адаптере (мне пришлось допаять пин в RTS) и шьем ранее сохраненньій гекс:
sudo avrdude -p m328p -c ft232r -e -U MY_PROECT_NAME.ino.with_bootloader.arduino_eightanaloginputs.hex

После чего переподключаем адаптер FT232R проводками как ком-адаптер, и передергиванием из юсб (в убунте) как /dev/ttyUSB0, после чего можем наблюдать в мониторе ком-порта и любимом терминале работу ватчдога и шить внутрь любьіе скетчи с ним без бутлупа. При прошивке следующих скетчей надо вьібирать ту же плату, что и вначале, т.е. через optiboot.

Остання редакція Googlist (2016-12-26 01:29:25)

Неактивний

#2 2016-12-26 20:26:30

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

Терзают смутные подозрения в целесообразности такого сложного пути. Судя по дате компиляции загрузчиков в последних версиях Arduino IDE, этот баг с вачдогом уже устранен, 100% утверждать не стану по Pro mini, но то что в загрузчике Mega 2560 его нет то точно (раньше был). Несколько недель назад перепрошивал загрузчик в Меге все нормально. Но надо конечно было бы проверить для Pro mini, но нет времени. Поэтому я бы все таки не спешил идти такими окольными путями а рекомендовал бы сначала воспользоваться стандартным способом перепрошивки загрузчика со среды Arduino IDE, и только если не будет результата начинать "химичить" roll . У меня все последние платки мини были без бага, следовательно думаю что он устранен давно. Но как говорится все бывает roll .

Неактивний

#3 2016-12-27 00:56:36

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Re: Загрузчик arduino pro mini

Нет, я проверял же перед стартом, ничего не устранили. Да и из ИДЕ загрузчик прошить без прогера та еще задача, мне удавалось только напрямую дудкой шить, что с USBasp, FT232R. Там написано, кстати, де читать и что сделать для проверки.

Неактивний

#4 2016-12-27 12:21:52

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

Будет время проверю.

Неактивний

#5 2016-12-27 15:42:47

void loop
Учасник
Зареєстрований: 2016-10-20
Повідомлень: 25

Re: Загрузчик arduino pro mini

Optiboot только в Уно и в Мини. Тоже прошиваю optiboot в Nano. Размер загрузчика 512 байт, поэтому в boards.txt добавляю новые строки
atmega328o.name=[Optiboot] Arduino Nano ATmega328
atmega328o.upload.protocol=arduino
atmega328o.upload.maximum_size=32256
atmega328o.upload.speed=115200
atmega328o.bootloader.low_fuses=0xff
atmega328o.bootloader.high_fuses=0xde
atmega328o.bootloader.extended_fuses=0x05
atmega328o.bootloader.path=optiboot
atmega328o.bootloader.file=optiboot_atmega328.hex
atmega328o.bootloader.unlock_bits=0x3F
atmega328o.bootloader.lock_bits=0x0F
atmega328o.build.mcu=atmega328p
atmega328o.build.f_cpu=16000000L
atmega328o.build.core=arduino:arduino
atmega328o.build.variant=arduino:standard

Остання редакція void loop (2016-12-27 15:52:49)

Неактивний

#6 2016-12-27 20:54:22

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

Ради эксперимента взял Nano V3 (Китай) запустил тест по вачдогу, работает. Кто считает что загрузчик в Nano (Atmega328) и Pro mini (таже атмега) разный? Nano V3 Это абсолютно та же Pro mini (я имею ввиду АТ328, по поводу 168 ничего утверждать не стану, не имел дела с ней) но с CH340 на борту. Поэтому думаю что либо говорить о баге с вачдогом в загрузчике для Pro mini и Nano V3 на базе 328 атмеги  не имеет смысла.

Остання редакція Nefreemen (2016-12-27 21:02:43)

Неактивний

#7 2016-12-27 21:30:06

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

Googlist пише:

Нет, я проверял же перед стартом, ничего не устранили. Да и из ИДЕ загрузчик прошить без прогера та еще задача, мне удавалось только напрямую дудкой шить, что с USBasp, FT232R. Там написано, кстати, де читать и что сделать для проверки.

Не понял  roll , чего Вы здесь написали  roll? Каким боком здесь упомянули FT232R (USB to Srial конвертер) roll ? Как будто Вы прошивали в своем способе (описанном в пред. топике) без программатора? Загрузчик в Arduino можно прошить  только при помощи внутрисхемного интерфейса SPI и не важно какую среду использовать ИДЕ или "дудку". Исходим из следующего: среда Arduino IDE для программирования использует модифицированный AVRdude это первое, она также поддерживает USBasp это второе, среда содержит в себе правильный (без бага) загрузчик это третье, вопрос зачем все ранее описанное Вами roll ?

Остання редакція Nefreemen (2016-12-27 21:38:35)

Неактивний

#8 2016-12-27 21:32:04

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Re: Загрузчик arduino pro mini

void loop пише:

Optiboot только в Уно и в Мини. Тоже прошиваю optiboot в Nano. Размер загрузчика 512 байт, поэтому в boards.txt добавляю новые строки

Сейчас установку оптибут мьішкой сделали из жсона, так что можна не править ничего блокнотом.


Nefreemen, когда чясто лампочкой мигает то єто значит шо вачдог не работает) У меня две бьіло мини и обе без вачдога, жду еще, потестю.

Неактивний

#9 2016-12-27 21:37:04

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Re: Загрузчик arduino pro mini

Nefreemen пише:

Не понял  roll , чего Вы здесь написали  roll? Каким боком здесь упомянули FT232R (USB to Srial конвертер) roll ? Как будто Вы прошивали в своем способе (описанном в пред. топике) без программатора? Загрузчик в Arduino можно прошить  только при помощи внутрисхемного интерфейса SPI и не важно какою среду использовать ИДЕ или "дудку". Исходим из следующего: среда Arduino IDE для программирования использует модифицированный AVRdude это первое, она также поддерживает USBasp это второе, среда содержит в себе правильный (без бага) загрузчик это третье, вопрос зачем все ранее описанное Вами roll ?

От таким боком. Не всьо так просто под луной, и FT232R умеет работать с дудкой в режиме Gang Bang, ну или как-то так big_smile . Ноги переназначаются и заменяет програмер спі, в сабже все написано. Так шта програмерьі для нубов, нормальньіе пацаньі шьют через сериал)))
А описано все єто для того, что бьі люди знали, как можно вьікрутиться в сложньіх ситуациях, когда тебе и вачдог нужен, и шекелей на кучерявьіе ардуиньі и програмер нету.

Остання редакція Googlist (2016-12-27 21:37:16)

Неактивний

#10 2016-12-27 21:48:39

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

Не знаю как там у "нормальных пацанов" с ногами или чем то другим  smile . Для того что бы я убедился что я нуб  big_smile просьба ссылочку на страницу из datasheet на Atmega328 о прошивке bootloader по Serial, или прошивке Hex файла без лоадера по Serial . Сниму шляпу и поставлю пиво  lol .

Остання редакція Nefreemen (2016-12-27 21:53:22)

Неактивний

#11 2016-12-27 22:27:50

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Re: Загрузчик arduino pro mini

Nefreemen пише:

Не знаю как там у "нормальных пацанов" с ногами или чем то другим  smile . Для того что бы я убедился что я нуб  big_smile просьба ссылочку на страницу из datasheet на Atmega328 о прошивке bootloader по Serial, или прошивке Hex файла без лоадера по Serial . Сниму шляпу и поставлю пиво  lol .

Вот. Не атмега даташитаппнот, правда, но фурьічит. Тю, а через сериал хекса без бута шьется только в путь, просто кнопку ж нажать, или дудкину команду набрать и впуть.

Неактивний

#12 2016-12-27 23:10:25

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Re: Загрузчик arduino pro mini

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

Неактивний

#13 2016-12-27 23:47:20

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

Nefreemen пише:

Не знаю как там у "нормальных пацанов" с ногами или чем то другим  smile . Для того что бы я убедился что я нуб  big_smile просьба ссылочку на страницу из datasheet на Atmega328 о прошивке bootloader по Serial, или прошивке Hex файла без лоадера по Serial . Сниму шляпу и поставлю пиво  lol .

Так мухи от котлет отдельно smile . По моему Serial и SPI (ISP) разные вещи.
Пиво мне не жалко big_smile . Шляпу тоже сниму не тяжело big_smile . И только потому что не внимательно посмотрел внизу описание подключения, а в тексте не подчеркнуто об "экзотике" программатора а только цель- замена бутлоадера.

Неактивний

#14 2016-12-30 13:23:39

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

И так, прошивка bootloader в Pro mini 328p а так же Nano V3 при помощи USBasp в Arduino IDE v.1.6.9 (более ранних версий у меня нет sad ) и проверка работоспособности WDT показала отсутствие бага. Прошивка выполнялась стандартным способом (без подмены файла загрузчика) с использованием загрузчика ATmegaBOOT_168_atmega328.hex.
Работоспособность WDT проверялась при помощи всем известного скетча и монитора Serial (не по светодиоду  lol ).
Вопрос с загрузчиком в Pro mini считаю закрытым.
Отдельное спасибо Googlist за интересную информацию по использованию USB<->Serial конвертера на базе чипа FT232R в качестве программатора ISP (режим Bit Bang).

P.S. Что бы не было кривотолков (и в подтверждение ранее мной написанного) делал проверку "родного" загрузчика в 3 платках (больше к сожалению у меня не было sad ) купленных в 15 и 16 году (какие из них когда не знаю sad ). Подтверждаю еще раз отсутствие  бага WDT. Перед прошивкой bootloader стирание flash делал при помощи STK500. Но не взирая на все выше изложенное для тех кому принципиально важна работа WDT все таки проверять smile, из китая может быть и "привет" lol .

Остання редакція Nefreemen (2016-12-30 13:44:06)

Неактивний

#15 2016-12-30 21:54:31

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Re: Загрузчик arduino pro mini

Спасибо за столь масштабное исследование. Мой опьіт, правда, говорит другое, но наверняка вина дядюшки Ляо, я-то загрузчик через иде не обновлял, с чем пришло то и проверял. А чем проверяли вачдога?

Неактивний

#16 2016-12-30 23:40:52

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

Работу проверял при помощи этого скетча:

#include <avr/wdt.h>
void setup() {
  wdt_disable(); // бесполезная строка до которой не доходит выполнение при bootloop
  Serial.begin(9600);
  Serial.println("Setup..");

  Serial.println("Wait 5 sec..");
  delay(5000); // Задержка, чтобы было время перепрошить устройство в случае bootloop
  wdt_enable (WDTO_8S); // Для тестов не рекомендуется устанавливать значение менее 8 сек.
  Serial.println("Watchdog enabled.");
}

int timer = 0;

void loop() {
  // Каждую секунду мигаем светодиодом и значение счетчика пишем в Serial
  if (!(millis() % 1000)) {
    timer++;
    Serial.println(timer);
    digitalWrite(13, digitalRead(13) == 1 ? 0 : 1); delay(1);
  }
    wdt_reset();
}

Он прост и понятный. Для убедительности можете закоментовать wdt_reset() и посмотреть в монитор  smile .
При баге после 9 происходит бутлуп (светодиод быстро мигает). А при отсутствии бага происходит сброс и все по новой до 8 smile .
В Arduino IDE есть исходники как исходного optiboot так и "модифицированного" можно посмотреть  big_smile .

Остання редакція Nefreemen (2016-12-31 00:29:40)

Неактивний

#17 2016-12-31 02:40:43

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Re: Загрузчик arduino pro mini

Ну та и я єтим же проверял.

Неактивний

#18 2016-12-31 13:51:24

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Загрузчик arduino pro mini

Googlist пише:

Ну та и я єтим же проверял.

Ну а за чем изобретать велосипед roll

Неактивний

#19 2017-01-24 21:30:53

Googlist
Учасник
Зареєстрований: 2016-12-26
Повідомлень: 13

Re: Загрузчик arduino pro mini

Приехало про микро (то что с юсб но без юсб, или то или другое где), вачдог не работает или работает крайне криво. Хотя может бьіть єто особенности порта. Стоит в юсб считает до посинения. Если отрезетить физически - один раз доходит до девяти, вачдогается и дальше начинает считать до посинения.

Наверное таки работал, просто особенность работьі через юсб что не сбрасьівается вачдогом. Сломал ардуину, перешил через битбанг с бутлоадером из иде, работает так же, через юсб считает до посинения, через сериал1 сбрасьівается как положено.

Остання редакція Googlist (2017-01-24 23:53:07)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму