Перейти к содержанию

crazz

Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

GIE не влияет на сам процесс пробуждения. Он лишь управляет ВЕКТОРОМ программы ПОСЛЕ пробуждения.

Включает источник пробуждения ЛОКАЛЬНОЕ РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ этого источника.

То есть для включения пробуждения ТОЛЬКО от INT необходимо и ДОСТАТОЧНО установить в "1" ТОЛЬКО ОДИН бит INTE регистра INTCON (остальные разрешения по другим источникам должны быть равны "0"), а вот для управления входом в прерывание ПОСЛЕ пробуждения уже используется бит GIE.

Но все выше сказанное справедливо лишь для управления выходом из слипа. Во всех активных режимах GIE разрешает-запрещает ВСЕ прерывания.

И не забывайте включать PEIE при разрешении локальных прерываний от периферийных источников типа TMR1. Это касается и использования этого таймера для выхода из слипа.

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

У меня как бы в продолжение о SLEEPe вопрос.

Что лучше делать: SLEEP в МК или на время сна(т.е. вместо него) отключать питание МК совсем?

Во сне МК может находится довольно долго(день, неделю), но и в то же время часто на короткие сроки(в течении дня несколько раз).

И вообще как вредно для МК вкл-откл питания?

Можно конечно придумать комбинированный вариант, но это немного усложнит и схему и прошивку...

Изменено пользователем AS7ti6K
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Потребление МК в слипе, если вообще вся периферия отключена - сильно меньше 1 мкА.

Это значит, что стандартный дисковый литиевый элемент CR2032 напряжением 3,2 вольта и емкостью 140 мАч даст время работы в слипе равное времени саморазряда этого элемента - примерно 3...4 года.

Ну и "зачем" козе баян?

:crazy:

Чтобы не разряжать элемент во время активной работы МК, достаточно сделать диодное суммирование резервного (от элемента) и основного питания. Причем основное должно быть немного больше резервного(например 5 вольт). В качестве диодов лучше брать Шоттки, чтобы уменьшить падение.

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Спасибо. Но немного не о том вопросы были)

По потреблению у меня, я думаю, не так критично, ибо питаться будет от аккум авто...

Сам я всеж пока склоняюсь к слипу, но как вариант можно поставить еще и дополнительно тумблер....

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

Ссылка на комментарий
Поделиться на другие сайты

Если питание не критично, то зачем вообще нужен слип?

Назначение слипа как раз в том, чтобы НЕ СНИМАТЬ ПИТАНИЕ и СОХРАНИТЬ СОСТОЯНИЕ программы и переменных.

Если это не требуется, то и слип не нужен.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Если это не требуется, то и слип не нужен.

Ну как бы не совсем так. Устройство должно работать при наличии определенного сигнала. Пока сигнала нет (Внешнее напряжение или земля) устройство не должно реагировать ни на что.... типа выключенным быть. Поэтому логично, либо слип либо действительно отключить питание. И отсюда у меня возник вопрос.

Я конечно понимаю, что можно в программе проверять тот самый сигнал и если что гонять МК в холостую. Например сделать цикл, условием выхода из которого и будет являться этот сигнал. Но это как то жестоко)

Изменено пользователем AS7ti6K
Ссылка на комментарий
Поделиться на другие сайты

Если электричество халявное и его много, то более жестоким в таком случае будет насилование своего мозга выдумыванием лишних программных конструкций. Другое дело работа от батарей - здесь режим сна это необходимость и его НАДО использовать.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Так Ваше предложение-то какое, СЛИП или Отключение питания? :) Если мозг не насиловать придумыванием лишних программных конструкций, то нужно определится: СЛИП или Откл питания.)

Ссылка на комментарий
Поделиться на другие сайты

Ну как бы не совсем так.

..........

..........

Я конечно понимаю, что можно в программе проверять тот самый сигнал и если что гонять МК в холостую. Например сделать цикл, условием выхода из которого и будет являться этот сигнал. Но это как то жестоко)

Что жестоко? Чего пургу то гнать?

Нормальное состояние ЛЮБОЙ вычислительной машины - ОЖИДАНИЕ ЗАДАЧИ. Это исполнение пустого бесконечного цикла с проверкой флагов на запрос исполнения задачи. Либо программной проверкой, либо аппаратной. Аппаратная проверка - это ПРЕРЫВАНИЕ.

Простые задачи на МК в основном и содержат в качестве главного цикла конструкцию while (1) { };

Вход из слипа, а пуще из выключенного состояния связан с потерями времени на запуск генератора, а при выключении питания еще и инициализацию программы. Это примерно 2 ...100 миллисекунд.

При выключении питания к тому же значения переменных в программе будут потеряны.

Изменено пользователем Alex

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Дык у меня и вопрос, что лучше в моем конкретном случае.)

Если делать слип - то МК и вся схема находится под напряжением, отсюда - мало ли...

Но и вкл-откл питания не благополучно влияют на электронные устройства, на сколько я знаю...

Ладно, СЛИП так СЛИП. Тем более я и сам так хотел. Просто вдруг у кого-нибудь веские аргументы по питанию были бы)

Я же учусь)

Пусть МК работает постоянно, откликаясь на необходимые события.

В том-то и дело, что никаких событий в МК в этот момент НЕ должно быть :) А единственный сигнал, который может МК разбудить - можно так же его использовать и на вкл-откл питания всей схемы.

Что жестоко? Чего пургу то гнать?

Нормальное состояние ЛЮБОЙ вычислительной машины - ОЖИДАНИЕ ЗАДАЧИ.

Согласен. Но все зависит и от задачи. Какой смысл ОЖИДАТЬ ЗАДАЧУ если в определенный промежуток времени её ну 300% не будет.

Я уверен, что некоторые люди и домашний компьютер не выключают совсем.

Хотя я выключаю. Например на ночь, или когда на работу ухожу, или вообще когда он мне не нужен.... :) А ведь он тоже умеет спать и все такое)

Вход из слипа, а пуще из выключенного состояния связан с потерями времени на запуск генератора, а при выключении питания еще и инициализацию программы. Это примерно 2 ...100 миллисекунд.

При выключении питания к тому же значения переменных в программе будут потеряны.

Это все не критично в моем случае. Вопрос был о рациональности СЛИПа и Откл Питания. У кого больше... т.е. что рациональнее))

Ссылка на комментарий
Поделиться на другие сайты

Согласен. Но все зависит и от задачи. Какой смысл ОЖИДАТЬ ЗАДАЧУ если в определенный промежуток времени её ну 300% не будет.

Я уверен, что некоторые люди и домашний компьютер не выключают совсем.

Хотя я выключаю. Например на ночь, или когда на работу ухожу, или вообще когда он мне не нужен.... :) А ведь он тоже умеет спать и все такое)

Компьютер на столе выключают по единственной причине - ОН МНОГО ЖРЕТ. И только поэтому.

А смартфоны и планшеты ВООБЩЕ НЕ ВЫКЛЮЧАЮТ. Ридеры (электронные книги) - тоже.

У них попросту нет "выключалки". Питание всегда подается на схему, а процессор при таком "выключении" засыпает без снятия питания.

Для контроллера, который потребляет единицы миллиампер, а часто вообще меньше одного миллиампера, исполнение пустого цикла при отсутствии задач равноценно сну. Есть даже такой режим, при котором отключается все, кроме тактового генератора, что подобно слипу, но имеет практически нулевое время выхода в активный режим. Правда экономия по потреблению там не слишком велика - примерно 50%.

Организация слипа - это программные затраты (нужно при входе всю периферию поотключать, а при выходе опять включить).

Организация выключения-включения (автоматическая) - вообще несусветная глупость и значительные аппаратурные затраты...

Изменено пользователем Alex

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

AS7ti6K , использование слипа, и тем более откл. питания, в Вашем случае - неоправданные лишние телодвижения. Достаточно пустого вечного цикла, с ожиданием флагов от событий.

Или Вы считаете, что при таком раскладе истощаются ресурсы МК ? :)

Ссылка на комментарий
Поделиться на другие сайты

Или Вы считаете, что при таком раскладе истощаются ресурсы МК ? :)

:)

Лучше переб..деть чем недоб..деть) Ладно, остановлюсь на слипе.

Устройство критично не должно ни на что реагировать и тем более сделать свое дело, что в программе написано, пока рядом(критично рядом) нет никого, или еще хуже если, наоборот, есть дети)

По поводу последних буду думать дополнительную защиту. Критичную))

Изменено пользователем AS7ti6K
Ссылка на комментарий
Поделиться на другие сайты

Alex, я почему-то подумал, что Вы догадались о каком устройстве речь :)

Да ничего такого особенного, всего-то кнопка запуска двигателя на авто. А сигнал, который приводит устройство в готовность - это сигнал от RFID брелока.

Но вот иногда на природе, или на пляже, да или вообще где угодно, может оказаться так, что и брелок будет в зоне действия и ребенок рядом с кнопкой, а авто на 1 передачи стоит..... Ну это отдельная тема, не касающаяся моего данного вопроса.

А по поводу всегда работать в бесконечном цикле и проверять флаги.... тоже как-то не айс. Мало ли чего там этот флаг может выставить.... конденсат какойнить на плате, или таракан... жук, мышь....

Ладно, все будет нормально))))

Интересно, как в инотачках с кнопкой StartStopEngine сделана защита от детей? Хотя, чего как? ...там коробка автомат. Но с другой стороны дети - есть дети. От них защиту наверное не придумаешь) Проще не подпускать их к красным кнопкам)

Изменено пользователем AS7ti6K
Ссылка на комментарий
Поделиться на другие сайты

ну как бы... даже 10мА потребления контроллера разряжают автомобильный аккумулятор примерно за 3 месяца. Поэтому, когда питание жестко лимитировано - имеет смысл использовать режим сна, а когда от розетки - смысла нет только больше сил потратите на написание программы и трудно отлавливаемые глюки по этой причине.

У вас кстати проблема будет похуже... для контроллера нужен стабилизатор на 5В - это такая гадость которая просто так кушает 2мА, эти 2мА выльются в милиампер-часы и в перспективе способны высадить аккумулятор скажем за год(новенький ни разу не пользованый)... а будут же еще и другие потребители, этот срок будет все снижаться и снижаться... Проблему решит частично малопотребляющий стабилизатор, но его еще поискать надо - это не ширпотреб да и стоимость будет у него больше, как бы не в 5-10 раз.

В бортсети могут быть импульсы напряжения до 120В их надо срезать супрессором, ибо десяток(а может и один) таких импульсов и стабилизатор напряжения не выдержит(он вообще максимум 30В на входе держит).

Так что да, использовать придется спящий режим или вообще обестачивать схему.

Но я еще предвижу проблемы... RFID-считыватель вероятно будет отдельный и запитан от бортсети... и потребление у него будет даже не 10мА - он ведь вынужден ПОСТОЯННО опрашивать пространство на наличие RFID-метки, высадит автомобильный аккумулятор за месяц-другой а то и быстрее. Если вас это не смущает, то скорей всего и постоянно потребление контроллера тоже смущать не будет - пусть себе работает, подумаешь эта связка высадит аккумулятор за полтора месяца а не за два... делов-то.

И кстати, планшеты ВЫКЛЮЧАЮТСЯ реально. Запитан всегда там только контроллер питания, он заведует режимом работы всех узлов, и если приложения не попросят "оставь питание в фоне" он отрубит питание и на процессор и на память и периферию, есть еще режимы с периодическим включением и много всего.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

По поводу RFID да, он отдельным модулем, поэтому, как Вы верно заметили +еще расходы. Но я об этом не забывал. Но о потреблении стабилизатором как-то даже и не догадывался - спасибо.

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

Мне кажется, т.е. я так считаю, что у каждого, более менее сложного электронного устройства должен быть "тумблер" выключения питания. Иначе это устройство может полететь в корзину)

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Всем доброго времени суток.

Я не могу разобратся с регистром "OSCCON: OSCILLATOR CONTROL REGISTER" в PIC 18f4550 А точнее с битами: IDLEN и OSTS, читал даташит, но не совсем понял.

IDLEN: Idle Enable bit

OSTS: Oscillator Start-up Time-out Status bit, Depends on the state of the IESO Configuration bit.

Может кто подскажет как их правильно настраивать, пользуюсь компилятором MikroC.

Спасибо

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Ребят....кто может помочь. Нужно на PiC16f628a на таймере реализовать секундные импульсы для отсчета времени подеритесь кто как делал , вот мой кусок кода но с ним не удается получить точное время спешат или отстают на 3-6 мин\сутки


char ss, temp1, mm;

INTCON=0b11000000; // Настройка прерываний
OPTION=0b00000111; // Настройка TMR0
//CMCON=0b00000101;	 // используется только второй компаратор
//T1CON =0b00110001; // Настройка TMR1
T1CON =0b00010001; // Настройка TMR1 /1:2
TMR1IE=1;//Разрешение прерывания по переполнению TMR1

void interrupt isr(void)
{
if(T0IF) // при переполнение TMR0
{
T0IF=0; // сбрасываем флаг о его переполнение
}
if(TMR1IF) // при переполнение TMR1
{
temp1++;

if (temp1 > 18)//
{
ss++;//секунды
temp1 = 0;
}
if (ss>59)
{
ss=0;
mm++;//минуты
}
TMR1IF=0; // сбрасываем флаг
}
}

кварц 10 мгц

10000000/4=

2500000/65535=

38,147554742\2=

19,073777371\18=

1,059654298

Изменено пользователем luzik24
Ссылка на комментарий
Поделиться на другие сайты

Причём тут код ?

Чтобы часы не "уходили", в первую очередь нужно заботиться о точности тактовой частоты, от которой формируется секунда.

Ссылка на комментарий
Поделиться на другие сайты


char ss, temp1, mm;

INTCON=0b11000000; // Настройка прерываний
OPTION=0b00000111; // Настройка TMR0
//CMCON=0b00000101;     // используется только второй компаратор
//T1CON =0b00110001; // Настройка TMR1
T1CON =0b00010001; // Настройка TMR1 /1:2
TMR1IE=1;//Разрешение прерывания по переполнению TMR1

void interrupt isr(void)
{
if(T0IF) // при переполнение TMR0
{
T0IF=0; // сбрасываем флаг о его переполнение
}
if(TMR1IF) // при переполнение TMR1
{TMR1IF=0; // сбрасываем флаг
TMR1= (65536 - 50000) + TMR1;
temp1++;

if (temp1 = 25)//
{
ss++;//секунды
temp1 = 0;
}
if (ss>59)
{
ss=0;
mm++;//минуты
}

}
}

кварц 10 мгц

10000000/4=

2500000/50000/2=25

Причём тут код ?

Чтобы часы не "уходили", в первую очередь нужно заботиться о точности тактовой частоты, от которой формируется секунда.

Алекс у него секунда неправильно вычисляется....
Ссылка на комментарий
Поделиться на другие сайты

я думаю что то неправильно вычисляется

TMR1= (65536 - 50000) + TMR1;

то есть прибавить к таймеру начальное значение , спасибо вечером попробую.

Изменено пользователем luzik24
Ссылка на комментарий
Поделиться на другие сайты

Алекс у него секунда неправильно вычисляется....
Это я понял. Я имел в виду, что в первую очередь нужно позаботиться о точности генератора. Ибо всё дальнейшее шаманство - коту под хвост.
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...