ich experimentiere gerade mit dem Nucleos STM32F4* Board rum.
Ich wollte mir aber etwas kleineres/simpleres holen, eventuell auf der Basis von STM32U031K8U3. Also es geht drum bloss ein Tx/Rx Modul (Lora) dran zu bauen und einen simplen [Vcc/Gnd/DIO] Sensor. Hat jemand was online gesehen gehabt ?
Das Selbstverlöten des mini MCU kriege ich wahrscheinlich derzeit net hin :(
Vielleicht magst du ein SMD zu DIP Adapter Board verwenden. Zur Minimalausstattung braucht es ja nur ein paar Kondensatoren die man mit etwas Glück zwischen die Lötaugen der Stiftleisten platzieren kann.
Ansonsten hat Aliexpress Boards mit STM32G030, die sind auch schön sparsam.
Also es geht drum bloss ein Tx/Rx Modul (Lora)
dran zu bauen
STM32 + LoRa gibt's sogar in Form eines einzelnen Chips, der STM32WLE5 / STM32WL55 . Der basiert auf der gleichen Ultra-Low-Power- Technologie wie die STM32Uxx, hat aber ein paar extra Gimmicks um die Integration der beiden Chips zu verbessern.
Den STM32WLE5 kann man z.B. in Form der Wio-E5 -Module bekommen wo die nötigen HF-Komponenten integriert sind:
Die "LE" -Version ist jeweils die LowPower -Version die maximal 15dBm senden kann, ohne "LE" ist HighPower mit bis zu 22dBm. Letztere kann zwar auch heruntergeregelt werden auf z.B. 10dBm, verbraucht dann aber mehr als die LowPower-Version bei der gleichen Leistung.
Sensoren kannst du dann natürlich beliebig anschließen.
Etwas umständlich ist dass das Board keinen SWD Stecker hat, du musst dann einen simplen Adapter basteln um die Pins z.B. auf den klassischen 20-Pin-Wannenstecker für JTAG/SWD zu bringen, dann kannst du einen ST-Link anschließen. Du musst einmalig die Lockbits zurücksetzen und dabei die Werksfirmware löschen, das geht ganz einfach über den STM32CubeProgrammer + ST-Link.
Das Wio-E5 Modul kriegt man vielleicht sogar von Hand verlötet - interessant ist dann wie man das mit der Antennenanpassung etc. macht 😉
STM32 + LoRa gibt's sogar in Form eines einzelnen Chips, der STM32WLE5 /
STM32WL55 . Der basiert auf der gleichen Ultra-Low-Power- Technologie
wie die STM32Uxx, hat aber ein paar extra Gimmicks um die Integration
der beiden Chips zu verbessern.
Den STM32WLE5 kann man z.B. in Form der Wio-E5 -Module bekommen wo die
nötigen HF-Komponenten integriert sind:
Ich würde den STM32WL5MOC nehmen, der auf dem STM32WL55 ohne E basiert. Der hat nämlich noch einen extra Cortex M0+ Kern dabei, auf dem man den ganzen Funkkram schieben kann. Der kommt einem dann auf dem M4 nicht in die Quere.
hmm, ich bin mir net sicher, dass das paaasen würde, da fehlen ja sogat die Mosi/Miso Ausgänge und nur 14 Pins :-/ I am not sure or maybe missing something ...
@nemopuk, also wenn ich die MCU nehmen möchte die ich möchte :) dann krieg ich das Löten auch mit den vorgeschlagenen Boards nicht hin... leider
@erlkoenig sieh nicht schlecht aus, nur wolte ich den Cortex-M0+ mit dem niedrigsten Energieverbrauch haben, daher oben mit angegeben... und mindestens 32kb Speicher...
UPDATE: ich möchte gerne den Schlafmodus/Low power Modus mit verwenden und mittels ISR in Sendebetrieb übergehen...
UPDATE, UPDATE: wobei was günstiges, wäre optimal, also keine 20€ Teilse...
Ich würde den STM32WL5MOC nehmen, der auf dem STM32WL55 ohne E basiert.
Der hat nämlich noch einen extra Cortex M0+ Kern dabei, auf dem man den
ganzen Funkkram schieben kann. Der kommt einem dann auf dem M4 nicht in
die Quere.
Kann man, aber von der Rechenleistung her ist es eigentlich unnötig. Das Funkmodem ist sowieso so langsam, dass der M4 problemlos während des Senden/Empfangens irgendwas anderes machen kann. Der Use-Case für den M0 ist eher Security-Koprozessor. Das STM32WL5MOC ist kompakter, hat dennoch mehr GPIOs und kann auch zwischen LowPower + HighPower umschalten bei entsprechender externer Beschaltung, ist aber auch schwieriger zu löten.
@erlkoenig sieh nicht schlecht aus, nur wolte ich den Cortex-M0+ mit dem
niedrigsten Energieverbrauch haben, daher oben mit angegeben... und
mindestens 32kb Speicher...
Der Energieverbrauch des STM32WL*5 ist bereits extrem niedrig, IIRC sogar niedriger als bei manchen STM32Uxx. In den tieferen Low-Power-Modi ist der Typ des Prozessorkerns unerheblich für den Verbrauch, denn der Kern ist dann spannungsfrei.
UPDATE: ich möchte gerne den Schlafmodus/Low power Modus mit verwenden
und mittels ISR in Sendebetrieb übergehen...
Dafür ist der Cortex-M4 vielleicht sogar effizienter, weil er schneller wieder in den STOP2/Standby/Powerdown -Modus gehen kann ("race to sleep") bei extrem niedrigem Verbrauch. Das Funkmodul kann aktiv sein auch wenn der Prozessor im Standby-Mode ist. Der Cortex-M0 punktet eher bei kontinuierlichen bzw. sehr regelmäßigen Aufgaben. Die Wio-E5 -Module haben auch den 32kHz -Uhrenquarz integriert für die RTC, um überhaupt regelmäßig aus den tiefen Low-Power-Modi aufwachen zu können. Bei den STM32WL*5 teilen sich CPU und Funkmodul recht clever einen Takt und den integrierten Schaltregler, was den Verbrauch weiter senkt, anders als bei separatem MCU + Funkmodul.
Gerade für LoRaWAN (statt nur LoRa) ist der leistungsfähigere Cortex-M4 durchaus sinnvoll. Für die kryptografischen Funktionen von LoRaWAN haben die STM32WL*5 auch eine Hardware-Beschleunigung.
Wenn für dich der Unterschied zwischen Cortex-M0 und -M4 relevant ist, brauchst du wohl ein Board mit besonderem Low-Power-Design, also besonders effiziente LDOs und zusätzliche ICs wie USB-Serial-Adapter abschaltbar, keine LEDs usw. In dieser Hinsicht sind sogar die ST-eigenen STM32U0xx -Boards nicht besonders gut, die verwenden teilweise Schaltregler mit 500nA Eigenverbrauch! Wenn es darauf ankommt wird die Suche wohl schwierig, Eval-Boards für Ultra-Low-Power sind anscheinend rar. Der größte Verbraucher auf dem Wio-E5-LE Mini Board ist der LDO AP2112K mit 55µA Eigenverbrauch, also Größenordnungen höher als der Unterschied zwischen Cortex-M0 und -M4 die 99% der Zeit im Standby sind. Den LDO könnte man vielleicht ersetzen...
Nenne vielleicht mal den gewünschten Durchschnittsverbrauch, Art der Spannungsversorgung usw
Ich würd da gleich eine fertige LoRA-Entwicklungsplatine auf ESP oder NordicRF-Basis hernehmen. Kleiner uns stabil aufgebaut bekommt man das selber so oder so nicht hin, schon gar nicht, wenn man sich nicht mit dem Layout des Radio-Zeugs spielen will. Li-Ion Ladechip haben die Dinger oft auch noch mit drauf.
Braucht eine externe MCU, also noch klobiger als die genannten Lösungen. Stromverbrauch dieses Moduls ist OK, aber immer noch höher als STM32WL*5. Wenn man den integrierten MCU frei programmieren könnte...
Das is aber erst mal Zukunftsmusik aber ich wollte jetzt schon versuchen das Ganze LowPowerConsumption mässig aufzubauen.
Bis jetzt hab ich erst nur die Master Slave Kommunikation mittels LoRa herstellen können, aber ich möchte einen zweiten/low_cost/low_power Slave integrieren.
Dafür ist der Cortex-M4 vielleicht sogar effizienter, weil er
schneller wieder in den STOP2/Standby/Powerdown -Modus gehen kann ("race
to sleep") bei extrem niedrigem Verbrauch. Das Funkmodul kann aktiv sein
auch wenn der Prozessor im Standby-Mode ist.
@erlkoenig, also wenn du meinst dass hier der vorgeschlagene Cortex-M4 vom Verbrauch her dem M0+ im nix nachsteht, dann könnte ich mir natürlich das integrierte Modul mit LoRa in Betracht ziehen.
Ich muss zugeben ich hatte vorher die KI befragt, und diese meinte M0+ wäre am "optimalsten"...
Der größte Verbraucher auf dem Wio-E5-LE Mini Board ist
der LDO AP2112K mit 55µA Eigenverbrauch. ... Den LDO könnte man vielleicht ersetzen...
PS: Ein AP7354-33W5-7 könnte gehen, gleiches Gehäuse + Pinout, zwar nur 150mA max was aber für den STM32WLE5 an sich reichen sollte, dafür < 300nA Eigenverbrauch ohne Last. Indem man das Board über die +/- Lötpunkte speist statt über USB sollte der USB-IC stromlos sein. Dann hätte man ein sehr sparsames und kompaktes MCU+LoRa-Board; was sparsameres dürfte schwierig zu finden sein.
also ich dachte daran diesen Aufbau (später) an einen Akku
anzuschliessen, ich habe diesen parat
Mit diesem Riesen-Akku, und angenommen du sendest ca. 1x pro Minute mit mäßiger Sendeleistung, wird der STM32WL*5 einige Jahre laufen. Da würde ich eher eine Primärzelle nehmen, die hat noch viel mehr Kapazität, denn Aufladen lohnt sich bei diesen Zeitfenstern kaum (siehe Airtags, Autoschlüssel usw). Oder noch eine kleine Solarzelle hinzufügen...
ich würde dann auch das Ganze herunterstufen müssen
auf 3.3V
Wenn du einfach eine einzelne Lithium-Zelle mit 3.7V nimmst, kannst du die direkt bei den üblichen Boards an den Spannungsregler anschließen, auch beim Wio-E5-mini-board.
@erlkoenig, also wenn du meinst dass hier der vorgeschlagene Cortex-M4
vom Verbrauch her dem M0+ im nix nachsteht
Zumindest bei dieser Aufgabenstellung nicht. Wie gesagt sind die STM32WL*5 genau für solche Aufgaben durchoptimiert, besser optimiert als ST das auf Chip-Ebene gemacht hat kriegst du es nicht. Insbesondere nicht mit getrennten Chips für Funk & MCU.
Ist dann wieder weniger kompakt weil zwei Chips statt einem wie bei
STM32WL*5
Das war nur exemplarisch. Dibt noch einen haufen anderer Entwicklungsplatinen bei beiden und auch anderen. Vom STM32 gibts auch eine nucleo-Platine, die ist aber gleich ein Eck klobiger und hat vermutlich keinen Akku-Anschluss.
Die nrf sind recht sparsame M4 mit bluetooth-radio (angeblich auch in den apple airtags drin), so eine t-echo-lite platine hat ca. (40mm)² und alles drauf was man da braucht, inkl. pin-header für GPS und Sensoren und 1-Zell Akku.
Ich sprech nur für mich, aber ich würd mir für ein Exemplar eines Knotens so ein Gefrickel nicht antun. Wobei da meine Hemmschwelle was selber zu machen recht niedrig ist.
2-Zell-Akku ist auch bissl overkill für sowas, ein Linear-Regler verbrät den Inhalt der zweiten Zelle einfach komplett, und ein Schaltregler hat schnell mal (viel) mehr Eigenverbrauch als der Standby des µC.
Ich sprech nur für mich, aber ich würd mir für ein Exemplar eines
Knotens so ein gefrickel nicht antun.
Beim Wio-E5 mini board den LDO zu tauschen find ich jetzt nicht so schlimm, und ist anfangs zum Entwickeln & Testen auch erstmal nicht nötig. Ladeschaltung braucht's nichts wenn man eine Primärzelle nimmt.
ich experimentiere gerade mit dem Nucleos STM32F4* Board rum.
Ich wollte mir aber etwas kleineres/simpleres holen, eventuell auf der
Basis von STM32U031K8U3. Also es geht drum bloss ein Tx/Rx Modul (Lora)
dran zu bauen und einen simplen [Vcc/Gnd/DIO] Sensor. Hat jemand was
online gesehen gehabt ?
hmm, ich bin mir net sicher, dass das paaasen würde, da fehlen ja sogat
die Mosi/Miso Ausgänge und nur 14 Pins :-/ I am not sure or maybe
missing something ...
Die heißen dort Sercom, und davon hat er drei Stück. Natürlich kannst du die bei 14 Pins nicht alle als 4-wire SPI benutzen :-), aber eine 4-wire SPI und eine UART sind ja gerade mal 6 Pins.
Sendedauer ca. 5ms, gesamte Wach-Zeit der MCU ca. 10ms
Den Rest der Zeit ist der MCU im "STOP2" -Mode
CPU läuft mit internem RC-Oszillator MSI bei 16 MHz mit MSIPLLEN eingeschaltet
Messergebnisse:
Wie vermutet verbraucht der LDO den meisten Strom. Im STOP2-Mode ist der Verbrauch auf der "+" Leitung ca 73µA. Das sind ca. 20µA mehr als erwartet, der MCU kann im STOP2 auf ca 2µA runter; eventuell geht auf dem Board woanders noch was verloren, oder der LDO hält die Spezifikation nicht ein
Die Spannung hinter dem LDO direkt auf 3V3 einzuspeisen bringt leider nichts, dann fließt ein recht großer Strom rückwärts in den LDO
Ein Datenpaket zu senden verbraucht ca. 50µC an Ladung
Der Durchschnittsverbrauch ist dann bei ca. 123µA
Daraus kann man errechnen:
Board unmodifiziert, Versorgung über +/- Lötpunkte:
1000mAh LiPo -Zelle, sekündlich ein Paket senden ⇒ Akkulebensdauer knapp 1 Jahr
1000mAh LiPo, minütlich senden ⇒ 1,5 Jahre
2x Energizer "E91" AA Zellen in Reihe (angenommen je 3000 mAh), sekündlich ein Paket senden ⇒ 2 Jahre
2x AA, minütlich ein Paket senden ⇒ 4 Jahre
Bei den AA-Zellen kann man nicht die gesamte Kapazität nutzen aufgrund der Dropout-Voltage des LDO - Minimalspannung der MCU ist 1.8V, das untere Limit pro Zelle wäre also ≥ 1V.
Wenn man den LDO ersetzt durch ein Exemplar mit Eigenverbrauch ≤ 1µA (TPS7A02?):
1000mAh LiPo, sekündlich ein Paket senden ⇒ 2 Jahre
1000mAh LiPo, minütlich senden ⇒ 30 Jahre
LDO ganz entfernt und MCU direkt an die Batterien:
2x AA, sekündlich ein Paket senden ⇒ 6 Jahre
2x AA, minütlich ein Paket senden ⇒ 89 Jahre
Spätestens ab den zweistelligen Jahreszahlen wird es natürlich absurd, die Selbstentladung der Zellen ist höher.
Mit Supercap + 6s -Solarmodul + Shuntregler 3.3V würde es ewig halten.
Die Software ist noch nicht besonders optimiert, durch Nutzung der niedrigeren LowPower-Modi würde man für den MCU auf < 1µA kommen was aber mit dem ineffizienten LDO erstmal nichts bringt. Der Prozessor geht übrigens während des Sendens schon wieder in den STOP2 und wacht am Ende des Pakets noch einmal kurz auf. Ich vermute der kurze Peak am Anfang kommt durch das Hochfahren des Funkmoduls und das kurz darauf folgende Betreten des STOP2 durch die CPU; wenn dann das eigentliche Senden beginnt steigt der Verbrauch aufs Maximum. Am Ende des Pakets geschieht das Herunterfahren der Funkmoduls und Aufwachen der CPU gleichzeitig sodass das Diagramm da ziemlich glatt ist. Das bedeutet auch dass der Verbrauch der CPU ziemlich egal ist, weil die die meiste Zeit spannungsfrei ist und der größte Teil der Energie abgestrahlt wird (ausgenommen den Verbrauch des LDO).
Vielleicht trenn ich bei Gelegenheit mal den LDO ab und versorge nur den blanken MCU extern und messe den Verbrauch. Ich glaub ich hab irgendwo noch ein paar effizientere LDOs rumliegen...
Ich habe mal den LDO U2 (AP2112K) ausgelötet und den MCU direkt über den 3.3V-Pin per Labornetzteil versorgt. Damit komme ich auf die erwarteten ca. 2µA im STOP2 Mode.
Dann habe ich stattdessen einen TPS7A0233DBVR eingelötet der sich tatsächlich zufällig in der Wunderkiste befand, 5V über die +/- Lötpunkte eingespeist, und einen Verbrauch von ca. 60µA gemessen - viel zu hoch!
Auf Verdacht habe ich dann die Diode D10 (MBR130LSFT1) ausgelötet und siehe da, der Verbrauch auf 5V waren dann nur noch ca. 2,5µA. Der Reverse Current der Diode scheint offenbar deutlich über dem "Typical" Wert aus dem Datasheet zu liegen, aber noch unter dem Maximum...
Also gibt es folgende Möglichkeiten:
Unmodifiziertes Board über +/- Lötpunkte mit LiPo versorgen und mit ca. 70µA Sleep-Strom leben
LDO ganz entfernen, Board über 3.3V-Pin mit 2xAA Batterie versorgen, Sleep-Strom dann 2µA
LDO durch TPS7A0233DBVR o.ä. ersetzen, D10 auslöten, Board über +/- Lötpunkte von LiPo versorgen, Sleep-Strom dann 2,5µA
Wenn man dann trotzdem noch per USB versorgen können möchte muss man D10 durch ein Exemplar mit geringerem Reverse Current ersetzen
Eigenes Board mit Wio-E5-LE basteln ;-)
Mit Varianten 2 & 3 erzielt man dann die zuvor berechneten ziemlich langen Laufzeiten.
IMO macht es wenig Sinn für solche Anwendungen Akkus zu nutzen, der Aufwand und Kosten alle paar Jahre den Akku zu laden übersteigt den eines Batterietauschs. Akku-Schutzschaltung und Ladeschaltung bedeuten ebenfalls zusätzlichen Aufwand, und ich vermute die Umweltauswirkungen sind aufgrund dieses Zusatzaufwands ebenfalls schlechter. LiPo-Akkus sind bei gleicher Kapazität größer&schwerer als Primärzellen, haben eine größere Selbstentladung und größere Feuergefahr.
Am Einfachsten also Variante 2 - LDO raus, 2xAA dran, fertig mit Laufzeit von vielen Jahren.
Ich habe mal den LDO U2 (AP2112K) ausgelötet und den MCU direkt über den
3.3V-Pin per Labornetzteil versorgt. Damit komme ich auf die erwarteten
ca. 2µA im STOP2 Mode.
Mensch, nice, hast dir wirklich Gedanken gemacht (hab auch deinen Thread durchgelesen). Ich hab mir währenddessen so ein M0+ Board vom Ali besorgt gehabt (da recht günstig) um den zweiten Slave aufzusetzen. Abgesehen von der SW, auf der HW Seite bring hier aufm Board wahrscheinlich derzeit eine low power Optimierung nicht viel. Das wäre ein Long-Runner Thema.
LDO ganz entfernen, Board über 3.3V-Pin mit 2xAA Batterie versorgen,
Sleep-Strom dann 2µA
das heisst, theoretisch könnte ich jetzt direkt hingehen und einfach 2xAA in Reihe nehmen (1,5 +1,5 = 3v ??) und mein Board mit der notwendigen Spannung versorgen... also für den Anfang.
auf der HW Seite bring hier aufm Board
wahrscheinlich derzeit eine low power Optimierung nicht viel.
Kommt drauf an wie das Ali-Board so aufgebaut ist, da können Größenordnungen zwischen solchen Boards liegen. Wenn es eine Power-LED hat wie so viele Boards, wird die alleine schon das 1000-fache von meinem Testaufbau verschlucken. Musst du mal messen.
das heisst, theoretisch könnte ich jetzt direkt hingehen und einfach
2xAA in Reihe nehmen (1,5 +1,5 = 3v ??) und mein Board mit der
notwendigen Spannung versorgen...
Kommt auf dein Board an... Das Wio-E5(-LE) mini dev Board (mit LDO entfernt), oder das blanke Wio-E5(-LE), ja.