June 18th, 2013

3 метра

EEPROM

Электроники пост. Висит у меня на кухне телек филипс. Все бы ничего, но в один прекрасный день поменяли частоты всех каналов, а их больше 40. Ну не вопрос - перенастроим. Тут-то и началось веселье. Настраиваешь частоту канала, сохраняешь, переключаешь туда-сюда, а там уже совсем другое - частота не сохраняется. Еще хуже то, что при этом слетает какой-нибудь другой канал. Долго я возился, аж достало, но стандартными средствами через меню сделать похоже было ничего нельзя, просто из-за ошибки/недоработанности в прошивке. Очевидно что-то криво пишется/читается в EEPROM. Надоело это все, разобрал телек, нашел микросхему EEPROM, разумеется серии 24CXX. Сделал программатор из говна и палок. Считал и сохранил на всякий случай содержимое памяти и записал FF всюду. Запаял обратно в телевизор, включаю - "Введите код доступа". Ага, ладно. Выпаял еще раз, на этот раз записал 00, запаял - на этот раз никаких кодов доступа. Запустил автопоиск каналов, после чего вручную настроил все нужные каналы, на этот раз без косяков. Ради интереса и на всякий случай после настройки сохранил все, что там было в памяти. Сравнение того что было и того что стало, показало, что в некоторых областях памяти была явная каша и явно то, чего там не должно было быть. Очевидно в один (или не один) прекрасный (или ужасный) момент что-то не туда записалось.
И ведь действительно, 24CXX память, которая используется повсеместно не предполагает сама по себе никакой защиты. Достаточно один раз одному битику в адресе неправильно передаться (это совсем не сложно, учитывая мое скептическое отношение к I2C) и кусок данных в памяти будет поврежден.

Из этого примера, можно сделать ряд выводов для разработчиков:

1)В идеале использовать протоколы с защитой от неправильной передачи данных - начиная от проверки четности, кончая хэшами. Это сразу решит почти все проблемы потенциальных ошибок при передаче данных, но это сложное решение.

2)Если уж используется всякая простая и дешевая память типа 24СХХ, то нужно в прошивке предусматривать возможность неправильной передачи данных. Как - вопрос отдельный. Можно, например, хранить резервную копию данных в оперативке или даже поставить вторую микросхему. Но не стоит тупо писать данные, в надежде, что все запишется без ошибок.

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

П.С. Впрочем телевизор - не ракета, ему можно и сломаться.

promo alex_avr2 july 2, 2018 13:00 41
Buy for 200 tokens
Думаю многие слышали рассказы про огромные бункеры под Москвой, подземные города, секретное метро на случай ядерной войны. Многое в этих рассказах очевидно преувеличено, что-то придумано, но безусловно, основаны они не на пустом месте. Совсем недавно небольшой кусочек этих подземных тайн был…
3 метра

ГО

Сегодня с удивлением услышал работающую сирену ГО с улицы. Самая настоящая, как в аудиозаписи:



Выла несколько минут, где-то довольно далеко, видимо, в километре, не меньше. Если честно, я немного растерялся. Пошел включил телевизор - там все нормально, ничего необычного. Видимо кто-то либо игрался, либо что-то проверяли. Если второе, то хорошо.

В очередной раз задумался об уничтоженной системе ГО. Никто ничего не знает. Даже если сейчас будет тревога, 95% людей просто не будут знать, что им делать, куда деваться и как себя вести.

Вспомним недавнюю аварию в метро, когда горел кабель. Очередная маленькая репетиция апокалипсиса. Всего-то в одном месте загорелось что-то, а проблемы были в результате у десятков тысяч людей. Хорошо, что обошлось без серьезных последствий для людей. При этом все равно находятся те, кто говорит, что ГО не нужно (обычно среди транспортников, мешает оно им видите ли).

Отчасти на эту тему неплохую статью написал brat_luber
http://brat-luber.livejournal.com/440101.html
Основной посыл статьи - современные "урбанисты" или проще говоря любители поболтать о том, как должно быть все устроено в городе, которых сейчас развелось больно дофига, совершенно не понимают самых основ градостроения. Ведь главное в городе это вовсе не лавочки на бульварах, не деревья в кадках, и даже не парковки. Самое главное - то, что позволяет людям жить - коммуникации, система снабжения ресурсами (от газа до продовольствия), инфраструктура и т.п. Только если эти базовые системы работают - город может жить. А уже потом можно заниматься всякими украшательствами. На практике, доходит до того, что занимаясь украшательствами порой посягают на самые святые и базовые вещи - инфраструктуру.