num eeprom lul 0001 что за ошибка

О кодах ошибок

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
alexrus89

Ездит на: Ford Focus
С нами с 14.06.09
Всего сообщений: 2

Подскажите в чем проблема! Ошибка Р2008?

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
lelik63tlt

Ездит на: Ford Focus
С нами с 21.09.14
Всего сообщений: 6

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
lelik63tlt

Ездит на: Ford Focus
С нами с 21.09.14
Всего сообщений: 6

что такое ГБЦ и страшно ли ездить в данный момент

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
Авто (модер)

Модератор Ездит на: Nissan 350Z
С нами с 20.05.11
Всего сообщений: 2720

lelik63tlt: что такое ГБЦ и страшно ли ездить в данный момент #

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
lelik63tlt

Ездит на: Ford Focus
С нами с 21.09.14
Всего сообщений: 6

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
Авто (модер)

Модератор Ездит на: Nissan 350Z
С нами с 20.05.11
Всего сообщений: 2720

lelik63tlt: а где он находится

Вы о чём? И укажите какой у вас двигатель.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
lelik63tlt

Ездит на: Ford Focus
С нами с 21.09.14
Всего сообщений: 6

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
Авто (модер)

Модератор Ездит на: Nissan 350Z
С нами с 20.05.11
Всего сообщений: 2720

lelik63tlt: 2литра автомат американец я про датчик #

Да хоть австралопитек. 2литра, это рабочий объём, а никак не модель двигателя.

Если про датчик температуры двигателя, то в вашем случае, если температура двигателя нормальная, а только не работает указатель он может быть и ни при чём.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
maxcmr

Ездит на: Ford Mondeo
С нами с 22.10.14
Всего сообщений: 2

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
fresh0000

С нами с 20.10.14
Всего сообщений: 8

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
ivan35

Ездит на: Ford Focus
С нами с 13.11.14
Всего сообщений: 1

добрый день.Подскажите пожалуйста если выскочила ошибка p0402,что можно сделать?купил сканер OBD2 пробовал скинуть ошибку не получается.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
valentinff2

С нами с 07.01.15
Всего сообщений: 1

ошибка р0628 ffocus2 2011 (Fuel Pump «A» Control Circuit Low) подскажите, что обозначает?

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
vasek-ff-2

Ездит на: Ford Focus
С нами с 20.02.15
Всего сообщений: 4

Доброго времени суток всем присутствующим. Подскажите пожалуйста, купил фф2 2005г. дорестайл, горит чек сделал самодиагностику выдал Rom Level 0605 cледующее NVM TORGET ROM и еще дальше NVM EEPROM LVL 0001/ Может кто то подскажет как самостоятельно устранить ошибку 0605 и что означают дальнейшие обозначения. Пожалуйста подскажите дельный совет. Заранее СПАСИБО.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
vasek-ff-2

Ездит на: Ford Focus
С нами с 20.02.15
Всего сообщений: 4

Доброго времени суток всем присутствующим. Подскажите пожалуйста, купил фф2 2005г. дорестайл, горит чек сделал самодиагностику выдал Rom Level 0605 cледующее NVM TORGET ROM и еще дальше NVM EEPROM LVL 0001/ Может кто то подскажет как самостоятельно устранить ошибку 0605 и что означают дальнейшие обозначения. Пожалуйста подскажите дельный совет. Заранее СПАСИБО.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
murman

Ездит на: Ford Focus
С нами с 31.05.10
Всего сообщений: 30

vasek-ff-2: Доброго времени суток всем присутствующим. Подскажите пожалуйста, купил фф2 2005г. дорестайл, горит чек сделал самодиагностику выдал Rom Level 0605 cледующее NVM TORGET ROM и еще дальше NVM EEPROM LVL 0001/ Может кто то подскажет как самостоятельно устранить ошибку 0605 и что означают дальнейшие обозначения. Пожалуйста подскажите дельный совет. Заранее СПАСИБО. #

0605-внутренняя ошибка в памяти (ROM) блока управления (по простому мозги), нужен сканер, что бы потушить чек. Если выскочит снова-к программисту. Есть еще один вариант: если в поведении машины ничего не изменилось- забить и ездить.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
eka2014

С нами с 06.10.14
Всего сообщений: 2

добрвый вечер подскажите пожалуйста что означают коды ошибок на форд фокусе 3.( P07A3. P2872. P2832),за ранее спасибо

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
iman1041

Ездит на: Ford Focus
С нами с 19.03.15
Всего сообщений: 3

подскажите из за чего появились ошибки Р0302,Р0113,Р0174,Р0443,Р0460 появились после заправки на тнк

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
Авто (модер)

Модератор Ездит на: Nissan 350Z
С нами с 20.05.11
Всего сообщений: 2720

iman1041: подскажите из за чего появились ошибки Р0302,Р0113,Р0174,Р0443,Р0460 появились после заправки на тнк

Редкая удача, и вопрос, и ответ в одной фразе. Уже первая, пропуски в зажигании говорит «где собака порылась».

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
s-frezer

Ездит на: Ford Focus
С нами с 02.08.14
Всего сообщений: 44

to iman1041: Все ошибки связаны с системой подачи топлива. Бедная смесь. Высокий показатель датчика температуры воздуха на впуске. Вывод: плохое качество топлива.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
iman1041

Ездит на: Ford Focus
С нами с 19.03.15
Всего сообщений: 3

спасибо! а теперь что делать двигатель троит свеча во втором цилиндре сырая форсунки менял с первым цилиндром все осталось без изменений свечку поставил новую

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка
Авто (модер)

Модератор Ездит на: Nissan 350Z
С нами с 20.05.11
Всего сообщений: 2720

iman1041: спасибо! а теперь что делать двигатель троит свеча во втором цилиндре сырая форсунки менял с первым цилиндром все осталось без изменений свечку поставил новую

Если всё из-за того, что вас заправили суррогатом вместо бензина, то добиться справедливости в этом вопросе непросто, но можно попробовать. Чек заправки сохранили? Накатайте «телегу» по нужному адресу.

А касательно машины: сменить бензин и свечи и возрадоваться если ничего более серьёзного с движком не произошло. C’est la vie.

Источник

Режим самодиагностики панели приборов

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

Режим самодиагностики панели приборов!

1. Убедитесь что зажигание выключено.
2. Нажмите и удерживайте кнопку сброса дневного пробега.
3. Поверните ключ зажигания в позицию II, продолжая удерживать кнопку сброса.
4. Дождитесь появления стилизованного сообщения «TEST» на дисплее одометра, после этого вы можете отпустить кнопу сброса.
5. Если кнопка сброса нажата больше чем 3 секунды между испытаниями, комбинация приборов выйдет из режима самодиагностики.
6. Для выхода из тестового режима выключите зажигание.

Вы находитесь в тестовом режиме, у вас есть возможность пройти все тесты без запуска мотора и с запуском мотора.

Нажимая кнопку сброса последовательно переходите между тестами

В скобках данные на тестовой машине.

1.>GAUGE SWEEP>Проверка стрелочных указателей.
2.>Черный ЖКИ дисплей >Проверка сегментов ЖКИ. Засвечиваются все сегменты ЖКИ.
3. >LED TEST>Проверка всех сигнальных лампочек на панели приборов.
4. >ROM LEVEL >Версия ROM (?) (0127)
5. >NVM TARGET ROM>(?) (0127)
6.>NVM EEPROM LVL >(?) (0127)
7.>MANUFACTURE START >Начало производства (6А)
8. >MANUFACTURE HOURS>по всей видимости – Время производства? в шестнадцатиричном формате (1А7А)
9. >DTC 0 >Если есть код ошибки, то он высвечивается вместо надписи None. (NONE)
10. >ROAD SPEED>Скорость в мил/час. (0000)
11. >ROAD SPEED>Скорость в км/час. (0000)
12. >SPEEDO GAUGE>Скорость в шестнадцатиричном формате. (003Е) (?)
13. >ENGINE SPEED >Частота вращения двигателя в об/мин (цифровой тахометр). (около 0755)
14.>TACHO GAUGE>Частота вращения двигателя в об/мин в шестнадцатиричном формате
15.>ODO ROLL COUNT >Величина входного сигнала одометраvalid odometer input. 255 invalid odometer input. (0)
16.>FUEL A/D INPUT >Указывает величину входного сигнала количества топлива. Короткое замы-кание. Нормальный интервал. 255 Разрыв цепи. (137)
17. >FUEL GAUGE>Показания указателя уровня топлива в шестнадцатиричном формате. (00E5)
18. >FUEL FLOW>? в шестнадцатиричном формате
19. >FUEL PERCENT >Уровень топлива в процентах. в шестнадцатиричном формате.
20.>ENGINE TEMP >Температура охлаждающей жидкости в град. Цельсия (41 C)
21.>TEMP GAUGE>Температура охлаждающей жидкости в град. Цельсия. в шестнадцатиричном формате.
22. >BATTERY. >Напряжение аккумуляторной батареи. (14.3)
23. >DIST. TO EMPTY >Расстояние до заправки в милях (42 num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка)
24. >RAFE >?. (80 MPG)
25. >PATS KE FLAGS>(1)
26. >A/D INPUT 0>(два разряда в шестнадцатиричном формате)
27. >A/D INPUT 1>(два разряда в шестнадцатиричном формате)
28. >A/D INPUT 2>(два разряда в шестнадцатиричном формате)
29. >A/D INPUT 4>(два разряда в шестнадцатиричном формате)
30. >PORT A>(два разряда в шестнадцатиричном формате)
31. >PORT B>(два разряда в шестнадцатиричном формате)
32. >PORT E>(два разряда в шестнадцатиричном формате)
33. >PORT H>(два разряда в шестнадцатиричном формате)
34. >PORT J>(два разряда в шестнадцатиричном формате)
35. >PORT K>(два разряда в шестнадцатиричном формате)
36. >PORT L>(два разряда в шестнадцатиричном формате)
37. >PORT M>(два разряда в шестнадцатиричном формате)
38. >PORT P>(два разряда в шестнадцатиричном формате)
39.>PORT S>(два разряда в шестнадцатиричном формате)
40.>PORT T>(два разряда в шестнадцатиричном формате)
41.>PORT U>(два разряда в шестнадцатиричном формате)
42.>PORT V>(два разряда в шестнадцатиричном формате)
43.>PORT W>(два разряда в шестнадцатиричном формате)
44.>PERSONALITY 01>(два разряда в шестнадцатиричном формате)
45.>PERSONALITY 02>(два разряда в шестнадцатиричном формате)
46.>PERSONALITY 03>(два разряда в шестнадцатиричном формате)
47.>PERSONALITY 04>(два разряда в шестнадцатиричном формате)

Ошибки контроллера. Пункт 9 диагностики

Как расшифровать четырехзначные ошибки:

0xyz = P0xyz;
1xyz = P1xyz;
2xyz = P2xyz;
3xyz = P3xyz;
4xyz = С0xyz;
5xyz = C1xyz;
6xyz = С2xyz;
7xyz = С3xyz;
8xyz = В0xyz;
9xyz = B1xyz;
Axyz = B2xyz;
Вxyz = В3xyz;
Сxyz = U0xyz;
Dxyz = U1xyz
Еxyz = U2xyz;
Fxyz = U3xyz;
Пример:
E510 = U2510

Источник

Num eeprom lul 0001 что за ошибка

NVM TARGET ROM
0611

NVM EEPROM LVL
0001

доки объясните про эти коды, делал тест

22.0 mpg (мили на галлон) => 10.688 литра на 100 км.

Уровни аппаратно-программного обеспечения.

и чем это может грозить

qwer4443 писал(а): NVM TARGET ROM
0611

NVM EEPROM LVL
0001

Версия прошивки приборки и версия Eeprom приборки (приборка дорестайл если не ошибаюсь с зеленой подсветкой механика), ошибки в приборке не все показывает, так что если их там нет, это не значит, что их нельзя увидеть кабелем.
Только диагностический кабель с точностью может выявить ошибки. На ошибку U1900 не обращай внимание.

перебои в работе двигателя

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

Продаю новые шины и диски

Диагност
Володь добрый день. Сегодня загорелась надпись не исправность системы ESP, тахометр то работает, то не работает, постоянно скачет. Завожу машину и через 3-5 сек загорается значек ESP. При наборе скорости машина не много «подтупливает», такое впечатление что включен режим по ограничению скорости. Остановкой и повторным пуском двигателя ошибку сбросить не получается. Что делать, подскажи пож-ста?

p.s. загорелась мясорубка, ошибка E196

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Источник

Обнуляются показания бортового компьютера

Опции темы
Отображение

Antony, А кн. есть на конце правого переключателя? или пипка подстроечная на панели приборов? такое впечатление что именно контакты кн. закорочены. Посмотри ош. в режиме самодиагностики если сможешь.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

При запуске двигателя когда тартер крутится обрати внимание на панель приборов как себя ведут стрелки и лампочки если все гаснет и стрелки падают то акум проверь все предохранители там какой то вспомогательный на приборку должен идти

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

Стрелка тахометра точно падает прям в «минуса»(((
Кстати, сброс показаний компа не каждый раз бывает. С какой-то неведомой периодичностью(то 3 дня нормально, то при каждой заводке сбрасывается).

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

как тебе и писали выше зайди в тестовый режим выбери тахометр и посмотри как будет вести себя электронный электронный и стрелочный если синхронно то возможно дело в приборке либо читай все ошибки и желательно читать при не работающем тахометре

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

В каком пункте диагностики смотреть? 12-14?
Сами коды ошибок (при их наличии) будут писаться на дисплее щитка приборов?

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

либо dte none ( если ош. нет) либо коды ошибок если они есть.

выпиши карандашиком всё что показывает там тебе и меняется по нажатию той же кн. тут разберёмся позже.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

либо dte none ( если ош. нет) либо коды ошибок если они есть.

выпиши карандашиком всё что показывает там тебе и меняется по нажатию той же кн. тут разберёмся позже.

В общем вот такие дела:
ROM LEVEL
0127

NVM TARGET ROM
0127

MANUFACTURE
START 6B

MANUFACTURE
HOURS 011F

ENGINE TEMP
60 C (кстати, какая температура двигателя должна быть на полностью прогретом двигателе по норме?)

DIST TO EMPTY
0 MILES

ну и как я понимаю далее не важно уже.

З.Ы. Аккум гелевый.
Машина при диагностике не заведена была.

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

A/D INPUT 0 FF 25-28. A0-A4
A/D INPUT 1 76
A/D INPUT 2 84
A/D INPUT 4 3B

PORT A 20 29-42. P0-P23
PORT B 00
PORT E 02

Есть предположение что дампе настраиваемых параметров в прошивке установлен параметр =сбрасывать каждый раз при старте= отсюда и проблема.
Другими словами показания не копятся 1ткм а каждый раз вычисляются заново при зажигании.

Источник

Работа с EEPROM памятью

num eeprom lul 0001 что за ошибка. Смотреть фото num eeprom lul 0001 что за ошибка. Смотреть картинку num eeprom lul 0001 что за ошибка. Картинка про num eeprom lul 0001 что за ошибка. Фото num eeprom lul 0001 что за ошибка

Вот и добрались мы до третьего типа памяти, доступного на Arduino: EEPROM (англ. Electrically Erasable Programmable Read-Only Memory – электрически стираемое перепрограммируемое постоянное запоминающее устройство (ЭСППЗУ)), она же энергонезависимая память. Вспомним остальные типы памяти, Flash и SRAM, и их возможности по хранению данных:

ТипЧтение из программыЗапись из программыОчистка при перезагрузке
FlashДа, PROGMEMМожно, но сложноНет
SRAMДаДаДа
EEPROMДаДаНет

Простыми словами: EEPROM – память, к которой мы имеем полный доступ из выполняющейся программы, т.е. можем во время выполнения читать и писать туда данные, и эти данные не сбрасываются при перезагрузке МК. Круто? Круто. Зачем?

Единственный важный момент: EEPROM имеет ресурс по количеству перезаписи ячеек. Производитель гарантирует 100 000 циклов записи каждой ячейки, по факту это количество зависит от конкретного чипа и температурных условий, независимые тесты показали 3-6 миллионов циклов перезаписи при комнатной температуре до появления первой ошибки, т.е. заявленные 100 000 взяты с очень большим запасом. Но есть небольшое уточнение – при заявленных 100 000 циклах перезаписи гарантируется сохранность записанных данных в течение 100 лет при температуре 24°C, если перезаписывать по миллиону – данные испортятся быстрее. В то же время количество чтений каждой ячейки неограниченно.

EEPROM представляет собой область памяти, состоящую из элементарных ячеек с размером в один байт (как SRAM). Объём EEPROM разный у разных моделей МК:

Основная задача при работе с EEPROM – не напутать с адресами, потому что каждый байт имеет свой адрес. Если вы пишете двухбайтные данные, то они займут два байта, и следующие данные нужно будет писать по адресу как минимум +2 к предыдущему, иначе они “перемешаются”. Рассмотрим пример хранения набора данных разного типа, расположенных в памяти последовательно друг за другом (в скобках я пишу размер текущего типа данных, на размер которого увеличится адрес для следующего “блока”):

Важный момент: все ячейки имеют значение по умолчанию (у нового чипа) 255.

Скорость работы с EEPROM (время не зависит от частоты системного клока):

Возможны искажения при записи данных в EEPROM при слишком низком VCC (напряжении питания), настоятельно рекомендуется использовать BOD или вручную мониторить напряжение перед записью.

При использовании внутреннего тактового генератора на 8 МГц, его отклонение не должно быть выше 10% (7.2-8.8 МГц), иначе запись в EEPROM или FLASH скорее всего будет производиться с ошибками. Соответственно все разгоны внутреннего клока недопустимы при записи EEPROM или FLASH.

Для работы с EEPROM в среде Arduino у нас есть целых две библиотеки, вторая является более удобной “оболочкой” для первой. Рассмотрим их обе, потому что в “чужом скетче” может встретиться всё что угодно, да и совместное использование этих двух библиотек делает работу с EEPROM невероятно удобной.

Библиотека avr/eeprom.h

Запись:

Обновление:

Макросы:

Рассмотрим простой пример, в котором происходит запись и чтение единичных типов данных в разные ячейки:

Точно так же можно хранить массивы:

В библиотеке avr/eeprom.h есть ещё один очень полезный инструмент – EEMEM, он позволяет сделать автоматическую адресацию данных путём создания указателей, значение которым присвоит компилятор. Рассмотрим пример, в котором запишем в EEPROM несколько переменных, структуру и массив, раздав им автоматически адреса. Важный момент! Адреса задаются снизу вверх по порядку объявления EEMEM, я подпишу их в примере:

EEMEM сам раздаёт адреса, основываясь на размере данных. Важный момент: данный подход не занимает дополнительного места в памяти, т.е. нумерация адресов вручную цифрами, без создания EEMEM “переменных”, не занимает меньше памяти! Давайте вернёмся к нашему первому примеру и перепишем его с EEMEM. При указании адреса через EEMEM нужно использовать оператор взятия адреса &

Ну и напоследок, запись и чтение блока через EEMEM. Адрес придётся преобразовать в (const void*) вручную:

Таким образом можно добавлять “данные” для хранения в EEPROM прямо по ходу разработки программы, не думая об адресах. Рекомендую добавлять новые данные над старыми, чтобы адресация не сбивалась (напомню, адресация идёт снизу вверх, начиная с нуля).

Библиотека EEPROM.h

Библиотека EEPROM.h идёт в комплекте с ядром Arduino и является стандартной библиотекой. По сути EEPROM.h – это удобная оболочка для avr/eeprom.h, чуть расширяющая её возможности и упрощающая использование. Важный момент: подключая в скетч EEPROM.h мы автоматически подключаем avr/eeprom.h и можем пользоваться её фишками, такими как EEMEM. Рассмотрим инструменты, которые нам предлагает библиотека:

В отличие от avr/eeprom.h у нас нет отдельных инструментов для работы с конкретными типами данных, отличными от byte, и сделать write/update/read для float/long/int мы не можем. Но зато у нас есть всеядный put/get, который очень удобно использовать! Также можем пользоваться тем, что нам даёт avr/eeprom.h, которая подключается автоматически с EEPROM.h. Рассмотрим пример с чтением/записью байтов:

Гораздо удобнее чем write_block и read_block, не правда ли? Put и get сами преобразовывают типы и сами считают размер блока данных, использовать их очень приятно. Они работают как с массивами, так и со структурами.

EEPROM.h + avr/eeprom.h

Ну и конечно же, можно использовать одновременно все преимущества обеих библиотек, например автоматическую адресацию EEMEM и put/get. Рассмотрим на предыдущем примере, вместо ручного задания адресов используем EEMEM, но величину придётся привести к целочисленному типу, сначала взяв от него адрес, т.е. (int)&адрес_еемем

С возможностями библиотек разобрались, перейдём к практике.

Реальный пример

Рассмотрим пример, в котором происходит следующее: две кнопки управляют яркостью светодиода, подключенного к ШИМ пину. Установленная яркость сохраняется в EEPROM, т.е. при перезапуске устройства будет включена яркость, установленная последний раз. Для опроса кнопок используется библиотека GyverButton. Для начала посмотрите на первоначальную программу, где установленная яркость не сохраняется. Программу можно чуть оптимизировать, но это не является целью данного урока.

Полезные трюки

Инициализация

Под инициализацией я имею в виду установку значений ячеек в EEPROM “по умолчанию” во время первого запуска устройства. В рассмотренном выше примере мы действовали в таком порядке:

При первом запуске кода (и при всех дальнейших, в которых в ячейку ничего нового не пишется) переменная получит значение, которое было в EEPROM по умолчанию. В большинстве случаев это значение не подойдёт устройству, например ячейка хранит номер режима, по задумке разработчика – от 0 до 5, а из EEPROM мы прочитаем 255. Непорядок! При первом запуске нужно инициализировать EEPROM так, чтобы устройство работало корректно, для этого нужно определить этот самый первый запуск. Можно сделать это вручную, прошив программу, которая забьёт EEPROM нужными данными. Далее прошить уже рабочую программу. При разработке программы это очень неудобно, ведь количество сохраняемых данных может меняться в процессе разработки, поэтому можно использовать следующий алгоритм:

Рассмотрим на всё том же примере со светодиодом и кнопками:

Сброс до “заводских”

Скорость

Как я писал выше, скорость работы с EEPROM составляет:

При большом желании можно использовать ячейку вместо переменной, т.е. выше мы с вами рассматривали пример, в котором EEPROM читался в переменную в программе, и дальнейшая работа происходила уже с ней. При сильной нехватке оперативной памяти можно читать значение напрямую из EEPROM, ведь это занимает ничтожно мало времени. А вот с записью всё гораздо хуже, там целых 3.3 мс. Например так:

Для изменения значения придётся прочитать ячейку, выполнить нужные операции, и снова в неё записать. Ещё один удобный хак: можно ввести макросы на чтение и запись определённых значений, например:

Получим удобные макросы, с которыми писать код будет чуть быстрее и удобнее, т.е. строка SET_MODE(3) запишет 3 в ячейку 0

Уменьшение износа

Важная тема: уменьшение износа ячеек частыми перезаписями. Ситуаций может быть много, интересных решений для них – тоже. Рассмотрим простейший пример – всё тот же код со светодиодом и кнопкой. Делать будем следующее: записывать новое значение будем только в том случае, если после последнего нажатия на кнопку прошло какое-то время. То есть нам понадобится таймер (воспользуемся таймером на millis), при нажатии на кнопку таймер будет сбрасываться, а при срабатывании таймера будем писать актуальное значение в EEPROM. Также понадобится флаг, который будет сигнализировать о записи и позволит записать именно один раз. Алгоритм такой:

Посмотрим на всё том же примере:

Вариантов уменьшения износа ячеек EEPROM можно придумать много, уникально под свою ситуацию. Есть даже библиотеки готовые, например EEPROMWearLevel. Есть очень интересная статья на Хабре, там рассмотрено ещё несколько хороших алгоритмов и даны ссылки на ещё большее их количество.

Видео

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *