Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Вопрос: Chip_ID в RTL

Тема в разделе "Realtek - SDK, прошивки и утилиты", создана пользователем aloika, 5 апр 2018.

  1. aloika

    aloika Активный участник сообщества

    Сообщения:
    367
    Симпатии:
    25
    Подскажите, пожалуйста, кто знает. В ESP8266 был chip_id - это был уникальный идентификатор экземпляра чипа. В RTL тоже есть chip_id, но это совсем другое - отражает тип чипа, например, для RTL8710 chip_id=0xFC.

    Вопрос - есть ли в RTL какой-нибудь уникальный номер экземпляра чипа и (если есть) как его узнать?
     
  2. sharikov

    sharikov Авторитетный участник сообщества

    Сообщения:
    547
    Симпатии:
    51
    Есть уникальный ID флэшки. Пройтесь на форуме где то было как читать otp area.
    Также что-то было в efuse rtl но это ID или что-то случайное так и не выяснили: по efuse нет документации.
     
  3. Dmitry Orlov

    Dmitry Orlov Новичок

    Сообщения:
    110
    Симпатии:
    1
    А MAC адрес не подходит? В ESP это его кусок.
     
  4. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.391
    Симпатии:
    1.271
    Есть. В eFuse и во встроенной Flash. Найдите темы про eFuse...
    https://esp8266.ru/forum/threads/efuse-rtl00.1663/
    https://esp8266.ru/forum/threads/identifikacija-rtl871x.2156/
    И не майтесь - запишите сами в пользовательскую область eFuse что вам надо. Она однократно программируемая и сотен ячеек вам хватит.
     
    Последнее редактирование: 5 апр 2018
  5. sharikov

    sharikov Авторитетный участник сообщества

    Сообщения:
    547
    Симпатии:
    51
    Вопрос про RTL.
    В RTL00 по факту нет MAC. То есть в efuse предусмотрено но производители модулей RTL00 шьют во все модули одинаковый. Лень им.
     
  6. aloika

    aloika Активный участник сообщества

    Сообщения:
    367
    Симпатии:
    25
    У меня несколько модулей, если прошить веб-свалку, то MAC виден везде разный. Это где-то в веб-свалке функционал такой, или модули с разными МАС ?
     
  7. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.391
    Симпатии:
    1.271
    Там стоит примитив - затычка, т.к. неизвестно, что вам надо.
    "Производители с али" RTL-00 пишут MAC во Flash из стандартной прошивки "AT". Остальные, именно производители модулей, пишут MAC в eFuse.
    При перепрошивке вы стираете его своим, какой понравится... :)
     
  8. aloika

    aloika Активный участник сообщества

    Сообщения:
    367
    Симпатии:
    25
    А ткните, пожалуйста, где именно затычка...
     
  9. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.391
    Симпатии:
    1.271
    tcp_put_mac(xnetif[WLAN_AP_NETIF_NUM].hwaddr);

    Правило у SDK получения MAC в дровах:
    1) распаковывается* eFuse в структуру настроек WiFi под названием типа eeprom (struct _ADAPTER, eeprompriv).
    2) на неё накладываются* значения из Flash сектора по адресу 0xA000.
    3) Если все 6-ть байт MAC равны 0xFF, то ставится mac по умолчанию.

    * паковка имеет записи, которые надо заместить. Т.е. в сжатом виде указаны адрес и значения для областей в efuse_eeprom_data[HWSET_MAX_SIZE_512]. Замещения значений MAC там может и не быть. Изначально буфер efuse_eeprom_data 512 байт содержат 0xff. Этим достигается возможность дозаписи в eFuse, которые заместят предыдущие.

    pvvx/RTL00_WEB
    Кроме того MAC, в структуре есть область efuse_eeprom_data, от куда его скопировали в mac_addr[6], в какой-то момент времени:
    Код (C):
    1. struct eeprom_priv
    2. {
    3.     u8        bautoload_fail_flag;
    4.     u8        mac_addr[6];    //PermanentAddress
    5.     u16        CustomerID;
    6.     u8        EepromOrEfuse;
    7.     u8        efuse_eeprom_data[HWSET_MAX_SIZE_512];
    8. #ifdef CONFIG_RF_GAIN_OFFSET
    9.     u8        EEPROMRFGainOffset;
    10.     u8        EEPROMRFGainVal;
    11. #endif
    12. };
    От туда он, в какой-то момент попадет в область WiFi регистров :)

    Т.е. существует более 3-х MAC адресов - в eFuse, в Flash, в RAM eeprompriv, в netif-ах у LwIP. И они ещё отличаются для STA и AP драйвера... и могут быть заданы пользователем.
    Так-же процедур установки MAC более 3-х :)
     
    Последнее редактирование: 5 апр 2018
    aloika нравится это.

Поделиться этой страницей