Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Чт янв 13, 2022 20:26:50

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

Добавлено after 6 minutes 12 seconds:
Да буду снимать с транформаторов тока.В железе не пробовал.А в протеусе не работает.Абра кадабра.запсую в определённый адрес.А значение с пертвого адреса стирается?.Может это косяк в протеусе. Недавно собирал часы на Stm32 и на AVR.C LCD c I2C приставкой в протеусе ничего не работает.А вжелезе работает.

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

Чт янв 13, 2022 21:27:55

А если на русский перевести?
Ванга умерла давно, трактовать тебя некому.

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

Чт янв 13, 2022 21:53:11

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

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

Чт янв 13, 2022 22:14:42

У многих STM32, кстати, есть компаратор на АЦП: задаем нужный уровень, как только он превышен, срабатывает прерывание. В нем выставляем флаг, запоминаем экстремальное значение и метку времени, а уж где-то потом спокойно это сохраняем. Можно вообще выждать миллисекунд 10 после появления флага: вдруг экстремум за это время еще больше станет?

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

Чт янв 13, 2022 22:17:11

О, с прерыванием вообще удобно.

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

Чт янв 13, 2022 22:48:04

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

читаем ногу ацп если значение больше настраиваемого то выставляем флаг и с течении времени записываем.Я Делаю защиту для глубинного насоса .Нужно ловить мин.значения в дискретном виде чтобы записать до срабатывания этой защиты.Мне кажется одного ацп будет мало.Если это возможно то опишите алгоритм.И максимум перегрузок тоже.Тут ещё один вопрос.Я читаю в основном цикле.В майне не читается.Ну практика показала.А как правильно?.Дело в том что в AVR есть внутренний EEPROM.Он читается в майне.

Добавлено after 1 minute 56 seconds:
У многих STM32, кстати, есть компаратор на АЦП: задаем нужный уровень, как только он превышен, срабатывает прерывание. В нем выставляем флаг, запоминаем экстремальное значение и метку времени, а уж где-то потом спокойно это сохраняем. Можно вообще выждать миллисекунд 10 после появления флага: вдруг экстремум за это время еще больше станет?

Я этого не понимаю как может быть компаратор на ацп.Я наверное мануал плохо читал.

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

Чт янв 13, 2022 23:05:11

ivan dimir, я неправильно выразился. Оно называется "analog window watchdog". Замечательная вещь. Прерывание вызывает. DocID018940 Rev 8, страница 250.
И да, у STM32 EEPROM только у дорогущей L-серии есть, у обычных только эмуляция через FLASH, но оно недолго проживет, если ежесекундно писать. У STM32F072 обещают в районе 10 килоциклов, т.е. всего лишь 5000 раз гарантированно можно что-то туда записать. Даже при наличии 100кБ флеша и блоке в 32 байта на один цикл выйдет 32000 записей, т.е. буквально через пять лет флеш может сдохнуть при ежесекундной записи.

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

Чт янв 13, 2022 23:27:40

ivan dimir, я неправильно выразился. Оно называется "analog window watchdog". Замечательная вещь. Прерывание вызывает. DocID018940 Rev 8, страница 250.
И да, у STM32 EEPROM только у дорогущей L-серии есть, у обычных только эмуляция через FLASH, но оно недолго проживет, если ежесекундно писать. У STM32F072 обещают в районе 10 килоциклов, т.е. всего лишь 5000 раз гарантированно можно что-то туда записать. Даже при наличии 100кБ флеша и блоке в 32 байта на один цикл выйдет 32000 записей, т.е. буквально через пять лет флеш может сдохнуть при ежесекундной записи.

Если ты такой умный.То скажи мне как лучше читать EEPROM?.Сторожевая собака АЦП.Возможно можно попробывать.Надоело играться с AVR.

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

Чт янв 13, 2022 23:31:38

Eddy_Em +3 (ну, только так могу ;) )

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

Пт янв 14, 2022 05:37:08

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

Добавлено after 1 minute 24 seconds:
На мой вопрос я сам отвечу.Только нужно пару дней.

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

Пт янв 14, 2022 10:39:39

Что у тебя за EEPROM? На I2C? Тогда учти, что процесс логгирования будет медленным. Если нужно просто эмулировать во флеш-памяти, у меня на гитхабе есть сниппеты для этого.

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

Пт янв 14, 2022 10:46:17

а может, окто-SPI... но учитывая, что основной агрегат - глубинный насос, вряд ли требуется быстродействие, наверное, достаточно любой внешней EEPROM.
а может, у автора и те самые L-серия?
Необходима дополнительная информация.

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

Пт янв 14, 2022 12:10:06

SPI работает Flash.Она быстреее.но как реагирует на изменения напряжения?.Да и циклов записи и стирания 100000.А в EEPROM 1000000.Но он медленный.Сегодня проексперементирую на STM32 EEPROM и скажу как лучше.Серия L -дороже.Да и в серии этой меньше переферии.Таймеров и тд.Может немного лучше AVR.

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

Пт янв 14, 2022 12:13:20

Меньше - не значит хуже. Если её достаточно для поставленной задачи.
Скорость записи в ЕЕ несколько мс, что легко обеспечивается необслуживаемым резервным питанием в виде конденсатора или ионистора. Не представляю, зачем глубинному насосу быстрее.
Последний раз редактировалось Martian Пт янв 14, 2022 12:17:06, всего редактировалось 1 раз.

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

Пт янв 14, 2022 12:16:46

Да ладно! Я ж приводил расчет для ежесекундной записи во FLASH микроконтроллера. Если писать потребуется в среднем раз в минуту, то можно, не парясь, сохранять журнал во FLASH. Только сделать запись не как у меня (у меня полностью стирается вся свободная область, когда кончается место, и запись начинается с начала), а стирать поблочно. Правда, процесс поиска последней записи несколько усложнится, но это не страшно - все равно он запускается лишь в самом начале, при включении. Только если есть возможность перебоев питания, лучше ионистор воткнуть на всякий пожарный…

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

Пт янв 14, 2022 12:31:22

Да ладно! Я ж приводил расчет для ежесекундной записи во FLASH микроконтроллера. Если писать потребуется в среднем раз в минуту, то можно, не парясь, сохранять журнал во FLASH. Только сделать запись не как у меня (у меня полностью стирается вся свободная область, когда кончается место, и запись начинается с начала), а стирать поблочно. Правда, процесс поиска последней записи несколько усложнится, но это не страшно - все равно он запускается лишь в самом начале, при включении. Только если есть возможность перебоев питания, лучше ионистор воткнуть на всякий пожарный…

Писать потребуется только при пике когда пик критичен и отключается со временем.При обрыве фазы 1.5 с при перегрузе можно сделать2.Чтоб была разница.Flash не пробовал.Можно ли зафиксировать пик в определённый промежуток времени если пик прдолжается записать в EEPROM или Flash.И как это правильно выполнить?.Вот мой вопрос.

Добавлено after 2 minutes 25 seconds:
У меня вопрос .Что такое КАРМА.И Что такое РЕЙТИНГ?

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

Пт янв 14, 2022 12:43:58

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

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

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

Пт янв 14, 2022 12:51:57

Можно применить FRAM. У той ресурс бешеный и скорость неплохая. Например, с FM24CL64B работал. Приятная штучка. Совместима с I2C EEPROM-мами.

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

Пт янв 14, 2022 15:37:28

Можно применить FRAM. У той ресурс бешеный и скорость неплохая. Например, с FM24CL64B работал. Приятная штучка. Совместима с I2C EEPROM-мами.

А почему FRAM.И с чем её едят.На чём она работает?

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

Пт янв 14, 2022 15:56:26

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