Forum: Mikrocontroller und Digitale Elektronik Raspi Pico -taugt der was und in C programmieren?


von Der Bastler (Gast)


Lesenswert?

Hallo Leute
Habe mir heute den Raspi Pico mal näher angesehen und alle Möglichen 
Berichte gelesen. Eigentlich bin ich genauso schlau wie vorher. Konnte 
leider keine klare Antwort dazu finden. Vielleicht kann mir jemand 
weiter helfen.
Kann man mit dem Raspi Pico in C programmieren und wie geht das?
LG B.

von pegel (Gast)


Lesenswert?


von Ergo70 (Gast)


Lesenswert?


von Jack V. (jackv)


Lesenswert?


von Sorbit (Gast)


Lesenswert?

Man kann mit dem RASPI nicht in C programmieren.
Man kann für ihn aber Programme in c programmieren.

von c-hater (Gast)


Lesenswert?

Sorbit schrieb:

> Man kann mit dem RASPI nicht in C programmieren.

Doch, natürlich könnte man das, wenn auch nicht mit dem Raspi alleine. 
Mit einem Display, einer Tastatur und einer SD-Card als Peripherie 
könnte man aber tatsächlich auch in C darauf programmieren.

Macht nur wenig Sinn, weil ein Cross-Compiler-Umgebung auf einem PC 
weitaus komfortabler und schneller ist.

von Jack V. (jackv)


Lesenswert?

c-hater schrieb:
> Sorbit schrieb:
>
>> Man kann mit dem RASPI nicht in C programmieren.
>
> Doch, natürlich könnte man das

Das ist halt das Problem, wenn die konkret zuzuordnenden 
Hardwarebezeichnungen nicht genutzt, und stattdessen selbstgewählte, 
maximal unscharfe Begriffe verwendet werden.

Tatsächlich war im Eingangsbeitrag vom „Raspi Pico“ die Rede und es 
wurde gefragt, ob man damit in C programmieren könne. Insofern passt die 
Aussage von Sorbit schon – wenn auch die verwendete Bezeichnung („RASPI“ 
– das ist kein …tes Akronym, BTW) fehlerhaft war.

Allerdings ist anzunehmen, dass es dem TE tatsächlich um die 
Programmierung des „Raspberry Pi Pico“ (man beachte die elegante 
Eindeutigkeit der offiziellen Bezeichnung!) in C ging, und nicht um die 
C-Programmierung mit dem Raspberry Pi Pico. Die Formulierung könnte 
natürlich auch tatsächlich so gewollt gewesen sein – dann ist’s einer 
den besseren Trollversuche :)

: Bearbeitet durch User
von Der Bastler (Gast)


Lesenswert?

Es ist kein Trollversuch sondern einfach nur die Frage.
Habe bisher immer mit dem Atmega 8 gebastelt und ihn mit C programmiert. 
Dazu nutze ich das (ehemalige) AVR Studio 7.0 und schreibe meine 
Programme mit C. Beim Raspi und Raspi Pico geht ja alles mit Python. 
Leider wollte ich mir keine zweite Sprache antun. Beim AVR geht ja viel 
mit ISP und meinem MK2. Doch die Frage ist, wie erfolgt die 
Programmierung Raspi Pico mit USB? Welche Umgebung muss ich nutzen? geht 
das auch mit AVR Studio oder brauche ich dazu wieder neue Hardware?

von Der Bastler (Gast)


Lesenswert?

Sorbit schrieb:
> Man kann mit dem RASPI nicht in C programmieren.
> Man kann für ihn aber Programme in c programmieren.

Da habe ich mich wohl falsch ausgedrückt. Sollte natürlich "man kann für 
ihn aber in C programmieren"

Jack V. schrieb:
> https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf

In diesem Teil wird sehr viel mit dem Raspi gemacht. Braucht man den 
immer dazu? oder kann man wie beim Atmega IO oder Display anschliessen 
und eine Funktion oder Anzeige damit programmieren?

von m.n. (Gast)


Lesenswert?

Jack V. schrieb:
> https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf
> https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf
>
> … was ist unklar?

Das "pico-sdk" kann/muß man dazu nutzen, um überhaupt nähere 
Informationen zur Funktion des RP2040 zu bekommen, da die Dokumentation 
(Datenblatt) unzureichend ist. Ansonsten lasse ich die Finger von dem 
intransparenten Kram.

Der Bastler schrieb:
> Doch die Frage ist, wie erfolgt die
> Programmierung Raspi Pico mit USB? Welche Umgebung muss ich nutzen? geht
> das auch mit AVR Studio oder brauche ich dazu wieder neue Hardware?

Im Prinzip kannst Du die Arduino IDE nehmen, und damit den üblichen 
"Brei" erzeugen.
Vorteil: Du mußt Dich kaum mit dem RP2040 auseinandersetzen und es wird 
keine zusätzliche Hardware benötigt.
Nachteil: es wird mit langsamem Compiler viel Code erzeugt, ohne große 
Möglichkeit zu debuggen. Die speziellen Fähigkeiten des RP2040 bleiben 
verborgen.

Einen anderen Ansatz findest Du zum Beispiel hier: 
https://www.eevblog.com/forum/microcontrollers/rp2040-baremetal-starter-project/msg3909527/#msg3909527
Als Hardware brauchst Du dazu einen SWD-Programmierer Jlink EDU mini zum 
Beispiel. Du mußt einiges an Zeit investieren - egal wie Du es angehst.

von Falk B. (falk)


Lesenswert?

Der Bastler schrieb:
> Es ist kein Trollversuch sondern einfach nur die Frage.
> Habe bisher immer mit dem Atmega 8 gebastelt und ihn mit C programmiert.
> Dazu nutze ich das (ehemalige) AVR Studio 7.0 und schreibe meine
> Programme mit C. Beim Raspi und Raspi Pico geht ja alles mit Python.

Nö. Den RP2040 kann man u.a. mit der Arduino IDE normal in C bzw. C++ 
progrmmieren.

https://www.heise.de/tests/Raspberry-Pico-mit-der-Arduino-IDE-programmieren-6001575.html

Es gibt auch andere IDEs oder gar für die ganz harten Jungs 
Kommandozeilenkompiler mit make.

: Bearbeitet durch User
von Rudolph R. (rudolph)


Lesenswert?

Meine Empfehlung wäre da VSCode mit PlatformIO und wizio-pico:
https://github.com/Wiz-IO/wizio-pico

von Tim  . (cpldcpu)


Lesenswert?

Rudolph R. schrieb:
> Meine Empfehlung wäre da VSCode mit PlatformIO und wizio-pico:
> https://github.com/Wiz-IO/wizio-pico

Was ist denn Wizio? Das readme ist nur bedingt aussagekräftig und die 
Tiraden gegen das Pico-Team helfen nicht wirklich.

von Mombert H. (mh_mh)


Lesenswert?

Tim  . schrieb:
> Rudolph R. schrieb:
>> Meine Empfehlung wäre da VSCode mit PlatformIO und wizio-pico:
>> https://github.com/Wiz-IO/wizio-pico
> Was ist denn Wizio? Das readme ist nur bedingt aussagekräftig und die
> Tiraden gegen das Pico-Team helfen nicht wirklich.
Ich kann deine Bedenken nicht nachvollziehen! Da steht doch explizit 
"READ WIKI".
Klick Link ... Oh ...
1
Welcome to the wizio-pico WIKI
2
A lyrical digression
3
...

von Rudolph R. (rudolph)


Lesenswert?

Tim  . schrieb:
> Rudolph R. schrieb:
>> Meine Empfehlung wäre da VSCode mit PlatformIO und wizio-pico:
>> https://github.com/Wiz-IO/wizio-pico
>
> Was ist denn Wizio?

Oh, ok, die Frage ist berechtigt wenn man PlatformIO noch nicht kennt.
PlatformIO hat Module, eben "Platforms", zum Beispiel "Atmel AVR", 
"Espressif 32", "GD GD32", "Nordic nRF52" oder "ST STM32" und noch 
einige andere.
Diese Module stellen den Support für die Plattform zur Verfügung, 
Compiler, Tools und so weiter, je nach Modul für unterschiedliche 
"Frameworks".
Die "Frameworks" sind "Arduino", "CMSIS", "Mbed", "Stm32cube", 
"Zephyr"...

Und das Wizio-Pico ist jetzt so eine Plattform und erlaubt sowohl 
Arduino als auch Baremetall (mit dem PICO-SDK) Programmierung des 
RP2040.

von Stefan F. (Gast)


Lesenswert?

Der Bastler schrieb:
> Beim Raspi und Raspi Pico geht ja alles mit Python.
> Leider wollte ich mir keine zweite Sprache antun.
> Beim AVR geht ja viel mit ISP und meinem MK2.

Kannst du diese drei Zeilen bitte nochmal lesen, darüber sinnieren und 
dann uns den Sinn erklären?

Du hast wohl Schwierigkeiten, dich klar auszudrücken. Entsprechend fällt 
es uns und den Suchmaschinen schwer, die passende Antworten zu geben.

Ich denke du möchtest den Raspberry Pi Pico in C Programmieren, und das 
Programmieren auf deinem PC erledigen. Kannst du 100% sicher machen.

> Doch die Frage ist, wie erfolgt die Programmierung Raspi Pico mit USB?

Der hat einen Bootloader, also einfach dran stecken und Knöpfchen 
drücken.

> Welche Umgebung muss ich nutzen?

Im Grunde genommen kannst du jede Entwicklungsumgebung verwenden, die 
separat installierte C Compiler und Bibliotheken nutzen kann. Da fallen 
mir spontan diese ein: Eclipse, Netbeans, Qt Creator, Visual Studio 
Code, Arduino IDE. Es gibt sicher noch mehr.

Hier ein Video, dass die Programmierung in Visual Studio Code vorführt: 
https://www.youtube.com/watch?v=B5rQSoOmR5w

Und hier eine Hilfe für die einfachere Arduino IDE, die dir zumindest 
anfangs wohl eher gefallen wird: 
https://draeger-it.blog/raspberry-pi-pico-in-der-arduino-ide-programmieren/
Für weitere Doku solltest du danach auf http://arduino.cc vorbei 
schauen.

> geht das auch mit AVR Studio oder brauche ich dazu wieder neue Hardware?

Nein es ist kein AVR. Neue Hardware ist nicht nötig, weil das Ding einen 
USB Bootloader enthält.

> In diesem Teil wird sehr viel mit dem Raspi gemacht.
> Braucht man den immer dazu?

Du drückst dich seltsam aus. Wenn du den Raspberry Pi Pico programmieren 
willst, dann brauchst du den immer dazu. Wie willst du dein Programm 
sonst testen?

> oder kann man wie beim Atmega IO oder Display anschliessen
> und eine Funktion oder Anzeige damit programmieren?

Nicht "oder" sondern "und". Natürlich kannst du an die I/O Pins des 
Raspberry Pi Pico so ziemlich alles anschließen, was du willst.

von Sorbit (Gast)


Lesenswert?

Wirre hoch 3

von NotEqual (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
>> In diesem Teil wird sehr viel mit dem Raspi gemacht.
>> Braucht man den immer dazu?
>
> Du drückst dich seltsam aus. Wenn du den Raspberry Pi Pico programmieren
> willst, dann brauchst du den immer dazu. Wie willst du dein Programm
> sonst testen?

Raspi != Raspberry Pi Pico

von Jack V. (jackv)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn du den Raspberry Pi Pico programmieren
> willst, dann brauchst du den immer dazu.

Glaube, TE bezieht sich darauf, dass in der Schnellstart-Einleitung am 
Anfang von einem Raspberry Pi mit Raspberry Pi OS als 
Entwicklungsrechner ausgegangen wird. Das braucht man natürlich nicht – 
jeder andere Rechner mit einem USB-Anschluss tut den Job genauso.

Allerdings scheinen dem TE da auch noch einige grundlegende 
Zusammenhänge zu fehlen, so dass der Eindruck entsteht, den Sorbit so 
schön zusammengefasst hat.

von c-hater (Gast)


Lesenswert?

m.n. schrieb:

> Das "pico-sdk" kann/muß man dazu nutzen, um überhaupt nähere
> Informationen zur Funktion des RP2040 zu bekommen, da die Dokumentation
> (Datenblatt) unzureichend ist.

Unsinn. Es ist im Gegenteil so, dass das C-SDK nur einen Teil der 
Features der RP2040-Hardware unterstützt. Will man also mehr als 
Blocking-Gedaddel knapp über Arduino-Niveau, kommt man nicht darum 
herum, sich mit der Hardware, also dem RP2040-DB zu beschäftigen.

Sprich: es fehlt im SDK insbesondere ein asynchrones (non-blocking) API 
für die Standard-Peripherie. Von UART über SPI und I2C bis hin zu ADC.

Für UART ist immerhin eine interruptbasierte Notlösung vorhanden. 
Wirklich schön ist die aber nicht. Macht halt das, was mit Interrupts 
möglich ist.

Richtige Unterstützung für schnelles, asynchrones IO muss man sich 
selber basteln (vorzugsweise unter Zuhilfenahme des recht ordentlich 
gelungenen DMA-API und der APIs der jeweiligen Peripherie).

Ein generelles Konzept für sowas wäre sehr wünschenswert gewesen und 
hätte das SDK deutlich über Arduino-Niveau gehoben, ist aber eben leider 
nicht vorhanden. Mein Eindruck von dem SDK ist: es wurde vor allem mit 
der Absicht entwickelt, dass halt der Arduino-Gammel darauf aufsetzen 
kann...

von Tim  . (cpldcpu)


Lesenswert?

Rudolph R. schrieb:
> Und das Wizio-Pico ist jetzt so eine Plattform und erlaubt sowohl
> Arduino als auch Baremetall (mit dem PICO-SDK) Programmierung des
> RP2040.

Ok, danke für die Erklärung. Ist es die einzige RP2040 unterstützung für 
platform.io oder gibt es noch andere Optionen?

von Rudolph R. (rudolph)


Lesenswert?

Tim  . schrieb:
> Ok, danke für die Erklärung. Ist es die einzige RP2040 unterstützung für
> platform.io oder gibt es noch andere Optionen?

Das findet man heraus wenn man in PlatformIO im "Board Explorer", zu 
finden als "Boards", nach dem Gewünschten sucht, in dem Fall "RP2040".
Es gibt noch "Raspberry Pi RP2040" als Plattform, das unterstützt 
allerdings nur Arduino als Framework.
Das nutzt ArduinoCore-mbed und dort wurde die Funktion spi_init() vom 
Pico-SDK in _spi_init() umbenannt.
Wenn man SPI über DMA machen möchte findet man sowas heraus, das geht 
mit der seltsamen SPI-Klasse von dem 
https://github.com/arduino/ArduinoCore-mbed nämlich nicht.
Dabei ist das der offizielle Arduino Core, DMA kennen die nicht.

Und wegen einem Bug in Common.h, vererbt aus 
https://github.com/arduino/ArduinoCore-API muss man stdbool.h 
includieren vor dem Arduino.h, mal schauen, wann das durch die ganzen 
Abhängigkeiten soweit durchgereicht ist, dass der "Fix" in Common.h in 
"Raspberry Pi RP2040" angekommen ist.

von m.n. (Gast)


Lesenswert?

c-hater schrieb:
> Unsinn. Es ist im Gegenteil so,

Da ist sie wieder, Deine Leseschwäche.

> also dem RP2040-DB zu beschäftigen.

.. das leider zu dünn geraten ist. Wesentliche Sachen muß man zwischen 
den Zeilen Lesen und mit Hardware testen, ob man sie richtig verstanden 
hat.

von Der Bastler (Gast)


Lesenswert?

In einigen Beiträge sind dafür, andere dagegen. Das scheint nicht ganz 
so einfach zu sein wie ich es mir erhofft hatte.
Um das Thema zu beenden, das ganze hat für mich keinen Sinn, zu 
kompliziert für mich als Anfänger, keine Unterstützung von der Hardware, 
Unklare Erklärungen im Datenblatt oder einfach nicht vorhanden.
Fazit für mich: Lass die Finger da von sonst hast du genügend Zeit dich 
zu Ärgern.

von EAF (Gast)


Lesenswert?

Der Bastler schrieb:
> Das scheint nicht ganz
> so einfach zu sein wie ich es mir erhofft hatte.

Und das ist ein Grund, den Kopf ins Korn zu stecken und die Flinte in 
den Sand zu werfen?

von Stefan F. (Gast)


Lesenswert?

Jedenfalls haben diese Boards und auch der lose Chip den unschlagbaren 
Vorteil, dass sie nicht nur billig sondern auch verfügbar sind.

von M3 (Gast)


Lesenswert?

> Und das ist ein Grund, den Kopf ins Korn zu stecken und die Flinte in
> den Sand zu werfen?

Ja sicher.
Scheinbar ist er ja bislang auch ohne "Ar*no" ausgekommen.

von Ergo70 (Gast)


Lesenswert?

Mein Gott, willst Du das Ding einfach Mal ausprobieren, oder Deine 
Existenz darauf aufbauen?
Installiere das SDK und einen Editor Deiner Wahl und los geht es. Du 
hast doch nun wirklich genug Informationen bekommen.

von EAF (Gast)


Lesenswert?

M3 schrieb:
> Scheinbar ist er ja bislang auch ohne "Ar*no" ausgekommen.

Hat das was mit dem " Pico ---- und in C programmieren" zu tun?

von M3 (Gast)


Lesenswert?

> Hat das was mit dem " Pico ---- und in C programmieren" zu tun?

Genau das hier:
> Habe bisher immer mit dem Atmega 8 gebastelt und ihn mit C programmiert.
> Dazu nutze ich das (ehemalige) AVR Studio 7.0 und schreibe meine
> Programme mit C.

Mein Eindruck:
Das SDK ist nicht mal ansatzweise vollständig und der präsentierte
Code nicht verständnisfördernd.
Die Dokumentation ist im gleichen schlechten Zustand.
Teile der Peripherie sind nur eingeschränkt brauchbar.

Jeder vernünftige Mensch hält da Abstand.

Dem TO gebührt Respekt, nicht auf solchen Hype hereinzufallen.

von Mombert H. (mh_mh)


Lesenswert?

M3 schrieb:
> Teile der Peripherie sind nur eingeschränkt brauchbar.
> Jeder vernünftige Mensch hält da Abstand.
Das heißt vernünftige Menschen wechseln das Hobby? Oder sponsorst du 
jedem der Bedarf hat nen paar STM32 & Co?

von Rudolph R. (rudolph)


Lesenswert?

M3 schrieb:
> Das SDK ist nicht mal ansatzweise vollständig und der präsentierte
> Code nicht verständnisfördernd.

Das hat früher auch niemanden abgehalten und es gibt auch immer noch 
genug andere Controller da draußen bei denen das auch nicht so ist.
Es gibt zum Beispiel immer noch Leute die das ASF von Atmel verwenden, 
das Hauptziel von dem Sumpf scheint gewesen zu sein möglichst viel an 
Funktionalität zu verheimlichen.
Dagegen kann man sowas wie gpio.c aus dem Pico-SDK schon gut lesen.

M3 schrieb:
> Die Dokumentation ist im gleichen schlechten Zustand.
> Teile der Peripherie sind nur eingeschränkt brauchbar.

Welche Teile denn zum Beispiel?
Mehr als GPIO und SPI habe ich mit dem RP2040 bisher praktisch nicht 
gemacht.

von Fragender (Gast)


Lesenswert?

M3 schrieb:
> Das SDK ist nicht mal ansatzweise vollständig und der präsentierte
> Code nicht verständnisfördernd.
> Die Dokumentation ist im gleichen schlechten Zustand.
> Teile der Peripherie sind nur eingeschränkt brauchbar.

Könnte das vielleicht auch daran liegen, daß es Dich einfach 
überfordert, so rein vom Verständnis her?

Oder kannst Du konkrete Beispiele nennen, an denen die Dokumentation 
unvollständig ist, so daß die Peripherie "nur eingeschränkt" brauchbar 
ist?

von Heiner (Gast)


Lesenswert?

Der Bastler schrieb:
> In einigen Beiträge sind dafür, andere dagegen. Das scheint nicht
> ganz
> so einfach zu sein wie ich es mir erhofft hatte.
> Um das Thema zu beenden, das ganze hat für mich keinen Sinn, zu
> kompliziert für mich als Anfänger, keine Unterstützung von der Hardware,
> Unklare Erklärungen im Datenblatt oder einfach nicht vorhanden.
> Fazit für mich: Lass die Finger da von sonst hast du genügend Zeit dich
> zu Ärgern.

Richtige Entscheidung 👍
Achim, bleib besser bei Attiny 841 - was macht der SPI 🤷‍♂️

von M3 (Gast)


Lesenswert?

> Könnte das vielleicht auch daran liegen, daß es Dich einfach
> überfordert, so rein vom Verständnis her?

Unvollständige Dokumentationen überfordern immer mein Verständnis.

Ansonsten habe ich in den letzten Jahren einige LPC4370 verbaut.
Bei denen sitzt in der Peripherie mitunter noch ein Cyclone 2 o. 10.
Mitunter, wenn es gebraucht wird, auch kleine Festkomma-DSP von TI.
Besonders schick: Man kommt auch an das interne RAM per Hostinterface.
So ein LPC4370 hat ja auch 2 recht schnelle M0 Kerne. Aber eben auch
noch einen M4-Kern. Das ist nun genau das was ich brauche.
Vor Jahren habe ich mich auch schon mal am IXP425 versucht.
Der konnte schon recht zeitig 533 MHz CPU-Takt.

Eine Überforderung kann ich da nicht erkennen.

Ich bin für den Pico nicht in der Zielgruppe.
Gäbe es ihn nicht, würde ich ihn auch überhaupt nicht vermissen.
Er ist für mich wie eine Antwort auf eine nie gestellte Frage.

Aber wer soll eigentlich die Zielgruppe sein?


> an denen die Dokumentation unvollständig ist

Das erwarte ich vom Qualitätsmanagement des Herstellers.
Der hat aber offenbar keins.


> Oder sponsorst du jedem der Bedarf hat nen paar STM32 & Co?

Frag das doch ST selber. Ich habe da schon einiges bekommen.

von EAF (Gast)


Lesenswert?

M3 schrieb:
> Genau das hier:
Ich sehe da nichts von Arduino....

von Nuff (Gast)


Lesenswert?

Schlechte Dokumentationen und / oder auch exotische 
Entwicklungsumgebungen haben schon so manches, möglicherweise 
brauchbares Produkt zu Fall gebracht.
Wäre schade um den RP2040.

von Pepe (Gast)


Lesenswert?

Nuff schrieb:
> Schlechte Dokumentationen und / oder auch exotische
> Entwicklungsumgebungen haben schon so manches, möglicherweise
> brauchbares Produkt zu Fall gebracht.
> Wäre schade um den RP2040.

Warum?
Hat der ausser dem raspberry hype etwas was die anderen nicht haben?
Ich denke ein ESP32 schlägt den 2040 multidimensional.

von Ergo70 (Gast)


Lesenswert?

Pepe schrieb:
> ein ESP32 schlägt
Das hat zwar alles nichts mehr mit der Frage des TE zu tun, aber gerade 
der ESP32 kam von Anfang an mit einem vollständigen SDK und guter 
Dokumentation?

von Jack V. (jackv)


Lesenswert?

Nuff schrieb:
> Schlechte Dokumentationen und / oder auch exotische
> Entwicklungsumgebungen haben schon so manches, möglicherweise
> brauchbares Produkt zu Fall gebracht.

VSCode heutzutage als exotisch zu bezeichnen, ist zumindest gewagt. Was 
genau an der Doku so furchtbar schlecht wäre, wurde ja leider auch noch 
nicht konkret erwähnt – zumindest für mich gab’s da noch keine 
Stolperstellen.

Pepe schrieb:
> Hat der ausser dem raspberry hype etwas was die anderen nicht haben?

Preis, Verfügbarkeit, Community, einige Hardwaredetails … wo du grad so 
den ESP32 ansprichst: dessen Doku ist ja nun auch nicht direkt als 
überragend bekannt …

von Olaf (Gast)


Lesenswert?

Was genau gibt es denn an der Doku zum Pico zu bemaengeln?

Sie ist zwar fuer jemanden der es gewohnt ist normale Datenblaetter
anderer MCUs zu lesen, etwas ungewoehnlich geschrieben, aber durchaus
lesbar und ich hab bisher alles gefunden was ich finden wollte.

Ich koennte mir sogar vorstellen das insbesondere Anfaenger mit dem
Stil des Pico Datenblatts besser klarkommen.

Wie ich ja schonmal sagte, der gesamte Pico und auch seine Doku, macht 
eher den Eindruck als wenn er aus der Sicht eines Softwaremenschen 
entwickelt und dokumentiert wurde und nicht von Hardwaremenschen die in 
Verilog oder Transistoren denken. :)
Das ist nicht unbedingt besser als der klassische Ansatz, aber 
interessant anders.

Olaf

von Stefan F. (Gast)


Lesenswert?

Muss mann denn von Anfang an alle Funktionen des Chips beherrschen? 
Musst du alle Funktionen deines PC beherrschen?

Mit Arduino ist er sehr einfach zu benutzen. Alles was in Arduino 
vorgesehen ist funktioniert, damit kann man schon viele tolle Sachen 
basteln.

Qualitativ mag die Doku und Software weit hinter anderen etablierten 
Marken zurück liegen. Doch dafür ist das Ding billig und gut verfügbar. 
Damit kann derzeit nach meinem Kenntnisstand keine andere Marke 
mithalten.

Beim ESP2866 lief es nicht anders. Datenblatt und SDK waren anfangs 
sogar noch viel schlechter, doch die pfiffigen Arduino Leute (und andere 
parallel dazu) haben recht schnell das Beste draus gemacht, was damals 
ging. Erst danach wurde der Chip in Hobby Kreisen so richtig 
interessant. Ohne diese 3rd party Frameworks wäre Espressif womöglich 
verhungert.

von Olaf (Gast)


Lesenswert?

> Muss mann denn von Anfang an alle Funktionen des Chips beherrschen?

Das ist eine Fragestellung die mich auch immer wieder verwundert. Ich 
bin es gewohnt Controller zu programmieren deren Datenblaetter mehrere 
Tausend Seiten haben koennen. (z.B auch den hier im Thread genannten 
LPC4370 wegen seines ADCs)
Aber man muss sich ja immer nur mit dem Teil beschaeftigen den man 
gerade braucht!

> Qualitativ mag die Doku und Software weit hinter anderen etablierten
> Marken zurück liegen.

Wie schon gesagt, ich sehe das nicht so. Er ist nur anders.

>Doch dafür ist das Ding billig und gut verfügbar.

Er ist vor allem wegen PIO und Dual-MCU mal interessant anders. Gerade 
als Bastler macht man das doch wegen der intellektuellen 
Herausforderung. Da ist der PICO schon interessant.
Ich bin auch mal sehr gespannt welchen Eindfluss die PIO auf neue 
Controller anderer Hersteller haben wird. Das Konzept ist ja nicht neu. 
Ich kenne es z.B schon von der TPU eines 68332 und es gab IMHO auch noch 
1-2 andere Implementationen von sowas. Aber der Pico hat sowas 
ploetzlich einer breiteren Masse zur verfuegung gestellt und ja ich will 
das auch bitte schoen demnaechst in einen neuen STM32 so vorfinden.

Wenn ich etwas bemaengel dann das die PIOs PIO heissen. Jeder der noch 
eine Z80PIO kennt ist das erstmal etwas verwundert. :-D

Olaf

von Onkel Ted (Gast)


Lesenswert?

https://www.freertos.org/smp-demos-for-the-raspberry-pi-pico-board.html


Wieso komplett selbständig darauf herumfrickeln?

Die Kiste hat 133MHz, damit gab's früher schon Windows 95. Wieso also 
nicht direkt auf FreeRTOS setzen?

von Achim (Gast)


Lesenswert?

Heiner schrieb:
> was macht der SPI
Display geht, bin bei Sonderzeichen.
Ansonsten habe ich keinerlei Absicht was mit Raspi Pico zu machen.
Lese zwar mit bin aber nicht ich.
achim

von Stefan F. (Gast)


Lesenswert?

Onkel Ted schrieb:
> Wieso also nicht direkt auf FreeRTOS setzen?

Als ehemaliger ATmega Programmierer hat man erstmal keine Erfahrung mit 
FreeRTOS. Immer schön einen Schritt nach dem anderen machen, nicht zu 
viele Baustellen gleichzeitig aufreißen.

von m.n. (Gast)


Lesenswert?

Der Bastler schrieb:
> Das scheint nicht ganz
> so einfach zu sein wie ich es mir erhofft hatte.

Du hast kein Ziel, darum ist Dir der Weg zu steinig.
Dann lass es bleiben.

Für andere ist der RP2040 eine lieferbare Option, anstatt ein Jahr auf 
fehlende µCs zu warten.

von Bob (Gast)


Lesenswert?

Pepe schrieb:
> Ich denke ein ESP32 schlägt den 2040 multidimensional.

Ugh, Tiefschlag, ausgerechnet ESP32, das war am Anfang richtig finster.

von M3 (Gast)


Lesenswert?

Ein brauchbarer Kandidat für den TO könnte der STM32F030 sein.
Die konnte man vor einiger Zeit noch als 10er Pack aus China
für 7 Euro beziehen. Dazu die passenden SSOP20 Adapter.
Mittlerweile leider 3 x so teuer. Aber es gibt für den STM32F030
immerhin genügend Anbieter z.B. auf Ebay.

Ein Nucleoboard ist für den Typ ebenfalls verfügbar und wegen
des dort enthaltenen SWD-Adapters auch sehr empfehlenswert.
Es erleichtert auch die ersten Schritte ungemein, ein
garantiert lauffähiges Board benutzen zu können.

Lesen wird der TO einiges müssen:
Das Datenblatt von ST,
das Referenzmanual von ST,
das M0-Referenzmanual von ARM und
natürlich die Errata.

Dann braucht er nur noch einen Compiler, und kann wie mit seinen
ATMEGA-8 loslegen.

von M3 (Gast)


Lesenswert?

Nachtrag:

Es gibt wohl von ST eine freie Lizenz für die Entwicklungsumgebung
von Keil für die ST M0-Serie. Die ist schon wegen des darin
enthaltenen Debuggers für den Anfänger sehr empfehlenswert.
Das wäre für den TO gegenüber dem "debuggerlosen" ATMEGA-8
auch ein echter Fortschritt.

von J. S. (jojos)


Lesenswert?

Das ist nur blöd wenn man dann einen M3 oder größer verwenden möchte. 
Auch wenn hier einige immer gegen ST und seine Kundenbindung wettern: 
die IDE ist sehr gut und die MCU Auswahl ist riesig. Von kleinen M0 mit 
2 kB RAM / 16 kB Flash bis zu H7 mit allem.

Für M0 war der Keil Compiler allerdings immer besser, hat deutlich 
kompakteren Code erzeugt. Den ARMCC gibt es jetzt auch online, ich weiß 
aber nicht wieweit der frei genutzt werden kann. Der ersetzt auch die 
alte Mbed Online Lösung, hatte ich letzte Woche mal ausprobiert. Läuft 
erstaunlich gut und schnell, man merkt nicht das man im Browser 
arbeitet. Mit WebUSB kann man darüber auch flashen und debuggen.

von M3 (Gast)


Lesenswert?

> Das ist nur blöd wenn man dann einen M3 oder größer verwenden möchte.

Irgendetwas ist immer.
Einfach einen Schritt nach dem anderen.
Und der erste Schritt wäre ein M0.

von J. S. (jojos)


Lesenswert?

M3 schrieb:
> Einfach einen Schritt nach dem anderen.
> Und der erste Schritt wäre ein M0.

ich möchte damit nur sagen das es blöd ist sich in eine IDE 
einzuarbeiten und für den nächsten Schritt dann auf eine andere wechseln 
zu müssen. Gut, man kann den Keil Compiler natürlich auch käuflich 
erwerben.
Und ein M3 ist kein Unterschied in der C Programmierung zum M0. Aber es 
gibt noch keinen RP M3 und daher ist das für die ursprüngliche Frage 
auch irrelevant.
Keil (Online) hat auch kein Support Package für den RP2040, ist also 
viel Fummelei wenn man den da Nutzen möchte.
https://community.arm.com/support-forums/f/keil-forum/48725/raspberry-pi-rp2040---is-the-keil-mdk-support-considered

von DerEgon (Gast)


Lesenswert?

IAR kennt den RP2040 seit EWARM Version 9.10.2

Die auf 32 kByte Codegröße beschränkte "Kickstart"-Version gibt "für 
lau", andere werden dann .. empfindlich teuer.

von DerEgon (Gast)


Lesenswert?


von M3 (Gast)


Lesenswert?

> Die auf 32 kByte Codegröße beschränkte "Kickstart"-Version gibt "für
> lau"

Naja, die reicht ja dann für den kleinen STM32F030 auch.
Und mit etwas Beschränkung auf für den STM32F103.

Den Debugger vom Keil halte ich allerdings für geringfügig besser
weil übersichtlicher.

> die ursprüngliche Frage
hat sich für den TO ohnehin erledigt.

> Um das Thema zu beenden, das ganze hat für mich keinen Sinn, zu
> kompliziert für mich als Anfänger, keine Unterstützung von der Hardware,

Aber es gibt ja oberhalb des ATMEGA8 noch genug 32 bit Luft
um da seine Nase hineinzustecken und trotzdem bei seinem
für ihn bewährten Umgang mit Datenblatt und Controller zu bleiben.

von M3 (Gast)


Lesenswert?

> sich in eine IDE
> einzuarbeiten und für den nächsten Schritt dann auf eine andere wechseln
> zu müssen

Ach?
Die wesentlichen Bestandteile der IDEs sind doch praktisch dieselben.
Von den Keil-Extensions(Packs) vielleicht mal abgesehen.
Die muss man ja nicht benutzen. Das würde der TO sicher anfangs auch
nicht tun.
Kennt man eine, findet man das gesuchte bei der anderen auch.
Ansonsten sind es beides kommerzielle Produkte mit eben
auch einer kommerziell guten Dokumentation die man lesen muss.

Wenn man mit Xilinx ISE umgehen konnte, war der Sprung zu
Alteras Quartus auch nur ein kleiner Hüpfer.

von Stefan F. (Gast)


Lesenswert?

M3 schrieb:
>> Die auf 32 kByte Codegröße beschränkte "Kickstart"-Version gibt "für
>> lau"
> Und mit etwas Beschränkung auf für den STM32F103.

Ein "Hello World" auf USB-Serial braucht (mit HAL) etwa 20 kB davon.

von M3 (Gast)


Lesenswert?

> Ein "Hello World" auf USB-Serial braucht (mit HAL) etwa 20 kB davon.

Ich glaube nicht, dass der TO mit der HAL oder USB anfangen wird.
Der STM32F030 hätte auch keine USB-Peripherie.

Vielleicht einmal probieren. Um festzustellen, dass sein bisher
durch Lesen und Erfahrung erworbenes Wissen wieder einmal nichts
mehr nützt, um dann ohne HAL weiterzumachen.

Die Beschränkung der Grösse des Flashs beim kleinen STM32F030
tut da ihr übriges. Die will man vielleicht nicht mit aufgeblähtem
HAL-Code füllen, um am Ende das eigentlich zu lösende Problem
nicht mehr unterbringen zu können.

Insoweit ist die Information mit den 20 kB ja ganz interessant
aber ansonster relativ nutzlos.

von Stefan F. (Gast)


Lesenswert?

M3 schrieb:
> Insoweit ist die Information mit den 20 kB ja ganz interessant
> aber ansonster relativ nutzlos.

Ich wollte die oben genannte "Beschränkung für den STM32F103" 
konkretisieren. Damit man ein Gefühl davon bekommt, wie viel von den 32 
kB für eigenen Code übrig bleiben, wenn man USB verwendet.

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.