Forum: Mikrocontroller und Digitale Elektronik RK3506 Cortex-M0 Entwicklung


von Viktor N. (viktor_n)


Lesenswert?

Hallo,

Ich habe schon viele unterschiedliche Mikrocontroller (STM32, ATSAM, 
NXP) programmiert, habe ich auch große Sammlung Zuhause.

Aber diese Single-Chip Linux Welt hat eine andere Tür geöffnet.
z.B. Den Milk-V Duo (CV1800B-SG200x MCU) kann man einerseits bare-metal 
wie Mikrokontroller programmieren, und gleichzeitig daneben Linux  für 
Storage oder Connectivity laufen lassen. (Ich habe schon ein Data-Logger 
Projekt auf Milk-V Duo basis.) Der Milk-V Duo mit Ethernet braucht nur 
60 mA, weniger als viele Cortex-M7 Mikrokontroller. Und es ist sehr 
billig auch.

Ähnlich zu Milk-V Duo (oder Lichee RV Nano) ist der Luckfox Pico (und 
seine Variante) mit dem Rockchip RV1103/RV1106 Single Chip Linux. Aber 
der hatte keine richtige SW support oder MCU Manual.
(Die HW Reference ist schon erreichbar, aber erst viel Jahre später)
Der RV1106 ist nicht besonders besser als the SG2002, und ohne 
dokumentation hat mich es nicht interessiert.

Seit paar Monate gibt aber der Luckfox Lyra Serie. Diese nutzen den 
Rockchip RK3506 Mikrokontroller. Der RK3506G2 hat intern:
 - 128 MB RAM
 - 3 x ARM Cortex A7 @ 1.2 GHz (?)
 - 1 x Cortex-M0 @ 200 MHz, mit 48 k dedizierten SRAM
 - Flexible IO Matrix ( = fast jeder pin kann alles)
 - Bessere Periferien als der SG200x

Obwohl keinen Reference Manual erreichbar war, habe ich einen Luckfox 
Lyra Plus gekauft (für 17 EUR von amazon.de). (Idle Strom hier ist auch 
sehr niedrig, gegen 80 mA. Beim starten habe ich 110 mA gesehen.) Auf 
Papier ist es viel besser als der SG200x (in Milk-V Duo). Aber mir wäre 
wichtig den Cortex-M0 Core nutzen können, z.B um einen External SPI ADC 
zu treiben.

Ich habe ziemlich viel Zeit investiert um für den RK3506 einen guten 
Linux und Entwicklungsumgebung zu haben. Meinen eigenen Kernel mit Yocto 
Linux bootet in 5 Sekunden.

Ich habe angefangen ein Linux Remote Processor Kernel Modul für den 
Cortex-M0 Kern von RK3506 zu entwickeln. Es sind alle wichtige teile da, 
aber leider der M0 Kern startet immer noch nicht. Seit paar Wochen einen 
Reference Manual auch erreichbar, aber damit konnte ich auch nicht 
weiter kommen.

Ich habe ein Projekt auf github kreirt, was alles nötige enthaltet, 
beschreibt:

   https://github.com/nvitya/rk3506-mcu

Ich suche hilfe, vielleich könnte jemand von euch mir dabei helfen.
Alle Infos sind auf dem github Projekt Page.

Wenn das funktionieren würde, hatten wir einen sehr universellen Hybrid 
Mikrokontroller und ich werde dann wahrscheinlich beispiele publizieren.

lg.
nvitya

von Harald K. (kirnbichler)


Lesenswert?

QFN128. Immerhin, kein BGA. Und kann man sich von jlcpcb auch gleich 
bestücken lassen.

Aber "kein Reference Manual verfügbar"? Möchte man wirklich Zeit in so 
etwas versenken?

von Vanye R. (vanye_rijan)


Lesenswert?

Die Hauptfrage ist wohl eher wofuer man so ein Monster ganz genau 
braucht. Den so eine krasse Stromaufnahme von 80mA und eine Bootzeit von 
5s mache das Teil ja fuer die meisten kleinen Anwendungen unbrauchbar. 
Das muss einem schon was spezielles vorschweben wofuer man z.B die 
Netzwerkfaehigkeiten von Linux braucht.

Vanye

von Viktor N. (viktor_n)


Lesenswert?

Datasheet und reference manual:

https://github.com/DeciHD/rockchip_docs/tree/main/rk3506

Jemand hat geschafft auf den RV1106 (Luckfox Pico Max) den RV32I Core 
ins Lauf zu bringen:

https://github.com/luyi1888/rv1106-mcu

Also ich denke, hier nur ein wenig fehlt. Mit dem kernel module ich kann 
diese Trusted Firmware auch aufrufen.

Wenn der rk3506 funktioniert, vielleicht kaufe ich einen RV1106 und 
ajdustire den remote processor treiber für diesen auch. Aber der RK3506 
ist viel besser für mich.

Beim CV1800/SG2002 (Milk-V Duo) funktioniert schon alles.

So einfach ist soeinen MCU zu einsetzen aber nicht.
Die brauchen:
 - SDCARD oder NAND Flash (für das booten)
 - 1.8 V Versorgung
 - 1.35 V Versorgung
 - 0.9 V Versorgung

Schematics für Milk-V Duo:
https://github.com/milkv-duo/duo-files/tree/main/duo/hardware

Aber man kann das Modul einsetzen, wie ich das gemacht habe.

Für den Milk-V Duo gibt auch Arduino library!
Der Linux kern lauft mit Linux und den RT Kern kann man mit Arduino 
programmieren.

Wenn jemand diesen welt nicht kennt, dann empfehle ich den Milk-V Duos 
anzuschauen (besser den Milk-V Duo 256).
Datentausch zwischen die zwei kerne einfach über Shared Memory, das 
Messagebox ist nicht unbedingt notwendig.

von Viktor N. (viktor_n)


Lesenswert?

Unseren ganz konkreten Applikation war das ein Netz / Verbrauch monitor.
Extenen SPI ADC + risige Daten zu speichern.

Erstmal haben wir mit einem IMXRT versucht.
Die SD-Karte und USB Storage Treiber von NXP waren Instabil, also wir 
haben auf Linux wechselt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.