OneWire запись в ibutton

bondik
Offline
Зарегистрирован: 16.02.2012

 

 

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

#include <OneWire.h>

/* 
 * тестируем работу по 1-Wire с ключём-таблеткой DS1990A
 */

OneWire  ds(10);  // на  digital pin 10

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  byte i;
  byte present = 0;
  byte data[12];
  byte addr[8];
  
  if ( !ds.search(addr)) {
      Serial.print("No more addresses.\n");
      ds.reset_search();
      return;
  }
  
  Serial.print("R=");
  for( i = 0; i < 8; i++) {
    Serial.print(addr[i], HEX);
    Serial.print(" ");
  }

  if ( OneWire::crc8( addr, 7) != addr[7]) {
      Serial.print("CRC is not valid!\n");
      return;
  }
  
  if ( addr[0] != 0x01) {
      Serial.print("Device is not a DS1990A family device.\n");
      return;
  }
  Serial.println();
  ds.reset();
  
  delay(1000);
}

Как я понимаю запись необходимо делать так:


ds.select(addr);//addr получили в предыдущем коде
ds.read(a,8); //читаем 8 байт всю информацию с ключа
//поменяли ключ узнали его адрес и пишем
ds.write(a,8); //пишем 8 байт с ключа донора

Подскажите прав ли я или так не получится.

 

Sky
Offline
Зарегистрирован: 04.04.2012

 Хм... DS1990 ReadOnly!!!!! писать в него не получится.....

Пишется в DS1996 но, серийный номер у него свой и по команде 0x33H он отдаст именно его. Читайте протокол 1-Wire и datasheet-ы....

Пишется на другие микросхемы.

prosunriseman
Offline
Зарегистрирован: 16.04.2012

 Подскажите пожалуйста,  как у вас вообще этот код компилируется? На какой платформе вы его компилируете? Какой версией ПО? Простите за офф.топ, но я вообще не могу скомпилировать ни одну программу с OneWire...

arduino.ru/forum/programmirovanie/1-wire-i-arduino-oshibka-kompilyatsii

fiberline
Offline
Зарегистрирован: 07.04.2012

Запись можно сделать только в  пустую заготовку, в продаже они есть.

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

oldpsyho
Offline
Зарегистрирован: 14.05.2014

Апну тему. Есть мега 1260, есть ключи RW1990. Их можно будет писать ардуиной? Если кто делал, поделитесь инфой.

MaximZ
Offline
Зарегистрирован: 24.03.2015

В инете есть инфа о протоколе записи, реализации на ардуино найти не могу. Если удалось записать в RW1990, то прошу поделиться.

satelit
Offline
Зарегистрирован: 12.12.2015

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

bondik
Offline
Зарегистрирован: 16.02.2012

Какой ibutton вы используете?

Как ранее писали, DS1990 ReadOnly.

satelit
Offline
Зарегистрирован: 12.12.2015

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

ключи рабочие- всех прописал на свою панеть домофона--открывают

satelit
Offline
Зарегистрирован: 12.12.2015

http://www.youtube.com/watch?v=EB8YfLyd2Oc

Попробовал сейчас скетч с этого ролика( надеюсь получилось вставить ссылу-делаю впервые)

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

bondik
Offline
Зарегистрирован: 16.02.2012

Читать получается? Если купили на рынке, далеко не факт что вам продали таблетки с возможностью записи. Что значит не получается записать? Как выпроверяете что запись осуществилась? Даже если вы с можете клонировать другую, в любой таблетке остается область которая readonly. Вообщем чтобы мы смогли вам помочь, постарайтесь максимально детализировать проблему.

satelit
Offline
Зарегистрирован: 12.12.2015

читать получается. купил на рынке(у ключников)---ну у них же получается записывать код.

скетчем от дмитрия осипова получается считывать коды всех ключей, плюс я имею доступ к своему домофону( ну как знаете домофон не перекодирует ключи на свой код а только запоминает их, и в режиме кодировке тоже видны коды ключей, правда их часть- или начало или конец) и все ключи прописаны в мой домофон, все открывают

ранее было написано, пост номер 7, DS1990 READONLLY. У мнея ds1990 на ключах написано, а вот readonly нет, просто набор цифр и букв(может код, не сравнивал)

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

я еще нашел информацию, про то что есть копировальщики, которые финализируют ключи( те на них больше нельзя код поменять)--итог мнея что поимели продавци ключей, впарили такие ключи(правда зачем им хранить неправильно закодированные ключи)

в посте номер три написано, что записываются при наприжении 9-12, впервые слышу, может правда?

написал много, но реально, мне уже самому стало интересно, почему так все плохо. система он вайр для первого класа, + - и сигнал, еще пару дней и нах 

satelit
Offline
Зарегистрирован: 12.12.2015

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

MaximZ
Offline
Зарегистрирован: 24.03.2015

satelit пишет:

http://www.youtube.com/watch?v=EB8YfLyd2Oc

Попробовал сейчас скетч с этого ролика( надеюсь получилось вставить ссылу-делаю впервые)

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

Заказал как раз с ссылки под тем роликом ключи вчера, примерно через месяц как придут, отпишусь

Вобщем с того ролика всё нормально работает. Только резистор надо 220 Ом и напряжение 5 вольт.

MacSim
Offline
Зарегистрирован: 28.11.2012

ни скетч с ролика, не тот откуда он это списал не работают. надо править функцию записи, она специально для этого сделана :-)

править в соответствии с даташитом на ключик. 20 минут копался на выходных, даже ключ один убил, но получилось.

MacSim
Offline
Зарегистрирован: 28.11.2012

prosunriseman пишет:

 Подскажите пожалуйста,  как у вас вообще этот код компилируется? На какой платформе вы его компилируете? Какой версией ПО? Простите за офф.топ, но я вообще не могу скомпилировать ни одну программу с OneWire...

arduino.ru/forum/programmirovanie/1-wire-i-arduino-oshibka-kompilyatsii

проверьте откуда ноги растут

MacSim
Offline
Зарегистрирован: 28.11.2012
satelit
Offline
Зарегистрирован: 12.12.2015

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

MacSim
Offline
Зарегистрирован: 28.11.2012

getchip.ru

noir
Offline
Зарегистрирован: 04.06.2016

Послушай, уважаемый. Вот сколько постов видел тут, ты просто нахрен одолел. Такой весь всемогущий. А ответы твои просто великолепной...тупости. Ты либо укажи людям, что исправить, либо молчи сиди. Или больше похвастаться негде? дешевой интернет-славы ищешь? умник херов. выбесил реально

 

У меня уже впечатление сложилось, что нихрена ты не смог ниче никуда записать. Потому что сколько видел твоих комментов классных, нигде четкого пояснения нет. Абстрактные "посмотри там, проверь откуда ноги растут(вообще универсальный ответ)" - заставляет задуматься, что слова твои пустые и ничего ты не смог. Вот и все

MaximZ
Offline
Зарегистрирован: 24.03.2015

Посмотри мой пост, у меня получается запись, если что спрашивай, отвечу
http://arduino.ru/forum/programmirovanie/onewire-zapis-v-ibutton#comment...

akarenin
Offline
Зарегистрирован: 25.11.2016

MaximZ пишет:

Посмотри мой пост, у меня получается запись, если что спрашивай, отвечу
http://arduino.ru/forum/programmirovanie/onewire-zapis-v-ibutton#comment...

MaximZ

помогите. Что я не так делаю?
Уже перепробовал десяток разных скриптов.
Процедура записи вроде бы везде одна и та же.
В чем хитрость? почему эти китайские ключи не пишутся?

http://arduino.ru/forum/apparatnye-voprosy/pomogite-s-ibutton

Здесь мои попытки и описание ключей которые я заказал.

vasya00
Offline
Зарегистрирован: 30.05.2016

Подниму тему. Подскажите, пожалуйста, по поводу программирования ключей. У меня накопилась горсть, из них большую часть удалось прошить с библиотекой OneWire.h, и раздать нуждающимся, но попались несколько без  опознавательных знаков, один из них при чтении ds.read(); выдает случайные цифры, даже без запроса 0x33, второй всегда 0000.

Почитал что существует несколько типов ключей, помимо DS/RW1990A, еще как минимум DC2000А и К1233КТ2. Они очевидно читаются и записываются иначе, но как я понимаю тоже по 1wire? Возможно для чтения нужно не 0x33, а что то другое? Очень интересно, может кто нибудь знает как опознать что это за ключи и прочитать?

Upd: Тот ключ что постоянно вываливат случайные цифры видимо и есть DC2000А - К1233КТ2 или ТМ-01 их перезаписываемый аналог, они именно так и работают, непрерывна вываливая записанный код. Ну а читается он у меня не верно. Отсюда вопрос как его верно прочитать, и если это перезаписываемая болванка то и записать. На Arduino таких решений не видел. Ну и непонятным остается тот что выдает 000.

http://www.155la3.ru/datafiles/1233kt1.pdf

http://www.sitsemi.ru/kat/1233kt2.pdf

Вообще интесно было бы организовать на Arduino легко повторяемый прогромматор, тут много информации, но она мне не по зубам http://kazus.ru/forums/showthread.php?t=67407

b707
Онлайн
Зарегистрирован: 26.05.2017

vasya00 пишет:

Вообще интесно было бы организовать на Arduino легко повторяемый прогромматор, тут много информации, но она мне не по зубам http://kazus.ru/forums/showthread.php?t=67407

для болванок RW1900 скетчей в инете много, собрать программатор не проблема. Это когда-то была первая схема, собранная мной на ардуине. До сих пор работает - прошиваю ключики соседям по ТСЖ :)

Для других форматов надо искать информацию по прошивке. И иметь соответствующие болванки для тестов.

vasya00
Offline
Зарегистрирован: 30.05.2016

Дак для RW1900 и вопросов нет, примеров полно, и у меня все отлично получилось, заинтересовали другие форматы, но с ними похоже глухо..