Хм… спустя некоторое время батарейка разрядилась, но ведь так не должно было быть, ток потребления в режиме сна замерить обычным мультиметром не возможно… Просто мистика какая-то.
Вышла новая версия «ядра» для ATtiny13 core13_19. Почему то опять с некоторыми недочётами в функциях analogWrite() и pulseIn(), вот ядро ссылка с исправленными недочётами:
Я обычно «прижимаю» Reset к +5В при помощи резистора на 10 кОм чтобы избежать невольных перегрузок микроконтроллера.
А ещё можно подцепить керамику на 0.1 мкФ(100 нФ).
А то микроконтроллер будет чуть что сразу «ловить» ресет, слегка коснулся чем-то порт Reset и перезагрузка МК гарантирована.
UPD по совету одного человека, я добавил в функцию system_sleep() отключение аналогового компаратора для ещё большей экономии заряда батарейки. Файлы в низу статьи перезалито.
На ATtiny13 порты по умолчанию находятся в высокоимпедансном состоянии, то есть Hi-Z состоянии, это как бы и не логическая 1 и не лог. 0, к тому же порт установлен как вход.
За счёт этого можно ничего не изменяя состояния на порту как говорил один человек «нарубить случайных чисел».
Дело в том что мы питаемся считать значение на «висящем в воздухе» пине, он работает как антенна в радиоприемнике, включи не настроений радиоприемник и услышишь шум, такой же шум и «слышит» микроконтроллер.
На скриншонте показано как микроконтроллер видит белый шум.
Вышла новая версия «ядра» для ATtiny13 core13_19. Почему то опять с некоторыми недочётами в функциях analogWrite() и pulseIn(), вот ядро ссылка с исправленными недочётами:
Скачать.
Список поддерживаемых Arduino'вских функций взятый из официальной страница проекта:
map()
random()
randomSeed()
millis()
micros()
delay()
delayMicroseconds() *
analogRead()
analogWrite()
pinMode()
digitalRead()
digitalWrite()
pulseIn() (Untested)
shiftIn() (Untested)
shiftOut() (Untested)
Собственно официальная страница проекта:
http://forum.arduino.cc/index.php/topic,89781.0.html.
При обнаружении каких либо багов пишите сюда, но всё же лучше ветку русскоязычного форума Arduino.
Собственно это мне сейчас и нужно.
А ещё можно подцепить керамику на 0.1 мкФ(100 нФ).
А то микроконтроллер будет чуть что сразу «ловить» ресет, слегка коснулся чем-то порт Reset и перезагрузка МК гарантирована.
У меня микроконтроллер после свечения переходит в спящий режим, в котором микроконтроллер потребляет по даташиту:
Всего 0.2 мкА. Чтобы микроконтроллер разрядил батарею нужно наверное тысячи лет, скорей батарейка сама по себе разрядится за такое время.
За счёт этого можно ничего не изменяя состояния на порту как говорил один человек «нарубить случайных чисел».
На скриншонте показано как микроконтроллер видит белый шум.
www.youtube.com/watch?v=KTr9RbIwy0I