News Arduino Uno R4 im Handel erhältlich


von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Angehängte Dateien:

Lesenswert?

Nach einer längeren “Vaporware”- bzw. Vorankündigungsphase steht die vierte Generation des Arduino-Evergreens Arduino R4 in gleich zwei Varianten im Arduino Store zur Verfügung. Was Arduino Uno R4 Minima und Uno R4 WiFi von den Vorgängern unterscheidet, klärt dieser Artikel.

Bildquelle: https://store.arduino.cc/pages/uno-r4

32bit-Rechenleistung, 5V-Kompatibilität

Auf Prerelease-Fotos waren sowohl der Formfaktor als auch die genaue Seriennummer des am Uno R4 verwendeten Prozessors durch ein gelbes Post-It kaschiert – im Rahmen der Freischaltung der Store Listings findet sich die in der Abbildung gezeigte Detailbeschreibung.

Bildquelle: Arduino

Arduino entschied sich für den RA4M1 – eine auf einem Cortex M4-Kern samt FPU basierende MCU, die Renesas wie in der Abbildung beschreibt.

Bildquelle, lesenswert: https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra4m1-32-bit-microcontrollers-48mhz-arm-cortex-m4-and-lcd-controller-and-cap-touch-hmi

Neben der wesentlich höheren Rechenleistung erfuhr auch der Rest des GPIO-Komplements eine Erweiterung: wie viel davon in praktischen Arduino-Platinen zur Verfügung steht, ist naturgemäß vom PCB-Layout des jeweiligen Boards abhängig. Durch die Bank steht nun allerdings eine Maximaltaktrate von 48 MHz zur Verfügung, der Flashspeicher ist nun 256KB groß. Das RAM ist 32KB groß.

Arduino Uno R4 Minima – preiswert, mit ISCP-Connector

Beim unter https://store.arduino.cc/products/uno-r4-minima um 18 EUR erhältlichen Arduino Uno R4 Minima setzt Arduino im Allgemeinen auf bekannte Kost: neu ist erstens ein erweiterter Versorgungsspannungsbereich von bis zu 24V und zweitens ein ISCP-Connector, der das direkte Debugging des am Rechners laufenden Codes erlaubt.

Bildquelle: Arduino

Wohl aufgrund dem Druck aus Richtung des DeviceScript-Ökosystems betont Arduino außerdem die HID-Fähigkeiten des neuen Boards:

1
HID support: The UNO R4 Minima comes with built-in HID (Human Interface Device) support, enabling it to simulate a mouse or keyboard when connected to a computer via a USB cable. This convenient feature makes it a breeze to send keystrokes and mouse movements to a computer, enhancing usability and functionality.

Zu guter Letzt findet sich im unter https://docs.arduino.cc/resources/datasheets/ABX00080-datasheet.pdf bereitstehenden Datenblatt eine Tabelle mit weiteren Pinout-Daten.

Bildquelle: Arduino

Arduino Uno R4 WiFi – mit ESP32 und LED-Matrix

Unter https://store.arduino.cc/products/uno-r4-wifi wechselt die größere Variante um 25 EUR den Besitzer. Neben einem auf einem ESP32-S3 basierenden Funkmodul bringt sie eine LED-Matrix (12x8 rote LEDs) mit.

Bildquelle: Arduino

Bei sorgfältiger Betrachtung fällt ein QWIIC-Interface auf, das einen weiteren I2C-Bus in einem im Makerbereich populären Format exponiert. Insbesondere für Quereinsteiger dürfte der WiFI-Fehleranzeiger hilfreich sein, der nach folgendem Schema beschrieben wird:

1
Diagnostics for runtime errors: The UNO R4 WiFi includes an error-catching mechanism that detects runtime crashes and provides detailed explanations and hints about the code line causing the crash.

Kompatibilität: 5V ist nicht alles

Obwohl der verwendete Controller 5V-fähig ist, gilt, dass er naturgemäß mit AVR-Assembly nichts anzufangen weiss. In den Storeseiten warnen die Arduinoentwickler davor explizit:

1
Can I use my sketch developed for the UNO R3 in the UNO R4?
2
Yes, if your sketch was developed using the Arduino API. In case you are using instructions only available for the AVR architecture, some changes need to be made to ensure compatibility.
3
Are all libraries compatible with the UNO R3 also compatible with the UNO R4 WiFi?
4
No, some UNO R3 libraries use instructions of the AVR architecture that are not compatible with the architecture of the UNO R4 WiFi, however there are libraries that have already been ported as part of our early adopters program or are based on the Arduino API. 

: Bearbeitet durch NewsPoster
von Rudolph R. (rudolph)


Lesenswert?

Hier findet man Schaltplan und Layout als Altium Designer Projekt:
https://docs.arduino.cc/hardware/uno-r4-minima

von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Lesenswert?

Rudolph R. schrieb:
> Hier findet man Schaltplan und Layout als Altium Designer Projekt:
> https://docs.arduino.cc/hardware/uno-r4-minima

Danke dir!

von Falk B. (falk)


Lesenswert?

Naja, ganz nett, aber irgendwie nicht so ganz der große Wurf. Es gibt 
seit langer Zeit schon Arduinos basierend auf anderen CPUs, die kleiner 
und leistungsfähiger sind. Die vermurksten Pinabstände sind immer noch 
da. Ein 24V Eingang mit Schaltregler ist gut, aber für den Einsatz an 
echten 24V Systemen im industriellen Umfeld zu wenig, da braucht es 
schon wenigsten 30V maximale Eingangsspannung. Und zu guter Letzt ist 
das Konzept der Buchsenleisten auch nicht so dolle. Denn damit kann man 
zwar leicht ein paar Widerstände, LEDs oder auch Testkabel dort 
reinstecken, aber auf einer Anwenderplatine kann man das Ding nur eher 
schlecht aufstecken, bestenfalls kopfüber. Ein Formfaktor wie der 
Arduino Nano ist da deutlich besser, sei es für Lochraster, Steckbrett 
oder geätzte Platine.

von Wastl (hartundweichware)


Lesenswert?

Tam H. schrieb:
> Arduino entschied sich für den RA4M1 – eine auf einem Cortex M4-Kern
> samt FPU basierende MCU, die Renesas wie in der Abbildung beschreibt.

Wenn es denn von Renesas eine vernünftige kostenlose IDE gäbe
(gibt es die?) dann konnte man mit diesem Arduino abseits der
von mir nicht gerade geliebten IDE und deren APIs mal mit einem
ARM-Prozessor arbeiten der nicht von STM und Atmel ist. Und
in der Praxis sehen welche Vorteile und/oder Nachteile es gibt.

: Bearbeitet durch User
von Martin S. (sirnails)


Lesenswert?

Wastl schrieb:
> ARM-Prozessor arbeiten der nicht von STM und Atmel ist

Gibt es da überhaupt signifikante Unterschiede? Der Kern ist ja 
lizenziert. Nur die Peripherie ist anders.

von Harry R. (harry_r2)


Lesenswert?

Hurra, eine RTC.....deren "VBATT"-Pin (4) (laut deren 3D-Viewer) 
unter(!) dem IC fest mit VCC verdrahtet ist, damit man es bloß nicht mit 
einer Knopfzelle als echte RTC nutzen kann. Hätte nicht gedacht, dass 
Lötjumper so teuer sind.

von Marc X. (marc_x)


Lesenswert?

Martin S. schrieb:
> Wastl schrieb:
>> ARM-Prozessor arbeiten der nicht von STM und Atmel ist
>
> Gibt es da überhaupt signifikante Unterschiede? Der Kern ist ja
> lizenziert. Nur die Peripherie ist anders.


Das Ecosystem drumherum ist aber ein anderes, STMicro bietet eine eigene 
IDE mit Startup-Konfigurator, viel Doku und Beispiele und eine 
brauchbare HAL an, bei anderen Herstellern ist es da schon düsterer, hab 
vor einiger Zeit mit einem Cortex M0 eines anderen Herstellers 
gearbeitet, Doku nahezu nicht vorhanden und als IDE wird nur Keil 
unterstützt und das auch nur mit Templates für die V4, alleine für die 
letzten Keil V5 releases musste man ein V4 Legacy Pack und eine ältere 
Version des ARM Compilers installieren.

von Harry R. (harry_r2)


Lesenswert?

Harry R. schrieb:
> Hurra, eine RTC.....deren "VBATT"-Pin

Zu deren Ehrenrettung bzw. Umsatzförderung sei gesagt, dass dies nur bei 
der "billigen" Version so ist. R4 Wifi hat einen Pin für VBatt.

von Joachim B. (jar)


Lesenswert?

ISCP

was stimmt denn nun Platinendruck oder Beschreibung?
ISPC <-> IPSC

von Jens M. (schuchkleisser)


Lesenswert?

ICSP = In-Circuit Serial Programming

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Joachim B. schrieb:
> was stimmt denn nun Platinendruck oder Beschreibung?

Vermutlich beides falsch!

Die 6 Polige Stiftleiste ist sicherlich SPI (ohne /CS), wie es z.B. vom 
Ethernet Shield und manchen LCDs erwartet wird.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

was bei solchen potenten Controllern immer wieder Schade ist, dass 
Arduino auf den alten Formfaktor beharrt. In der Minima Version bleiben 
viele Pins ungenutzt. Ist schon beim Every so richtig aufgefallen. Auch 
wenn man da was mit dem Eventsystem machen kann, kann man doch nicht 
alles zu gleich nutzen. Sowas müßte auf den Mega2560 Formfaktor oder der 
Mut zu einem längeren Nano Formfaktor.

Ein Nachteil aller ARMs - der geringe IO Pin Strom. ;-) Warum 
eigentlich? Die beim Renesas angegeben 8mA sind da schon sehr hoch im 
Vergleich zu anderen mit nur 4mA oder gar nur 2mA.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Veit D. schrieb:
> der geringe IO Pin Strom. ;-) Warum
> eigentlich?

Weil er in den meisten Fällen ausreicht. Selbst wenn man LEDs direkt 
daran anschließt; denn anders, als manch einer denkt, leuchten LEDs auch 
dann sichtbar, wenn man weniger als 20 mA durch sie fließen lässt.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

es geht doch nicht immer nur um Leds. Das ist meine geringste Sorge. Für 
einen mittelmäßigen Transistor wird es schon eng.
Ganz konkret gefragt. Wenn ein ARM Controller irgendwelche 
Leistungssachen schalten soll, werden da immer gleich sowas wie fertige 
High-Side Switche oder ähnliches angeschlossen? Ein direkt 
angeschlossenen Mosfet kann man ja mit üblichen 4mA nicht vernünftig 
schnell schalten. Das ist schon mit 20mA grenzwertig nur reicht das fürs 
"basteln". Aber mit 20mA kann ich eine Treiberstufe vernünftig 
dazwischen schalten dann klappt auch mehr.
Wie sieht das Konzept mit ARM Controllern aus? Da muss es ja was geben 
sonst wären die nicht in Steuerungen verbaut. Kurzum ich hätte gern die 
Tür durch den Tellerrand.  :-)

von Rudolph R. (rudolph)


Lesenswert?

Ich wollte das Layout heute morgen nicht spontan bewerten und das mache 
ich jetzt auch lieber nicht, das fällt unfreundlich aus.
Wobei ich mir gerade nur den "MINIMA" anschaue.

Dann lieber richtige Infos, wenn man eine robust designete Platine 
braucht ist ein Arduino ohnehin nicht die richtige Wahl.

Zum Debuggen ist da ein SWD Anschluss drauf, eine 10pol Stitftleiste mit 
1,27mm Raster, so ähnlich wie der ARM Standard das vorgibt mit SWDIO, 
SWCLK, Reset, VCC und GND.
Leider liegt SWO nicht mit auf dem Stecker, der Pin wurde für die SPI 
Schnittstelle verwendet.
Detail, im Schaltplan steht MISO und MOSI, im kunterbunten Pinout heißen 
die aber CIPOB und COPIB - kein Kommentar.

Am SWD Stecker sind zwei "fremde" Signale, eine zusätzliche serielle 
Schnittstelle, 7 = RXD, 8 = TXD.
Diese Pins vom Controller sind sonst nirgendwo angeschlossen.

Es ist ein 16MHz Quarz verbaut.

An den Analog Pins vermisse ich Kondensatoren, so wenigstens 10nF hätte 
was.

Versorgt wird der verbaute RA4M1 mit 5V.

Und jetzt erstmal schauen wo man so ein Ding her bekommt und wie die 
Software dazu aussieht...

Edit:
Ich weiß nicht, ob das hier schon mal erwähnt wurde:
https://github.com/arduino/ArduinoCore-renesas

: Bearbeitet durch User
von Marc X. (marc_x)


Lesenswert?

Veit D. schrieb:
> Hallo,
>
> was bei solchen potenten Controllern immer wieder Schade ist, dass
> Arduino auf den alten Formfaktor beharrt.

Naja das Teil wird als Uno R4 vermarktet, da erwarte ich, das es 
weitestgehend ähnlich zum R3 ist. Außerdem bleibt das Teil damit 
kompatibel zu vielen anderen Produkten wie Shields und Gehäusen.

Zudem würde ich den Cortex M4 mit 48MHz nicht als sonderlich potent 
bezeichnen, ich denke es ist ein sinnvoller Nachfolger zum leicht 
betagten ATmega und erfüllt seine Anforderungen, wenn man mehr Leistung 
braucht findet man auch aus dem Hause Arduino leistungsfähigere Boards. 
Um als Einsteiger ein bisschen mit Mikrocontrollern rumzuspielen ist der 
Uno (R4) völlig ausreichend und die ursprüngliche Zielgruppe von Arduino 
waren keine Elektronikbastler, sondern Leute die mit Mikrocontrollern 
eher weniger Berührungspunkte haben, die Arduino IDE und deren 
Bibliotheken sollen einen einfachen Einstieg ermöglichen ohne sich im 
Detail mit Mikrocontrollern auszukennen. Deshalb wird Arduino auch oft 
als Spielzeug bezeichnet, es ist auch korrekt das man natürlich die 
Boards auch mit der Hersteller IDE programmieren kann, wer aber diesen 
Punkt erreicht hat, dem ist es in der Regel egal ob das Ding von Arduino 
kommt oder ob es ein offizielles Evaluation Board ist, der primäre Grund 
auf die Arduino Hardware zu setzen, ist dann nur noch die gute 
Verfügbarkeit und der niedrige Preis für die Nachbauten.

von Manfred P. (pruckelfred)


Lesenswert?

Marc X. schrieb:
> Naja das Teil wird als Uno R4 vermarktet, da erwarte ich, das es
> weitestgehend ähnlich zum R3 ist. Außerdem bleibt das Teil damit
> kompatibel zu vielen anderen Produkten wie Shields und Gehäusen.

Na toll, da wird die windige Hardware "Shield" draufpassen, aber keine 
der Arduino-üblichen Libraries mehr funktionieren.

Wir freuen uns schon auf die nächsten Threads "Fehlermeldungen beim 
Compilieren für A*UNO". Nach 25 Posts kommt dann Salamischeibe Nummer 
zwei "ich habe xyz von Adafruit verwendet" und als Scheibe drei "Es ist 
ein R4".

Und wie falk schon schrieb: Formfaktor und vermurkste Pinabstände. Wer 
mehr als nur auf dem Steckbrettchen spielen will, macht einen Bogen um 
die UNOs.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Manfred P. schrieb:
> aber keine
> der Arduino-üblichen Libraries mehr funktionieren.
Ich denke da täuscht du dich!

Sicher werden ein paar Hardwarespezifische erweitert werden müssen.
Aber das meiste läuft aus dem Stand.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Rudolph R. schrieb:

> An den Analog Pins vermisse ich Kondensatoren, so wenigstens 10nF hätte
> was.

Das kann man entkräften. Die Pins sind unterschiedlich verwendbar, dabei 
könnten fest verbaute Kondensatoren stören.

Reichelt hat sie übrigens lieferbar.

von Christoph M. (mchris)


Lesenswert?

Falk schrieb
>Die vermurksten Pinabstände sind immer noch da.

Die werden auch nie mehr verschwinden, da ca. 5 Trillionen 
Arduino-Shields auf diese Abstände ausgelegt sind. Es ist sozusagen das 
spezielle "Aleinstellungsmerkmal" des Arduino Anschlusses.

Wastl schrieb:
>Wenn es denn von Renesas eine vernünftige kostenlose IDE gäbe
>(gibt es die?) dann konnte man mit diesem Arduino abseits der
>von mir nicht gerade geliebten IDE und deren APIs mal mit einem
>ARM-Prozessor arbeiten der nicht von STM und Atmel ist. Und
>in der Praxis sehen welche Vorteile und/oder Nachteile es gibt.

Was spricht gegen die Verwendung von PlatformIO? Die unterstützen das 
Arduino-Framework und ziemlich viele Prozessoren. Sämtliche STM32-Nucleo 
und Discover Boards werden unterstützt. Ob die Renesas schon drinn sind, 
weiß ich nicht, wird aber sicher so passieren.

von Rudolph R. (rudolph)


Lesenswert?

Veit D. schrieb:
> Rudolph R. schrieb:
>
>> An den Analog Pins vermisse ich Kondensatoren, so wenigstens 10nF hätte
>> was.
>
> Das kann man entkräften. Die Pins sind unterschiedlich verwendbar, dabei
> könnten fest verbaute Kondensatoren stören.

Dann hat man halt Analog Pins die für andere Dinge Limits haben statt 
"Analog Pins" die analog schlechter funktionieren als sie müssten.
Nun, ist so.

> Reichelt hat sie übrigens lieferbar.

Bei Reichelt habe ich einen bestellt.
TME hat die übrigens auch, Watterott hat die auch schon im Shop.

Reichelt hat nur scheinbar eine seltsame Vorstellung davon was lieferbar 
bedeutet, ich bin gespannt wann das Ding hier ist.

Christoph M. schrieb:
> Was spricht gegen die Verwendung von PlatformIO?

Das man den mit PlatformIO noch nicht verwenden kann, mir wäre das auch 
lieber aber so habe ich gestern als ersten Test meine Library mit der 
Arduino "IDE" 1.8.19 compiliert.
Und zumindest hat mein Test Projekt direkt compiliert.

> Die unterstützen das Arduino-Framework und ziemlich viele Prozessoren.

Ja, schon, tolle Sache, vor allem schreibt man in die Config was man 
benutzen möchte und das wird installiert.

> Sämtliche STM32-Nucleo und Discover Boards werden unterstützt.

Nein, werden sie nicht.
Ich habe hier schon länger ein Nucleo-Co31C6 liegen das nicht 
unterstützt wird und der Support für das Nucleo-H503RB das hier auch 
liegt wird sich wohl auch noch hin ziehen.

Leider ist es nicht damit getan ein Board-File zu erstellen, das bekomme 
ich noch selber hin.
Aber wie man ein Package aufsetzt oder gar ein Framework, so weit bin 
ich da noch nicht vorgedrungen.

> Ob die Renesas schon drinn sind,
> weiß ich nicht, wird aber sicher so passieren.

Sind sie nicht, von Renesas ist ohnehin kaum was in PlatformIO.
Und dann wird es wohl eher keine Bare-Metal / CMSIS Unterstützung geben, 
sondern "nur" Arduino wie bei Atmel SAM oder RP2040.
Die greifen sich im wesentlichen den fertigen Arduino Core und machen da 
ein Paket draus.

von Christoph M. (mchris)


Lesenswert?

>Die greifen sich im wesentlichen den fertigen Arduino Core und machen da
>ein Paket draus.

Und warum sollten sie das nicht für den Renesas-Arduino-Core tun?

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Rudolph R. schrieb:
> Leider ist es nicht damit getan ein Board-File zu erstellen, das bekomme
> ich noch selber hin.
> Aber wie man ein Package aufsetzt oder gar ein Framework, so weit bin
> ich da noch nicht vorgedrungen.
Hier ist der Startpunkt: 
https://arduino.github.io/arduino-cli/0.21/platform-specification/

Rudolph R. schrieb:
> aber so habe ich gestern als ersten Test meine Library mit der
> Arduino "IDE" 1.8.19 compiliert.
> Und zumindest hat mein Test Projekt direkt compiliert.

Das habe ich gestern auch getestet!

Wegen:
Manfred P. schrieb:
> Wir freuen uns schon auf die nächsten Threads "Fehlermeldungen beim
> Compilieren für A*UNO". Nach 25 Posts kommt dann Salamischeibe Nummer
> zwei "ich habe xyz von Adafruit verwendet"
Was ich von Adafruit getestet habe kompiliert.
Meine eigenen Libs auch alle.
Bis auf eine, die in den AVR ADC Registern rum fummelt.
Die wird gar nicht gefunden, weil in deren Properties "nur für AVRs" 
festgelegt ist.

Da kann sich der Manfred wieder entspannen....
Der Error Wildwuchs bleibt aus.

Endgültige Tests stehen noch aus, dank fehlender Hardware.

von Harald K. (kirnbichler)


Lesenswert?

Arduino F. schrieb:
> Der Error Wildwuchs bleibt aus.

Vorausgesetzt, daß auch wirklich alle, die sogenannte "Libs" produziert 
haben, sich auch konsequent daran gehalten haben, in deren "Properties" 
zu vermerken, für welche Hardware sie geeignet sind.

Warum habe ich nur leichte Zweifel daran, daß dem so ist?

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Harald K. schrieb:
> leichte Zweifel

"wirklich alle"
Naja...
Tausende.... und dann "alle".
Das ist eine überzogenen Erwartungshaltung.
Gerade auch weil es keinen allmächtigen Dompteur in dem Umfeld gibt.

Wenn ein neues Produkt in die Arduino IDE integriert wird, wird es schon 
an ein paar Ecken Probleme geben.
So war es bisher immer.
Sollte einen also nicht wundern.
Anders rum wäre das schon überraschender.....


Libs, welche noch gewartet werden, werden korrigiert werden.
Aber, dass dieses Forum mit sowas überschwemmt wird, steht nicht in 
Aussicht.

Gerade das von Manfred genannte Adafruit, das ist bekannt dafür die 
nötigen Anpassungen recht zeitnah vorzunehmen.

von Bauform B. (bauformb)


Lesenswert?

Veit D. schrieb:
> Ein direkt angeschlossenen Mosfet kann man ja mit üblichen 4mA
> nicht vernünftig schnell schalten. Das ist schon mit 20mA
> grenzwertig nur reicht das fürs "basteln"

20mA und "vernünftig schnell" will man aber auch nicht auf den GND- und 
VPP-Pins sehen.


Arduino F. schrieb:
> Joachim B. schrieb:
>> was stimmt denn nun Platinendruck oder Beschreibung?
>
> Vermutlich beides falsch!
>
> Die 6 Polige Stiftleiste ist sicherlich SPI (ohne /CS), wie es z.B. vom
> Ethernet Shield und manchen LCDs erwartet wird.

Alles falsch? ICSP™ ist ein Warenzeichen von Microchip, wie geht das mit 
Renesas zusammen?

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

Wastl schrieb:
> Tam H. schrieb:
>> Arduino entschied sich für den RA4M1 – eine auf einem Cortex M4-Kern
>> samt FPU basierende MCU, die Renesas wie in der Abbildung beschreibt.
>
> Wenn es denn von Renesas eine vernünftige kostenlose IDE gäbe
> (gibt es die?) dann konnte man mit diesem Arduino abseits der
> von mir nicht gerade geliebten IDE und deren APIs mal mit einem
> ARM-Prozessor arbeiten der nicht von STM und Atmel ist. Und
> in der Praxis sehen welche Vorteile und/oder Nachteile es gibt.

Zumindest für nicht kommerziell kostenlos:
https://www.segger.com/products/development-tools/embedded-studio/

Falls jemand ein RTOS darauf laufen lassen möchte, könnte ich dafür 
evtl. ein Board Support Package erstellen: 
https://wiki.segger.com/Board_Support_Package

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Wastl schrieb:
> Tam H. schrieb:
>> Arduino entschied sich für den RA4M1 – eine auf einem Cortex M4-Kern
>> samt FPU basierende MCU, die Renesas wie in der Abbildung beschreibt.
>
> Wenn es denn von Renesas eine vernünftige kostenlose IDE gäbe
> (gibt es die?) dann konnte man mit diesem Arduino abseits der
> von mir nicht gerade geliebten IDE und deren APIs mal mit einem
> ARM-Prozessor arbeiten der nicht von STM und Atmel ist. Und
> in der Praxis sehen welche Vorteile und/oder Nachteile es gibt.

https://www.renesas.com/us/en/software-tool/e-studio#overview

Wie gut oder schlecht das ist kann ich aber nicht sagen.

Matthias

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

Μαtthias W. schrieb:
> Wie gut oder schlecht das ist kann ich aber nicht sagen.

e2 Studio basiert auf Eclipse und ist ok. Dann kann man auch mit 
Flexible Software Package (FSP) und Smart Configurator arbeiten:

https://www.renesas.com/us/en/software-tool/flexible-software-package-fsp#overview
https://www.renesas.com/us/en/software-tool/smart-configurator

von Martin (domapi)


Lesenswert?

Interessant wäre, ob es irgendwann einen Nano R4 geben wird. Gleicher 
Formfaktor wie der aktuelle Nano, 5V-kompatibel, nur etwas schneller und 
mehr Programm-, Variablen- und EEPROM-Speicher.

von Rudolph R. (rudolph)


Lesenswert?

Christoph M. schrieb:
>>Die greifen sich im wesentlichen den fertigen Arduino Core und machen da
>>ein Paket draus.
>
> Und warum sollten sie das nicht für den Renesas-Arduino-Core tun?

Um mich zu zitieren:
"Sind sie nicht, von Renesas ist ohnehin kaum was in PlatformIO.
Und dann wird es wohl eher keine Bare-Metal / CMSIS Unterstützung geben,
sondern "nur" Arduino wie bei Atmel SAM oder RP2040.
Die greifen sich im wesentlichen den fertigen Arduino Core und machen da
ein Paket draus."

Es ging nicht darum, dass das nicht passieren wird.
Es ging darum, dass ich keine Hoffnung habe, dass da mehr passieren 
wird.


Arduino F. schrieb:
>> Aber wie man ein Package aufsetzt oder gar ein Framework, so weit bin
>> ich da noch nicht vorgedrungen.
> Hier ist der Startpunkt:
> https://arduino.github.io/arduino-cli/0.21/platform-specification/

Das Thema war PlatformIO, nicht Arduino Cores.


Arduino F. schrieb:
> Gerade das von Manfred genannte Adafruit, das ist bekannt dafür die
> nötigen Anpassungen recht zeitnah vorzunehmen.

Gerade bei Adafruit würde ich nicht erwarten, dass da zeitnah was 
passiert.
Ich habe seit über einem Jahr einen kleinen Pull-Request in einem 
Adafruit Repository hängen um einen Bug zu fixen.
Also nicht mal nur ein Issue, gleich fertig.
Wenn auf Bug-Reports die Reaktion ist "machs dir selbst, ist doch open 
source", dann sieht das nach kompletter Zeitverschwendung aus wenn 
Pull-Requests glatt ignoriert werden.


Martin schrieb:
> Interessant wäre, ob es irgendwann einen Nano R4 geben wird. Gleicher
> Formfaktor wie der aktuelle Nano, 5V-kompatibel, nur etwas schneller und
> mehr Programm-, Variablen- und EEPROM-Speicher.

Man hätte sich sowas vor Jahren schon mit einem ATSAMC20 oder ATSAMC21 
bauen können, also Cortex M0+ auf 48MHz und damit etwas langsamer als 
der UNO R4, aber eben auch 5V und deutlich mehr Speicher als der M328.

von Harald K. (kirnbichler)


Lesenswert?

Rudolph R. schrieb:
> Man hätte sich sowas vor Jahren schon mit einem ATSAMC20 oder ATSAMC21
> bauen können

Heute könnte man sich so etwas mit den etwas einfacheren Varianten der 
RISC-V-µCs von WCH bauen, der CH32V103x8x6 wäre da ein Kandidat. Kann 
mit 5V betrieben werden (also nicht nur 5V-tolerante I/Os), 20 kiB RAM, 
64 kiB Flash, bis zu 72 MHz CPU-Takt, LQFP/QFN48 und LQFP64. Ist wohl 
was die Peripherie angeht, sehr nah am ST32F103 und seinen diversen 
Klonen angelegt ...

Und dann hat man die Freude der Eindeutigkeit chinesischer Datenblätter 
und Entwicklungsdokumentation. Hat halt alles zwei Seiten.

(Wie die Performance eines RISC-V gegenüber eines ARMs aussieht, wäre 
auch noch zu vergleichen)

von Rudolph R. (rudolph)


Lesenswert?

Rudolph R. schrieb:
> Ich weiß nicht, ob das hier schon mal erwähnt wurde:
> https://github.com/arduino/ArduinoCore-renesas

Das gefällt mir übrigens nicht so wirklich.
Es gibt da nämlich in dem Paket keinen Source-Code für die 
Funktions-Einheiten auf dem Chip, also sowas wie SPI.
Das wird als lib rein gelinkt: libfsp.a

Die SPI Klasse ist zum Beispiel rein generisch und den Kommentaren nach 
von 2014.
Also kein DMA Support.

Damit wird der SPI kaum schneller laufen als beim UNO, immerhin könnte 
der SPI theorethisch nach Datenblatt mit 24 MHz Takt laufen (PCLKA / 2).

Der Controller könnte 8/9/.../16/20/24/32 Bit Transfers machen,
die SPI Klasse arbeitet aber fest mit 8 Bit.
Es gibt zwar SPI.transfer16(uint16_t data), da werden aber zwei Mal 8 
Bit verschickt.
Immerhin gibt es auch noch SPi.transfer(void *buf, size_t count).


Und Reichelt hat verschickt, die Zeichen stehen gut für neues Spielzeug 
zum Wochenende. :-)

von Christoph M. (mchris)


Lesenswert?

Rudolph R. (rudolph)
>Man hätte sich sowas vor Jahren schon mit einem ATSAMC20 oder ATSAMC21
>bauen können, also Cortex M0+ auf 48MHz und damit etwas langsamer als
>der UNO R4, aber eben auch 5V und deutlich mehr Speicher als der M328.

Das hat man schon vor Jahren getan, allerdings war das kein 
Erfolgsprodukt:

https://store.arduino.cc/products/arduino-zero

von Harald K. (kirnbichler)


Lesenswert?

Christoph M. schrieb:
> allerdings war das kein Erfolgsprodukt

Das könnte mit dem Preis und dem Mangel an "Klonen" zu tun haben, meinst 
Du nicht auch?

von Rudolph R. (rudolph)


Lesenswert?

Christoph M. schrieb:
> Das hat man schon vor Jahren getan, allerdings war das kein
> Erfolgsprodukt:
>
> https://store.arduino.cc/products/arduino-zero

Ja eben gerade nicht, auf dem Zero ist ein SAMD21 und der verträgt nur 
bis 3,63V.

von Stefan F. (Gast)


Lesenswert?

Mir gefällt der Name "Uno" nicht, obwohl ein völlig anderer 
Mikrocontroller verwendet wird, als bei den vorherigen Unos.

Die Antenne des ESP Moduls ist schlecht platziert. Da hätten sie mal den 
HW Design Guide von Espressif lesen sollen.

von Stefan F. (Gast)


Lesenswert?

Martin schrieb:
> Interessant wäre, ob es irgendwann einen Nano R4 geben wird.

Kennst du Nucleo32 Boards? Die kannst du mit der Arduino IDE 
programmieren.

von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Lesenswert?

Stefan F. schrieb:
> Martin schrieb:
>> Interessant wäre, ob es irgendwann einen Nano R4 geben wird.
>
> Kennst du Nucleo32 Boards? Die kannst du mit der Arduino IDE
> programmieren.

Leute Nicht stefanus hauen. Er hat Recht.

Mikrochip hat damals den Board Manager beigesteuert...siehe dazu auch 
https://www.heise.de/news/Roboterarme-Schmaehbriefe-und-der-Flurfunk-Arduino-Developer-Summit-Tag-zwei-3253302.html 
für einige lustige Meldungen!

von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Lesenswert?

Christoph M. schrieb:
> Rudolph R. (rudolph)
>>Man hätte sich sowas vor Jahren schon mit einem ATSAMC20 oder ATSAMC21
>>bauen können, also Cortex M0+ auf 48MHz und damit etwas langsamer als
>>der UNO R4, aber eben auch 5V und deutlich mehr Speicher als der M328.
>
> Das hat man schon vor Jahren getan, allerdings war das kein
> Erfolgsprodukt:
>
> https://store.arduino.cc/products/arduino-zero

War mitten im Arduino-Bürgerkrieg, lies sie konnten das Ding nicht 
effizient promoten. Außerdem das 3V3 bzw 5V0-Problem...

von Harald K. (kirnbichler)


Lesenswert?

Stefan F. schrieb:
> Mir gefällt der Name "Uno" nicht

Der soll wohl die Kompatibilität mit der schwachsinnigen 
Steckeranordnung hervorheben.

von Rudolph R. (rudolph)


Angehängte Dateien:

Lesenswert?

Ich habe den R4 erhalten und gerade ausprobiert.
Erster Eindruck: grauenhaft

Ich habe ein Projekt in der Arduino IDE 1.8.19 compiliert und auf den 
UNO R4 gespielt, das klappt soweit einwandfrei.

Die Software lief auch praktisch sofort.
Das ist das hier: https://github.com/RudolphRiedel/FT800-FT813
Also angesteuert wird ein TFT per SPI.

Für die Arduino IDE habe ich mein Beispiel Projekt angepasst, 
normalerweise benutze ich PlatformIO.

In der .ino wird die Funktion TFT_display() aufgerufen und die Laufzeit 
der Funktion wird mit micros() gemessen.
UNO R3 (clone): 532µs
UNO R4 MINIMA: 2532µs

Kein Tippfehler, der 3x schneller getaktete R4 braucht fast fünf Mal so 
lange für exakt die gleiche Funktionalität.
Dabei gehen beide durch die SPI Klasse, normalerweise gehe ich für die 
AVR Arduinos an der SPI Klasse vorbei direkt auf die Register für den 
Transfer.
Habe ich auch gerade gemessen, sind 520µs, also eine eher schwache 
Optimierung.
Der SPI Takt ist 8MHz für beide Boards, ein Byte braucht auf dem SPI 
1µs.

Nun, warum ist das so?
Die angehängten .sal Files sind für die Logic 2 Software von Saleae.

Im Logic-Analyzer Trace für den R3 sieht man, dass die Pausen zwischen 
den Bytes beim UNO R3 so zwischen 1µs und 2µs sind gelegentlich gibt es 
auch mal eine Pause von 7µs.

Im Trace für den R4 sieht man, dass die Pausen zwischen den Bytes um 
11µs Länge haben - autsch.

Da der Source-Code für den SPI Treiber nicht im Arduino Core ist, sieht 
man zum einen nicht was zum Geier der auf dem R4 da treibt, zum anderen 
kann man den auch nicht mal eben so manipulieren und neu compilieren, 
toll.

Den SPI Takt anzuheben bringt unter den Umständen auch nichts.

Ich wundere mich gerade was da los ist.
Ist da beim R4 ein RTOS drunter? Sieht eigentlich nicht danach aus.
Oder ist das einfach nur ein Fall von miesem Code vom Chip Hersteller 
der mit angezogener Handbremse läuft, weil bei jedem Aufruf die SPI 
Schnittstelle komplett konfiguriert wird und drölf sinnlose Checks 
durchgeführt werden?

Hurra, ein neuer UNO mit mehr Speicher und schnellerem Controller der je 
nach Anwendung läuft wie ein mit 4MHz getakteter AVR.

Mal schauen was man da machen kann...

von Falk B. (falk)


Lesenswert?

Rudolph R. schrieb:
> Oder ist das einfach nur ein Fall von miesem Code vom Chip Hersteller
> der mit angezogener Handbremse läuft, weil bei jedem Aufruf die SPI
> Schnittstelle komplett konfiguriert wird und drölf sinnlose Checks
> durchgeführt werden?

So in etwa. Schau dir mal die SPI-Umsetzung von RP2040 an, die ist auch 
lahm!

von Rudolph R. (rudolph)


Lesenswert?

Falk B. schrieb:
> So in etwa. Schau dir mal die SPI-Umsetzung von RP2040 an, die ist auch
> lahm!

Oder ESP32, geht auch gar nicht.

Aber wenigstens habe ich beim ESP32 und auch RP2040 heraus gefunden wie 
man SPI über DMA macht, auch für Arduino, nur an der SPI Klasse vorbei.
Und das war beim RP2040 gar nicht mal so schwierig.

Für den R4 werde ich da nicht drum herum kommen, genau wie beim ESP32 
ist das sonst praktisch unbrauchbar.
Aber ok, das ist der halbe Spaß, auch wenn mir eine brauchbare SPI 
Klasse lieber gewesen wäre.

Ich habe gerade noch etwas gespielt und die SPi.transfer(void *buf, 
size_t count) Funktion verwendet die ich in der SPI Klasse gesehen 
hatte.
Den Code um einen Puffer zu füllen habe ich für DMA ja eh vorgesehen.

Nun ja, damit bin ich jetzt bei 690µs für den R4, was immer noch traurig 
ist.
Die reine Zeit für das was in dem Puffer übertragen wird ist 524µs beim 
UNO R3 und 643µs beim UNO R4.
Wobei der Aufwand die Daten für den Puffer zu erzeugen beim R3 enthalten 
ist und beim R4 noch dazu kommt, das sind noch mal so 30µs Plus für den 
R4.
Oh man.

Ach ja, bevor jemand auf die Idee kommt das zu zählen, das sind nur 228 
Bytes die da für ein Bildschirm Update verschickt werden.
Mein Test Programm zeigt kaum was an.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

dann schreibe dir eine neue SPI Klasse und gut ist.

von Falk B. (falk)


Lesenswert?

Veit D. schrieb:
> Hallo,
>
> dann schreibe dir eine neue SPI Klasse und gut ist.

Warum können das die Leute nicht, welche für Arduino arbeiten? 
Fachkräftemangel?

von Clemens L. (c_l)


Lesenswert?

Falk B. schrieb:
> Warum können das die Leute nicht, welche für Arduino arbeiten?

Vermutlich mussten sie das schnell fertig kriegen und haben einfach den 
HAL-Beispielcode kopiert.
https://renesas.github.io/fsp/group___s_p_i.html

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich spreche aus meiner Sicht, ich muss Arduino nicht in Schutz nehmen. 
Aber man muss Arduino nüchtern betrachten. Für die Leute für die es 
gedacht ist funktioniert es. SPI ist vorhanden und funktioniert. Nicht 
mehr und nicht weniger. Arduino muss in erster Linie auf Kompatibilität 
ihrer bereitgestellten Klassen achten.

Tja und dann gibts Leute wie hier im Forum die zerlegen jedes Register 
Bitweise und erwarten maximalen Speed. Wenn man den Anspruch hat muss 
man es selbst schreiben wie für jeden anderen Controller auch. Ganz 
einfach.

Was mich nur echt wundert ist, dass wird hier ganz deutlich. Die ganze 
Zeit schreit regelrecht "das Forum" permanent aus vollen Hals wie Sch... 
doch Arduino und die IDE ist und dann wollen plötzlich alle deren 
Klassen nutzen. Und ich dachte die meisten Leute hier im Forum nutzen 
nur das Arduino Board weil es günstig ist und programmieren alles Bare 
Metal. Ihr solltet euch nun einmal langsam entscheiden.  ;-)

von Veit D. (devil-elec)


Lesenswert?

Hallo,

Rudi, messe bitte einmal wie lange digitalWrite() benötigt. Musste aber 
mehrfach hintereinander in die loop() schreiben. Sonst verfälscht der 
ständige loop() Aufruf die Messung. Dann kann man abschätzen ob generell 
eine Handbremse vorhanden ist oder nicht.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Veit D. schrieb:
> ich spreche aus meiner Sicht, ich muss Arduino nicht in Schutz nehmen.
> Aber man muss Arduino nüchtern betrachten. Für die Leute für die es
> gedacht ist funktioniert es. SPI ist vorhanden und funktioniert. Nicht
> mehr und nicht weniger. Arduino muss in erster Linie auf Kompatibilität
> ihrer bereitgestellten Klassen achten.

Das schließt Leistung und Qualität nicht aus.

> Tja und dann gibts Leute wie hier im Forum die zerlegen jedes Register
> Bitweise und erwarten maximalen Speed. Wenn man den Anspruch hat muss
> man es selbst schreiben wie für jeden anderen Controller auch. Ganz
> einfach.

Nö, nicht ganz einfach. Man kann auch ab und an mal etwas Qualität und 
Leistungsfähigkeit deutlich über der Teppichkante erwarten. Alles andere 
ist erbärmliche Bloatware, welche leider nur allzu verbreitet ist.

https://de.wikipedia.org/wiki/Bloatware
https://de.wikipedia.org/wiki/Wirthsches_Gesetz

: Bearbeitet durch User
von Rudolph R. (rudolph)


Lesenswert?

Ich habe gerade per digitalWrite() einen Pin wackeln lassen:

digitalWrite(EVE_PDN, HIGH);
digitalWrite(EVE_PDN, LOW);
digitalWrite(EVE_PDN, HIGH);
digitalWrite(EVE_PDN, LOW);
...

So beim Start in der setup().

UNO R3: 3,5µs -> ~56 Taktzyklen @16MHz
UNO R4: 800ns -> ~38 Taktzyklen @48MHZ

Ok, nicht toll, aber schneller, absolut und im Verhältnis.

Schönes Ding am Rande, es sah kurz aus als hätte ich den R4 gebrickt da 
ich aus Versehen den Reset Taster betätigt habe während der noch am 
Flashen war.
Der ist dann komplett tot am USB.
Man kommt dann in den Bootloader wenn man den Reset Taster zwei Mal 
schnell betätigt.
Allerdings bin ich der Meinung das der Bootloader eine unvollständig 
geflashte Anwendung gar nicht erst starten sollte.

Veit D. schrieb:
> Und ich dachte die meisten Leute hier im Forum nutzen
> nur das Arduino Board weil es günstig ist und programmieren alles Bare
> Metal. Ihr solltet euch nun einmal langsam entscheiden.  ;-)

Ich bin nur ich und nicht die meisten Leute, ich nutze die Arduino 
Boards und die Arduino API praktisch gar nicht, die Arduino "IDE" erst 
recht nicht.
Ich unterstütze das nur mit meiner Library, da ich gerade Spaß daran 
habe den Controller Support möglichst breit zu machen.
Und ich schaue da auch nur auf den SPI, was anderes nutze ich praktisch 
nicht.
Demzufolge werde ich mir auch nicht die Arbeit machen für den UNO R4 
eine Build-Umgebung aufzusetzen oder auch nur ein Makefile zu schreiben.
Und ich empfehle ganz klar PlatformIO mit VSCode zu verwenden, das geht 
nur bislang nicht.
Für mich ist der UNO R4 ein neues Spielzeug und dabei ein exotisches im 
Bezug auf den verbauten Controller von Renesas.
Hier liegt zwar zum Beispiel auch länger schon ein Eval Board mit einem 
RX660 herum, aber für den Software zu machen war mir bisher zu viel 
Arbeit, also einfach so zum Spaß.
Mit schlapp 20 Euro finde ich das R4 recht teuer.
Wenn man überlegt das ein Teil davon in die Software geht dann 
relativiert sich das etwas, im Moment steckt in der SPI Klasse an sich 
aber Null Arbeit und da der eigentliche Code in einer Lib vergraben ist 
kann man den nicht mal eben so auf die Schnelle ändern.

Ich hatte mich auch für das Early Adopters Programm angemeldet, die 
haben ja extra Leute gesucht die Hardware spezifische Anpassungen 
machen.
Nur wollten die meine unbezahlte Arbeit nicht, ist dann so.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

Danke für den Test.
Den Rest lasse ich so stehen, hat jeder seine Meinung, soll man haben.
Wegen PlatformIO. Damit werde ich bis heute nicht so richtig warm. Ich 
weiß aber jetzt an wem ich mich wenden kann zu Fragen für PlatformIO. 
:-)

Ruhiges WE allen.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Veit D. schrieb:
> Was mich nur echt wundert ist, dass wird hier ganz deutlich. Die ganze
> Zeit schreit regelrecht "das Forum" permanent aus vollen Hals wie Sch...
> doch Arduino und die IDE ist

Wirklich "das Forum" oder eher nur ein paar Schreihälse?

> und dann wollen plötzlich alle deren Klassen nutzen.

Genau das tue ich, wobei die nicht unbedingt aus "offiziellen" Quellen 
stammen, z.B. ADS1115 von lygte-dk und SSD1306 von github.com/greiman/.

> Und ich dachte die meisten Leute hier im Forum nutzen
> nur das Arduino Board weil es günstig ist und programmieren alles Bare
> Metal.

Ich hatte bislang weder Lust noch Not, das zu tun.

> Ihr solltet euch nun einmal langsam entscheiden.  ;-)

Ich weiß, was ich tue - und habe aus genau diesem Grund Bedenken 
geäußert, was die Kompatibilität des R4 angeht. Das hat mir auch den 
Spaß am ESP32 verhagelt, weil vorhandenes Zeug für den nicht ohne große 
Änderungen nutzbar ist.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

man sollte jetzt nicht ESP mit Arduino verwechseln oder über einen Kamm 
scheren. ESP ist speziell und die ganzen ESP Boards sind vom Pinout her 
speziell. ESP hat auch nichts mit Arduino zu tun. Alles was fremd ist 
kann zwar die IDE nutzen aber der ganze Rest hat nichts zu sagen.

Ich sehe erstmal keine Bedenken bezüglich des R4. Der Formfaktor lässt 
da nichts anderes zu. Welche Bedenken hast du denn konkret?

von Manfred P. (pruckelfred)


Lesenswert?

Veit D. schrieb:
> man sollte jetzt nicht ESP mit Arduino verwechseln oder über einen Kamm
> scheren. ESP ist speziell und die ganzen ESP Boards sind vom Pinout her
> speziell.

Formfaktor und Spannung sind für mich zweitrangig, ich spiele nicht auf 
Steckbrettchen und kann Hardware.

Veit D. schrieb:
> Ich sehe erstmal keine Bedenken bezüglich des R4. Der Formfaktor lässt
> da nichts anderes zu. Welche Bedenken hast du denn konkret?

Sagte ich doch: Existierende Klassen (Arduino "Libraries") sind für AVR 
gemacht und passen nicht zum neuen µC.

Mein Traum: Ich nehme das Programm meines Akkutesters von 2020, was mit 
98% noch gerade so in den UNO passt und packe das auf den R4. Ich bin 
mir sicher, dass das nichts wird.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich glaube du erzählst nur Mist. Wenn du Hardware kannst verdirbt nichts 
den Spaß.
Und was soll der wiederholte Unsinn mit dem Arduino Libs. Wer sagt denn 
das die Arduino Libs nur für AVR gemacht sind? Kennst du die Arduino 
Produktpalette? Schon einmal deren Seite angeschaut?

Wer kompatible Libs schreibt und schreiben möchte und kompatible 
Programme schreibt und schreiben möchte der verwendet nur Arduino 
Standard Funktionen/Methoden. Die gibt es immer und funktionieren immer. 
Maximal noch eigene Libs die man selbst anpassen kann. Daraus folgt, 
wenn fremde Libs sich daran halten werden auch diese funktionieren.

Das ist ja der Grund für diese gewachsene Arduino Framework. Eben damit 
alles abstrahiert werden kann. Der kleine Wermutstropfen ist das nicht 
alles so schnell ist wie es Bare Metal ggf. sein könnte.

Wegen deinem Programm. Probiere es doch einfach aus. IDE auf R4 Stand 
bringen und Programm kompilieren, gucken welche Meldungen erscheinen. 
Aber warum sage ich das überhaupt. Habe das Gefühl das willst du gar 
nicht hören. Du wünscht dir ja regelrecht das es nicht funktioniert.

: Bearbeitet durch User
von Rudolph R. (rudolph)


Lesenswert?


von Rudolph R. (rudolph)


Lesenswert?

Falls jemand eine schnellere SPI.cpp für den R4 braucht und dafür mit 
einem Entwurfs-Stand leben kann, ich habe angefangen das zu 
beschleunigen.
https://github.com/RudolphRiedel/ArduinoCore-renesas/tree/main/libraries/SPI

Bisher läuft das nur mit dem SPI und nicht mit den SCI im SPI Modus.
Und vermutlich läuft das nur als Master, wobei ich bei der 
ursprünglichen Implementierung nicht mal sicher bin ob die nicht auch 
nur als Master funktioniert.

Das ist bisher auch noch mit der originalen SPI API, also kein DMA und 
keine nur-Schreiben Funktionen, ich habe keine Ahnung wie offen man bei 
Arduino für Erweiterungen der API ist.
Aber nun ja, der DUE ist zum Beispiel 11 Jahre alt, hat die gleiche API 
und unterstützt kein DMA.

von Christoph M. (mchris)


Lesenswert?

>ich habe keine Ahnung wie offen man bei
>Arduino für Erweiterungen der API ist.
>Aber nun ja, der DUE ist zum Beispiel 11 Jahre alt, hat die gleiche API
>und unterstützt kein DMA.

Da dürfte das Problem liegen: überhaupt nicht offen.
Es dürfte ziemlich viele Leute auf der Welt geben, die am Standard etwas 
verändern wollen. Um so mehr es sind, um so schwieriger wird es.

Man könnte hier einen Versuch wagen: Einen 
Mikrocontrollernet-Arduino-API Standard. Man diskutiert die 
Funktionalität und wenn man sich geeinigt hat, implemtiert der ein- oder 
andere die Funktion auf einer der MCU Architekturen.

von J. S. (jojos)


Lesenswert?

Christoph M. schrieb:
> Einen
> Mikrocontrollernet-Arduino-API Standard.

eher gefriert die Hölle...

Ein PR ist schon der richtige Weg. Aber ich auch mal einen 
offensichtlichen Fehler gemeldet der nie beachtet wurde. Es gibt 
scheinbar nicht viele aktive Maintainer in den Arduino Repos, altes Zeug 
lässt man vergammeln.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Rudolph R. schrieb:
> ich habe keine Ahnung wie offen man bei
> Arduino für Erweiterungen der API ist.

Erweiterungen mögen gehen...
Solange es zum original kompatibel ist/bleibt.
Verbesserungen werden angenommen, mag allerdings ein zäher Prozess 
werden, da eben auch wirklich viele Libs auf der SPI Lib basieren bzw. 
sie nutzen.

Aber was du problemlos machen kannst, ist deine eigene SPI Lib bauen und 
publizieren. Auch so, dass sie vom LibraryManager gefunden wird.
Wenn sie gut angenommen wird, "könnte" es sein, dass sie in das Paket 
übernommen wird. Da bin ich allerdings auch nicht so optimistisch.

: Bearbeitet durch User
von Rudolph R. (rudolph)


Lesenswert?

Tja nun, erstmal schauen das es für einen Pull-Request reicht, mein 
Display läuft hier jetzt schon seit 6 Stunden nebenbei vor sich hin, 
alle 20ms ein Update, alle 5 ms eine Touch-Abfrage, bei 24 MHz SPI Takt.
Der Teil mit den dafür vorgesehenen SPI Pins tut schon mal was er soll. 
:-)

Wenigstens
void ArduinoSPI::transfer(void *txBuf, void *rxBuf, size_t count)
sollte ich dem wohl noch mit geben, so mit der Option rxBuf auf NULL 
setzen zu können.

DMA kann man sonst auch an der SPI Klasse vorbei implementieren, bzw. 
ging ja bisher bei Arduino auch nicht anders, mal von Ausnahmen wie der 
Teensy Implementierung abgesehen.
Nur wünsche ich mir schon das meine Library mit den anderen in der 
Sandkiste zusammen spielt...


Übrigens ist die Dokumentation von Renesas zum RA4M1 interessant.
Ich habe den SPI erst nicht zum Laufen bekommen, habe dann aber gesehen 
das in der Renesas FSP Library ein Bit gesetzt wird das im User Manual 
nicht dokumentiert ist.
In den Includes ist das Bit aber.
Dazu hat Renesas ein "Technical Update" veröffentlicht - statt das User 
Manual zu aktualisieren.
Ohne SPBYT im Register SPDCR zu setzen macht der SPI im 8-Bit Modus gar 
nichts.
Im gleichen Register gibt es in den Includes noch zwei 2-Bit Symbole die 
nirgendwo erwähnt werden.
Und es gibt noch das Register SPDCR2 für das es nicht mal ein "Technical 
Update" gibt, zumindest nicht öffentlich, wenn man das BYSW Bit da drin 
nicht setzt kommen die Bytes beim 32 Bit Transfer in der falschen 
Reihenfolge raus.

Sowas macht richtig Lust auf noch mehr Schnitzel-Jadg, den DMA zu 
verwenden könnte interessant werden.

von Rudolph R. (rudolph)


Lesenswert?

Hat hier eigentlich schon wer CAN mit dem UNO R4 am laufen?
Da der Takt aus einem der internen Oszillatoren kommt, MOCO meine ich, 
würde mich mal interessieren, ob der UNO R4 überhaupt sauber CAN 
Botschaften verschicken kann.
Ich messe hier gerade am SPI der mit PCLKA läuft nicht 24MHz, sondern 
23,81MHz, gemessen mit einem Logic Pro 8 bei 500MS/s.
Der CAN läuft mit PCLKB und PCLKB sollte 12MHz haben.
Ich habe nur kein CAN-Transceiver Breakout Board herum liegen um selber 
zu testen was etwa bei 8 Byte und 1Mbps passiert.

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.