Forum: Mikrocontroller und Digitale Elektronik Empfehlungen für aktuellen µC


von Hansi Hinterwäldler (Gast)


Lesenswert?

Hallo Leute!

Meine Elektronik- und µC-Zeit ist ein paar Jahre her (AVR/PIC) und ich 
möchte mit aktuellerem µC Wiedereinsteigen.

Ich bitte um ein paar Empfehlungen.

Meine Anforderungen:
- Leistung z.B. ARM 50-150Mhz, 1 Kern
- Sparsam, aber nicht ultra-Sparsam (kein Batteriebetrieb)
- 2x UART
- 4x PWM (unabhängiger Kanal)
- I2C
- 2x SPI
- Toolchain / Programmer unter Linux lauffähig und Open Source

Gibt es welche wo ich bei dem PWM die Anzahl der Pulse vorgeben kann?
Z.B.
200 Hz, 50% Duty cycle, 4000 Pulse dann schluss

Mehrere µC sollen per RS485 an einem Bus gekoppelt werden.

von Falk B. (falk)


Lesenswert?

Hansi Hinterwäldler schrieb:
> Meine Anforderungen:
> - Leistung z.B. ARM 50-150Mhz, 1 Kern
> - Sparsam, aber nicht ultra-Sparsam (kein Batteriebetrieb)
> - 2x UART
> - 4x PWM (unabhängiger Kanal)
> - I2C
> - 2x SPI

Können praktisch alle, sei es 8 oder 32 Bit. Such dir den schönsten aus. 
STM32, LPC, PICCOLO, ESP32 whatever.

> - Toolchain / Programmer unter Linux lauffähig und Open Source

WOW! Und was machst du dann mit der Open Source? Selber an der IDE und 
am Compiler schrauben? Oder ist das nur der übliche Open Source Fetisch?

> Gibt es welche wo ich bei dem PWM die Anzahl der Pulse vorgeben kann?
> Z.B.
> 200 Hz, 50% Duty cycle, 4000 Pulse dann schluss

Ist mir nicht bekannt, muss man per CPU und Interrupt machen, ist 
aber  kein Problem.

Beitrag #7008932 wurde von einem Moderator gelöscht.
von Christian B. (Firma: privat) (cebra)


Lesenswert?

Hansi Hinterwäldler schrieb:
>

> Meine Anforderungen:
> - Leistung z.B. ARM 50-150Mhz, 1 Kern
> - Sparsam, aber nicht ultra-Sparsam (kein Batteriebetrieb)
> - 2x UART
> - 4x PWM (unabhängiger Kanal)
> - I2C
> - 2x SPI
> - Toolchain / Programmer unter Linux lauffähig und Open Source
>


Meine Empfehlung stm32f411

https://stm32-base.org/boards/STM32F411CEU6-WeAct-Black-Pill-V2.0.

Preiswert zu bekommen, wenn man etwas Zeit bei Aliexpress.

Und den ST Link gleich mitbestimmen.

https://stm32-base.org/boards/Debugger-STM32F103C8U6-STLINKV2



Mit Cube-IDE, läuft perfekt mit Linux

Christian

von MaWin (Gast)


Lesenswert?

Hansi Hinterwäldler schrieb:
> Mehrere µC sollen per RS485 an einem Bus gekoppelt werden.

Hansi Hinterwäldler schrieb:
> Leistung z.B. ARM 50-150Mhz, 1 Kern

Was machst du mit den übrigen  49-149 MHz ?

Deine Schnittstellen sind so langsam,  kein Ethernet oder WLAN oder 
Video, dass die Rechenleistung nie genutzt werden kann - es sei denn du 
programmierst 99% uneffektiv mit Skriptsprache in Python unter Android 
im Java-Emulator unter Linux-Kernel.

von m.n. (Gast)


Lesenswert?

Hansi Hinterwäldler schrieb:
> Ich bitte um ein paar Empfehlungen.

Zum Spielen kannst Du kostengünstig mit einem RP2040 einsteigen: 
https://www.reichelt.de/raspberry-pi-pico-rp2040-cortex-m0-microusb-rasp-pi-pico-p295706.html?CCOUNTRY=445&LANGUAGE=de&nbc=1&SID=9683f5e82525893246f62a07cf65a9ff7f03c12fd3fb0d3ac4716&trstct=adw_164264&&r=1
Die Software (Pico-SDK) ist von Linuxern für Linuxer.

Großer Vorteil: die Boards sind verfügbar.
Große Nachteile: keine richtigen Timer, USART ohne Adressbiterkennung, 
ADC mit undefinierten schlechten Daten, ...
Zum Spielen eben, bis es wieder richtige µCs zu kaufen gibt ;-)

von Christian B. (Firma: privat) (cebra)


Lesenswert?


: Bearbeitet durch User
von Chuckles (Gast)


Lesenswert?

Hansi Hinterwäldler schrieb:
> Gibt es welche wo ich bei dem PWM die Anzahl der Pulse vorgeben kann?
> Z.B.
> 200 Hz, 50% Duty cycle, 4000 Pulse dann schluss

Ehrlich gesagt klingt das ganze schon nach einer Anwendung für den 
RP2040. Er erfüllt alle Anforderungen, bietet genug Tutorials und Libs 
und über das PIO System lässt sich nach etwas Experimentierzeit vieles 
erreichen.

Zudem ist er problemlos verfügbar, was in heutigen Zeiten auch nicht zu 
verachten ist aber vermutlich egal für ein ein Hobby-Projekt.

von Stefan F. (Gast)


Lesenswert?

Hansi Hinterwäldler schrieb:
> Ich bitte um ein paar Empfehlungen.

http://stefanfrings.de/stm32/index.html

Olimex ist nicht ganz billig, kann dafür aber liefern: 
https://www.olimex.com/Products/ARM/ST/

von foobar (Gast)


Lesenswert?

> Große Nachteile: keine richtigen Timer,

Was verstehst du unter "richtig"?
1
4.6. Timer
2
3
4.6.1. Overview
4
5
    ... 64-bit system timer with 4 alarms
6
    ...
7
8
4.6.1.1. Other Timer Resources on RP2040
9
10
The system timer is intended to provide a global timebase
11
for software. RP2040 has a number of other programmable
12
counter resources which can provide regular interrupts,
13
or trigger DMA transfers.
14
15
    • The PWM (Section 4.5) contains 8× 16-bit programmable
16
      counters, which run at up to system speed, can generate
17
      interrupts, and can be continuously reprogrammed via 
18
      the DMA, or trigger DMA transfers to other peripherals.
19
    • 8× PIO state machines (Chapter 3) can count 32-bit 
20
      values at system speed, and generate interrupts.
21
    • The DMA (Section 2.5) has four internal pacing timers, 
22
      which trigger transfers at regular intervals.
23
    • Each Cortex-M0+ core (Section 2.4) has a standard 
24
      24-bit SysTick timer, counting either the microsecond 
25
      tick (Section 4.7.2) or the system clock.
26
    ...
27
4.7. Watchdog
28
    ...
29
4.8. RTC
30
    ...

Dazu kommt noch, dass die meisten davon einen "fractional clock devider" 
haben, mit denen man dann auch "krumme" Teiler hinbekommt.

Ich find die Ausstattung mit Timern eigentlich ziemlich luxuriös.

von Norbert (Gast)


Lesenswert?

foobar schrieb:
> m.n. schrieb:
>> Große Nachteile: keine richtigen Timer,
> Was verstehst du unter "richtig"?

Ach, keine Sorge. Da ist irgendwo im Namen ›Rasp‹ vorhanden und schon 
übernehmen die Beißreflexe das Kommando. ;-)

von PittyJ (Gast)


Lesenswert?

Falk B. schrieb:
>> - Toolchain / Programmer unter Linux lauffähig und Open Source
>
> WOW! Und was machst du dann mit der Open Source? Selber an der IDE und
> am Compiler schrauben? Oder ist das nur der übliche Open Source Fetisch?

Die CubeIde von STM läuft wunderbar auf Linux. Da braucht nichts 
geschraubt werden. Kann aber, bei Bedarf.

von Stefan F. (Gast)


Lesenswert?

PittyJ schrieb:
> Oder ist das nur der übliche Open Source Fetisch?

Für manche Leute ist das ein Qualitätsmerkmal. Nach leidvollen 
Erfahrungen mit Produkten von Microsoft und Adobe wundert mich das 
nicht.

von Rudolph R. (rudolph)


Lesenswert?

Stefan ⛄ F. schrieb:
> Für manche Leute ist das ein Qualitätsmerkmal. Nach leidvollen
> Erfahrungen mit Produkten von Microsoft und Adobe wundert mich das
> nicht.

VSCode ist von Microsoft und OpenSource - und jetzt?

Meine Empfehlung wäre dann auch PlatformIO als Plugin für VSCode zu 
verwenden und dann mal zu schauen was man überhaupt in welcher Form als 
Controller gerade bekommen kann.

Die Controller die ich vorzugsweise benutze sind gerade laut Mouser auf 
52 bzw. 89 Wochen Lieferzeit hoch, aber fertige Platinen bekommt man zum 
Teil noch. Diese Krise ist noch lange nicht vorbei, da wird weiter 
gehamstert was auf dem Markt auftaucht.

von Norbert (Gast)


Lesenswert?

Rudolph R. schrieb:
> Stefan ⛄ F. schrieb:
>> Für manche Leute ist das ein Qualitätsmerkmal. Nach leidvollen
>> Erfahrungen mit Produkten von Microsoft und Adobe wundert mich das
>> nicht.
>
> VSCode ist von Microsoft und OpenSource - und jetzt?

Au ja, erklär uns doch bitte mal deinen ›und jetzt‹ Gedankenansatz.

Eine Million Touris besaufen sich bis zum Würfelhusten an Mallorcas 
Stränden.
Ich habe einen gesehen der's nicht macht. Und jetzt?

Jaaaa … weiss nicht … dann haben's die Anderen wohl auch nicht getan. 
Wer weiß wo ich da rein getreten bin.

Empfehlung:https://www.logicalfallacies.org/

von Hmmm (Gast)


Lesenswert?

Chuckles schrieb:
> RP2040

Einen Haken sollte man aber nicht übersehen: Der braucht (genau wie z.B. 
der ESP32) externes Flash.

von Stefan F. (Gast)


Lesenswert?

Rudolph R. schrieb:
> VSCode ist von Microsoft und OpenSource - und jetzt?

Ich habe nicht geschrieben, dass alle Produkte von Microsoft schlecht 
seien oder dass es von Microsoft keine Open-Source Projekte gäbe. Hier 
wird einem ja jedes Wort im Mund umgedreht.

Allerdings hast du damit eine Bestätigung für
> Für manche Leute ist das ein Qualitätsmerkmal
geliefert. Da machen sie mal etwas als Open-Source und schon wird es 
gut.

von Rudolph R. (rudolph)


Lesenswert?

Norbert schrieb:
>> VSCode ist von Microsoft und OpenSource - und jetzt?
>
> Au ja, erklär uns doch bitte mal deinen ›und jetzt‹ Gedankenansatz.
>
> Eine Million Touris besaufen sich bis zum Würfelhusten an Mallorcas
> Stränden.
> Ich habe einen gesehen der's nicht macht. Und jetzt?

Das war wohl nichts, Logik und so, in dem Zusammenhang haben wir einen 
spezifischen "Touristen" der sein Verhalten geändert hat, nicht einen 
anderen der sich anders verhält.
Der Punkt ist, bei Microsoft hat sich die letzten Jahre einiges getan 
und die Gleichung Microsoft = Böse geht einfach weniger gut auf wie 
früher.
Finde ich das alles toll was die machen? Nein, auf gar keinen Fall, Aber 
ein paar Dinge die Microsoft macht finde ich durchaus gut.

von m.n. (Gast)


Angehängte Dateien:

Lesenswert?

foobar schrieb:
> Was verstehst du unter "richtig"?
> ...
> Ich find die Ausstattung mit Timern eigentlich ziemlich luxuriös.

Keiner der aufgezählten Timer hat eine Capture-Funktion. Gut, man kann 
mit den PWM-Timern viele blaue LEDs blinken lassen. Aber wer braucht so 
etwas im realen Leben?

Alternativ wurde hier auch der STM32F411 vogeschlagen. Sieh Dir die 
dortigen Timer an, wenn Du den Unterschied zwischen schlicht und 
luxuriös kennen willst.

Wie gesagt, fertige Boards mit dem RP2040 sind für wenig Geld verfügbar. 
Wenn er für die Aufgabe reicht, ist es gut, wenn nicht: Sackgasse.

von Peter D. (peda)


Lesenswert?

Hansi Hinterwäldler schrieb:
> Meine Anforderungen:
> - Leistung z.B. ARM 50-150Mhz, 1 Kern
> - Sparsam, aber nicht ultra-Sparsam (kein Batteriebetrieb)
> - 2x UART
> - 4x PWM (unabhängiger Kanal)
> - I2C
> - 2x SPI
> - Toolchain / Programmer unter Linux lauffähig und Open Source

Was soll denn der ARM machen, zu 99,9% Däumchen drehen.
Den Rest kann z.B. ein ATmega328PB.

von foobar (Gast)


Lesenswert?

> Keiner der aufgezählten Timer hat eine Capture-Funktion.

Evtl solltest du mal das Handbuch des RP2040 lesen?
1
4.5 PWM
2
   ...
3
The RP2040 PWM block has 8 identical slices. Each slice can drive
4
two PWM output signals, or measure the frequency or duty cycle of
5
an input signal. This gives a total of up to 16 controllable PWM
6
outputs. All 30 GPIO pins can be driven by the PWM block.
7
   ...
8
Each PWM slice is equipped with the following:
9
   • 16-bit counter
10
   • 8.4 fractional clock divider
11
   • Two independent output channels, duty cycle from 0% to 100%
12
     inclusive
13
   • Dual slope and trailing edge modulation
14
>  • Edge-sensitive input mode for frequency measurement
15
>  • Level-sensitive input mode for duty cycle measurement
16
   • Configurable counter wrap value
17
     Wrap and level registers are double buffered and can be
18
     changed race-free while PWM is running
19
   • Interrupt request and DMA request on counter wrap
20
   • Phase can be precisely advanced or retarded while running
21
     (increments of one count)
22
23
Slices can be enabled or disabled simultaneously via a single,
24
global control register. The slices then run in perfect lockstep,
25
so that more complex power circuitry can be switched by the outputs
26
of multiple slices.

von m.n. (Gast)


Lesenswert?

foobar schrieb:
> Evtl solltest du mal das Handbuch des RP2040 lesen?

Ich verstehe. Du weißt garnicht was input-capture ist!

von Peter D. (peda)


Lesenswert?

m.n. schrieb:
> Keiner der aufgezählten Timer hat eine Capture-Funktion.

Danach war ja auch nicht gefragt.
Um die 4000 Compare-Interrupts mitzuzählen, brauchts kein Capture.

Beitrag #7009600 wurde von einem Moderator gelöscht.
von m.n. (Gast)


Lesenswert?

Peter D. schrieb:
> Danach war ja auch nicht gefragt.
> Um die 4000 Compare-Interrupts mitzuzählen, brauchts kein Capture.

Ein sehr unpassender Kommentar. Den RP2040 hatte ich dem TO genannt.
Du solltest schon den gesamten Zusammenhang lesen und verstehen.

von Peter D. (peda)


Lesenswert?

m.n. schrieb:
> Ein sehr unpassender Kommentar. Den RP2040 hatte ich dem TO genannt.

Und warum soll er deswegen Capture beötigen?

von m.n. (Gast)


Lesenswert?

Peter D. schrieb:
> Und warum soll er deswegen Capture beötigen?

Weil Du es ihm einreden willst. Mußt Du Dir also selber beantworten.

Der TO will hingegen mit einem ARM arbeiten. Verschone ihn daher mit 
Deinem ATmega328.

von Peter D. (peda)


Lesenswert?

m.n. schrieb:
> Weil Du es ihm einreden willst.

Achne.
Du hast es doch zuerst erwähnt, siehe:

m.n. schrieb:
> Keiner der aufgezählten Timer hat eine Capture-Funktion.

Warum also?

m.n. schrieb:
> Der TO will hingegen mit einem ARM arbeiten.

Weil er völlig falsche Vorstellungen vom Ressourcenbedarf hat. Es sei 
denn, er will über SPI Ethernet und Grafik-LCD anbinden. Quasi von 
hinten durch die Brust ins Auge.

von Name: (Gast)


Lesenswert?

Genialer Inkenieur schrieb im Beitrag #7008932:
> Nimm einfach einen STM32(F/L), ATSAM und die bereitgestellte IDE. Warum
> alle immer eine opensource Toolchain haben wollen ist mir ein Rätsel.
> Konzentriere dich doch lieber aufs programmieren und das Umsetzen deines
> Projektes ...

Generell hast du recht.
Leider hat ST TI geheiratet und ist in die Flitterjahre gegangen. Daher 
steht die Produktion derzeit still, und es gibt keine Chips zu kaufen.

von m.n. (Gast)


Lesenswert?

Peter D. schrieb:
> Achne.
> Du hast es doch zuerst erwähnt, siehe:
>
> m.n. schrieb:
>> Keiner der aufgezählten Timer hat eine Capture-Funktion.

Ja, ja, Lesen ist nicht Deine Stärke.
Der TO hatte wohl nach konstruktiven Empfehlungen gesucht.

Gerade gesehen: Beitrag "GoldCap im Tuner unerreichbar zum Tausch - Abhilfe?"
;-)

von klaus (Gast)


Lesenswert?

Hansi Hinterwäldler schrieb:
> Toolchain / Programmer unter Linux lauffähig und Open Source

Naja, Hansi meint hier wohl eher für "lau". Gratis Toolchains, die 
uneingeschränkt sind, basieren (zumindest für ARM & Co) eh auf gcc. Die 
wenigsten hier werden selbst am gcc rumschrauben (Johann mal 
ausgenommen). Ein paar kompilieren noch selbst. Ich habe das zuletzt 
vermehrt vor über 20 Jahren gemacht, beim gcc für HC11 und gcc für 
80166. Zzt. reicht mir ein "sudo apt install gcc-arm-none-eabi code" um 
die IDE zu installieren.

Muss irgend wann mal testen, was der llvm für ARM taugt...

von c-hater (Gast)


Lesenswert?

m.n. schrieb:

> Keiner der aufgezählten Timer hat eine Capture-Funktion.

Das stimmt nicht. Jede beliebige der acht PIO-SMs (Punkt 2 der 
Auflistung) kann natürlich auch capturen und zwar auf bis zu 32 Kanälen 
parallel (theoretisch, praktisch hat das Teil garnicht so viele GPIOs) 
und das bei einer zeitlichen Auflösung von 1/4 des Systemtaktes. Wenn 
man im Bereich der offiziell erlaubten Taktgrenzen und der tatsächlich 
verfügbaren Zahl GPIOs bleibt, wären das also letztlich effektiv 26 
Kanäle bei 33MHz Samplerate. Und man hat 264kB RAM zum Buffern der 
Capture-Ereignisse, die bereits in "gepackter" Form aus der DMA von der 
PIO rausfallen.

Schon ganz ordentlich, findest du nicht? Also ich wäre jedenfalls 
gespannt auf deinen zum Scheitern verurteilten Versuch, etwas auch nur 
annähernd Vergleichbares mit den Möglichkeiten deines so hochgelobten 
STM32 zu realisieren...

von m.n. (Gast)


Lesenswert?

c-hater schrieb:
> Schon ganz ordentlich, findest du nicht?

Nein.
Das glaube ich erst dann, wenn Du mir überprüfbaren Beispielcode zeigst. 
Und da das nicht passieren wird, kann ich mich entspannt zurücklehen ;-)

von c-hater (Gast)


Lesenswert?

m.n. schrieb:

> Das glaube ich erst dann, wenn Du mir überprüfbaren Beispielcode zeigst.
> Und da das nicht passieren wird, kann ich mich entspannt zurücklehen ;-)

Das passiert aber nicht deshalb nicht, weil es nicht möglich wäre, 
sondern nur deshalb nicht, weil du mich nicht dafür bezahlst. Du selber 
bekommst es ja wohl nicht gebacken, wenn ich das richtig verstehe. Du 
hast ja nichtmal das Potential erkannt...

Also, leg' ein Pflichtenheft und schönes Angebot mit hinreihend € vor, 
dann bekommst du eine schöne Lösung, die genau das Versprochene zu 
leisten vermag.

Ansonsten: Geh weg und mach's dir selber.

von m.n. (Gast)


Lesenswert?

c-hater schrieb:
>> Das glaube ich erst dann, wenn Du mir überprüfbaren Beispielcode zeigst.
>> Und da das nicht passieren wird, kann ich mich entspannt zurücklehen ;-)
>
> Das passiert aber nicht deshalb nicht, weil es nicht möglich wäre,

Ich wußte doch, daß Du kneifen wirst. Außer Deiner fäkalierten 
Äußerungen ja die einzig konstante "größe" an Dir ;-)

von c-hater (Gast)


Lesenswert?

m.n. schrieb:

> Ich wußte doch, daß Du kneifen wirst.

Nicht ich kneife, du kneifst. Hast du nicht mal ein paar € auf Tasche 
oder wie?

Mit entsprechender Einlage bist du ja dann der Eigentümer des Codes. 
Dann kannst DU entscheiden, ob du ihn veröffentlichen magst. So lange 
der tatsächliche Urheber genannt wird (und nicht etwa m.n.), würde ich 
dem bereits jetzt zustimmen.

Also: wie isses?

von m.n. (Gast)


Lesenswert?

c-hater schrieb:
> Also: wie isses?

Von Dir habe ich noch keine Zeile Code gesehen. Wer sagt mir, daß Du 
überhaupt programmieren kannst? In C ja wohl garnicht.
Geld für einen Nobody - auf Verdacht - einfach so?
Gib es doch einfach zu: Was Du behauptet hast, funktioniert nicht!

von meineMeinung (Gast)


Lesenswert?

Immer diese armseligen Privatfehden in den Threads, könnt Ihr die nicht 
mit PN austauschen? oder reicht das Denken nicht so weit?

von m.n. (Gast)


Lesenswert?

Deinem eigenen Rat folgend hättest Du uns allen selber eine PN schreiben 
können!

Das Forum lebt von kontroversen Meinungen. Anderfalls wäre es 
langweilig.
Manchmal muß man auch die Informationen zwischen den Zeilen lesen.

Interessanter wäre eine Reaktion des TO, ob und wie er sich entscheiden 
konnte.

von c-hater (Gast)


Lesenswert?

m.n. schrieb:

> Von Dir habe ich noch keine Zeile Code gesehen.

Dann liest du hier nicht regelmäßig.

> In C ja wohl garnicht.

Ich habe schon etliches veröffentlicht. Klar, fast alles Asm, weil ich 
der Meinung bin, dass die AVR8 damit am besten ausgenutzt werden können 
und es hier halt meist um AVR8 ging.

Ich kann dir aber versichern, dass ich auch C (und ein halbes Dutzend 
weiterer Sprachen) so weit beherrsche, dass es nur wenigen auffällt, das 
ich sie eigentlich nicht mag. Du würdest es sicher nichtmal merken, denn 
DU kannst nix außer Wichsvorlagen zusammenleimen. Und für dein 
konkretes Problem (Capture mit RP2040) gibt es wohl halt die passende 
Wichsvorlage noch nicht...

Was dich zu der völlig idiotischen Behauptung veranlasst, das ginge 
nicht. Nein, das ist falsch: Nur du kannst es nicht, mangels passender 
Wichsvorlage.

Mein Angebot ist nun: ich liefere sie dir. Gegen Geld und mit der 
Erlaubnis, den Quelltext hier zu veröffentlichen, wenn du magst. Mit der 
einzigen Einschränkung, den wahren Urheber (mit dem Pseudonym c-hater) 
angeben zu müssen.

Ich halte das für mehr als fair.

von Wie bitte? (Gast)


Lesenswert?


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.