-
- почему бы просто не писать по кругу без всяких счетчиков ? по достижению конца EEPROM делать полное стирание и возвращаться к началу. так и делаю на AVR/STM32, проблем нет... - zeleny(26.07.2012 16:33)
- Нужен
счётчиксерийный номер записи. Иначе как знать, какая последняя? "Полное стирание" не выход по очевидной причине (в любой момент времени в EEPROM должна быть хоть одна корректная запись). Стирать имеет смысл только ту страницу, в fk0(337 знак., 26.07.2012 23:28)- по CRC. Для надежности перед записью контролируется напряжение перед стабилизатором. Ессно нужен конденсатор достаточной емкости чтобы не пропало мгновенно (обычно хватает 2200..4700мкФ). Силовые нагрузки ессно запитываются не от питания zeleny(13 знак., 26.07.2012 23:42)
- Охренеть какие большие емкости по питанию МК! Вы действительно такие ставите в своих устройствах или только другим советуете? - rezident(27.07.2012 00:11)
- С экономической точки зрения тантал на такую ёмкость зашкаливает в бюджете изделия. А не тантал не лезет в габариты. А ещё утечки между прочим, порядочно, чтоб забыть о батарейном питании, может быть. И всё непонятно ради чего. - fk0(27.07.2012 02:25)
- Для завершения записи в байт или блок (5...10мс) EEPROM за глаза и 47 мкФ хватит. Dir(625 знак., 27.07.2012 02:51)
- Космическая ересь. От того же LDO обычно питается не только EEPROM, но и микроконтроллер(ы) и многое другое, и предсказать потребляемый ток довольно трудно часто, он вообще от хода выполнения программы зависит, например. Которая не ждёт десятки мс fk0(1235 знак., 27.07.2012 10:55)
- >>Такие ёмкости (4700мкФ) в приборах с GSM не встретишь Apтём(24 знак., 27.07.2012 16:48)
- Бла-бла-бла... море букв за которыми мысль теряется. А идея в том, что отключаешь при снижении до опасной точки все, что много потребляет, и наслаждаешься безопасным завершением записи в EEPROM даже с 47мкФ ;) Dir(163 знак., 27.07.2012 16:33)
- и это все чтобы избавиться от программиста достаточной квалификации, который все сделает без конденсаторов и лучше? - fk0(27.07.2012 16:51)
- большой процессор - маленькая программа. Маленький процессор - большая программа. Очень большой процессор может обойтись вообще без программы. Значит очень большая программа может обойтись без процессора - koyodza(27.07.2012 19:49)
- Программист справится вообще без конденсаторов? Оригинально :) Dir(233 знак., 27.07.2012 16:57)
- и это все чтобы избавиться от программиста достаточной квалификации, который все сделает без конденсаторов и лучше? - fk0(27.07.2012 16:51)
- Космическая ересь. От того же LDO обычно питается не только EEPROM, но и микроконтроллер(ы) и многое другое, и предсказать потребляемый ток довольно трудно часто, он вообще от хода выполнения программы зависит, например. Которая не ждёт десятки мс fk0(1235 знак., 27.07.2012 10:55)
- Для завершения записи в байт или блок (5...10мс) EEPROM за глаза и 47 мкФ хватит. Dir(625 знак., 27.07.2012 02:51)
- перед стабилизатором, не попитанию МК - zeleny(27.07.2012 00:14)
- Если стабилизатор линейный, то это без особой разницы. Или вы на 5Вый LDO не меньше 12В подаете? :) - rezident(27.07.2012 00:18)
- как минимум 8..9В, обычно >11. Стаб.LP2951. Потребление контроллера несколько мА. С 34063 ненамного меньше. Ни с линейником, ни с импульсником проблем ни разу не было чтобы терялись настройки. Питание контролировалось втроенным компаратором АВР - zeleny(27.07.2012 00:25)
- Ну в таком случае - согласен, перед LDO не менее 1000мкФ необходимо. Хотя у такой схемы питания довольно небольшой КПД выходит. - rezident(27.07.2012 00:39)
- ну питание не батарейное - несколько мА туда-сюда на КПД не влияют... - zeleny(27.07.2012 00:49)
- Ну в таком случае - согласен, перед LDO не менее 1000мкФ необходимо. Хотя у такой схемы питания довольно небольшой КПД выходит. - rezident(27.07.2012 00:39)
- как минимум 8..9В, обычно >11. Стаб.LP2951. Потребление контроллера несколько мА. С 34063 ненамного меньше. Ни с линейником, ни с импульсником проблем ни разу не было чтобы терялись настройки. Питание контролировалось втроенным компаратором АВР - zeleny(27.07.2012 00:25)
- Если стабилизатор линейный, то это без особой разницы. Или вы на 5Вый LDO не меньше 12В подаете? :) - rezident(27.07.2012 00:18)
- Угу. Хоть я и не силен в схемотехнике, но что-то этот товарищ загнул насчет тыщ мкф. - mazur(27.07.2012 00:13)
- С экономической точки зрения тантал на такую ёмкость зашкаливает в бюджете изделия. А не тантал не лезет в габариты. А ещё утечки между прочим, порядочно, чтоб забыть о батарейном питании, может быть. И всё непонятно ради чего. - fk0(27.07.2012 02:25)
- И тут из соседней галактики прилетает залётный фотон и всё портит. Напряжение -- не единственное, что может прервать запись. Статика, радиоизлучение (от метров до нанометров), сбои в ПО... - fk0(27.07.2012 00:08)
- Охренеть какие большие емкости по питанию МК! Вы действительно такие ставите в своих устройствах или только другим советуете? - rezident(27.07.2012 00:11)
- по CRC. Для надежности перед записью контролируется напряжение перед стабилизатором. Ессно нужен конденсатор достаточной емкости чтобы не пропало мгновенно (обычно хватает 2200..4700мкФ). Силовые нагрузки ессно запитываются не от питания zeleny(13 знак., 26.07.2012 23:42)
- А где указатель (простите,Л.И.!) на первую свободную ячейку храните? - Юра(26.07.2012 21:11, )
- в ОЗУ, где же еще ? На старте ищу последнюю запись с правильной к.с. - zeleny(26.07.2012 21:13)
- И как долго на памяти 2М может происходить подсчет КС и поиск? Быстрее загрузки Виндовз? - Юра(26.07.2012 21:16, )
- у какого AVR/STM32 2M памяти ? - zeleny(26.07.2012 21:22)
- И как долго на памяти 2М может происходить подсчет КС и поиск? Быстрее загрузки Виндовз? - Юра(26.07.2012 21:16, )
- в ОЗУ, где же еще ? На старте ищу последнюю запись с правильной к.с. - zeleny(26.07.2012 21:13)
- Нужен
- Кстати да, рекомендую google://jffs - fk0(26.07.2012 00:18)
- А не слишком ли для АВР? - Apтём(26.07.2012 00:46)
- Обычно забывают, что питание, например, может пропасть в любой момент времени. Или ещё чего. В итоге недозапишется, запишется ерунда, сотрётся но не перезапишется (а стирается отнюдь не байтами часто, а цельными страницами -- подробности или в fk0(54 знак., 26.07.2012 00:16)
- +1 - Vit(26.07.2012 00:17)
- При журналировании нельзя ориентироваться на какой-то "нерабочий" код. Либо нужно ввести признак первого включения, который храниться где-то в другом месте, не в EEPROM и при первом включении инициализировать журнал начальной записью. Либо при rezident(225 знак., 25.07.2012 23:12)
- FRAM - это конечно же хорошо, но его использование сразу же повлияет на цену, скорость доступа, размер кода и т.д. А ещё говорят что fram слететь может. Apтём(160 знак., 25.07.2012 23:31)
- Про цену FRAM vs EEPROM могу согласиться, насчет всего остального - ерунда какая-то. - rezident(26.07.2012 00:06)
- Цена и необходимость разводить ещё одну микросхему - основные минусы, остальное в общем-то мелочи. - Apтём(26.07.2012 00:17)
- Ах да! Я за последние годы уже и забыл, что default MCU это AVR. - rezident(26.07.2012 00:54)
- есть в одном корпусе - MSP430FRxxxx. а когда-то анонсировались C51 от Ramtron (запросил образцы у них тогда, но оказалось, что нужен их же прошиватор за 100+ бакинских там и под проект - обломался каляки-маляки придумывать) - Vit(26.07.2012 00:26, ссылка)
- Цена и необходимость разводить ещё одну микросхему - основные минусы, остальное в общем-то мелочи. - Apтём(26.07.2012 00:17)
- Нельзя признак для начала процедуры инициализации хранить в той же EEPROM которую нужно инициализировать при отсутствии оного признака. Это же вроде вполне очевидно. И особо очевидно в случае, если бы речь шла про Flash. В противном случае нужно rezident(49 знак., 26.07.2012 00:04)
- Мне - не очевидно. EEPROM приходит с завода во вполне определённом состоянии - все байты равны 255. Почему не считать, что если байт с адресом N равен 255, то инициализации не было? При работе программе естественно он не должен приравниваться к Apтём(5 знак., 26.07.2012 00:31)
- EEPROM c завода точно не содержит сигнатуры "инициализировано 21.01.2012"... - Гудвин(26.07.2012 01:00)
- А некоторые предполагают, что если они сделают счетчик на переменной типа unsigned char, то он у них всегда будет считать только до 255 :))) - rezident(26.07.2012 00:48)
- А что - логично: досчитал и заклинило. :) - Apтём(26.07.2012 00:50)
- Вы тоже из их числа? O_o - rezident(26.07.2012 00:52)
- Нет - такой варинт мне до сих пор в голову не приходил. - Apтём(26.07.2012 00:58)
- Наверное даже и про разрядность char в курсе? - rezident(26.07.2012 01:20)
- "Мужик, ты не умничай! Пальцем покажи..." Apтём(30 знак., 26.07.2012 01:25)
- Гм. 16-и битный char какой диапазон чисел перекрывает по-вашему? - rezident(26.07.2012 01:35)
- 16 битный? Либо 0..65536, либо -32768..32767. А где такой есть? Я вспомнил что такое бывает, но где? Apтём(124 знак., 26.07.2012 01:48)
- В Code Composer Studio и TMS320 от TI. На электрониксе эта тема неоднократно обсуждалась. - rezident(26.07.2012 01:57)
- 16 битный? Либо 0..65536, либо -32768..32767. А где такой есть? Я вспомнил что такое бывает, но где? Apтём(124 знак., 26.07.2012 01:48)
- Гм. 16-и битный char какой диапазон чисел перекрывает по-вашему? - rezident(26.07.2012 01:35)
- "Мужик, ты не умничай! Пальцем покажи..." Apтём(30 знак., 26.07.2012 01:25)
- Наверное даже и про разрядность char в курсе? - rezident(26.07.2012 01:20)
- Нет - такой варинт мне до сих пор в голову не приходил. - Apтём(26.07.2012 00:58)
- Вы тоже из их числа? O_o - rezident(26.07.2012 00:52)
- А что - логично: досчитал и заклинило. :) - Apтём(26.07.2012 00:50)
- Мне - не очевидно. EEPROM приходит с завода во вполне определённом состоянии - все байты равны 255. Почему не считать, что если байт с адресом N равен 255, то инициализации не было? При работе программе естественно он не должен приравниваться к Apтём(5 знак., 26.07.2012 00:31)
- куда слететь? - Vit(25.07.2012 23:46)
- Вникуда: данные потерять. - Apтём(25.07.2012 23:54)
- а что для этого нужно
наговнокодитьсделать? - Vit(25.07.2012 23:59)- Не в кодировании дело: при просадках питания иногда возможен сбой. У вас такого не было? Или это всё давно пофиксено во fram? - Apтём(26.07.2012 00:12)
- не было. что для этого нужно
наговносхемитьсделать? небось игры с большими конденсаторами, детекторами просадки входного напряжения, прерываниями для сохранения чего-нить ну очень важного, ну и, конечно же, супервизорами, ловящими шпильки Vit(59 знак., 26.07.2012 00:16)- Особо каких то игр не было: не помню была ли подтяжка по линиях CS, CLK spi, может быть причина сбоев была в отсутствии оной. Но пока не поставили внешний wdt-супервизор питания данные записанные в fram терялись. После установки - перестали. Тема Apтём(55 знак., 26.07.2012 00:39)
- Использую FRAM от Ramtron лет 10. Технических нареканий 2 - снижение ресурса у более новых типов МС, ну и баг с засыпанием у них же. Ещё как-то ReAl рассказывал о сдыханиях некоторых экхемпляров под капотом. Дайте линк чтоле, где ж о чудесах Vit(17 знак., 26.07.2012 00:47)
- Вот линк Apтём(99 знак., 26.07.2012 01:08)
- без правильного выбора супервизора по питанию можно и не такого намутить - Vit(26.07.2012 01:28)
- А как выбирать правильный? Использовать BOD MCU? Как правильно делать? - Apтём(27.07.2012 02:43)
- Правильно не допускать функционирования мелкосхем вне рекомендованных диапазонов питания. Т.е. если для памяти должно быть минимум 2.7В, ставите MAX809 (от ONSemi жрут аж 0.5 мкА и стоють аж 20 центов) на > 2.7B (например, если не гонитесь за Vit(284 знак., 27.07.2012 11:49)
- >>ставите MAX809 Apтём(202 знак., 27.07.2012 16:22)
- Правильно не допускать функционирования мелкосхем вне рекомендованных диапазонов питания. Т.е. если для памяти должно быть минимум 2.7В, ставите MAX809 (от ONSemi жрут аж 0.5 мкА и стоють аж 20 центов) на > 2.7B (например, если не гонитесь за Vit(284 знак., 27.07.2012 11:49)
- А как выбирать правильный? Использовать BOD MCU? Как правильно делать? - Apтём(27.07.2012 02:43)
- А что за засыпания такие? - Apтём(26.07.2012 01:09)
- без правильного выбора супервизора по питанию можно и не такого намутить - Vit(26.07.2012 01:28)
- Вот линк Apтём(99 знак., 26.07.2012 01:08)
- Использую FRAM от Ramtron лет 10. Технических нареканий 2 - снижение ресурса у более новых типов МС, ну и баг с засыпанием у них же. Ещё как-то ReAl рассказывал о сдыханиях некоторых экхемпляров под капотом. Дайте линк чтоле, где ж о чудесах Vit(17 знак., 26.07.2012 00:47)
- Особо каких то игр не было: не помню была ли подтяжка по линиях CS, CLK spi, может быть причина сбоев была в отсутствии оной. Но пока не поставили внешний wdt-супервизор питания данные записанные в fram терялись. После установки - перестали. Тема Apтём(55 знак., 26.07.2012 00:39)
- не было. что для этого нужно
- Не в кодировании дело: при просадках питания иногда возможен сбой. У вас такого не было? Или это всё давно пофиксено во fram? - Apтём(26.07.2012 00:12)
- а что для этого нужно
- Вникуда: данные потерять. - Apтём(25.07.2012 23:54)
- Про цену FRAM vs EEPROM могу согласиться, насчет всего остального - ерунда какая-то. - rezident(26.07.2012 00:06)
- FRAM - это конечно же хорошо, но его использование сразу же повлияет на цену, скорость доступа, размер кода и т.д. А ещё говорят что fram слететь может. Apтём(160 знак., 25.07.2012 23:31)
- А какая цель у этого алгоритма? - Apтём(25.07.2012 22:15 - 22:18)
- Увеличение срока службы EEPROM. - mazur(25.07.2012 22:23)
- Все украдено до нас. - Codavr(25.07.2012 23:14, ссылка)
- Увеличение срока службы EEPROM. - mazur(25.07.2012 22:23)
- почему бы просто не писать по кругу без всяких счетчиков ? по достижению конца EEPROM делать полное стирание и возвращаться к началу. так и делаю на AVR/STM32, проблем нет... - zeleny(26.07.2012 16:33)