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

New 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

New 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

New 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

New 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

New 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
Ну вот скажите, откуда Вы решили что я придумываю и такаю в рекламу?
почему бы вам сначала просто не спросить меня об источнике моей информации?
что именно вас смущает в моей информации?
О какой рекламе Вы говорите?
то что я выше поместил - это я взял с сайта - там есть расчет.
если это реклама сайта - то им же хуже.
Вам привел пример почему.
 
Сверху Снизу