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

Как считать и запрограмировать ds18b20?


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

20 hours ago, miste-sm said:

в каком направлении копать.

Может это поможет.

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

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

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

Спасибо, не помогло. Этот чип не с картриджа  принтера,  а с датчика уровня на базе TLE5011.  Пользуюсь программатором  Pr1WireVJ, без проблем  читает и записывает чип.  Мне  бы с дампом прошивки как-то разобраться. Каждый раз при включении устройства в чип записывается информация. В устройстве используется микроконтроллер AT91SAM7X256, считать прошивку МК невозможно, он защищён от копирования. Доступная только информация с самого чипа DS2431, возможно ли её расшифровать, чтобы понять какие данные записываются. 

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

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

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

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

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

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

58 минут назад, miste-sm сказал:

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

Обычно в самом начале первые несколько байт содержат серийники, привязки и т.д. HEX-редактором не пробовали сравнивать считанное из родного и записанное в неродной?

Хотя нет, ошибся малость....

В даташите:

Скрытый текст

As a special feature, the four memory pages can individually be write protected or put in EPROM-emulation mode, where bits can only be changed from a 1 to a 0 state. The DS2431 communicates over the single-conductor 1-Wire bus. The communication follows the standard 1-Wire protocol. Each device has its own unalterable and unique 64-bit ROM registration number that is factory lasered into the chip. The registration number is used to address the device in a multidrop, 1-Wire net environment.

Гугло-перевод:

Скрытый текст

Как особая особенность, четыре
страницы памяти могут индивидуально защищаться от записи или
поместить в режим эмуляции EPROM, где биты могут быть только
изменено с 1 на 0. DS2431 сообщает
по однопроводной шине 1-Wire. Связи
следует стандартному протоколу 1-Wire. каждый
устройство имеет свой собственный неизменный и уникальный 64-разрядный ПЗУ
регистрационный номер, который заправлен в заводскую установку.
Регистрационный номер используется для адресации устройства в
многопроходная, 1-проводная сетевая среда.

Навряд ли в микроконтроллер прописаны все номера "подходящих" чипов...

Изменено пользователем DedLogoped

Улыбнись! Завтра будет ещё хуже...

@Borodach - мудератор.

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

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

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

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

Да, я пробовал сравнивать в HEX-редакторе содержимое  прошивок сделанных в разное время, но отсутствие определённых знаний не позволяет понять закономерность. Просмотр процесса обмена по шине 1-Wire анализатором логики подтверждает то, что МК считывает серийник чипа и сравнивает с контрольной сумой, при ошибке контрольной суммы датчик не распознаётся. Вот бы выяснить по какому алгоритму она вычисляется. К примеру чип с с/н  2D4C0A4D010000B4 определяется устройством как 14D0A4C.  Я тоже сомневаюсь что в память МК записаны  все номера "подходящих" чипов.

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

4 часа назад, miste-sm сказал:

Вот бы выяснить по какому алгоритму она вычисляется

Вполне возможно, что производитель сделал некую защиту от "чужих" мастеров, типа при первом включении микроконтроллер записывает "в себя" номер подключённого чипа и в дальнейшем работает только с ним... Боюсь что без прошивки микроконтроллера не обойтись...

Улыбнись! Завтра будет ещё хуже...

@Borodach - мудератор.

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

13 hours ago, miste-sm said:

МК считывает серийник чипа и сравнивает с контрольной сумой, при ошибке контрольной суммы датчик не распознаётся

Серийный номер записан вместе с контрольной суммой. В вашем примере 2D4C0A4D010000B4 - 2D тип устройства, B4 контрольная сумма.

13 hours ago, miste-sm said:

2D4C0A4D010000B4 определяется устройством как 14D0A4C

Если посмотреть внимательно 2D4C0A4D010000B4 и 014D0A4C это одно и тоже только перестановлены байты.

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

11 час назад, DedLogoped сказал:

микроконтроллер записывает "в себя" номер подключённого чипа и в дальнейшем работает только с ним..

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

Тогда я считываю прошивку с рабочего датчика и записываю в новый, только купленный чип - возникает ошибка в идентификации чипа. Ставлю датчик с "родным" чипом, всё работает. Думаю, что весь "секрет" в прошивке,  данные в ней связаны с серийником чипа, поэтому прошивка на чипе с другим серийником не будет рабочей. Как бы найти те значения в чипе где есть привязка к серийному номеру?

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

2D4C0A4D010000B4 и 014D0A4C это одно и тоже

Я это тоже понял, поэтому и предположил что именно это значение из перестановленных байтов может использоваться в зашифрованных данных.

Вот если посмотреть на два дампа с чипа с одним серийником считанных в разное время, то видно отличие в прошивке. Запись в чип происходит каждый раз при идентификации датчика при включении устройства. Понять бы эту закономерность и вопрос может быть решён, но моих знаний недостаточно, поэтому и обращаюсь к профессионалам, чтобы услышать их мнение.

sensor_А2.bin

sensor_А3.bin

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

Первые 8 байт и последние 32 байта в обеих файлах одинаковы. Попробуйте считать с другого чипа, если эти байты будут отличаться, значит в них хранится серийник в закодированном виде.

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

Прошивки ещё с одного чипа, сделанные с разницей в пол-года. Общие только первые 8 байт, дальше совсем разные данные. В предыдущей прошивке были ещё совпадения по адресу:  0016h...001Bh  и  0056h...005Bh. Я не увидел что последние 32 байта, это одна страница EEPROM, одинаковые в обеих прошивках, как сказал  

В 20.05.2018 в 13:56, snn_krs сказал:

последние 32 байта в обеих файлах одинаковы

Поправьте меня, если я ошибаюсь.

анализ_sensor_B.jpg

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

Память 128 байт, 4 страницы по 32 байта. Первые 8 байт в первой и второй страницах одинаковае для датчика. Третья страница полностью совпадает. Последняя строка ( 090 ) везде начинается на 2D, а это как раз тип памяти.

Возможно в последней строке и есть закодированный серийный код памяти. Нужно считывать и сравнивать серийные коды чипов и прошивки. Может быть что и вылезет.

Скачал описание на программатор, может будет интересно, там упоминается этот чип ProgDSQ8.pdf

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

Спасибо за ссылку. Я пытался пользоваться софтом 1-Wire Devices, но у меня не получилось им записать чип, только мог считать прошивку. Потом я нашёл другой софт  http://lapatushka.com/ , который пишет в чип, но он платный. Есть бесплатный софт для 1-Wire от производителя (Dallas Sem), тоже пишет чип, но им немного неудобно. Но вот  возможность записи в чип оказалась бессмысленной   из-за привязки к серийному номеру. 

Хочу ещё уточнить по третьей странице, возможно я не туда смотрю, объясните пожалуйста, ещё раз по адресам.

карта памяти.jpg

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

Я ошибся в страницах. Строка 80 совпадает. Что такое байты 8E и 8F непонятно, но они записаны.

Clipboard078.jpg.918d917069671d51cfd3e3eb28347de1.jpg

Байты 8E и 8F для разных датчиков разные, возможно сюда они пишут что-то, возможно СRС-16 для серийного номера. Считайте серийные номера к этим прошивкам.

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

Теперь всё стало на свои места. Я тоже обратил внимание на адреса 8Eh-8Fh, но как выяснилось позже, эти байты к данным в прошивке не имеют никакого отношения. К этой области нет обращения - проверено анализатором логики. Вообще эта область 88h -8Fh зарезервирована. Буду копать дальше.

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

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

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

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

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

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

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

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

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

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

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

    • Все предложенные к рассмотрению источники питания работают примерно по одному принципу: сетевое напряжение выпрямляется, фильтруется (получаем чуть больше 300 вольт постоянного), затем преобразуется снова в переменное, но уже на частотах в несколько десятков килогерц, понижается на трансформаторе и снова выпрямляется. За счёт высокой частоты преобразования используется трансформатор на ферритовом, а не на стальном, сердечнике, гораздо меньших габаритов и стоимости. Минусы: значительное усложнение схемы блока и вероятность возникновения различных помех от него. Модули управления (кроме первого) также являются импульными преобразователями, с теми же достоинствами и недостатками. Если нужно по быстрому собрать некое подобие ЛБП, то уж лучше брать модуль вроде этого. Ну и блок питания к нему соответствующий. Но не очень понятно, какой практический опыт можно получить от соединения готовых модулей парой проводов.  
    • У меня больше всего вопросов вызвала необычная схема обеспечения отрицательного питания. Автор этой обстоятельной заметки пишет: For this supply to work correctly, the transformer must have a secondary voltage of at least 18V RMS.  Почему? Что будет не так с отрицательным питанием, если напряжение на трансформаторе будет меньше 18В?   https://tinyurl.com/23mlwxtt - я в простейшей эмуляции ставлю 12В пикового напряжения для трансформатора и на стабилитроне все как положено: -5.6В.
    • Согласен, очень криво объяснил. Это работа трёх вольтовой линии, просто на диод шотки сдвоенный, на один анод приходит сигнал напрямую с трансформатора, а на второй через дроссель. Вольт/деление 5 вольт в клетке, тайминг по моему 10 МС. Третья фотография это сигнал на катодах уровень земли ровно по центру экрана. Но все линии по итогу в порядке 3.3 в, 5, в, 12 в и -12 в. Нагрузить все линии не могу сразу ,так как тут же выгорают транзисторы (имеется нагрузка 250 ватт по 10 ампер на каждую линию за исключением-12в), поэтому нагружаю 3.3 вольтовую линию на 10 ампер,  подключаю переменный резистор 50 ватт на 15 ом на 5 вольтовую линию и постепенно довожу до той той картины с перекосом (это гдето  50 ватт общее). По поводу микросхемы, вверху имеется скрин где между импульсами проскакивает мини импульс, если так можно сказать, он проскакивает и на одной  и на второй ноге (7,8). Микросхема не tl 494, а lw4933/abx942.1/c9421646. Далее они приходят на базы транзисторов 945g  коллекторы этих транзисторов соединены с  выводами трансформатора. Просто схема типовая, легче мне кажется просто привести фото самого блока, для тех кто разбирается будет гораздо информативне.  Диод шотки по 12 вольтовой линии был подгоревший, заменил на донора. Приводить скрины не буду что бы не захламлять тему. В итоге, пока все так же, при достижении определенной нагрузки суммарно где-то 50 ватт, появляется этот "выброс и перекос". По этому имеются мысли на два варианта, это микросхема , этот мини импульс между периодами, на низкой нагрузке особо не влияет, но при достижении определенной приводит с самовозбуждению входной цепи и непроизвольному открытию транзистора нижнего плеча. Либо дело в "горячей части", плавающий дефект в обвязке силовых ключей.  Спасибо за ответ.
    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
×
×
  • Создать...