Автор Тема: AVR и спящий режим  (Прочитано 12591 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Злой

  • Старожил
  • *****
  • Сообщений: 2894
  • Репутация: 12
  • Марат Уфа
  • Поблагодарили: +684
AVR и спящий режим
« : 27 Февраля 2017, 18:28:20 »
0
Осваиваю микроконтроллеры и уперся в спящий режим. В общем сделал индикацию к Болеро, все работает, но хочется еще и в сон контроллера отправить, хоть и не фонит, но все же. Отправить то несложно, а вот как разбудить в нужный момент. Частота и битность приходят в виде двоичного кода и привязать смену кода к прерыванию это или еще один микроконтроллер вешать :laugh: или нехилую схему на логике, то есть от чего ушел :wall:. Или еще один проект, регулятор Никитина, при повороте потенциометра меняется код на выходе АЦП, если микроконтроллер спит, то и вроде как некому следить за сменой кода, не ставить же отдельную кнопку, что бы будить его.

Оффлайн xar

  • Старожил
  • *****
  • Сообщений: 5224
  • Репутация: 16
  • Ренат
  • Поблагодарили: +271
Re: AVR и спящий режим
« Ответ #1 : 27 Февраля 2017, 19:03:17 »
0
Злой, единственное решение - пробуждение по таймеру. Однако такой вариант тебя не устроит ибо просыпающийся и щасыпающий контроллер будет шуметь больше просто работающего.

Оффлайн Злой

  • Старожил
  • *****
  • Сообщений: 2894
  • Репутация: 12
  • Марат Уфа
  • Поблагодарили: +684
Re: AVR и спящий режим
« Ответ #2 : 27 Февраля 2017, 19:28:32 »
0
Ренат, про таймеры читал, да тут не вариант, даже если и будет небольшой шум от контроллера, то лучше уж постоянно, чем через равные промежутки всплески. и опять же смотрел осциллографом, что то на уровне шумов прибора и это с проводами с полметра от ИП до стаба и сантиметров 20 от стаба, до платы.

Оффлайн dm34

  • Старожил
  • *****
  • Сообщений: 3264
  • Репутация: 22
  • Дмитрий
  • Поблагодарили: +3284
Re: AVR и спящий режим
« Ответ #3 : 27 Февраля 2017, 20:13:08 »
0
А разве нет варианта просыпания по "дерганию" входов?

и добавил...
В Ардуино вроде бы есть что-то подобное http://arduino.ru/Reference/AttachInterrupt
Сам счас курю нечто подобное, пока бардак в голове...

Оффлайн Злой

  • Старожил
  • *****
  • Сообщений: 2894
  • Репутация: 12
  • Марат Уфа
  • Поблагодарили: +684
Re: AVR и спящий режим
« Ответ #4 : 27 Февраля 2017, 20:43:01 »
0
А разве нет варианта просыпания по "дерганию" входов?
Есть конечно, но кто будет ногу дергать?
не ставить же отдельную кнопку, что бы будить его.
С энкодером что то наверное можно придумать, но ведь делают и с потенциометром :d_know: :d_know:

Оффлайн dm34

  • Старожил
  • *****
  • Сообщений: 3264
  • Репутация: 22
  • Дмитрий
  • Поблагодарили: +3284
Re: AVR и спящий режим
« Ответ #5 : 27 Февраля 2017, 20:50:01 »
0
Есть конечно, но кто будет ногу дергать?
Ну как же.... как только поменялась информация на входе (на любой из ног от Болеро), МК просыпается, выводит новую инфу - и баиньки. Я так планирую делать  ;-[

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

Оффлайн Althair

  • Старожил
  • *****
  • Сообщений: 1766
  • Репутация: 11
  • Поблагодарили: +348
Re: AVR и спящий режим
« Ответ #6 : 27 Февраля 2017, 22:22:36 »
0
Если уводить МК в глухую несознанку, то внешних прерываний всего два - с любой ноги оно не просыпается.

Оффлайн dm34

  • Старожил
  • *****
  • Сообщений: 3264
  • Репутация: 22
  • Дмитрий
  • Поблагодарили: +3284
Re: AVR и спящий режим
« Ответ #7 : 27 Февраля 2017, 23:09:35 »
0
с любой ноги оно не просыпается.
Т.е. от внутренних прерываний он не проснется?

Оффлайн Althair

  • Старожил
  • *****
  • Сообщений: 1766
  • Репутация: 11
  • Поблагодарили: +348
Re: AVR и спящий режим
« Ответ #8 : 28 Февраля 2017, 00:42:02 »
+1
с любой ноги оно не просыпается.
Т.е. от внутренних прерываний он не проснется?
Внутренние прерывания суть таймеры, и к ногам отношения не имеют.

У AVR три режима спячки:

Power-Down - вырубается ВАЩЕ ВСЁ, даже тактовый тенератор, пробуждается пинком в INTx

ADCNR - останавливается почти все, кроме АЦП и сотоварищи, дабы шумами не мешать последнему обделывать свои грязные делишки. Просыпается либо по внешке, либо по окончании отработки АЦП (что суть тоже прерывание)

Idle - гасится ядро и память, все остальное (таймеры, ШИМы, и прочая требуха) продолжает бодро шуршать и переливаться. Приходит в себя по любому из значимых событий.

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

Длительность события прерывания (если это не фронт) должна быть не менее 10 системных тактов, иначе прерывание не засчитывается.

Как-то так.

Оффлайн xar

  • Старожил
  • *****
  • Сообщений: 5224
  • Репутация: 16
  • Ренат
  • Поблагодарили: +271
Re: AVR и спящий режим
« Ответ #9 : 28 Февраля 2017, 06:30:12 »
0
либо по окончании отработки АЦП (что суть тоже прерывание)
при чем опять же считанное значение (поменялось/не поменялось) не важно.
даже если и будет небольшой шум от контроллера
не будет. точнее если и будет - далеко за гранью восприятия

и добавил...
и опять же смотрел осциллографом
и как люди шумы смотрят? мы тут милливольтный кардиосигнал посмотреть не можем... при том что контроллер "шумящий" с ацп, который опять же дико шумит по spi с периодичностью в 0.5мс отлично видит десятки микровольт :cr:

Оффлайн dm34

  • Старожил
  • *****
  • Сообщений: 3264
  • Репутация: 22
  • Дмитрий
  • Поблагодарили: +3284
Re: AVR и спящий режим
« Ответ #10 : 28 Февраля 2017, 07:35:51 »
0
Althair, спасибо, разжевал.

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
13277 Просмотров
Последний ответ 12 Декабря 2010, 08:54:26
от tim
8 Ответов
13694 Просмотров
Последний ответ 12 Мая 2013, 07:58:07
от hippo64
5 Ответов
10555 Просмотров
Последний ответ 07 Июля 2013, 20:33:12
от MetalHeart
7 Ответов
6243 Просмотров
Последний ответ 04 Марта 2021, 17:18:33
от Revelator