При этом МК контролирует наличие напряжения питания.
решение задачи становится многократно проще, если не контролировать выключение питания, а выключать питание по команде МК. и, с моей точки зрения, это выглядит более разумным.
еще вполне разумным выглядит производить запись в EEPROM не каждый раз при изменении параметра, а через N секунд после последнего изменения. Например, через 10 секунд после того, как перестали крутить ручки регуляторов. или через 20. в этом случае, сами понимаете, ресурс устройства пропорционально возрастает.
наконец, можно и по-вашему, с контролем питания: МК запитать от ионистора, развязанного от источника питания диодом, и контролировать напряжение "по ту сторону" диода. собственно, при грамотной разводке питания можно и простым электролитом обойтись, чтобы поддерживать питание МК на приемлемом для записи EEPROM уровне пару десятков миллисекунд... тут вопрос скорее в схемотехнике, а не алгоритмах.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
не контролировать выключение питания, а выключать питание по команде МК
Проще, но не всегда микроконтроллер полностью "рулит" всей ситуацией Пользователь может просто выдернуть вилку из розетки/нажать выключатель питания. И тогда настройки, естественно, не сохранятся. Обычно не смертельно, но неприятно и криво.
ARV писал(а):
через N секунд после последнего изменения.
Это понятно, но при большом значении N см. предыдущий пункт. И опять же, скорее всего записей будет гораздо больше, чем одна за сеанс пользования. Кардинальных улучшений от этого нет.
ARV писал(а):
МК запитать от ионистора
Ну это уже слишком. Я вообще хотел попытаться обойтись обычным танталовым конденсатором по питанию. Если учесть, что страница/слово в такой памяти шьется примерно 15 мс (если ориентироваться по ДШ), то за 150 мс можно зашить 10 таких атомарных единиц записи флеша, т. е. как видите, емкость для этого нужна не такая уж и большая, т. е. задача как бы вполне реальная и экономически не сильно накладная по сравнению с обычной схемой питания. Удивляет, почему это никто не использует в промышленных изделиях (во всяком случае, я нигде не встречал)? А уж как сделана "бытовуха" последних лет - так вообще иногда вызывает чувство глубокого недоумения - выдергиваешь вилку, например, муз. центра, а при повторном включении громкость сброшена на значение по умолчанию.
В тему. Микрочип выпускает весьма интересную микросхему памяти - NV SRAM, которая представляет из себя статическое ОЗУ с SPI интерфейсом и двойным питанием в корпусе SOIC8. Одно питание - общее в схеме, а второе - химический элемент. Потребление по второму 1 мкА и не зависит от состояния первого питания. Это позволяет получить скорость обращения оперативной памяти и бесконечный ресурс.
я так и не понял, что вас смущает: вы не сказали ничего новее сказанного...
КРАМ писал(а):
статическое ОЗУ с SPI интерфейсом и двойным питанием в корпусе SOIC8
если речь идет о дополнительной микросхеме, то простейшая 24Cxx позволит решить все проблемы с хранением настроек и дополнительного питания не потребуется.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
24С ничем не отличается от встроенного флеша данных в смысле ресурса, то есть не позволяет писать туда прямо во время настроек, то есть хранить там сами переменные, а не их копии.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
до кучи - в наше время, когда корабли бороздят..., можно взять рядовой микроконтроллер с низким потреблением, который может Low power run. Если денег на батарейку жаба душит, можно от яблок запитать http://we.easyelectronics.ru/STM8/low-p ... eniya.html
С батарейкой в качестве резерва МК не все так просто, патамушта при ВЫключении основного питания, МК еще некоторое время остается прожорлив, что ведет к просадке химического источника, особенно если он компактен. То есть еще вполне живучий элемент питания досрочно выходит в тираж из-за неизбежных ресетов МК при снятии основного питания. Кстати, дело не только в МК. Схема может объективно много потреблять , ибо вней есть не только МК.
все можно решить - например если почитать рекомендации от производителя типа AN4718 Application note How to design a VBAT system based on STM32L0/L1 series (with external components) з.ы. если решать по взрослому - конденсатор или суперконденсатор (ионистор) понадобится имхо
24С ничем не отличается от встроенного флеша данных в смысле ресурса, то есть не позволяет писать туда прямо во время настроек, то есть хранить там сами переменные, а не их копии.
1. ресурсом отличается. по-моему, раз в 10 отличается в лучшую сторону. 2. никакая внешняя микросхема с интерфейсом, отличным от нативно-паралельного, не позволяет хранить там "свои данные в виде переменных". доступ к этой микросхеме осуществляется через функции, а не "естественным" способом, так что разницы никакой нет. 3. нативно-параллельный интерфейс в принципе отсутствует у маленьких тинек и младших мег, так что даже при наличии настоящей SRAM-памяти это не вариант для большинства случаев
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
1. ресурсом отличается. по-моему, раз в 10 отличается в лучшую сторону.
Ошибаетесь. 1млн циклов, причем с некоторыми существенными оговорками. И с временем записи, исключающим режим реального времени при регулировках.Все это делает одинаково невозможным работу без специального сохранения данных либо при выключении, либо в паузах между регулировками. Но есть множество случаев, когда делать это весьма затруднительно.
ARV писал(а):
2. никакая внешняя микросхема с интерфейсом, отличным от нативно-паралельного, не позволяет хранить там "свои данные в виде переменных"
А что это меняет? Речь шла не о том, используется некий буфер в ОЗУ МК для перемещения параметров во внешние устройства или нет. Речь шла о том, что переменная во внешнем ОЗУ является оригиналом, а не копией, и не требует постоянной перезагрузки. Вывод (ввод) у SPI со скоростью в 10...20 Мбит/с делает доступ к подобной переменной пригодным для реального времени.
Опять куда-то в сторону ушли. Ионистры, SRAM с батарейками... Понятно, что разные варианты реализации существуют, вопрос был про конкретный вариант - конденсатор пожирнее (150...470 мкФ) + диод + цепь определения момента выключения + программная оптимизация потребления МК в этом режиме, пока он шьет флешку 24С или еще что-то. Т. е. пробовал кто такое или нет и если никто не пробовал, то стоит ли дальше думать про это и пробовать или забить на идею? В конце концов, чисто программный вариант с кольцевым буфером на N копий никто не отменял.
Я применял - в прошлом веке Спойлер(блин, как быстро время утекло ) Контроль питания до стаба, при опускании ниже порога - свертывание критичных данных в eeprom - и наблюдаем за питанием - если не восстановилось, включаю всю периферию, и как Титаник с полной иллюминацией - погружаюсь в бесконечном цикле. Зачем ? Тут есть неприятный нюанс: при выключении жрущей периферии БП облегченно вздыхает и может поднять напругу выше порога включения (гистерезис, само собой, имеется) . Возникают автоколебания с непредсказуемыми последствиями. Так вот чтобы не было. Хорошо ли, плохо ли - не знаю. Теперь уже нет ни промышленности, ни, наверное, и той фирмы, на которой это делал.
Опять куда-то в сторону ушли... вопрос был про конкретный вариант - конденсатор пожирнее (150...470 мкФ) + диод + цепь определения момента выключения + программная оптимизация потребления МК в этом режиме...
вроде в начале было:
aam писал(а):
Я вообще хотел попытаться обойтись обычным танталовым конденсатором по питанию.
вот попроще схемки из документа, название которого было озвучено выше: вместо супер конденсатора можно поставить, как хотелось, танталовый. Тип микроконтроллера тоже вроде не озвучен, сейчас в большинстве современных микроконтроллеров присутствует внутренний детектор напряжения PVD, использовал - прекрасно работает, даже при понижении питания прерывание вызывает. В некоторых АВР тини можно также измерить напряжение питания внутренним АЦП без внешних цепей. Пример тут: http://klim.in.ua/wp/2010/10/power-led- ... nt-page-1/
Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн фев 27, 2017 14:23:18
Встал на лапы
Зарегистрирован: Сб май 07, 2011 17:00:42 Сообщений: 139 Откуда: Оттуда
Рейтинг сообщения:0
Как правильно подключать SPI программатор к МК (AVR). если на линии SPI есть другие устройства? Собрал устройство не задумываясь, программатор его не увидел. Анализатор показал, что некий ответ есть. Только тогда дошло, что отвечает программатору другое устройство. Притянул SS к питанию, чтобы оно молчало, в итоге на MISO сплошной "0". Видимо, другое устройство притягивает MISO к земле. Отключил это устройство от шины - заработало. Думаю, что достаточно будет поставить резистор по линии MISO номиналом порядка 1кОм. А как обычно поступают в этом случае?
Пытаюсь запрограммировать PIC12F675 через этот программатор https://masterkit.ru/shop/laboratory/pr ... rs/1355379 Использую WinPic800, считывание проходит без проблем, но запись не идет, выходит такая ошибка и следом другая:
Хотя если ничего не загружать в программу, то запись проходит без проблем. Поиск не помог, в чем может быть дело?
Добавлено after 13 minutes 22 seconds: Хотя я догадываюсь, программатор просто не работает, но почему тогда читает и пишет в пустую?
_________________ Главный инженер проекта - человек, который как никто другой знает, что приближаться к спроектированной им хрени близко не стоит.
Программатор рабочий. А вот почему не получается прошить, так это от попытки перепрограммировать заводские значения битов BandGap. Обычно их надо сначала прочесть вместе с калибровочной константой, и при программировании оставить заводские значения (некоторые программаторы это делают автоматически).
_________________ Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения