Свежие обсуждения
Микроконтроллеры

Ликбез по программированию PIC

1 95 99

Splav56: Нет, не хранят. РОН (регистры общего назначения) это ячейки ОЗУ. Для сохранения текущих значений при отключении питания их нужно писать в энергонезависимую память EEPROM.

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

Сохранить все регистры в EEPROM и затем корректно восстановить все, включая указатель на текущую выполняемую инструкцию... это весьма сложно, подвереженно глюкам и совсем нерационально.

Да, спасибо за ответ. Я уже понял принцип и уже почитал немного по ЕЕПРОМ пика. Пока подумываю обойтись без этого.

 

Ребята, а подскажите, чем можно зарезервировать питание микроконтроллера PIC12F629 на время, пока не будет света, скажем 2-3 часа, сутки, или в шоколадном варианте неделя, например? Про ионисторы читал, что напряжение заряда уменьшается линейно и не держится, как у аккумулятора. Чем вообще эффективно резервируют питание часов или энергозависимой памяти в электронике? Хотелось бы, чтобы эффективно резервировало несколько лет без замены элемента, по возможности. Тогда отпала бы необходимость сохранять в EEPROM метку текущего режима при исчезновении сетевого напряжения.
Хочу подключить что-то вроде маленького аккумулятора только в цепь питания контроллера. Пусть вся схема и периферия обесточена, мне это не так важно, просто не будут приходить сигналы от датчиков на входные ноги, и не будут работать выходные ключи, что в общем-то для автоматики освещения уже не существенно при отсутствии основного питания, всё равно светить нечем.
Какие аккумуляторы могут нормально работать на холоде, хотя бы до -20 градусов? В статические (электронные) счётчики электроэнергии ставят какие-то элементы, которых хватает на десяток лет для хранения памяти и работы внутренних часов, может кто знает, что это за супер батарейки?

 

Gregory: Может лучше наоборот?
Глядишь, и одного МК хватит.

Нужен генератор прямоугольных импульсов с регулировкой частоты и скважности импульса.

GM: А что вы понимаете под словом "работать"? Возможно, как-то работать будет. Зависит от того, как вы будете менять тактовую частоту. Если при переходе от одного периода к другому появится запрещённая длительность, то последствия могут быть непредсказуемые.

Для атмеловских микроконтроллеров прямо указано, что скорость изменения длительности от текущего периода к следующему периоду - не более 2%, для микрочиповских изделий никаких указаний обнаружить не удалось.

Хотел собрать на одном камне генератор импульсов с регулировкой частоты, скажем от 100 периодов машинного такта и до не хочу, сколько нужно. Подать этот сигнал в качестве тактового на второй камень и им уже отсчитывать длительность скважности по количеству импульсов, т.е. в процентах. Так, изменяя частоту первым камнем, уже не нужно пересчитывать количество необходимых тактов для определённой процентной величины скважности для второго, она будет неизменна до тех пор, пока мы не пожелаем сменить скважность. Т.е. при любом изменении частоты импульса его скважность всегда будет ровно такой, какую мы задали.

 

gentleangel: чем можно зарезервировать питание микроконтроллера PIC12F629 на время, пока не будет света, скажем 2-3 часа, сутки, или в шоколадном варианте неделя, например? Про ионисторы читал, что напряжение заряда уменьшается линейно и не держится, как у аккумулятора.

Нужно программно перевести контроллер в sleep-режим, иначе придется использовать приличный аккумулятор. Почитайте про потребление м/к в рабочем и в sleep-режиме, это есть в даташите.

 

Splav56: Нужно программно перевести контроллер в sleep-режим, иначе придется использовать приличный аккумулятор. Почитайте про потребление м/к в рабочем и в sleep-режиме, это есть в даташите.

Ни вопрос, я об этом и подумываю, правда ещё ни разу не пробовал реализовать. Спасибо за дельный совет.

 

gentleangel: правда ещё ни разу не пробовал реализовать.
Вот тут всё написано: http://www.microchip.su/showthread.php?t=7898

 

gentleangel: чем можно зарезервировать питание микроконтроллера PIC12F629 на время, пока не будет света, скажем 2-3 часа, сутки

Я поставил ионистор на 1Ф. Часам на PIC16F887 в спячке хватает на несколько суток (часы в sleepe, просыпаются раз в 2 секунды для отсчета времени). На схеме ионистор - С2. На оптопаре и стабилитроне реализована схема извещения о снижении напряжения питания, т.е. чтобы заранее начать реагировать (выключать светодиодные индикаторы, уходить в спячку).

 

Сергей К: Я поставил ионистор на 1Ф. Часам на PIC16F887 в спячке хватает на несколько суток (часы в sleepe, просыпаются раз в 2 секунды для отсчета времени).

О, супер, то, что надо! Мне вообще пробуждать МК не нужно до восстановления основного питания, значит должно хватать заряда ионистора ещё на дольше.
Спасибо за готовое решение!

 

Сергей К: Часам на PIC16F887

Часики у Вас прям винтажные получились, и даже бронированные , оч понравились...

 

Из-за потери калибровочной константы при прошивке МК может нарушиться работа динамической индикации?

Устройство - терморегулятор на PIC16F628A с 3-х разрядным 7-и сегментгым светодиодным индикатором. Показывает текущую температуру.

Первый разряд стоит как вкопаный, а 2-й и 3-й - то перемигиваются, то по одному мерцают.