Hallo, ich möchte im Rahmen einer Arbeit einen extrem stromeffizienten und billigen Mikrocontroller bauen. Basis ist ein standalone ATmega Chip (vorerst 328, später vielleicht ein kleinerer wie der 48) mit Arduino Bootloader. Dieser soll Sensordaten nehmen (3 Floats + 1 Int sollten mindestens in ein Paket) und per BLE an ein Handy schicken. Das Handy kann wiederum kleinerer Befehle geben, zum Beispiel das nächste Sensorupdate auf einige Zeit verschieben und den uC damit Schlafen legen. Von den uCs sollen viele gleichzeitig im Einsatz sein und per Knopfzellen laufen, weshalb das Ganze sehr stromsparend, klein und billig sein muss. Der ATmega, sowie die Sensoren die ich ausgesucht habe, würde allesamt mit 1,8v laufen. Ich bin nun auf der Suche nach einer BLE Lösung die sich dafür eignet. Das Erste, das ich gefunden habe, war der ESP32. Alleine weil der Chip von der Größe riesig ist und eigene Spannungsregler hat, passt er mir nicht. Dazu kommen noch zahlreiche GPIOs, die den ATmega überflüssig machen würden, und WLAN Funktionalität, die ich einfach nicht brauche. Die nRF52 Serie von Nordic ist ähnlich: Ein kompletter uC eingebaut, der eigentlich den ATmega ersetzen könnte. Der Nordic nRF8001 läuft mit 1,9v-3,6v und hat keinen unnötigen Schnickschnack. Der Chip selber kostet nur 3€/Stück, ist aber 5x5mm mit 32 Pins, wovon ich eigentlich nur den SPI-Bus brauche und der Rest Spannungsversorgung ist (Figure 22 im Datenblatt. Figure ist im Anhang). Der Schaltkreis dürfte unmöglich von Hand zu Löten sein, richtig? Als PCB-Version habe ich nur das von Adafruit gefunden, dass mit 3-5v läuft, zusätzlich einen 3,3v-Spannungsregler und High-Low-Level-Shifter (was auch immer) eingebaut hat (Schematic im Anhang). Das Board kostet etwa 20€, der China-Nachbau 14€. Umlöten wäre eine Option... Die dritte Alternative, die ich gefunden habe, ist der nRF24L01+. Preis ist unter 2€/Stück für eine PCB-Version, die nichts weiter als Kondensatoren, Widerstände und Taktgeber hat. Hier sieht es aber mit der BLE Unterstützung mau aus. Mithilfe der nRF24/RF24- und floe/BTLE-Library müsste das BLE-Protokoll zusammengebastelt werden. Habt ihr noch weitere interessante Chips, die sich Eignen könnten und bei welchem meiner Ansätze dürfte das Endergebnis besser ausfallen? Bilder aus dem nRF8001 Datenblatt von Nordic und dem nRF8001 Tutorial von adafruit.com
nRF51 oder nRF52 Serie und den schwachbrüstigen AVR weglassen. Warum baut man den ein wenn man BLE + Cortex-M0/4 für wenige € in einem bekommt?
> Die nRF52 Serie von Nordic ist ähnlich: Ein kompletter uC eingebaut, der > eigentlich den ATmega ersetzen könnte. Den solltest du auch nehmen und den Avr kack weglassen. Der kann naemlich alles was du brauchst und wenn DU gut bist dann wirst du fuer das was du machen willst mit etwa 100uA mitteren Strom hinkommen. > er Nordic nRF8001 läuft mit 1,9v-3,6v und hat keinen unnötigen > Schnickschnack. Das duerfte vermutlich derselbe Controller wie im nRF52 sein nur sagt dir Nordic da nicht was sie verbaut haben und du musst zwei Controller durchfuettern. Fuer jemanden der "extrem energiesparend" sein will ist das eine eher dumme Loesung. Olaf
Johannes S. schrieb: > nRF51 oder nRF52 Serie und den schwachbrüstigen AVR weglassen. Warum > baut man den ein wenn man BLE + Cortex-M0/4 für wenige € in einem > bekommt? Das Ganze soll modular sein. Bei Bedarf sollen andere Sensoren verwendet werden können oder ein stärkerer oder schwächerer uC. Mit dem Arduino SDK ist auch angenehm zu arbeiten, wegen der großen Community. Es geht in der Arbeit um bestmögliche Optimierung. Von den nRF52 Chips gibt es 3 Varianten. Wenn die nicht mehr hergestellt werden oder man andere Leistung braucht, muss man komplett umsteigen. Dazu hat man keinen Einfluss, welche Komponenten im Detail auf dem Board sind. Vielleicht sollen zukünftig Sensoren fusioniert oder gefiltert werden. Mein Arduino Nano hat 9V-Block-Batterien in 3 Tagen geleert, nur mit einem Sensor angeschlossen. Das hier hat meine Beobachtung bestätigt: https://forum.arduino.cc/index.php?topic=418299.0 Deswegen möchte ich möglichst nur die Chips mit Minimalkonfiguration auf einem PCB haben. Um Spannungsversorgung etc möchte ich mich selber kümmern.
Pascal D. schrieb: > Johannes S. schrieb: >> nRF51 oder nRF52 Serie und den schwachbrüstigen AVR weglassen. Warum >> baut man den ein wenn man BLE + Cortex-M0/4 für wenige € in einem >> bekommt? > > Das Ganze soll modular sein. Bei Bedarf sollen andere Sensoren verwendet > werden können oder ein stärkerer oder schwächerer uC. Im nRF52 tickt ein Cortex-M4. Das ist ein deutlich stärkerer µC als alles, was du an AVR überhaupt kriegen kannst. Es ergibt überhaupt gar keinen Sinn, da noch einen schwächeren µC daneben zu setzen. Und modular? Die Firmware für den nRF52 kannst du doch nach Belieben ändern. GPIOs hat er auch im Überfluß. > Es geht in der Arbeit um bestmögliche Optimierung. Von den nRF52 Chips > gibt es 3 Varianten. Wenn die nicht mehr hergestellt werden oder man > andere Leistung braucht, muss man komplett umsteigen. So ein Quatsch. Nordic ist der Hersteller für µC + Funk SoC. Natürlich ändert sich bei denen das Portfolio auch ständig. Aber wenn du dich erstmal in eines deren SoC eingearbeitet hast, ist der Umstieg auf ein anderes auch nicht schwerer als der von einem AVR auf einen anderen. > Dazu hat man > keinen Einfluss, welche Komponenten im Detail auf dem Board sind. Dann nimm halt kein Board. > Mein Arduino Nano hat 9V-Block-Batterien in 3 Tagen geleert, nur mit > einem Sensor angeschlossen. Dann hast du noch eine Menge zu lernen, bis du ein wirklich stromsparendes Design (Hardware und Software) hinbekommst.
Und Unterstützung für die Nordic gibt es auch, nur nicht Arduino sondern Mbed. Pascal D. schrieb: > Mein Arduino Nano hat 9V-Block-Batterien in 3 Tagen geleert, nur mit > einem Sensor angeschlossen 9V Batterien für einen μC der 3V haben möchte?
Johannes S. schrieb: > Und Unterstützung für die Nordic gibt es auch, nur nicht Arduino sondern > Mbed. > > Pascal D. schrieb: >> Mein Arduino Nano hat 9V-Block-Batterien in 3 Tagen geleert, nur mit >> einem Sensor angeschlossen > > 9V Batterien für einen μC der 3V haben möchte? Der Nano hat entweder 5v regulated voltage input oder 7-20v unregulated. Bei jeder Spannung zieht er das Gleiche an Strom, weshalb mehr Spannung linear mehr Leistungsverbrauch bedeutet, die an dem wunderschönen Spannungsregler an Wärme anfällt. Ich bin eigentlich Informatiker und nicht Etechniker, aber ich finde das Thema interessant. Ich werde mir mal ein nRF52810 pcb holen und mit einer ATmega Lösung vergleichen.
Pascal D. schrieb: > Von den uCs sollen viele gleichzeitig im Einsatz sein und per > Knopfzellen laufen, weshalb das Ganze sehr stromsparend, klein und > billig sein muss. Dann würde ich aber nicht auf 20 Jahre alte Atmega setzen, sondern auf die Modernen Cortex-M in den NRF5x Chips. Die können zum Beispiel den Quarz schnell ein- und ausschalten (<1ms), und so verdammt viel Strom im Vergleich zum AVR sparen. Axel S. schrieb: >> Dazu hat man >> keinen Einfluss, welche Komponenten im Detail auf dem Board sind. Man will 2,4 GHz Boards nicht selber designen - jedenfalls solage man kein HF Labor zur freien Verfügung hat. Das Zeuchs ist nicht-trivial. Es gibt auch "quasi-nakte" Boards für NRF5x, wie N5 ANT SoC Serie oder die D52 Serie. Die sind mit 20x20mm auch noch einigermaßen von Hand lötbar. BTDT. Wer NordicSemi aus irgendeinem Grund nicht mag: Es gäbe auch andere Hersteller. Zum Beispiel hat Silabs eigene BTLE µC Module.
Es kommt also ein Laird bl561. Was brauche ich denn um den zu programmieren? JTAG und swd hab ich öfters gelesen. Wie schließt man sowas an und gehen da die unter-10€ Dinger von zb Amazon? Doku hab ich da jetzt ziemlich wenig gefunden...
:
Bearbeitet durch User
Jim M. schrieb: > > Axel S. schrieb: >>> Dazu hat man >>> keinen Einfluss, welche Komponenten im Detail auf dem Board sind. Nein, das schrieb ich nicht. Bitte zitiere korrekt!
Pascal D. schrieb: > Es kommt also ein Laird bl561. Was brauche ich denn um den zu > programmieren? > JTAG und swd hab ich öfters gelesen. Wie schließt man sowas an und gehen > da die unter-10€ Dinger von zb Amazon? Doku hab ich da jetzt ziemlich > wenig gefunden... Hast Du ein Datenblatt von dem Modul? Nein? Dann ab zum Download: https://connectivity.lairdtech.com/wireless-modules/bluetooth-modules/bluetooth-5-modules/bl651-series#documentation Dann liest Du das und findest heraus, dass da ein nrf52810 drauf ist. Damit gehst Du dann zu Nordic, wählst Softwar&Tools und dort Development Tools und liest, was da steht. Dafür brauchst Du hier niemandem die Zeit zu stehen, Deine Optionen sind dort vollständig aufgelistet. Davon nimmst Du eine. Fertig. Wenn Du schon mal da bist, ist es keine schlechte Idee, erstmal zu einem der angebotenen Development Kits zu greifen. Gerade für die ersten Schritte auf einer völlig neuen, unbekannten Hardware ist das hilfreich, denn damit kannst Du dann Deine Software entwickeln und hast eine Hardware, die 100% garantiert funktioniert, bei der alle Ports herausgeführt sind und wo teilweise auch gleich der passende Debugger mit drauf ist. Ja, ich weiß, das kostet alles Geld. Hättest Du 1-2 Jahrzehnte Berufserfahrung, könntest Du Dir das sparen. Hast DU aber nicht, und deswegen musst Du Geld gegen Knowhow und Arbeitszeit tauschen. Daher nimm das nRF52 DK und mach damit Deine ersten Schritte. Die ganzen SDKs und SoftDevices findest Du da auch. fchk
Hast du das mit den 1,8V wirklich durchdacht? Ich kenne keine Batterie, die 1,8V liefert. Also willst du wohl einen Spannungsregler verwenden. Der Mikrocontroller wird aber unterm Strich mit Sicherheit effizienter arbeiten, wenn er ohne Spannungsregler direkt an der Batterie hängt. Du könntest zum Beispiel eine LiIo Zelle zur Versorgung des Mikrocontrollers verwenden. Dieser schaltet die Stromversorgung der Sensoren nur bei Bedarf ein - dafür verwendest zu einen Spannungsregler mit Enable Eingang. 2,8V oder 3V sind hier wahrscheinlich einfacher, weil du dann keine Aufwändigen Pegelwandler brauchst (höchstens Spannungsteiler, wenn überhaupt).
Pascal D. schrieb: > Von den uCs sollen viele gleichzeitig im Einsatz sein und per > Knopfzellen laufen, weshalb das Ganze sehr stromsparend, klein und > billig sein muss. Da Du viele gleichzeitig einsetzen möchtest, musst Du aufpassen. Der nRF52810 kann kein Bluetooth5 Mesh, das können nur die nRF52832 und nRF52840. Daher empfehle ich den 32er (da der 40er eine höhere Stromaufnahme hat).
Stefanus F. schrieb: > Hast du das mit den 1,8V wirklich durchdacht? Ich kenne keine Batterie, > die 1,8V liefert. Also willst du wohl einen Spannungsregler verwenden. > Der Mikrocontroller wird aber unterm Strich mit Sicherheit effizienter > arbeiten, wenn er ohne Spannungsregler direkt an der Batterie hängt. Genau das. Alle Module laufen bisher bei 1.8-3.5v. Ich würde testen, bei welcher Variante ich am Meisten aus den Batterien holen könnte: Ein Spannungsregler, der 1.8v ausgibt, wenn die Batteriespannung weniger als 1.8v ausgibt. Damit kann ich mehr aus der Batterie ziehen, aber der zusätzliche Spannungsregler zieht auch etwas Strom extra. Wenn die durchschnittliche Entladekurve für den Typ Batterie, den ich auswählen werde, ermittelt ist, kann ich die bessere Alternative nehmen. Ansonsten würde ich herausfinden, ob ich es hinbekomme, dass der Spannungsregler nur bei unter 1.8v arbeitet. Wenn ich jetzt aber zum Beispiel ein ble-Modul hätte, dass z.B. bei 3-5v läuft, würde es das einschränken. Deswegen finde ich es ärgerlich, dass der nRF8001 mit 1.9-3.6v läuft, aber die Adafruit(-Klon) PCBs mit dem Chip von 3-5v, weil sie noch nen Spannungsregler verbaut haben. Frank K. schrieb: > Dann liest Du das und findest heraus, dass da ein nrf52810 drauf ist. > Damit gehst Du dann zu Nordic, wählst Softwar&Tools und dort Development > Tools und liest, was da steht. Dafür brauchst Du hier niemandem die Zeit > zu stehen, Deine Optionen sind dort vollständig aufgelistet. Davon > nimmst Du eine. Fertig. Dass der nRF52810 drin ist, war der Grund, dass ich das PCB ausgewählt habe. Das Handbuch sagt im Text "Use the Nordic SDK & SoftDevice to deliver your BLE application". Nordic SDK ist die C++ Library und SoftDevice der BT-Stack, der vor dem Programmieren auf den Chip geladen werden muss. In der Tabelle steht dann bei programmability: SDK via JTAG und SoftDevice via 'Any exposed within the related Nordic Softdevice'. Abseits vom Laird PCB gibt es das Development Board von Nordic, das über 40€ kostet. Und in einem Forumbeitrag wurde das SEGGER J-Link (Lite oder Edu) als JTAG Programmer empfohlen, das ähnlich viel kostet. Das alles habe ich aber schon gewusst, bevor ich Deinen Beitrag gelesen habe oder meinen Beitrag verfasst habe. Also, Danke fürs unhöflich werden. Und damit ist meine Frage nicht beantwortet, was ich mindestens brauche, um es zu programmieren. Präziser hätte ich vielleicht auch fragen können: Kann man den nRF-Chip aus dem Laird-PCB rausnehmen und muss ihn zum Programmieren woanders z.B. ins DK-Board reinstecken? Oder gibt es auf dem Laird-PCB auf der Rückseite oder woanders eine standardisierte Schnittstelle? Es scheint da ja Stecker zu geben, vgl 'Adafruit JTAG (2x10 2.54mm) to SWD (2x5 1.27mm) Cable Adapter Board [ADA2094]' auf Amazon. Mittlerweile habe ich im module-pinout die Pins SWDCLK und SWDIO gefunden. Also muss ich von so einem USB-Modul die Pins immer manuell verdrahten? Was hat es denn mit den unter-10€ Modulen auf sich, z.B: https://www.amazon.de/dp/B012VR3PVA. Funktioniert sowas als billige Alternative? In der Beschreibung stehen zwar andere Chips, aber das scheint mir so wie die typischen 'micro usb kabel - funktioniert mit handy x, xy und xyz' Anzeigen. @edit: gerade noch ein Laird dk-board für den bl652 für 80€ gefunden und den segger link edu mini für 20€. Zweiteres wäre die erste brauchbare option, aber auch besser als die unter-10€ Dinger? Johannes S. schrieb: > Und Unterstützung für die Nordic gibt es auch, nur nicht Arduino sondern > Mbed. Ich würde dann eben dieses Mbed versuchen zum Laufen zu bekommen. Doctor Snuggles schrieb: > Da Du viele gleichzeitig einsetzen möchtest, musst Du aufpassen. Der > nRF52810 kann kein Bluetooth5 Mesh, das können nur die nRF52832 und > nRF52840. > Daher empfehle ich den 32er (da der 40er eine höhere Stromaufnahme hat). Ich habe gelesen, dass Android softwareseitig bis zu 7 BLE-Geräte gleichzeitig bedienen kann. Hardwareseitig sind es je nach Handy weniger. Das würde vorerst reichen, aber mehr wäre natürlich besser. Ich meinte mit dem Satz eigentlich, dass preislich die Hardware für ein fertiges Gerät nicht mehr als 10€ kosten sollte, damit eben 3/5/7 Stück bezahlbar bleiben. Von Bluetooth Mesh habe ich bisher noch nichts gehört. Ich werde mir angucken, wie das funktioniert und ob ich das integriert bekomme.
:
Bearbeitet durch User
Pascal D. schrieb: > Ein Spannungsregler, der 1.8v ausgibt, wenn die Batteriespannung weniger > als 1.8v ausgibt. Das lohnt sich nicht. Primärzellen gelten bei 0,9V als verbraucht. Zum Ende hin steigt ihr Innenwiderstand, dadurch fällt die Spannung unter Last noch weiter ab. Ein Step-Up Wandlander zieht dann umso mehr Strom, macht es also noch schlimmer. Damit gewinnst du unterm Strich nichts. Die Idee, leere Batterien mit Step-Up Wandlern ganz leer zu saugen, geht nicht auf. Dazu kommt das stark erhöhte Auslaufrisiko. Gucke Dir mal den Spannungsregler LT1763 CS8-3.3 oder den LP38693 MP-3.3 an, die kannst du prima mit einem Lithium Akku oder 3 Primärzellen verwenden. Diese haben einen Enable Eingang und wenn die Batteriespannung zu gering wird, leiten sie sie einfach (fast) 1:1: durch. Deine Funkmodule und Sensoren werden dann immer noch so lange funktionieren, bis die Batterien wirklich am Ende sind.
Wenn du aus einer Knopfzelle 1,8V holen willst, dann solltest du dich mal nach Schaltwandlern umsehen. Das Problem ist deren relativ hoher Iq wenn die Controller und Sensoren schlafen, weshalb die guten Wandler einen Bypass bieten. Die NRF52840 haben gleich zwei solcher Teile integriert (sogar jeweils noch mit LDO für den Bypass!) und können mit einem davon auch externe Peripherie, wie etwa deine nicht weiter spezifizierten Sensoren, versorgen. Einen ESP32 kannst du auch nehmen, wenn du denn unbedingt im Arduino-Universum bleiben möchtest. Ein TPS62730 wäre ein solcher Buck-Converter mit Bypass-Funktion. Vorausgesetzt deine Sensoren laufen auch mit den ungeregelten 3V der Knopfzelle ist das schonmal ein Schritt in die richtige Richtung. Pascal D. schrieb: > ich möchte im Rahmen einer Arbeit einen extrem stromeffizienten und > billigen Mikrocontroller bauen. Du meinst vielleicht ein Board? Pascal D. schrieb: > Das Erste, das ich gefunden habe, war der ESP32. Alleine weil der Chip > von der Größe riesig ist und eigene Spannungsregler hat Du meinst vielleicht ein Modul? Der eigentliche Chip im QFN-Gehäuse hat 5x5mm! Den gibt es sogar schon mit einem SPI-Flash integriert.
Wenn alle Deine Komponenten mit 3,0 bis 3,6V arbeiten, könntest Du auch direkt eine Litium-Zelle verwenden und diese tatschlich leer nudeln. Ich betreibe damit Umweltsensoren (Tempertur, Feuchte, Luftdruck) mit AVR und CC1001. Die Batterien halten knapp zwei Jahre bei einer 5 Minütigen Datenübertragung.
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.