-
- У меня реализовано так : На внешней EEPROM-ке - две области данных. После включения целостность проверяется по CRC, там, где все гуд - копируется туда, где не гуд. Для мизерных объемов данных - нет проблем. - tesla(29.05.2013 21:22)
- А какова цена ошибки? Ну если например БП вместо 5В выдаст 30В ? - =AlexD=(29.05.2013 13:29)
- Считывать уставки нужно непосредственно с органов управления, а не из EEPROM. Поэтому относительные энкодеры в БП не используются. - rezident(29.05.2013 13:47)
- Не смешите мои тапочки по поводу "относительные энкодеры в БП не используются". - Лeoнид Ивaнoвич(29.05.2013 14:15)
- ??? Все блоки питания Hewlett Packard у нас на работе используют именно относительные энкодеры. Но при старте Vout=0. И есть ф-ции Save/Recall, и только по команде пользователя. - SciFi(29.05.2013 14:07)
- Ну значит просто я с такими не встречался. - rezident(29.05.2013 14:36)
- А с какими встречались? Только с переменными резисторами? - Лeoнид Ивaнoвич(29.05.2013 14:52)
- БП с относительными энкодерами как правило включают выход не после подачи питания, а только после нажатия кнопки "on", когда индикаторы уже показывают уставки. - =AlexD=(29.05.2013 14:56)
- Это я знаю. Хотя есть и исключения. - Лeoнид Ивaнoвич(29.05.2013 15:02)
- БП с относительными энкодерами как правило включают выход не после подачи питания, а только после нажатия кнопки "on", когда индикаторы уже показывают уставки. - =AlexD=(29.05.2013 14:56)
- А с какими встречались? Только с переменными резисторами? - Лeoнид Ивaнoвич(29.05.2013 14:52)
- А при кручении быстро-медленно энкодера шаг изменения напряжения переменный или постоянный? Если переменный, то "несчастные случаи на производстве" были? - amusin(29.05.2013 14:27)
- Шаг переменный, но не очень большое ускорение, то есть никак за один даже очень быстрый оборот не установить сразу максимум. - alex68(29.05.2013 15:39)
- Обычно шаг постоянный и есть выбор редактируемого разряда. Я тоже отказался от переменного шага в пользу кнопки FINE. - Лeoнид Ивaнoвич(29.05.2013 14:53)
- Ну значит просто я с такими не встречался. - rezident(29.05.2013 14:36)
- Пиздец контроллеру курятника. Но я такой БП не купил бы. - amusin(29.05.2013 13:41)
- А какой купили бы? Все они хранят установки в EEPROM. - Лeoнид Ивaнoвич(29.05.2013 14:16)
- Самый сложный был PSP-603. amusin(131 знак., 29.05.2013 14:23)
- Всё верно, так и будет - выход первоначально отключен. Хотя есть источники, в которых имеется опция запоминания последнего состояния OUT ON/OFF. Видно, они свой EEPROM надежным считают. - Лeoнид Ивaнoвич(29.05.2013 14:56)
- У U8002 есть любопытная опция при заказе - чтобы при включении питания сразу включался выход :) Но состояние выхода при выключении питания не запоминается. - alex68(29.05.2013 15:41)
- Запоминание есть, например, в серии XDL от Xantrex. - Лeoнид Ивaнoвич(29.05.2013 16:07)
- Это уже опасно. Мало ли что будет при пропадании и последующем появлении сети. - alex68(29.05.2013 16:23)
- Наверное, эту функцию используют где не опасно. - Лeoнид Ивaнoвич(29.05.2013 16:29)
- Это уже опасно. Мало ли что будет при пропадании и последующем появлении сети. - alex68(29.05.2013 16:23)
- Запоминание есть, например, в серии XDL от Xantrex. - Лeoнид Ивaнoвич(29.05.2013 16:07)
- У U8002 есть любопытная опция при заказе - чтобы при включении питания сразу включался выход :) Но состояние выхода при выключении питания не запоминается. - alex68(29.05.2013 15:41)
- Всё верно, так и будет - выход первоначально отключен. Хотя есть источники, в которых имеется опция запоминания последнего состояния OUT ON/OFF. Видно, они свой EEPROM надежным считают. - Лeoнид Ивaнoвич(29.05.2013 14:56)
- Самый сложный был PSP-603. amusin(131 знак., 29.05.2013 14:23)
- А какой купили бы? Все они хранят установки в EEPROM. - Лeoнид Ивaнoвич(29.05.2013 14:16)
- Считывать уставки нужно непосредственно с органов управления, а не из EEPROM. Поэтому относительные энкодеры в БП не используются. - rezident(29.05.2013 13:47)
- AN2594 koyodza(2858 знак., 29.05.2013 13:25, ссылка)
- Спасибо. Без резервирования двух страниц никак не сделать надежную эмуляцию EEPROM? - Лeoнид Ивaнoвич(29.05.2013 14:34)
- Как же красиво. Будьте добры union UN32 оригинальный покажите для полного щастья. Там с индейцами? - Юра(29.05.2013 14:09, )
- кольцевой буфер. 10000*1024/56 = 182000. Если учесть что 10000 - минимум (реально в несколько раз больше), то можно рассчитывать на 10⁶ циклов. Размер структуры должен быть кратен 4 байтам. Поиск последней записи - по правильной к.с. При zeleny(58 знак., 29.05.2013 13:10 - 13:13)
- Т.е. при необходимости записи одного значения мне нужно будет переписывать весь массив? - Лeoнид Ивaнoвич(29.05.2013 14:18)
- нет, только одну запись (56 байт) - zeleny(29.05.2013 14:20)
- Т.е. огранизовать 56 кольцевых буферов? - Лeoнид Ивaнoвич(29.05.2013 14:30)
- нет конечно - zeleny(29.05.2013 14:43)
- Тогда не понимаю. Разве что хранить вместе с переменной ее виртуальный адрес, как ST советует. Но это фактически 56 буферов. - Лeoнид Ивaнoвич(29.05.2013 15:04)
- и я не понимаю - уточните что нужно. Предполагалось что весь конфиг хранится в одной структуре. Каждая следующая запись происходит на чистое место, полного стирания страницы не нужно. - zeleny(29.05.2013 15:10)
- Мы не поняли друг друга. Под "весь массив" я подразумевал эти 56 байт. Т.е. когда нужно поменять 1 байт, вынужден переписывать все 56. - Лeoнид Ивaнoвич(29.05.2013 15:26)
- Для записи наапряжения всё равно нужно уже 4. Какой байт? А почему не бит? - fk0(29.05.2013 15:47)
- Не бит, потому что Си для bool использует байт. - Лeoнид Ивaнoвич(29.05.2013 16:08)
- да, это так - zeleny(29.05.2013 15:27)
- Для записи наапряжения всё равно нужно уже 4. Какой байт? А почему не бит? - fk0(29.05.2013 15:47)
- Мы не поняли друг друга. Под "весь массив" я подразумевал эти 56 байт. Т.е. когда нужно поменять 1 байт, вынужден переписывать все 56. - Лeoнид Ивaнoвич(29.05.2013 15:26)
- зачем? пишете в последовательные ячейки новые значения, вот и всё - Shura(29.05.2013 15:06)
- и я не понимаю - уточните что нужно. Предполагалось что весь конфиг хранится в одной структуре. Каждая следующая запись происходит на чистое место, полного стирания страницы не нужно. - zeleny(29.05.2013 15:10)
- Тогда не понимаю. Разве что хранить вместе с переменной ее виртуальный адрес, как ST советует. Но это фактически 56 буферов. - Лeoнид Ивaнoвич(29.05.2013 15:04)
- нет конечно - zeleny(29.05.2013 14:43)
- Т.е. огранизовать 56 кольцевых буферов? - Лeoнид Ивaнoвич(29.05.2013 14:30)
- зачем? запись-то можно проводить и без стирания. А стирание делается только по заполнению всей страницы - Shura(29.05.2013 14:19)
- нет, только одну запись (56 байт) - zeleny(29.05.2013 14:20)
- Т.е. при необходимости записи одного значения мне нужно будет переписывать весь массив? - Лeoнид Ивaнoвич(29.05.2013 14:18)
- Может, энергонезависимые цифровые потенциометры взять? И еще - есть трехногая EEPROM от Microchip --> - MBedder(29.05.2013 13:06 - 13:09, ссылка)
- Тут речь не идет о всякой экзотике. Если ставить внешнюю микросхему, то самый простой и дешевый вариант - I2C EEPROM. Хочу выяснить, насколько это глупо. - Лeoнид Ивaнoвич(29.05.2013 14:13)
- Это глупо, потому, что без слоя софта поверх EEPROM в такой БП страшно включать нагрузку: пропало питание в сети, у него от помехи прошёл импульс по енкодеру, он изменил на 0.000001в напряжение и пошёл записывать в EEPROM, запись оборвалась (т.к. fk0(190 знак., 29.05.2013 14:21)
- Это общая проблема, что с внешней EEPROM, что с внутренней эмуляцией. Поэтому к вопросу отношения не имеет. - Лeoнид Ивaнoвич(29.05.2013 14:29)
- Я к тому, что коль скоро БП линейный, то все так или иначе управляется напряжениями - тут как раз DigiPots рулят. А UNI/O EEPROM в SOT23-3 занимает всего один вывод МК, и стОит 15 центов - MBedder(29.05.2013 14:21)
- Это глупо, потому, что без слоя софта поверх EEPROM в такой БП страшно включать нагрузку: пропало питание в сети, у него от помехи прошёл импульс по енкодеру, он изменил на 0.000001в напряжение и пошёл записывать в EEPROM, запись оборвалась (т.к. fk0(190 знак., 29.05.2013 14:21)
- Тут речь не идет о всякой экзотике. Если ставить внешнюю микросхему, то самый простой и дешевый вариант - I2C EEPROM. Хочу выяснить, насколько это глупо. - Лeoнид Ивaнoвич(29.05.2013 14:13)
- а что STM32F100С4 сам себе кусок памяти кода переписать не может? - quarry(29.05.2013 13:04)
- Может. Но нет побайтной записи со стиранием. - Лeoнид Ивaнoвич(29.05.2013 14:10)
- эт визде так. настройки в структуру, структуру в страницу кода в двух экземплярах и переписывать целиком. копию в ОЗУ. сохранять только по выключению питания. защитить контрольной суммой. при повреждении восстанавливать из копии. при невозможности quarry(26 знак., 29.05.2013 15:51)
- Чтобы сохранять только по выключению питания, должен быть предусмотрен сигнал пропадания сети. А у меня, к сожалению, такого нет. Хотя, на плате процессора из 5 В делаю 3.3 В. Можно попытаться мониторить 5 В. - Лeoнид Ивaнoвич(29.05.2013 16:10)
- а 220 через китайскую релюху не? а через оптопару? - quarry(29.05.2013 16:41 - 17:05)
- Хотелось бы сделать изменения только внутри платы. - Лeoнид Ивaнoвич(29.05.2013 17:07)
- При наличии конденсатора возможна эмуляция EEPROM в пределах одной страницы flash, кстати. Страница пишется от начала до конца всё новыми значениями. Как вся записалась -- стирается и заново. При включении последняя запись ищется с конца страницы fk0(59 знак., 29.05.2013 17:18)
- Да, это я понимаю. И надежности такой вполне достаточно. Но нет сигнала пропадания сети, его сложно довести до этой платы. - Лeoнид Ивaнoвич(29.05.2013 18:13)
- Конденсатор можно поставить и на этой плате. Но сейчас начнутся "слишком много если" о которых я упоминал. Всё опять приходит к тому, что проще ставить большой флеш и писать много кода. - fk0(29.05.2013 18:30)
- На этой плате только стабилизированное напряжение. А конденсатор нужно ставить до стабилизатора. - Лeoнид Ивaнoвич(29.05.2013 19:01)
- Придётся поставить ещё один buck-boost стабилизатор... - fk0(29.05.2013 20:21)
- поставить сетевой выключатель с двумя группами, одна коммутирует 220, вторая сигнал выключения. - quarry(29.05.2013 20:14)
- садись, двойка - сеть может пропасть помимо выключателя - Shura(29.05.2013 20:16)
- цэж редко, ну запустится с настройками по умолчанию. деловта. - quarry(29.05.2013 20:22)
- садись, двойка - сеть может пропасть помимо выключателя - Shura(29.05.2013 20:16)
- На этой плате только стабилизированное напряжение. А конденсатор нужно ставить до стабилизатора. - Лeoнид Ивaнoвич(29.05.2013 19:01)
- Конденсатор можно поставить и на этой плате. Но сейчас начнутся "слишком много если" о которых я упоминал. Всё опять приходит к тому, что проще ставить большой флеш и писать много кода. - fk0(29.05.2013 18:30)
- Да, это я понимаю. И надежности такой вполне достаточно. Но нет сигнала пропадания сети, его сложно довести до этой платы. - Лeoнид Ивaнoвич(29.05.2013 18:13)
- При наличии конденсатора возможна эмуляция EEPROM в пределах одной страницы flash, кстати. Страница пишется от начала до конца всё новыми значениями. Как вся записалась -- стирается и заново. При включении последняя запись ищется с конца страницы fk0(59 знак., 29.05.2013 17:18)
- Хотелось бы сделать изменения только внутри платы. - Лeoнид Ивaнoвич(29.05.2013 17:07)
- а 220 через китайскую релюху не? а через оптопару? - quarry(29.05.2013 16:41 - 17:05)
- Чтобы сохранять только по выключению питания, должен быть предусмотрен сигнал пропадания сети. А у меня, к сожалению, такого нет. Хотя, на плате процессора из 5 В делаю 3.3 В. Можно попытаться мониторить 5 В. - Лeoнид Ивaнoвич(29.05.2013 16:10)
- эт визде так. настройки в структуру, структуру в страницу кода в двух экземплярах и переписывать целиком. копию в ОЗУ. сохранять только по выключению питания. защитить контрольной суммой. при повреждении восстанавливать из копии. при невозможности quarry(26 знак., 29.05.2013 15:51)
- Может. Но нет побайтной записи со стиранием. - Лeoнид Ивaнoвич(29.05.2013 14:10)
- Нормальная эмуляция EEPROM - это ещё и собственно код, который тоже место занимает, и ОЗУ. Так что если совсем жаба душит, то таки да, внешняя память. - SciFi(29.05.2013 12:54 - 13:04)
- Кстати, поправочка: правильная эмуляция EEPROM требует как минимум 2 страницы, т.е. 2 килобайта. - SciFi(29.05.2013 13:19)
- +1 - Vladimir Ljaschko(29.05.2013 13:17)
- Таки да, +1. Если не хочется заниматься переразводкой и изготовлением новой платы (что тоже "жаба"), то можно поменять на STM32L151Cxxx. Там EEPROM есть. В общем, смотря какая жаба перевесит ;) - Dir(29.05.2013 13:03, ссылка)
- Плата еще не сделана. Переразвести фрагмент легче, чем найти другой процессор. Впрочем, уже переразвел (добавил U10). Лeoнид Ивaнoвич(29.05.2013 14:06)
- В STM32L151/L152, кстати, есть и USB. Что может смягчить жабу, но потребуется переразводка - Dir(29.05.2013 13:52)
- USB изолировать проще после моста. - Лeoнид Ивaнoвич(29.05.2013 14:07)
- усуньте часы на дешовом аналоге DS1307 c ОЗУ, будет вам щастье и БП будет время показывать - quarry(29.05.2013 13:02)
- Зачем микросхема часов? Можно просто добавить батарейку. Но не нужно. - Лeoнид Ивaнoвич(29.05.2013 14:10)
- Тогда уж FRAM в SO8. С ней проще да и быстрее общаться. - Хитрый Китаец(29.05.2013 13:01)
- Используем FRAM, причем там где важна надежность, данные пишутся в две физически разным микросхемы, стоящие в разным местах прибора и смонтированные перпендикулярно друг другу. - alex68(29.05.2013 15:44)
- В данном случае это слишком. Решения должны быть адекватны задаче. - Лeoнид Ивaнoвич(29.05.2013 16:11)
- Хватит и EEPROM, FRAM - более редкий зверь. - Лeoнид Ивaнoвич(29.05.2013 14:08)
- Запись в него требует меньше времени и энергии, более устойчив к залетным протонам и фотонам, слегка дороже, бесплатные образцы можно выклянчить, при желании. - Хитрый Китаец(29.05.2013 17:52)
- Нет. Энергии хватает и для EEPROM. Зачем FRAM? - Лeoнид Ивaнoвич(29.05.2013 18:14)
- Если незачем, значит, незачем. Количество решений Вашей задачи ограничено. Вы сами можете оценить затраты (сил,денег,времени) на каждое из них. Место на плате под eeprom можно заложить, но паять её совсем не обязательно. - Хитрый Китаец(29.05.2013 18:41)
- Нет. Энергии хватает и для EEPROM. Зачем FRAM? - Лeoнид Ивaнoвич(29.05.2013 18:14)
- Запись в него требует меньше времени и энергии, более устойчив к залетным протонам и фотонам, слегка дороже, бесплатные образцы можно выклянчить, при желании. - Хитрый Китаец(29.05.2013 17:52)
- Используем FRAM, причем там где важна надежность, данные пишутся в две физически разным микросхемы, стоящие в разным местах прибора и смонтированные перпендикулярно друг другу. - alex68(29.05.2013 15:44)
- Алгоритм поиска актуальных значений в массиве может быть прост, как грабли. Ищете последнюю ячейку со значением, не равным FFFFFFFF и валидным CRC. Работает, проверено :-) Единственный минус - значение FFFFFFFF использовать нельзя - Shura(29.05.2013 12:56)
- поставить батарейку и писать в backup - AVF(29.05.2013 12:55)
- Внешняя EEPROM занимает на плате меньше места, чем батарейка, плюс не требует замены. - Лeoнид Ивaнoвич(29.05.2013 12:57)
- Поставить мелкий li-ion аккум -- есть такие для часов. Данные хранить внутри RAM самого контроллера, в той его части, что для RTC (там байт 60 где-то есть). - fk0(29.05.2013 14:06)
- вопрос был обойтись без еепром, а не про место. а вообще в эмуляторе меняются адреса, таким образом нет необходимости каждый раз стирать страницу - AVF(29.05.2013 13:02)
- Внешняя EEPROM занимает на плате меньше места, чем батарейка, плюс не требует замены. - Лeoнид Ивaнoвич(29.05.2013 12:57)