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.
Beitrag #7008932 wurde von einem Moderator gelöscht.
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
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: > 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 ;-)
Stm32F411 sind zu bekommen: https://de.aliexpress.com/item/1005001621784672.html Oder auch hier: https://www.ebay.de/itm/114930295135 Christian
:
Bearbeitet durch User
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.
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/
> 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/
Chuckles schrieb: > RP2040 Einen Haken sollte man aber nicht übersehen: Der braucht (genau wie z.B. der ESP32) externes Flash.
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.
> 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. |
foobar schrieb: > Evtl solltest du mal das Handbuch des RP2040 lesen? Ich verstehe. Du weißt garnicht was input-capture ist!
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.
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.
m.n. schrieb: > Ein sehr unpassender Kommentar. Den RP2040 hatte ich dem TO genannt. Und warum soll er deswegen Capture beötigen?
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!
Immer diese armseligen Privatfehden in den Threads, könnt Ihr die nicht mit PN austauschen? oder reicht das Denken nicht so weit?
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.
https://www.heise.de/news/AVR128DA48-Curiosity-Nano-von-Microchip-6611682.html Zumindest gibt es den noch........
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.