• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

RDA5981

pvvx

Активный участник сообщества
RDA5981.gif
~ 90 руб на tao-bao.
Доки с NDA: RDA5981/RDA5995 资料汇总 - Wi-Fi - 锐迪科技术社区 - Powered by RDA SpreadLink

Wi-Fi Features:
  • CMOS single chip fully-integrated
  • radio/PHY/MAC
  • Internal PA, LNA
  • 2.4GHz IEEE 802.11b/g/n
  • 20/40MHz bandwidth
  • Support WEP/WPA/WPA2
  • Support WPS/WMM/A-MPDU
  • Dynamic TX power saving
MCU Features:
  • ARM cotex-M4F, @160MHz
  • Up to 288K-Byte internal SRAM for user
  • Up to 32M-bit internal Flash
  • 160K-Byte SRAM for Wi-Fi stack, Flash cache
  • UART/USB/SDMMC/SPI/I2C/I2S/ADC/PWM
  • Watchdog and low power timer
  • Support Timer/GPIO wakeup
  • Hardware crypto accelerator AES RSA
  • CRC accelerator and TRNG

https://esp8266.ru/forum/attachments/mbed-wifi-target-uno-91h-zhongpyao-song-rda-pdf.5032/
или mbed Wifi Target:UNO 91H(宋忠耀,RDA高级工程师)

Практически аналог RTL8711BU...
Чип RDA5981 объявлен в разработке с 2016 года, начальный этап проработок завершен.
RDA5981_.gifRDA5981_2.jpg

RDA5981_Dev.jpg
Отладочная плата ~ 230 руб.

Полный набор RDA wifi开发板 UNO-91H RDA5856+RDA5981C 物联网开发板-淘宝网
UNO_91H_V1.0.pdf
 
Последнее редактирование:

pvvx

Активный участник сообщества
Пошли мелкие движения...
Чип уже типа продается RDA5981X1 WIFI Module, RDA5981A - ElectroDragon
Появились более менее даташиты. RDA5981 (RDA5x) · GitHub
Памяти совсем у чипа нет и вся порвана на куски:
Снимок73.gif
Предел, что ему грозит - конкуренция с ESP8266 :) На большее это не потянет.
RTL серии "B" вышли получше, а разница в цене незначительна.
Для такого класса чипов WiFi-SoC особое применение видно только в автономных устройствах, где критично питание. А в даташите на данные чипы заявлено к 1 мА deep-sleep. По другим архитектурным особенностям видно, что чип совсем не подходит для основной своей сферы применения. По этому его и позиционируют в рекламах как какой-то звуковой проигрыватель по типу MP3, где питания дофига...
 
Последнее редактирование:

pvvx

Активный участник сообщества
MBED (RDA5981 SDK MbedOS V1.3.5) на RDA в принципе готов.
Проверка сборки примеров показывает примерно такие данные по использованию памяти
Пример timer:
Код:
+-----------+-------+-------+--------+
| Module    | .text | .data |   .bss |
+-----------+-------+-------+--------+
| Misc      | 30763 |   247 | 294656 |
| Subtotals | 30763 |   247 | 294656 |
+-----------+-------+-------+--------+
Allocated Heap: unknown
Allocated Stack: unknown
Total Static RAM memory (data + bss): 294903 bytes
Total RAM memory (data + bss + heap + stack): 294903 bytes
Total Flash memory (text + data + misc): 31010 bytes
С включенным WiFi - пример sniffer:
Код:
+-----------+-------+-------+--------+
| Module    | .text | .data |   .bss |
+-----------+-------+-------+--------+
| Misc      | 30763 |   247 | 294656 |
| Subtotals | 30763 |   247 | 294656 |
+-----------+-------+-------+--------+
Allocated Heap: unknown
Allocated Stack: unknown
Total Static RAM memory (data + bss): 294903 bytes
Total RAM memory (data + bss + heap + stack): 294903 bytes
Total Flash memory (text + data + misc): 31010 bytes
Выходной Image 291 460 байт.

Утилиты для записи Flash:
https://developer.dueros.baidu.com/doc/lite/download/RDA5981_Flash_Test_Tool_0224.rar
https://developer.dueros.baidu.com/doc/lite/download/MergeTool_V01.00.01_20170407.rar
 
Последнее редактирование:

inotrom

New member
Ну вот опять..смешались в кучу кони люди....
Код:
libwifi_sta_ap.a objdump -p
....
wlan_rx_data_sta.o:     file format elf32-little
wlan_rx_mgmt_sta.o:     file format elf32-little
dma.o:     file format elf32-little
sdio_host_if.o:     file format elf32-little
sdio_host_if_isr.o:     file format elf32-little
usb_dscr.o:     file format elf32-little
usb_host_if.o:     file format elf32-little
usb_hw.o:     file format elf32-little
usbd_core.o:     file format elf32-little
virtual_host_if.o:     file format elf32-little
....
Зачем в библиотеку работы с wifi тулить объектники с usb и другим, более того - эта вся парафия предоставляется arm документацией.
Взяли чистый C-код пообвязывали С++, наплодили сущностей и довольны.
Если выкроить "универсализм", можно знатно сэкономить место Flash, глядишь и внешняя не пригодится.
Код:
if(actual_txlen == p->tot_len)
    {
        if(netif->name[0] == 's' && netif->name[1] == 't')
            wland_txip_data((void*)data, actual_txlen, 0);
        else if(netif->name[0] == 'a' && netif->name[1] == 'p')
            wland_txip_data((void*)data, actual_txlen, 1);
Типа такого там вся библиотека обмазана.
Кстати, неужто RTOS так действительно необходима, для wifi и ip/tcp стека? Реально ли совсем без нее? И что там с поддержкой, swd выводов не увидел.
 

pvvx

Активный участник сообщества
Кстати, неужто RTOS так действительно необходима, для wifi и ip/tcp стека? Реально ли совсем без нее?
Предложите свою ОС для MBED проекта "мигания светодиодом"? Arduino? :)
И что там с поддержкой, swd выводов не увидел.
Зачем пользователю закрытых либ SWD?

Странные какие-то вопросы по игре в MBED...
 

inotrom

New member
Предложите свою ОС для MBED проекта "мигания светодиодом"? Arduino? :)
Зачем пользователю закрытых либ SWD?
Странные какие-то вопросы по игре в MBED...
Не совсем понял, причем тут embed мигание светодиода и работа lwip без os, ровно как и "закрытые либы" к SWD, и закрытого там только библиотека, которую я указал в листинге, никто не мешает (с точки зрения ядра ARM) использовать только CMSIS, и это собственно то к чему я веду. В плане вопросов, не вижу странностей, ибо есть железка а есть программа - у них мало чего общего.
ЗЫ. Судя по линкеру, памяти в чипе поболее, чем пишут.
RDA5981A
Код:
MEMORY
{
    /* If ICache is enable, use virtual flash base address */
    /* Use partition index: 0 */
    FLASH (rx)      : ORIGIN = 0x18001000, LENGTH = 500K
    /* Use partition index: 1 */
    /* FLASH (rx)      : ORIGIN = 0x1807E000, LENGTH = 500K */

    /* If ICache is disable, use real flash base address. Depends on macro: RDA_ICACHE_DISABLE */
    /* Use partition index: 0 */
    /* FLASH (rx)      : ORIGIN = 0x14001000, LENGTH = 500K */
    /* Use partition index: 1 */
    /* FLASH (rx)      : ORIGIN = 0x1407E000, LENGTH = 500K */

    IRAM (rwx)      : ORIGIN = 0x00100080, LENGTH = (128K - 0x80)
    DRAM (rwx)      : ORIGIN = 0x00180000, LENGTH = 64K
    MACLIB_RAM(rwx) : ORIGIN = 0x40100000, LENGTH = 99K
    AES_RAM(rwx)    : ORIGIN = 0x40118C00, LENGTH = 1K
    WLAN_RAM(rwx)   : ORIGIN = 0x40119000, LENGTH = 28K
}
RDA5981AM
Код:
MEMORY
{
    /* If ICache is enable, use virtual flash base address */
    /* Use partition index: 0 */
    FLASH (rx)      : ORIGIN = 0x18001000, LENGTH = 500K
    /* Use partition index: 1 */
    /* FLASH (rx)      : ORIGIN = 0x1807E000, LENGTH = 500K */

    /* If ICache is disable, use real flash base address. Depends on macro: RDA_ICACHE_DISABLE */
    /* Use partition index: 0 */
    /* FLASH (rx)      : ORIGIN = 0x14001000, LENGTH = 500K */
    /* Use partition index: 1 */
    /* FLASH (rx)      : ORIGIN = 0x1407E000, LENGTH = 500K */

    IRAM (rwx)      : ORIGIN = 0x00100080, LENGTH = (128K - 0x80)
    DRAM (rwx)      : ORIGIN = 0x00180000, LENGTH = 96K
    MACLIB_RAM(rwx) : ORIGIN = 0x40100000, LENGTH = 99K
    AES_RAM(rwx)    : ORIGIN = 0x40118C00, LENGTH = 1K
    WLAN_RAM(rwx)   : ORIGIN = 0x40119000, LENGTH = 28K
}
RDA5981C
Код:
MEMORY
{
    /* If ICache is enable, use virtual flash base address */
    /* Use partition index: 0 */
    FLASH (rx)      : ORIGIN = 0x18001000, LENGTH = 2000K
    /* Use partition index: 1 */
    /* FLASH (rx)      : ORIGIN = 0x181F5000, LENGTH = 2000K */

    /* If ICache is disable, use real flash base address. Depends on macro: RDA_ICACHE_DISABLE */
    /* Use partition index: 0 */
    /* FLASH (rx)      : ORIGIN = 0x14001000, LENGTH = 2000K */
    /* Use partition index: 1 */
    /* FLASH (rx)      : ORIGIN = 0x141F5000, LENGTH = 2000K */

    IRAM (rwx)      : ORIGIN = 0x00100080, LENGTH = (128K - 0x80)
    DRAM (rwx)      : ORIGIN = 0x00180000, LENGTH = 160K
    MACLIB_RAM(rwx) : ORIGIN = 0x40100000, LENGTH = 99K
    AES_RAM(rwx)    : ORIGIN = 0x40118C00, LENGTH = 1K
    WLAN_RAM(rwx)   : ORIGIN = 0x40119000, LENGTH = 28K
}
 
Последнее редактирование:

pvvx

Активный участник сообщества
Не совсем понял, причем тут embed мигание светодиода и работа lwip без os,
MBED - это операционная система для которой написаны данные либы.
MBED, как среда разработки и система не сильно отличается от Arduino и рассчитана на быстрое освоение пользователем "миганием светодиода". На более сложные проекты расчет не ведется. Для набора стандартных решений в данной среде и для совместимости к ней и собрана либа.
ровно как и "закрытые либы" к SWD
При закрытом коде смысл отладки отпадает. Залить код в чип проще через UART.
 

A_D

Active member
Где купить:
SDK:
 

kissste

Member
Support in zephyr - Arm: Add soc support for rda5981a by liliu-l · Pull Request #133 · zephyrproject-rtos/zephyr

96Boards -
New 96Boards IoT Edition Boards Showcased at Linaro Connect 2017: BlueSky IE and WRTNode IE
The first board is BlueSky IE board with the following key specifications:

  • SoC – RDA Micro RDA5981A ARM Cortex-M4 Wireless MCU with 64KB ROM, and 32KB cache
  • System Memory – 485KB SRAM. It’s unclear if that’s only the on-chip SRAM, and there’s also some external PSRAM added.
  • Storage – 8Mb NOR flash 802.11 b / g / n HT20 / 40 mode
  • Connectivity – 802.11 b/g/n WiFi with support for HT20 / 40 modes
  • Crypto security hardware
 

pvvx

Активный участник сообщества
Кто уже пробовал или сделал что на USB у RDA5981?
Или так ничего и нет по USB?
 

kissste

Member
IMG_20180316_173505.jpg
I have received some RDA5981A at baud rate 921600 8,N,1 it does this:

RDA Wlan Boot ROM for RDA5991H v1.0
Build Time: 07:20:54 - Jan 24 2017
RDA Microelectronics Copyright(C) 2004-2017

Enter Mcu Mode
count_left=5
count_left=4
count_left=3
count_left=2
count_left=1
Ready to boot...
Partition addr:4010901c
Find newest partition index:0, total:1, buf_addr:0x00100000, size:0x00000138
Partition[0] info
flag:00000001, version:rda5991h
p_address:00001000, r_address:00001000, psize_in_bytes:0x0007b000, dsize_in_bytes:503808
## START_FLASH_BOOT, pc is 0x18001091 ...

AT INIT OK!
 
Последнее редактирование:

kissste

Member
USB: It is something that I would like to explore too. Have seen:
1/ a pdf in Chinese and bin file to upload to the soc.
2/ on the internet that to do USB requires a licensed library/compiler (or take a look what that bin file above does)

Another thing, Debugging: remote debugging is something
 

kissste

Member
I have taken a look at Dump Tool.

It enters into Mcu Mode by sending \r at the boot time and then once it gets 'Boot >'

and then a whole new set of commands become available.

'help' does not work.

Boot >help
Unknown command 'help' - try 'help'

This is used for dumping data
Boot >md
Usage:
md [.b, .w, .l] address [# of objects]
- Memory Display

Boot >md 0 100
0000-0000: 40110800 0000B0B1 000013C7 0000B0FD ...@▒▒..▒...▒..
0000-0010: 0000B10F 0000B121 0000B133 0000B145 .▒..!▒..3▒..E▒..
0000-0020: 0000B145 0000B145 0000B145 0000B157 E▒..E▒..E▒..W▒..
0000-0030: 0000B169 0000B145 0000B17B 0000183B i▒..E▒..{▒..;...
0000-0040: 0000B18F 0000B18F 00005B97 00006331 .▒...▒...[..1c..
0000-0050: 00006DFD 0000B18F 00002565 00001B03 ▒m...▒..e%......
0000-0060: 0000B18F 0000B18F 0000B18F 0000B18F .▒...▒...▒...▒..
0000-0070: 0000B18F 0000B18F 0000B18F 0000B18F .▒...▒...▒...▒..
0000-0080: 8009F3EF F3804770 47708809 8008F3EF ▒▒..pG.▒..pG▒▒..
0000-0090: F3804770 47708808 4770BA40 4770BAC0 pG.▒..pG@▒pG▒pG
0000-00A0: 8F2FF3BF 8011F3EF F3804770 47708811 ▒▒/.▒▒..pG.▒..pG
0000-00B0: 8010F3EF F3804770 47708810 8013F3EF ▒▒..pG.▒..pG▒▒..
0000-00C0: F3804770 47708813 8014F3EF F3804770 pG.▒..pG▒▒..pG.▒
0000-00D0: 47708814 88004881 0000F3C0 487F4770 ..pG.H..▒▒..pG.H
0000-00E0: F3C08800 47700040 8800487C 0080F3C0 ..▒▒@.pG|H..▒▒..
0000-00F0: 487A4770 F3C08800 477000C0 88004877 pGzH..▒▒▒.pGwH..

I have not checked, but I think loadx/loady - xmodem/ymodem is used to send the data and then flash to write them to the flash

Boot >flash
Usage:
flash
- flash - update flash 4KB partition info
1:param load
2:data load
3:write flash
4:index select
5:set param - flag size newest_index p_num buf_addr
6:set partition - flag version p_addr r_addr p_size d_size
7:flash erase - addr sizCommand handler do not well, ret = -1


Boot >dbga
Debug Area(0x3B):
HOST SDIO MSG TMR IRQ

Boot >uploadb
Usage:
uploadb addr len - upload binary data over console from 'addr' with 'len'
- Upload binary data over console

Boot >loadb
Usage:
loadb addr len - load binary data over console from 'addr' with 'len'
- Load binary data over console

Boot >sd
Usage:
sd addr [value]
- Get/Set SD register

Boot >trace
Trace : Enable
Show DBGL: Enable
Show Time: Enable
Show DBGA: Enable

Boot >dbgl
Debug Level(2): Warn

Boot >stackchk
Stack checking...
P stack total size: 2048Byte, usage: 0Byte == %0
M stack total size: 14336Byte, usage: 664Byte == %4

Boot >mm
Usage:
mm [.b, .w, .l] dest_addr src_addr length
- Memory Move

Boot >checksum
Usage:
checksum type addr len - CRC 1, SHA1 2, MD5 3 CRC_DMA 4
- Calculate Checksum from 'addr' with 'len'

Boot >flashinfo
Partition addr:40100800
Find newest partition index:0, total:1, buf_addr:0x00100000, size:0x00000138
Partition[0] info
flag:00000001, version:rda5991h
p_address:00001000, r_address:00001000, psize_in_bytes:0x0007b000, dsize_in_bytes:503808

Boot >go
Usage:
go type addr - Auto 1, Custom 2
- start application at 'addr' with different type

Boot >usbstat
State: Default, Speed: ???, Addr: 0, Remote Wakeup: Disable
Boot >hoststat
Host curr interface: , buffer base: 0x40101000, size: 2048, num: 16
interface: un-ready, used buff: 0

Boot >decrypt
Usage:
decrypt type addr len - RC4 1, AES 2
- Decrypt from 'addr' with 'len'

Boot >flashtest
enter spi_flash_init
writedata == 12ab34cd
writedata == a30c6cee
writedata == 72b1df11
writedata == 8b467885
writedata == fc715f61
writedata == 7d8e0fc0
writedata == e552e7cf
writedata == aa02579f
writedata == dfddf53f
writedata == ee650189
140fe000 == 12ab34cd
140fe004 == a30c6cee
140fe008 == 72b1df11
140fe00c == 8b467885
140fe010 == fc715f61
140fe014 == 7d8e0fc0
140fe018 == e552e7cf
140fe01c == aa02579f
140fe020 == dfddf53f
140fe024 == ee650189

Boot >mw
Usage:
mw [.b, .w, .l] address value [count]
- Memory Write(fill)

Boot >loadx
## Ready for binary (xmodem) download to 0x18001000 at 921600 bps...
CC

Boot >loady
## Ready for binary (ymodem) download to 0x18001000 at 921600 bps...
CCCCCCCCCCTimed out
xyzModem - Cksum mode, 0(SOH)/0(STX)/0(CAN) packets, 20 retries
## Total Size = 0x00000000 = 0 Bytes

An example of a crash:
#E MemManage_Handler
[Hard Faults Report - all numbers in hex]
R0 = 0x40110800
R1 = 0x0000b0b1
R2 = 0x000013c7
R3 = 0x0000b0fd
R12 = 0x0000b10f
LR [R14] = 0x0000b121
PC [R15] = 0x0000b133
PSR = 0x0000b145
PRIMASK = 0, IRQ:Enable
FAULTMASK = 0x00000000
BASEPRI = 0x00000000
CONTROL = 0x00000000
BFAR = 0xe000ed38
CFSR = 0x00000000
HFSR = 0x00000000
DFSR = 0x00000000
AFSR = 0x00000000
SCB_SHCSR = 0x00070000


[Detail report]
APSR Flags: nzcv
ProcStack:0x00000000 MainStack:0x40110760

Memory Manage Faults
MM_FAULT_STAT:0x00
IACCVIOL:0x00 IACCVIOL:0x00
MUNSTKERR:0x00 MSTKERR:0x00
MLSPERR:0x00 MMARVALID:0x00
Bus Faults
BUS_FAULT_STAT:0x00
IBUSERR:0x00 PRECISERR:0x00
IMPRECISERR:0x00 UNSTKERR:0x00
STKERR:0x00 LSPERR:0x00
BFARVALID:0x00
Usage Faults
USG_FAULT_STAT:0x00
UNDEFINSTR:0x00 INVSTATE:0x00
INVPC:0x00 UFSR.NOCP:0x00
UNALIGNED:0x00 DIVBYZERO:0x00

[Report done]
Panic...
 

kissste

Member
Based on what I seen so far, shouldn't be a problem rewriting these tools in Python.

Next Flash Tool.

Open port...
==============================
Running...
Waiting for plug in...
Find new device!
Prepare partiton...
15% done!
30% done!
45% done!
60% done!
70% done!
80% done!
90% done!
100% done!
Send XModem...
[Recieve: 0x06]
[Send Packet: 1/49]
[Recieve: 0x06]
[Send Packet: 2/49]
[Recieve: 0x06]
.....
[Recieve: 0x06]
[Send Packet: 49/49]
Send Xmodem done!
Verify...
Verify done.
 

pvvx

Активный участник сообщества
на RDA5981 есть модуль HLK-M50 цена на тао 110 руб.
Пока нету у производителя такого модуля как HLK-M50. uart wifi;uart wifi module;serial wifi module;serial wifi;wifi control module;power module;rs232 wifi module,wifi module
Так-же его нет в "опте" у других продавцов, а указано только "new".
Может это пока только пробная партия, для разведки рынка... "Ждите заказа" называется?
 
Последнее редактирование:

pvvx

Активный участник сообщества
это плохой магазин
Посмотреть вложение 6009
Доставка транспортной компанией и то дешевле рублей на 300.
Там описаны варианты, на той-же странице, но ниже. Магазин тут не при чем - вы спрашивали сколько, там это и указано с вариантами.
Вы всегда выбираете самый худший. :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
На ElectroDragon | Millions of Prototyping Components Online! один модуль
upload_2018-3-19_19-42-37.png
Ну вот скажите, откуда Вы решили что я придумываю и такаю в рекламу?
почему бы вам сначала просто не спросить меня об источнике моей информации?
что именно вас смущает в моей информации?
О какой рекламе Вы говорите?
то что я выше поместил - это я взял с сайта - там есть расчет.
если это реклама сайта - то им же хуже.
Вам привел пример почему.
 
Сверху Снизу