Клуб DiyAudio

Разное и полезное => Микроконтроллеры и их программирование => Тема начата: Злой от 27 Февраля 2017, 18:28:20

Название: AVR и спящий режим
Отправлено: Злой от 27 Февраля 2017, 18:28:20
Осваиваю микроконтроллеры и уперся в спящий режим. В общем сделал индикацию к Болеро, все работает, но хочется еще и в сон контроллера отправить, хоть и не фонит, но все же. Отправить то несложно, а вот как разбудить в нужный момент. Частота и битность приходят в виде двоичного кода и привязать смену кода к прерыванию это или еще один микроконтроллер вешать :laugh: или нехилую схему на логике, то есть от чего ушел :wall:. Или еще один проект, регулятор Никитина, при повороте потенциометра меняется код на выходе АЦП, если микроконтроллер спит, то и вроде как некому следить за сменой кода, не ставить же отдельную кнопку, что бы будить его.
Название: Re: AVR и спящий режим
Отправлено: xar от 27 Февраля 2017, 19:03:17
Злой, единственное решение - пробуждение по таймеру. Однако такой вариант тебя не устроит ибо просыпающийся и щасыпающий контроллер будет шуметь больше просто работающего.
Название: Re: AVR и спящий режим
Отправлено: Злой от 27 Февраля 2017, 19:28:32
Ренат, про таймеры читал, да тут не вариант, даже если и будет небольшой шум от контроллера, то лучше уж постоянно, чем через равные промежутки всплески. и опять же смотрел осциллографом, что то на уровне шумов прибора и это с проводами с полметра от ИП до стаба и сантиметров 20 от стаба, до платы.
Название: Re: AVR и спящий режим
Отправлено: dm34 от 27 Февраля 2017, 20:13:08
А разве нет варианта просыпания по "дерганию" входов?

и добавил...
В Ардуино вроде бы есть что-то подобное http://arduino.ru/Reference/AttachInterrupt
Сам счас курю нечто подобное, пока бардак в голове...
Название: Re: AVR и спящий режим
Отправлено: Злой от 27 Февраля 2017, 20:43:01
А разве нет варианта просыпания по "дерганию" входов?
Есть конечно, но кто будет ногу дергать?
не ставить же отдельную кнопку, что бы будить его.
С энкодером что то наверное можно придумать, но ведь делают и с потенциометром :d_know: :d_know:
Название: Re: AVR и спящий режим
Отправлено: dm34 от 27 Февраля 2017, 20:50:01
Есть конечно, но кто будет ногу дергать?
Ну как же.... как только поменялась информация на входе (на любой из ног от Болеро), МК просыпается, выводит новую инфу - и баиньки. Я так планирую делать  ;-[

и добавил...
С учетом того, что дисплей имеет свою память, то все вполне логично, имхо конечно.
Название: Re: AVR и спящий режим
Отправлено: Althair от 27 Февраля 2017, 22:22:36
Если уводить МК в глухую несознанку, то внешних прерываний всего два - с любой ноги оно не просыпается.
Название: Re: AVR и спящий режим
Отправлено: dm34 от 27 Февраля 2017, 23:09:35
с любой ноги оно не просыпается.
Т.е. от внутренних прерываний он не проснется?
Название: Re: AVR и спящий режим
Отправлено: Althair от 28 Февраля 2017, 00:42:02
с любой ноги оно не просыпается.
Т.е. от внутренних прерываний он не проснется?
Внутренние прерывания суть таймеры, и к ногам отношения не имеют.

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

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

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

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

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

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

Как-то так.
Название: Re: AVR и спящий режим
Отправлено: xar от 28 Февраля 2017, 06:30:12
либо по окончании отработки АЦП (что суть тоже прерывание)
при чем опять же считанное значение (поменялось/не поменялось) не важно.
даже если и будет небольшой шум от контроллера
не будет. точнее если и будет - далеко за гранью восприятия

и добавил...
и опять же смотрел осциллографом
и как люди шумы смотрят? мы тут милливольтный кардиосигнал посмотреть не можем... при том что контроллер "шумящий" с ацп, который опять же дико шумит по spi с периодичностью в 0.5мс отлично видит десятки микровольт :cr:
Название: Re: AVR и спящий режим
Отправлено: dm34 от 28 Февраля 2017, 07:35:51
Althair, спасибо, разжевал.