Как изменить fuse биты через ISP программатор ?
- Войдите на сайт для отправки комментариев
Втр, 08/09/2015 - 21:45
Превратил свой Arduino Uno в ISP программатор. Подскажите можно ли править fuse биты c помощью этого программатора? Нужно переключиться на генератор без использования кварца и выставить частоту 1 МГц.
Прошиваю Arduino Nano.
Timur007, нет там такой частоты 1MHz. Либо 8MHz, либо 128kHz. Какова цель понижения тактовой?
Цель понижения частоты - снижение потребления до 1 ма. Сейчас потребляет 6.2 ма
Timur007, стало быть либо 128кГц, либо внешний кварц.
Хорошо 128. А как это сделать с помощью моего ISP программатора UNO R3?
Timur007, На тактовой 128кГц не будет работать часть ардуиновский функций, возможны проблемы с коммуникацией с внешними устройствами. Меньше мегагерца никто не снижает без острой надобности и главное полного понимания специфики работы МК в низкоскоростном режиме.
Дайте пожалуйста ссылку на информацию более подробную.
Вопрос решился с помощью программулины avrdudess
позволяет редактировать фьюзы и закидывать hex файлы
всем спасибо
Timur007, нет там такой частоты 1MHz. Либо 8MHz, либо 128kHz. Какова цель понижения тактовой?
Есть такая частота! А CKDIV8 тогда зачем ;)
http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik
trembo, точно, склероз :)
Timur007, прямо таки решился? Нужно же и бутлоадер менять, и в ардуино IDE прописать новые параметры, иначе он будет создавать прошивки для 16MHz. У вас всё только начинается..
А для чего менять бутлоадер? Я изменил фьюзы. В итоге сейчас работаю на 1 МГц. Заливаю скетчи из стандартной среды. Все работает нормально. Единственно теперь надо пересчитывать все значения в millis() tone() и т.д.
стандартный blink сейчас работает медленнее, но по моему не в 16 раз.
Timur007, а картинка из #8 никаких мыслей не навеяла? Если у вас заработало, то вам просто повезло. Бутлоадер производит обмен данных по сериал соединению, программирует таймер на определённую скорость. Все расчёты идут от тактовой частоты. Если таковая изменится, то и обмен будет идти на другой частоте. Хорошо, если случайная получившийся бодрейт поддерживается компом, а мог и не поддерживаться. И то-же самое компиляция программ. Можно просто сказать в боардс.txt что у вас частота 1Мгц, и ничего пересчитывать не придётся.
Спасибо за совет. А я ни как не мог понять для чего в боардс txt частота ставится. Теперь понял.
И все таки даже на частоте 1 МГц ток потребления 5 мА и до значения в 1мА указанного в даташите еще далеко. Отключение перифирии не дает заметной экономии. Уже с платы выпаял ch340 и стабилизатор напряжения. Стало меньше но не сильно.
Timur007, импульсные токи трудно измеряются , если прибор не TrueRMS то верить показаниям не стоит.
Превратил свой Arduino Uno в ISP программатор. Подскажите можно ли править fuse биты c помощью этого программатора? Нужно переключиться на генератор без использования кварца и выставить частоту 1 МГц.
Попробуй через программу AVRDUDE_PROG
Решилось все очень просто. Фьюзы правятся в файле боардс.txt а потом записываются с помощью пункта меню "записать загрузчик"
В данный момент выставил рабочую частоту 1 MHz и доволен как слон. Потребление упало с 10 до 2 мА на стандартном blink скетче. Всем спасибо
dimax!
Помогите пожалуйста, зашил 328 через UNU 128 кГц и не могу вернуть обратно. Нашел такое
LOW sck на программаторе нужно, иначе он не будет читаться, на крайняк можно его затактировать внешним генератором подав в ход ХТ1 , и прошить по дефолту.. а потом уже если оживет поставить 9,6МГц. я в ардуине редко использую на тини частоту 128...или заводскую или 9,6МГц.
Огромное спасибо! Уменьшил SCK в 10 раз и вернул дефолтные fuse-ы. Решено.
Я так и не понял что с чем соединять. Поможите?
To, в скечте ArduinoISP всё же расписано:
Можно просто задать цифрами скорость, думаю лучше кратно степени двойки. Например 32768
To, в скечте ArduinoISP всё же расписано:
Можно просто задать цифрами скорость, думаю лучше кратно степени двойки. Например 32768
Вот спасибо!!!
Dimax, еще вопрос, если можно. Наше всеми любимое http://gammon.com.au/power
Там есть скеч "Sketch I" c такой строкой
А есть ли возможность увеличивать задержку до 8 сек и более? Более я понимаю делается через цикл, а до 8 можно? Слаб я с действиями на нижнем уровне.
8 секунд. Это максимум вотч-дога. WDTCSR = bit (WDIE) | bit (WDP0) | bit (WDP3);
8 секунд. Это максимум вотч-дога. WDTCSR = bit (WDIE) | bit (WDP0) | bit (WDP3);
Премного благодарен, вечером попробую.
А в чем тогда разница. Это тоже самое?
To, изучите уже битовые операции. Делов-то всего на день, а пользы на всю жизнь.
To, в скечте ArduinoISP всё же расписано:
Можно просто задать цифрами скорость, думаю лучше кратно степени двойки. Например 32768
Вот спасибо!!!
dimax? А откуда такой скеч? У меня такого нет:
dimax? А откуда такой скеч? У меня такого нет:
Я не dimax, но отвечу - какая у Вас версия Arduino IDE? У меня в 1.6.13 такой же скетч ArduinoISP, как и у dimax'а. А у Вас явно какая-то старая версия, типа 1.0.5.