AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Кто любит RISC в жизни, заходим, не стесняемся.
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение ivan dimir »

Как сохранить я знаю .Ну вот зафиксировать пик в в максимуме или в минусе? Вот это вопрос.Попробывал через ацп значение минимальные выставляю флаг и записываю.Не получается Кто из спецов подскажет ?.

Добавлено after 6 minutes 12 seconds:
Да буду снимать с транформаторов тока.В железе не пробовал.А в протеусе не работает.Абра кадабра.запсую в определённый адрес.А значение с пертвого адреса стирается?.Может это косяк в протеусе. Недавно собирал часы на Stm32 и на AVR.C LCD c I2C приставкой в протеусе ничего не работает.А вжелезе работает.
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Eddy_Em »

А если на русский перевести?
Ванга умерла давно, трактовать тебя некому.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Реклама
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Martian »

Если надо записать экстремумы, и проблема в том, чтобы определить, что это - экстремум, то Eddy_Em прав, опишите нормально алгоритм, так как вариантов множество. Но вообще, если мы имеем вечно меняющуюся неопределенно кривую, то её экстремумы сохраняются элементарно: запоминаем текущее значение во временную переменную tempValue. Получаем следующее значение. Сравниваем с предыдущим, если больше, то во флаг состояний fZnak записываем "растёт", ну или"падает", если меньше. Сохраняем новое значение в tempValue.
Всё, дальше всё тоже самое, только добавляется проверка с флагом, как только сравнение текущего значения с tempValue не совпадает по знаку со fZnak - функция развернулась, в tempValue пока ещё хранится ближайшее к экстремуму значение.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Eddy_Em »

У многих STM32, кстати, есть компаратор на АЦП: задаем нужный уровень, как только он превышен, срабатывает прерывание. В нем выставляем флаг, запоминаем экстремальное значение и метку времени, а уж где-то потом спокойно это сохраняем. Можно вообще выждать миллисекунд 10 после появления флага: вдруг экстремум за это время еще больше станет?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Реклама
Эиком - электронные компоненты и радиодетали
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Martian »

О, с прерыванием вообще удобно.
Реклама
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение ivan dimir »

[uquote="Martian",url="/forum/viewtopic.php?p=4160716#p4160716"]Если надо записать экстремумы, и проблема в том, чтобы определить, что это - экстремум, то Eddy_Em прав, опишите нормально алгоритм, так как вариантов множество. Но вообще, если мы имеем вечно меняющуюся неопределенно кривую, то её экстремумы сохраняются элементарно: запоминаем текущее значение во временную переменную tempValue. Получаем следующее значение. Сравниваем с предыдущим, если больше, то во флаг состояний fZnak записываем "растёт", ну или"падает", если меньше. Сохраняем новое значение в tempValue.
Всё, дальше всё тоже самое, только добавляется проверка с флагом, как только сравнение текущего значения с tempValue не совпадает по знаку со fZnak - функция развернулась, в tempValue пока ещё хранится ближайшее к экстремуму значение.[/uquote]
читаем ногу ацп если значение больше настраиваемого то выставляем флаг и с течении времени записываем.Я Делаю защиту для глубинного насоса .Нужно ловить мин.значения в дискретном виде чтобы записать до срабатывания этой защиты.Мне кажется одного ацп будет мало.Если это возможно то опишите алгоритм.И максимум перегрузок тоже.Тут ещё один вопрос.Я читаю в основном цикле.В майне не читается.Ну практика показала.А как правильно?.Дело в том что в AVR есть внутренний EEPROM.Он читается в майне.

Добавлено after 1 minute 56 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4160747#p4160747"]У многих STM32, кстати, есть компаратор на АЦП: задаем нужный уровень, как только он превышен, срабатывает прерывание. В нем выставляем флаг, запоминаем экстремальное значение и метку времени, а уж где-то потом спокойно это сохраняем. Можно вообще выждать миллисекунд 10 после появления флага: вдруг экстремум за это время еще больше станет?[/uquote]
Я этого не понимаю как может быть компаратор на ацп.Я наверное мануал плохо читал.
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Eddy_Em »

ivan dimir, я неправильно выразился. Оно называется "analog window watchdog". Замечательная вещь. Прерывание вызывает. DocID018940 Rev 8, страница 250.
И да, у STM32 EEPROM только у дорогущей L-серии есть, у обычных только эмуляция через FLASH, но оно недолго проживет, если ежесекундно писать. У STM32F072 обещают в районе 10 килоциклов, т.е. всего лишь 5000 раз гарантированно можно что-то туда записать. Даже при наличии 100кБ флеша и блоке в 32 байта на один цикл выйдет 32000 записей, т.е. буквально через пять лет флеш может сдохнуть при ежесекундной записи.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение ivan dimir »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4160811#p4160811"]ivan dimir, я неправильно выразился. Оно называется "analog window watchdog". Замечательная вещь. Прерывание вызывает. DocID018940 Rev 8, страница 250.
И да, у STM32 EEPROM только у дорогущей L-серии есть, у обычных только эмуляция через FLASH, но оно недолго проживет, если ежесекундно писать. У STM32F072 обещают в районе 10 килоциклов, т.е. всего лишь 5000 раз гарантированно можно что-то туда записать. Даже при наличии 100кБ флеша и блоке в 32 байта на один цикл выйдет 32000 записей, т.е. буквально через пять лет флеш может сдохнуть при ежесекундной записи.[/uquote]
Если ты такой умный.То скажи мне как лучше читать EEPROM?.Сторожевая собака АЦП.Возможно можно попробывать.Надоело играться с AVR.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Martian »

Eddy_Em +3 (ну, только так могу ;) )
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение ivan dimir »

спасибо за откровенность

Добавлено after 1 minute 24 seconds:
На мой вопрос я сам отвечу.Только нужно пару дней.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Eddy_Em »

Что у тебя за EEPROM? На I2C? Тогда учти, что процесс логгирования будет медленным. Если нужно просто эмулировать во флеш-памяти, у меня на гитхабе есть сниппеты для этого.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Martian »

а может, окто-SPI... но учитывая, что основной агрегат - глубинный насос, вряд ли требуется быстродействие, наверное, достаточно любой внешней EEPROM.
а может, у автора и те самые L-серия?
Необходима дополнительная информация.
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение ivan dimir »

SPI работает Flash.Она быстреее.но как реагирует на изменения напряжения?.Да и циклов записи и стирания 100000.А в EEPROM 1000000.Но он медленный.Сегодня проексперементирую на STM32 EEPROM и скажу как лучше.Серия L -дороже.Да и в серии этой меньше переферии.Таймеров и тд.Может немного лучше AVR.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Martian »

Меньше - не значит хуже. Если её достаточно для поставленной задачи.
Скорость записи в ЕЕ несколько мс, что легко обеспечивается необслуживаемым резервным питанием в виде конденсатора или ионистора. Не представляю, зачем глубинному насосу быстрее.
Последний раз редактировалось Martian Пт янв 14, 2022 12:17:06, всего редактировалось 1 раз.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Eddy_Em »

Да ладно! Я ж приводил расчет для ежесекундной записи во FLASH микроконтроллера. Если писать потребуется в среднем раз в минуту, то можно, не парясь, сохранять журнал во FLASH. Только сделать запись не как у меня (у меня полностью стирается вся свободная область, когда кончается место, и запись начинается с начала), а стирать поблочно. Правда, процесс поиска последней записи несколько усложнится, но это не страшно - все равно он запускается лишь в самом начале, при включении. Только если есть возможность перебоев питания, лучше ионистор воткнуть на всякий пожарный…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение ivan dimir »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4161027#p4161027"]Да ладно! Я ж приводил расчет для ежесекундной записи во FLASH микроконтроллера. Если писать потребуется в среднем раз в минуту, то можно, не парясь, сохранять журнал во FLASH. Только сделать запись не как у меня (у меня полностью стирается вся свободная область, когда кончается место, и запись начинается с начала), а стирать поблочно. Правда, процесс поиска последней записи несколько усложнится, но это не страшно - все равно он запускается лишь в самом начале, при включении. Только если есть возможность перебоев питания, лучше ионистор воткнуть на всякий пожарный…[/uquote]
Писать потребуется только при пике когда пик критичен и отключается со временем.При обрыве фазы 1.5 с при перегрузе можно сделать2.Чтоб была разница.Flash не пробовал.Можно ли зафиксировать пик в определённый промежуток времени если пик прдолжается записать в EEPROM или Flash.И как это правильно выполнить?.Вот мой вопрос.

Добавлено after 2 minutes 25 seconds:
У меня вопрос .Что такое КАРМА.И Что такое РЕЙТИНГ?
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение Martian »

Если есть подозрение, что может произойти ещё событие во время записи предыдущего, то просто разделите задачу на две. Одна занимается сбором событий в некий стек, вторая задача пишет этот стек в ЕЕPRОМ. Всё, что требуется - определить максимальный размер стека, итоговое время записи, обеспечить условия для записи.

Карма и рейтинг - это числа, не более. У меня отрицательные, потому что некоторые участники форума не согласны с моим мнением, критикой и поведением. Если учесть то, что их поведение часто точно такое же, против которого они спорят, все они в основном из одной "компашки", а у меня ест второй аккаунт, где эти числа положительные и на порядок больше, то можно сделать вывод, что данные числа не отражают ничего.
Но некоторые ошибочно считают это показателем профессионализма.
Аватара пользователя
>TEHb<
Друг Кота
Сообщения: 5742
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Откуда: Воронеж
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение >TEHb< »

Можно применить FRAM. У той ресурс бешеный и скорость неплохая. Например, с FM24CL64B работал. Приятная штучка. Совместима с I2C EEPROM-мами.
"Привет!" - соврал он.
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение ivan dimir »

[uquote=">TEHb<",url="/forum/viewtopic.php?p=4161053#p4161053"]Можно применить FRAM. У той ресурс бешеный и скорость неплохая. Например, с FM24CL64B работал. Приятная штучка. Совместима с I2C EEPROM-мами.[/uquote]
А почему FRAM.И с чем её едят.На чём она работает?
Аватара пользователя
>TEHb<
Друг Кота
Сообщения: 5742
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Откуда: Воронеж
Контактная информация:

Re: AVR&Stm32 сохранение текущих аварийных данных в EEPROM.

Сообщение >TEHb< »

Физически такие чипы для запоминания используют сегнетоэлектрики. Короче, конденсатор с гистерезисом. За счёт этого такая ячейка получается почти вечной. Существует даже оперативная память на таком принципе. Энергонезависимая. Едят её уже в зависимости от способа приготовления. Часто чипы совместимы с EEPROM и позиционируются как прямая их замена. Например, FM24CL64B имеет I2C шину. Может читаться как и любая другая ЭСППЗУ, а может не обращать внимания на блоки. У неё доступ раздельный к каждой ячейке. Время записи и чтения околонулевое. Почему FRAM? Да потому что в неё можно хоть непрерывно писать и ничего ей не сделается. Ну и да, адресация удобная.
"Привет!" - соврал он.
Ответить

Вернуться в «ARM»