Искажается EEPROM после выключения питания Ардуино

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Nikita.Dorovskikh
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Чт ноя 26, 2015 18:33:42
Откуда: Екатеринбург

Искажается EEPROM после выключения питания Ардуино

Сообщение Nikita.Dorovskikh »

Доброго времени суток. Потихоньку осваиваю Ардуино. Есть много толковых статей и видео по основам, но вот по поводу EEPROM Гугл выдает одинаковые примеры использования энергонезависимой памяти. Все очень сухо и не совсем понятно.
Мне необходимо записать в EEPROM номер телефона из переменной String. Делаю это так: EEPROM.put(0, phone);
Потом другим скетчем считываю ранее записанные данные так: EEPROM.get(0, phone); Все отображается правильно, но если отключить питание Ардуино Уно и снова подключить к компьютеру, то при считывании получается какая-то абракадабра. Почему так происходит и что можно с этим сделать?
Заранее всем спасибо за ответы :)
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Аlex »

Nikita.Dorovskikh писал(а):другим скетчем считываю ранее записанные данные

И для чего такие манипуляции ? Обычно данные хранят в пределах одной и той же программы.

PS: А если не заливать другой скетч, данные нормально читаются ?
Nikita.Dorovskikh
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Чт ноя 26, 2015 18:33:42
Откуда: Екатеринбург

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Nikita.Dorovskikh »

Nikita.Dorovskikh писал(а):другим скетчем считываю ранее записанные данные

И для чего такие манипуляции ? Обычно данные хранят в пределах одной и той же программы.

PS: А если не заливать другой скетч, данные нормально читаются ?


В пределах одной программы и заметил искажения. Просто сейчас для тестов взял ардуино нано и методом научного тыка шью ее двумя разными маленькими скетчами. Один для записи, другой для чтения. Так и так кракозябры получаются. Как-то не правильно я строку записываю видимо :?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Аlex »

Nikita.Dorovskikh писал(а):В пределах одной программы и заметил искажения.
Ну так и ищите проблему тоже в пределах одной программы.
Возможно, при прошивке МК, EEPROM затирается.
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Ivanoff-iv »

проверь так: 1) запиши программу записи, запиши значение в еепром
2) запиши программу чтения - считай значение еепром
3) выключи-включи питание - считай кашу из еепром :)

если работает именно так и если в программе чтения впринципе нет кода записи в еепром, то на что грешить кроме сбойного еепрома я не знаю (если такой код есть - возможно в момент голодных судорог какимто образом на него попадает управление)
Последний раз редактировалось Ivanoff-iv Вт апр 03, 2018 13:27:26, всего редактировалось 1 раз.
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение BOB51 »

А ОДНОЙ программой сначала из терминального окна в макет, а затем по команде (программно или аппаратно) назад в терминалку послать?
8)
Велика вероятность того, что при записи прожки в ардуинку ВСЕ предыдущие данные ЗАТИРАЮТСЯ.
:roll:
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Starichok51 »

Аlex писал(а):Возможно, при прошивке МК, EEPROM затирается.
точно стирается. нужно соответствующий фьюз поставить, чтобы при стирании флеши EEPROM не стирался.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение BOB51 »

Для ардуино IDE при заливке скотча положение о произвольном изменении фузов НЕПРИМЕНИМО.
Там работает загрузка через бутлоадер с установленными "по умолчанию для средств IDE" фузами.
Частенько "продвинутые"пользователи пользуются и непосредственной заливкой через программатор - но то и компиляция со "спецприемами" и прочие для начинающего с ардуинки "невонятными терминами/приемами".
8)
Feruz
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс май 03, 2015 15:05:58

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Feruz »

Содержимое отдельных ячеек (обычно первых) может портится если функция BOD отключена. Включите ее во фьюзах.
Вложения
eeprom.JPG
(116.01 КБ) 626 скачиваний
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение BOB51 »

Опять мимо - говорено же ЭТО АРДУИНО! (А не "чистый" МК под Си или под ассемблером).
А там в принципе для пользователя состав фузов НЕДОСТУПЕН - иначе невозможно вписаться в требования базовых функций "операционной системы", предоставляемых компилятором.
Более глубокое использование возможностей среды отнюдь не для начинающих.
8)
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение arkhnchul »

А там в принципе для пользователя состав фузов НЕДОСТУПЕН

там прям в комплекте положен avrdude, которым, собственно, ардуинская среда и льет прошивки. Имея вторую ардуину, из нее можно соорудить программатор (скетч для него тож в комплекте со средой) и ковырять фьюзы как угодно.
Morroc
Друг Кота
Сообщения: 19494
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Morroc »

Можно то можно, но если китайцы не напутали с фьюзами (или кто там ардуину делал) - такого быть не должно, в том числе и с первыми ячейками, разве что писать в момент отключения. Программа точно не пишет что то в eeprom постоянно ?
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение BOB51 »

...
там прям в комплекте положен avrdude, которым, собственно, ардуинская среда и льет прошивки. Имея вторую ардуину, из нее можно соорудить программатор (скетч для него тож в комплекте со средой) и ковырять фьюзы как угодно.

Это уже "вторичная прошивка".
А основной код прошивает сама IDE - разговор именно об этом загрузчике.
Т.е. если в скетче выставлено заполнение ЕЕРПРОМ (прожка с изначально размещенными в ЕЕПРОМ константами) то при загрузке область ЕЕПРОМ должна быть перезаписана обязательно.
А вот заложили ли "стирание ЕЕПРОМ по умочанию" - Х/З - проверить бы не помешало...
:roll:
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Ivanoff-iv »

читайте внимательно
Потом другим скетчем считываю ранее записанные данные так: EEPROM.get(0, phone); Все отображается правильно, но если отключить питание Ардуино Уно и снова подключить к компьютеру, то при считывании получается какая-то абракадабра.
т.е. во время порчи информации записи не происходит.
я спрашивал о составе 2го скетча (о наличии в нём записывающего кода, пусть даже не активного), но ТС молчит...
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение YS »

1. Если не стоит fuse-бит EESAVE, при стирании кристалла EEPROM очищается.

2. Я встречал ситуацию, когда при медленно спадающем питании содержимое EEPROM повреждалось. Лечится выставлением fuse-битов BODLEVEL для уровня сброса 2.7 В или выше.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Искажается EEPROM после выключения питания Ардуино

Сообщение Ivanoff-iv »

1) повреждение происходит не при перепрошивке.
2) я тоже встречал, но там в самой программе был код, пишущий в еепром, а это немаловажно. у ТС (как он пишет) такого кода нет... (еепромка была прописана другим скетчем).

Добавлено after 1 minute 51 second:
но, ТС давно не появлялся, думаю, он сам нашел свой косяк... только признаться стыдно :)
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Ответить

Вернуться в «Разные вопросы по МК»