Перейти к содержанию

Помогите разобраться в формате данных


espn

Рекомендуемые сообщения

Добрый день.

В этой теме человек анализирует дамп EEPROM от МФУ Canon MP280.
http://printerknowledge.com/threads/looking-for-canon-mp280-eeprom-print.13445
Утверждает, что данные это в основном чистый ASCII код и приводит пример раскодировки серийного номера МФУ.
464C 464E 3133 3834 0034
"LF", "NF", "31", "48", "4"
Скачал свой дамп, у меня по этому же адресу 82C2 A2A2 4CAC 1C2C 6C00, что выше значений латинского алфавита в ASCII, кроме пары значений.
В чем тут может быть нюанс?

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

В 11.12.2022 в 22:13, espn сказал:

В чем тут может быть нюанс?

Может в понимании двоичной и шестнадцатеричной систем исчисления?
82C2 A2A2 4CAC 1C2C 6C00 ->
"AC" , "EE" , "25" , "84" , "6\n"

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

9 часов назад, Гость Роман сказал:

нужно верхний и нижний байт поменять местами

Таки может не байт, а бит?
тогда получается вполне осмысленное
0x41(A),0x43(C), 0x45(E), 0x32(_), 0x3235383436 ("25846")
Что нибудь похоже?

ЗЫ ну во. Уже опередили :)

Изменено пользователем nikolaew
опередили
Ссылка на комментарий
Поделиться на другие сайты

В 11.12.2022 в 23:13, espn сказал:

В чем тут может быть нюанс?

Другая версия прошивки, и текстовые константы попали в другие адреса.

Зачем вам дамп EEPROM? Хотите самостоятельно разобраться со сбросом счётчиков? :)

Изменено пользователем Lexter
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
On 3/10/2023 at 9:22 PM, Lexter said:

Другая версия прошивки, и текстовые константы попали в другие адреса.

Зачем вам дамп EEPROM? Хотите самостоятельно разобраться со сбросом счётчиков? :)

Да, причем на другой модели кэнон. Решил проще - скачал данные из eeprom, когда уже была ошибка, что памперс почти полон, теперь просто загружаю назад этот образ, когда памперс полон на 100% и принтер полностью заблокирован.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
On 3/10/2023 at 9:20 PM, nikolaew said:

Таки может не байт, а бит?

А можете подсказать, как правильно называется эта перестановка битов? Это своего рода шифрование? Есть ли hex редакторы с такой функцией автоматического перевода в ascii?

Ссылка на комментарий
Поделиться на другие сайты

Это называется логический сдвиг.
Нет, это форма(направление) записи/чтения байта при последовательном вводе/выводе.
С учетом того, что програмерам она нах не нужна, скорее всего нет.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо, но это не похоже на сдвиг. Тут именно перестановка старшего и младшего бита от периферии к центру.

0x82-10000010
0x41-01000001

0xC2-11000010
0x43-01000011

0xA2-10100010
0x45-01000101

Странно, что у того человека значения попадают в ASCII без всяких перестановок. Возможно, при печати содержимого eeprom из сервисного режима, принтер сам делает такую перестановку, только непонятно зачем. У меня другая модель, сервисный режим заблокирован, а в слитом eeprom значения серийного номера - FC D9 40 80 46 10 80 80 80 явно не соответствуют данным с наклейки "ADAJ84819". Возможно, это все же какое-то шифрование. Зачем им хранить эти данные в простом виде.

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, это не только полностью похоже на  логический сдвиг, это он и есть. Здесь нет никакой перестановки  старшего и младшего бита от периферии к центру. 
Еще раз это форма(направление) записи/чтения байта при последовательном вводе/выводе, Передаем старшим битом вперед, принимаем старшим битом вперед.
Carry <- MSB....LSB    // = лог.сдвиг  влево
Carry -> MSB....LSB   // = лог.сдвиг вправо
повторить 8 раз.
 

2 часа назад, espn сказал:

а в слитом eeprom значения серийного номера

и на основании чего Вы решили что это серийный номер?

Ссылка на комментарий
Поделиться на другие сайты

Да, надо было учесть, что используется SPI. С адресом серийника ошибся. 82 22 82 52 1C 2C 1C 8C 9C. В моей eeprom он также в двух местах записан и далеко не рядом. Теперь осталось логическим анализатором найти ячейку, куда записывается флаг блокировки сервисного режима и мы точно будем не хуже того китайца. ))))

Изменено пользователем espn
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Если не добавлять: при чтении регистра UDR сбрасывается флаг прерывания RXC. После приёма  "\r" и установки флага FLAG_END_RX обработчик больше не читает UDR. Но затем приходит "\n" от плеера, снова устанавливается флаг RXC, и программа зависает в бесконечном прерывании.
    • Сказал - сделал! Благодарю! И остальным, у кого Ц4353 может сломаться, данная табличка будет очень полезна!
    • Автору. Никаких тут 250...200 ватт у этой китайской бздюшки нет в помине. Тем паче на таком подобии радиатора Катушки даже на выходе нет-плохо  
    • Повторюсь - НЕТ, так как у вас там крутилки, что приведет к искажениям при работе в мостовой схеме. Если бы вы "могли" то вам нужно было разорвать выход с темброблока и вход усилителей и впаять (можно навесом) вот такую схему:
    • Все верно, вы почти все что нужно сделали.  Только не нужно было добавлять это b=UDR; Сразу после старта сбросить флаг flags = 0; А в основном цикле ждать установки флага FLAG_END_RX. И если он установлен, проверять на совпадение строки в буфере (rx_buf) с вашей строкой (AT+QM \ r \ n .....   .....  AT+MP \ r \ n) При совпадении вызывать выполнение нужного алгоритма.
    • У меня до саба ещё дело не дошло, только сейчас думаю купить амп на полкиловатта, но так можно, при условии, что на входе будет моно, и будет срез частот
    • Про флаг Т: если он не используется в основной программе, а у меня он постоянно в деле. для меня меня отложенная обработка прерывания обычное дело, нужно лишь правильно расставить приоритеты частей программы. И обычное дело: выставляешь частоту задающего генератора побольше, делишь его до получения частоты 1000 Гц каким либо таймером, загоняешь в прерывание с флагом. затем закольцовываешь основную программу с проверкой флага прерывания от таймера 1000Гц. загоняешь программу в Sleep. Получаешь кольцо обработки с образцовым интервалом в 1 мс. После любого прерывания проверяешь флаг от таймера, если он, то сбрасываешь флаг и начинаешь перебирать подпрограммы обработки индикаторов, клавиатуры, и тд. и тп, подпрограммы обработки флагов и др. После окончания обработки всех подпрограмм возвращаешься к Sleep. И так по кольцу. Если происходит прерывание не от таймера, программа выходит из Sleep, проверяется флаг от таймера, если не он (а это не он) обратно к Sleep. В большенстве программ использую этот алгоритм.   GPIOR1 и GPIOR2 в 88 условно можно использовать как флаги, но их адреса больше 0х1Е, на них не распространяются команды cbi, sbi, sbic, sbis, и их сначала нужно загрузить в общий регистр, промодифицировать, и заново сохранить. Эта последовательность длинная, и модифицирует SREG, что сводит на нет работу по сравнению с  классическим GPIOR.
×
×
  • Создать...