Jump to content

646826

Members
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Обычный

About 646826

  • Rank
    Новенький
  • Birthday 11/06/1985

Контакты

  • ICQ
    646826
  • Skype
    dima_s_d_s

Информация

  • Пол
    Мужчина
  • Город
    Краснодар

Электроника

  • Стаж в электронике
    Не связан с электроникой
  1. Документация есть. То есть мы переходим от интерфейса MBus к UART, все верно? Дальше мы через UART интерфейс подключаемся к esp8266? На ESP реализуем чтение данных с UART по ModBus протоколу?
  2. Да, я наверно не с того начал. У меня есть такое устройство которое имеет интерфейс M-bus и протокол Modbus. Дальше я хочу считать данные с этого устройства удаленно, например через WiFi используя esp8266 и не знаю с чего начать и что для этого нужно. Буду благодарен за постепенное погружение в этом направлении и за любую полезную информацию.
  3. Привет. Я как-то сталкивался с протоколом ModBus, но недавно попался прибор у которого интерфейс M-bus а протокол ModBus. Подскажите как с ним работать? Не понимаю что значит интерфейс M-bus с протоколом M-bus
  4. Привет, хочу считать данные с такого чипа: (http://www.gaw.ru/ht...tton/ds1971.htm) DS1971 - 256 бит EEPROM + 64 бита особенности: 256 бит перезаписываемой энергонезависимой памяти EEPROM организована как одна 256 байтная страница 64 бит одноразово программируемой памяти, которая автоматически защищается от записи после программирования Контроль, адресация и питание по одному проводу 8 битный идентификационный код семейства DS1971 для идентификации ридером Диапазон напряжения питания от 2,8 В до 6,0 В во всем температурном диапазоне от -40°C до +85°C Пробовал разобраться используя статью http://robocraft.ru/...rduino/118.html, но все глухо. Нашел документ по этому чипу http://www.ibutton.r...1991_ru_new.pdf Это так-же подходит для этого чипа: первые 8 бит — номер серии устройства (01h) следующие 48 бит — уникальный серийный номер последние 8 бит — CRC-код предыдущих 56 бит информации #include <OneWire.h> 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))[color=#0000BF] // по описанию функция ищет устройство, и записывает в addr 8 byte этого устройства.[/color] { Serial.print("No more addresses.\n"); ds.reset_search(); [color=#0000BF]// начинаем новый поиск устройства[/color] return; } Serial.print("R="); for( i = 0; i < 8; i++) { Serial.print(addr[i], HEX); Serial.print(" "); } [color=#0000BF]//(Cyclic redundancy code, CRC — циклический избыточный код) — //способ цифровой идентификации некоторой последовательности данных, который заключается в //вычислении контрольного значения её циклического избыточного кода. //OneWire::crc8 - не совсем понятно, зачем делаем и почему результат сравниваем с addr[7] //Могу предположить что проверяется, это Dallas устройство или нет, по скольку в коде видно что данные проверяются из массива dscrc_table //но понимания пока нет, почему addr[7], хотя можно предположить что там лежит crc код...[/color] if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.print("CRC is not valid!\n"); return; } if (addr[0] == 20) { Serial.print("Device is a DS1991 family device.\n"); [color=#0000BF]//не знаю на сколько это правда, но у меня так[/color]} else if(addr[0] == 0x1) {Serial.print("Device is a DS1990A family device.\n"); } Serial.println(); ds.reset(); delay(1000);} В коде выше выводится серийный номер устройства. А как прочитать EEPROM не могу найти.
×
×
  • Create New...