Получение большего времени работы Sensor Node
- Войдите на сайт для отправки комментариев
С Новым годом всех!
Кто нибудь, подскажите пожалуйста - есть такая штука "Sensor Node V1.2". Тут написано:
Для того, чтобы обеспечить большее время работы модуля от одного элемента питания можно понизить частоту работы МК до 8МГц и снизить "пороговое" напряжение, при котором МК будет стартовать до1.8В.
Делается это с помощью добавления следующей секции в файл boards.txt среды Arduino:
s328o8.name=Sensor328 (int8MHz, 1.8V) s328o8.upload.protocol=arduino s328o8.upload.maximum_size=30720 s328o8.upload.speed=19200 s328o8.bootloader.low_fuses=0xe2 s328o8.bootloader.high_fuses=0xda s328o8.bootloader.extended_fuses=0x06 s328o8.bootloader.path=atmega s328o8.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex s328o8.bootloader.unlock_bits=0x3F s328o8.bootloader.lock_bits=0x0F s328o8.build.mcu=atmega328p s328o8.build.f_cpu=8000000L s328o8.build.core=arduino s328o8.build.variant=standard
После добавления этого кода в соответствующий файл (и перезапуска среды Arduino) в списке доступных плат появится новая строчка: Sensor328 (int8MHz, 1.8V)
тут все понятно. А вот тут:
совсем не понятно. Как это сделать?
Спасибо!
совсем не понятно. Как это сделать?
имеется ввиду - подключить программатор к плате(например usbasp), выбрать в меню "программатор" "usbasp" и сделать "Записать загрузчик".
Спасибо за быстрый ответ.
Т.е. просто подключить , записать и все? А потом можно работать с этой платой как обычно?
Спасибо за быстрый ответ.
Т.е. просто подключить , записать и все? А потом можно работать с этой платой как обычно?
да.
*примечание - я не уверен, что вы добъётесь кардинального уменьшения энергопотребления.
Скажите, если использовать такой элемент питания, то на какое время работы этой платы можно рассчитывать?
нужно разделить ёмкость батареи на потребляемый девайсом ток - получите часы работы.
нужно разделить ёмкость батареи на потребляемый девайсом ток - получите часы работы.
опять делить? а скоро начнем умножать?
опять делить? а скоро начнем умножать?
http://www.youtube.com/watch?v=p7vsDX1jGJY
знакомая платка) ее автор ее на форуме показывал
1. если уж на то пошло, то чтобы МК работал при напряжении от 1.8в то частоту нужно снижать до 4мгц и ниже (учимся читать даташиты)
2. куда больше на питание влияет умелое проограмирование
имеется ввиду - подключить программатор к плате(например usbasp), выбрать в меню "программатор" "usbasp" и сделать "Записать загрузчик".
Записал. Прошил. От элемента с напряжением 2,8В не работает. Как быть? Очевидно я что-то упустил. Как убедиться, что загрузчик записан?
в Arduino IDE зайти в настройки, поставить галки "подробный вывод при загрузке", "проверка кода при загрузке", выбрать тип платы дуино "Sensor328 (int8MHz, 1.8V)", прошить закрузчик ещё раз и внимательно прочитать лог консоли внизу.
*курим цитату даташита контроллера http://www.atmel.com/ru/ru/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf - может быть нужно снизить частоту до 4MHz.
*курим цитату даташита контроллера http://www.atmel.com/ru/ru/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf - может быть нужно снизить частоту до 4MHz.
Так получается, что тут ошибка? Написано: "можно понизить частоту работы МК до 8МГц и снизить "пороговое" напряжение, при котором МК будет стартовать до1.8В". Нужно до 4МГц снижать?
Так получается, что тут ошибка? Написано: "можно понизить частоту работы МК до 8МГц и снизить "пороговое" напряжение, при котором МК будет стартовать до1.8В". Нужно до 4МГц снижать?
не факт - в даташите указаны рекомендуемые параметры гарантированно стабильной работы контроллера, часто контроллер способен работать в нештатном режиме.
при каком напряжении контроллер начинает нестабильно работать? и где вы возьмёте загрузчик на 4 мегагерца?
при каком напряжении контроллер начинает нестабильно работать? и где вы возьмёте загрузчик на 4 мегагерца?
Возможности регулировать напряжение небыло. Я не додумался включить в код моргание светодиодом. Скетч Blink работает при напряжении 2.8В. А с NRF приемник ничего не показывает. У меня есть батарейка на 3.6V - вот с ней все работает.
А как быть с загрузчиком? Подскажите, пожалуйста.
Что-то никак:
очень похоже на то, что у вам фьюзы BODLEVEL настроен на 2.7в
Что-то никак:
оно то конечно "не так":
эта странная строка у меня вызывает несколько вопросов:
1. c:\AVR>avrdude - почему avrdude находится здесь?
2. чем или кем написаня сия командная строка?
3. судя по -c arduino -P com9 -p m328p - вы пытаетесь шить контроллер из под загрузчика, записанного на этом же контроллере?
фьюзы и загрузчик нужно шить внешним программатором, который подключается к контроллеру по интерфейсу ISP и выбирается в меню Arduino IDE "Программатор", первая командная строка процедуры вызванной из меню Arduino IDE "Записать загрузчик" будет выглядеть следующим образом:
*\arduino-1.0.5\hardware/tools/avr/bin/avrdude -CD:\Program Files mini\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega16 -cusbasp -Pusb -e -Uhfuse:w:null:m -Ulfuse:w:null:m
*для примера скопипастил для внешнего программатора usbasp и контроллера atmega16.
т.е. сначала контроллер стирается полностью(см. приведённую цитату лога), а затем пишутся фьюзы, записывается лоадер, лочится загрузочная область.
и, желательно, всё производится при напряжении 5V.
для понимания вышесказанного - лог моей попытки прошить фьюзы из под лоадера(контроллер атмега16, usbasploader)
Добрый день.
1. c:\AVR>avrdude - почему avrdude находится здесь?
оно то конечно "не так":
эта странная строка у меня вызывает несколько вопросов:
2. чем или кем написаня сия командная строка?
3. судя по -c arduino -P com9 -p m328p - вы пытаетесь шить контроллер из под загрузчика, записанного на этом же контроллере?
фьюзы и загрузчик нужно шить внешним программатором, который подключается к контроллеру по интерфейсу ISP и выбирается в меню Arduino IDE "Программатор", первая командная строка процедуры вызванной из меню Arduino IDE "Записать загрузчик" будет выглядеть следующим образом:
*\arduino-1.0.5\hardware/tools/avr/bin/avrdude -CD:\Program Files mini\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega16 -cusbasp -Pusb -e -Uhfuse:w:null:m -Ulfuse:w:null:m
*для примера скопипастил для внешнего программатора usbasp и контроллера atmega16.
т.е. сначала контроллер стирается полностью(см. приведённую цитату лога), а затем пишутся фьюзы, записывается лоадер, лочится загрузочная область.
и, желательно, всё производится при напряжении 5V.
1. Просто перенес в папку, чтоб легче из командной строки работать было.
2,3. Где-то скопировал, порт поменял и значения фьюзов подставил. Ну вообщем это все от незнания ).
Все бы хорошо, но одну плату все-таки "ушатал". Не удается записать загрузчик. (
Не удается записать загрузчик. (
ясно, что не удаётся - невозможно записать загрузчик без внешнего программатора.
...я же писал выше, почему так происходит - нужно подключить программатор к контроллеру по ISP.
В качестве программатора выступает плата Arduino UNO .
В качестве программатора выступает плата Arduino UNO .
утомился я устраивать допросы с пристрастием - или полное описание своих действий публикуйте с логами, т.к. нет смысла публиковать неудачные попытки.