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.
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.
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.
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.
> 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.
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. ;-)
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.
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.
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.
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/
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.
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.
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.
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.
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.
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.
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.
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.
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.
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?"
;-)
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...
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...
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 ;-)
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.
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 ;-)
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?
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!
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.
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.