• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

RTL8710BN < $1.0 ?

pvvx

Активный участник сообщества
pvvx, я по одному купил.. :) 8710BN было всего 2шт вроде как, когда я увидел понижение цены на доставку... а вот до этого было тоже немного ~ 3-4шт. С 8195 прикольнее - там не было количества, а просто время продажи лота кончилось. (что как бы странно....)
По новым партиям не спрашивал у продавца, попробуйте написать ему в ebay - через день отвечает.
Он уже писал мне в сообщения профиля. Они видны всем, но ссылку не дать - дубль:
mjiot-amb Your REATEK RTL8710AF study was very thorough, I really admire you I am a Chinese company (the company's website Shenzhen Minjun IOT Technology Co. Ltd. — iot wifi module solutions expert), currently earn to do RTL8710AF WIFI module and the subsequent upgrade of the chip RTL8711B series version. I hope we can cooperate in the future!!!

Т.е. желает поддержки B серии...
Мне ныне не успеть и заказывать новые модули и что-то по ним делать, может только позже, когда появятся в более широком доступе и будет проще и быстрее заказать...
В текущем SDK почти всё есть для "B" серии, но надо переделывать линковку (*.ld файлы) и без наличия модулей там ковыряться не имеет смысла... 8711BN вроде покруче, но пока не нашел в продаже...
 
Последнее редактирование:

KomX

Member
В текущем SDK почти всё есть для "B" серии...
Судя по докам, переделывать многое придётся. Например, различается число таймеров, PWM каналов и т.д., а стало быть и структура регистров управления этим нововведением... Одним словом, без SDK, - это просто UART приставка с заданным функционалом для МК.
 

pvvx

Активный участник сообщества
Судя по докам, переделывать многое придётся. Например, различается число таймеров, PWM каналов и т.д., а стало быть и структура регистров управления этим нововведением... Одним словом, без SDK, - это просто UART приставка с заданным функционалом для МК.
Именно это и описано в SDK. Одна PMU (Power Management Unit) у "B" имеет почти в десять раз больше опций.
 

mjiot-amb

New member
[QUOTE = “A_D,交:36304,会员:72”] pvvx,再次在存在:
RTL8195 RTL8195AF IOT WiFi模块| 易趣
但8710BN走了......(我还没有买的最后一个;))[/ QUOTE]

RTL8710BN the first batch has been sold out, is currently doing the second batch, is expected to do a good job in May 30th,
RTL8710AF and RTL8195AM modules as well as the development board inventory, thank you support!!
 

A_D

Active member
Опять не успел, всё A_D скупил :) Просто некогда было разбираться со счетами на ebay - праздники-дети-город-дача...
Ай, ну зачем же вот так сразу бранить) ничего подобного, я больше двух штучек (разного вида) не покупал ;)
Хороших выходных!!
 

pvvx

Активный участник сообщества
вот у меня такое же ощущение :( и поддержка из ROM всяких секурных/шифровальных алгоритмов похоже просто не поместится в свободную память.
По задачам типа для Arduino - RTL8710BN выигрывает по RAM у RTL871xAF:
Ameba-I = "A" серия: RTL8195/RTL871xAx
Ameba-Z = "B" серия: RTL871xBx
Снимок1480.gif
Сравнительная таблица из SDK 4.0.a (поддерживает RTL8195/RTL871xAx и RTL871xBx серию).
В моей сборке SDK немного по другому - для такого рода приложений (из таблицы) для старой серии "A" объемы свободной памяти побольше, за счет "ужатия" глупостей из SDK даже с увеличением функциональности.

Пример c моим Web-сервером + websocket + debug функции + ...
При загрузке, до инициализации WiFi:
  • RAM heap 162520 bytes
  • TCM heap 64768 bytes
При уже включенной SoftAP+Station:
  • RAM heap 139064 bytes
  • TCM heap 4424 bytes
У HTTPD на ESP-32S всё значительно хуже, включая массу ограничений и ошибок, хотя там XIP, а размеры RAM чипа одинаковы. Т.е. в такой задаче RTL8710AF перебивает ESP-32S по всем параметрам, особенно потребления.
На RTL871xBN наверняка для моего варианта web выйдут примерно те-же параметры, но функциональность можно расширять до заполнения Flash.

C SSL/TLS выходит всё наоборот. Увеличение размера кода для приложений с SSL/TLS выходит практически равный буферам для дешифровки в RAM. Если код в XIP, тогда RAM требуется меньше.

Всё это полная ерунда, т.к. RTL8195 стоит дешевле ESP-32S, а заполнить чем-то осмысленным 2.5 МБ RAM пока не удается. :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Тест на требуемую энергию для соединения модуля RTL8710BN с внешней AP в SDK 4.0b.
Условия для теста:
  1. Никаких включений энерго-понижающих функций за время исполнения тестовой последовательности.
  2. Никаких модификаций функций SDK (используются только базовые функции).
Тестовая последовательность (в дальнейшем для сравнения c другими модулями):
  1. Включение питания или просыпание модуля из deep_sleep.
  2. Включение/полная инициализация WiFi драйвера (с оповещением по стандарту WiFi).
  3. Подключение к внешней AP с шифрованием WPA2/AES.
  4. Запрос и получение модулем IP по DHCP от внешней AP.
  5. Получение времени по запросу SNTP через DNS c pool.ntp.org.
  6. Вывод времени на UART или другие интерфейсы.
  7. Отключение от внешней AP по стандарту WiFi.
  8. Переход в deep_sleep или полное отключение питания.
Итого вышло:
Замер тока по 3.3В за 350 секунд (шкала в 0.1 сек):
Снимок1588.gif
Модуль просыпается из deep_sleep в 10 сек, производит тестовую последовательность и опять уходит в deep_sleep.
Среднее потребление за замер 0.035290 A (35 мА), 26 соединений, 40.75963792 Дж (вместе с потреблением в deep_sleep, но там утечка всего 17..18 мкА и можно не думать).

Итого:
В среднем одно соединение пожирает 1.567678381 Дж.


Для наглядности, пара выборок потребления за тестовую последовательность (шкала в 0.1 сек):
Снимок1589.gif
Среднее время работы в RTOS 3.6 сек. Остальное уходит на запуск, инициализацию, отключение WiFi и переход в deep_sleep. Путем понижении частоты CPU можно уменьшить кол-во пожираемых калорий модулем в тестовой последовательности до двух раз, т.к. внешние задержки связи преобладают и производительность в 150 000 Dhrystones/sec от самого модуля не требуется.

Код:
ROM:[V0.1]tialized
FLASHRATE:4
BOOT TYPE:0 XTAL:40000000
IMG1 DATA[1112:10002000]
IMG1 ENTRY[800043b:100021dd]
IMG1 ENTER
CHIPID[000000ff]
read_mode idx:0, flash_speed idx:0
calibration_result:[1:3:13][b:d]
calibration_result:[2:13:7][1:d]
calibration_result:[3:3:3][1:3]
calibration_ok:[2:13:7]
FLASH CALIB[NEW OK]
OTA2 ADDR[ffffffff]
OTAx SELE[ffffffff]
OTA1 USE
IMG2 DATA[0x805ae24:7408:0x10005000]
IMG2 SIGN[RTKWin(10005008)]
IMG2 ENTRY[0x10005000:0x8058367]
===== Enter Image 2 ====
System_Init1
OSC8M: 7f8d0f
boot reason: 0
System_Init2
#interface 0 is initialized
interface 1 is initialized

Initializing WIFI ...
LDO Mode, BD_Info: 0
LDO Mode, BD_Info: 0
Start LOG SERVICE MODE
#
wlan_init_done_cb: Time at start 164 ms.
RTL8195A[Driver]: set ssid [*******]
RTL8195A[Driver]: start auth to bc:ae:c5:eb:09:90
RTL8195A[Driver]: auth success, start assoc
RTL8195A[Driver]: association success(res=3)
wlan1: 1 DL RSVD page success! DLBcnCount:01, poll:00000001
RTL8195A[Driver]: set pairwise key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4)
RTL8195A[Driver]: set group key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:2
wifi_connected [0] at start 3078 ms.
Interface 0 IP address : 192.168.1.72
DHCP_START [2] at start 3591 ms.
Wed Aug  9 20:58:04 2017  + 626990 usec
Enter deep sleep at start 3628 ms.
LwIP_DHCP: dhcp stop.
Deinitializing WIFI ...
Код:
#include "FreeRTOS.h"
#include "task.h"
#include "diag.h"
#include "main.h"
#include <platform/platform_stdlib.h>
#include <sntp/sntp.h>
#include <lwip/sockets.h>
#include <lwip_netconf.h>
#include <dhcp/dhcps.h>
#include "wifi_conf.h"
#include "sleep_ex_api.h"

extern struct netif xnetif[NET_IF_NUM];
typedef int (*wlan_init_done_ptr)(void);
extern wlan_init_done_ptr p_wlan_init_done_callback;


#define WiFi_SSID "******"
#define WiFi_PASSWORD "*******"
#define WiFi_CHANNEL 1
#define WiFi_SECTYPE RTW_SECURITY_WPA2_AES_PSK 

   
static void show_time(void)
{
    unsigned int update_tick = 0;
    long update_sec = 0, update_usec = 0;
    uint32_t tt = xTaskGetTickCount();
    while(xTaskGetTickCount() - tt < 3000) {
        sntp_get_lasttime(&update_sec, &update_usec, &update_tick);
        if(update_tick) break;
        vTaskDelay(1);
    }
    long tick_diff_sec, tick_diff_ms, current_sec, current_usec;
    unsigned int current_tick = xTaskGetTickCount();

    tick_diff_sec = (current_tick - update_tick) / configTICK_RATE_HZ;
    tick_diff_ms = (current_tick - update_tick) % configTICK_RATE_HZ / portTICK_RATE_MS;
    update_sec += tick_diff_sec;
    update_usec += (tick_diff_ms * 1000);
    current_sec = update_sec + update_usec / 1000000;
    current_usec = update_usec % 1000000;
    printf("\n%s + %d usec\n", ctime(&current_sec), current_usec);
}

int wlan_init_done_cb(void)
{
      char ssid[] = WiFi_SSID;
      char password[] = WiFi_PASSWORD;
      int ret;
    printf("\r\n\%s: Time at start %d ms.\n", __func__, xTaskGetTickCount());
#if CONFIG_LWIP_LAYER
    netif_set_up(&xnetif[0]);
#endif
#if 0 // CONFIG_AUTO_RECONNECT Enable in wlan_network()
    // setup reconnection flag
    ret = wifi_set_autoreconnect(1);
    printf("\nwifi_set_autoreconnect [%d] at start %d ms.\n", ret, xTaskGetTickCount());
    if(ret < 0)    goto go_deep;
#endif
    ret = wifi_connect(ssid, WiFi_SECTYPE, password, strlen(WiFi_SSID),    strlen(WiFi_PASSWORD), -1, NULL);
    printf("\nwifi_connected [%d] at start %d ms.\n", ret, xTaskGetTickCount());
 
    if(ret == RTW_SUCCESS){
        ret = LwIP_DHCP(0, DHCP_START);
        printf("\nDHCP_START [%d] at start %d ms.\n", ret , xTaskGetTickCount());
        if (ret == DHCP_ADDRESS_ASSIGNED) {
            sntp_init();
            show_time();
            sntp_stop();
        }
    }
go_deep:
    printf("Enter deep sleep at start %d ms.\n", xTaskGetTickCount());
    // stop dhcp server
    dhcps_deinit();
    wifi_off();
    // enter deep sleep
    deepsleep_ex(DSLEEP_WAKEUP_BY_TIMER, 10000);
    return ret;
}

void main(void)
{
    if ( rtl_cryptoEngine_init() != 0 ) {
        DiagPrintf("crypto engine init failed\r\n");
    }
    /* Initialize log uart and at command service */
    ReRegisterPlatformLogUart();
    /* wlan intialization */
#if defined(CONFIG_WIFI_NORMAL) && defined(CONFIG_NETWORK)
    wlan_network();
#endif
    /* Execute application example */
    // Call back from wlan driver after wlan init done
    p_wlan_init_done_callback = wlan_init_done_cb;
        /*Enable Schedule, Start Kernel*/
#if defined(CONFIG_KERNEL) && !TASK_SCHEDULER_DISABLED
    #ifdef PLATFORM_FREERTOS
    vTaskStartScheduler();
    #endif
#else
    RtlConsolTaskRom(NULL);
#endif
}
 
Последнее редактирование:

aloika

Active member
Поискал сейчас в инете - получается, что модуль с RTL8710BN всё также сложно купить. Или я не прав и где-то есть тайные источники, где модули лежат и дешево? На али emw3080 предлагают за 330 рублей с доставкой, как-то не дёшево. AMB-03 вообще не видно. Конечно, всё есть на таобао, но оттуда так просто не достать
.
Стоит ли начинать пробовать что-то делать на этих модулях, если и потом их вряд ли купишь?
 

sharikov

Active member
модуль с RTL8710BN всё также сложно купить. Или я не прав и где-то есть тайные источники, где модули лежат и дешево? На али emw3080 предлагают за 330 рублей с доставкой, как-то не дёшево. AMB-03 вообще не видно.
...
Стоит ли начинать пробовать что-то делать на этих модулях, если и потом их вряд ли купишь?
Если вам труд оплачивают и работодатель готов закупать модули напрямую в китае то стоит.
Если у вас есть задачи которые можно решить только модулем на 8710BN и никаким другим модулем задача не решается берите emw3080 за любые деньги - он единственный доступен в данный момент.
Во всех остальных случаях терять время на этот чип не стоит.
 

pvvx

Активный участник сообщества
Поискал сейчас в инете - получается, что модуль с RTL8710BN всё также сложно купить. Или я не прав и где-то есть тайные источники, где модули лежат и дешево? На али emw3080 предлагают за 330 рублей с доставкой, как-то не дёшево. AMB-03 вообще не видно. Конечно, всё есть на таобао, но оттуда так просто не достать
.
Стоит ли начинать пробовать что-то делать на этих модулях, если и потом их вряд ли купишь?
Альтернатива пока только одна - RDA5981, но у меня их пока нет и они не исследованы для применения в автономных поделках.
На RTL8710BN наверно и не стоит смотреть, а надо рассчитывать на RTL8711BU.

RTL-WIFI-SOC.gif
 
Последнее редактирование:
Сверху Снизу