Forum: Mikrocontroller und Digitale Elektronik SPI Zugriff über BLE


von Lucas (efabinpiynkggclmtf)


Lesenswert?

Hallo Leute,

ich habe ein ganz konkretes Problem:
Ich muss die Werte eines Device über ein Android Gerät auslesen. Das 
Device bietet UART und SPI an, benötigt einen kurzen Befehl, woraufhin 
dann periodisch (alle 1,8 sec) ein Paket mit durchschnittlich 500 
Character Nutzdaten gesendet wird. Das Android Gerät muss/sollte auf die 
Daten mit BLE zugreifen. Ziel ist es dabei nur, dass die 
bereitgestellten Daten auf mein Android-Device ankommen.
Die Einschränkungen sind, dass das Device auf Akku läuft und bereits 
0,28W benötigt, daher sollte das übermittelnde BLE-Board so 
energieeffizient und auch klein wie möglich sein (das Device sollte für 
eine Studie „wearable“ sein).

Ich habe dieses Modul gefunden, welches diese Anforderungen eventuell 
abdecken könnte:
https://www.adafruit.com/product/2633
https://www.adafruit.com/product/2479

Ich weiß aber nicht, ob es nicht bessere/effizientere/einfachere Module 
gibt, die diese Anforderung abdecken. Hat hierzu jemand eine Idee, wie 
ich möglichst trivial (und energie-/platzeffizient) die Daten übertragen 
kann?

Wenn irgendwelche Fragen auftreten, beantworte ich diese natürlich 
gerne.

LG Luc

von Jim M. (turboj)


Lesenswert?

Das sind die alten µCs mit Cortex-M0, die sind laut Nordic Semi "not 
recommended for new designs" und haben seit Jahren kein Software Update 
gesehen. IMHO auch nicht für die bekannten Sicherheitslücken.

Habe die hier in Verwendung, da bleibt bei BTLE Betrieb nicht viel RAM 
und Flash übrig.

Nimm lieber die Nachfolger wie in https://www.adafruit.com/product/4062
deren Stromvebrauch ist nicht höher bei mehr Flash+RAM+Performance.

von Jobst M. (jobstens-de)


Lesenswert?

Nur UART: Microchip RN4870 / RN4871

Gruß
Jobst

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Die 0,28W sollte jede BLE Lösung ganz locker um Größenordnungen 
unterschreiten können. Wenn das jetzt eine Studie ist und Du im nächsten 
Schritt nicht zu viel ändern möchtest, dann würde ich etvl. eher auf 
etwas "moderneres", wie den nRF52 setzen (die von Dir ausgewählten 
Module setzen den alten nRF51 ein).

nRF52 Module gibt es wie Sand am Meer. Das ganze als HID Tastatur 
anzubinden, ist Energietechnisch sehr ungünstig. Idealerweise 
implementierst Du dafür einfach einen eigenen Service, der die Daten 
über eine Characteristic per Notifications sendet. Mit dem nRF52 kannst 
Du auch Packetgrößen (MTU) ~250 Byte implementieren, sodass die 
Datenübertragung in 2-3 Connection Events erledigt ist und Dein BLE 
Modul dann via Peripheral Latency den Rest der Zeit einfach schlafen 
kann.

Zur Umsetzung würde ich Dir eine Open Source Bluetooth Library an's Herz 
legen: https://github.com/TorstenRobitzki/bluetoe ;-)

von Lucas (efabinpiynkggclmtf)


Lesenswert?

Ich hab' nun meine Architektur nochmal überarbeitet und bin mit dem 
Adafruit Feather nRF52840 Express gegangen. Das Teil löst (fast alleine) 
alle meine Probleme, die ich in meiner Studie als Anforderungen habe! 
Außerdem zeigen die ersten Experimente, dass der Stromverbrauch mehr als 
zufriedenstellend ist. Schonmal ein großes Dankeschön hierfür.

Nun tut sich aber ein kleines Problem auf, was ich nicht antizipiert 
habe:
Alle Tutorials/Beispiele, die ich gefunden habe, beziehen sich auf den 
USB-UART Port und nicht auf die internen UART Pins (RX/TX). Hat hierzu 
jemand Leseempfehlungen bzw. Anhaltspunkte wie ich damit kommuniziere? 
Danke!

von Vanye R. (vanye_rijan)


Lesenswert?

Probier es mal mit dem Datenblatt des Herstellers. Ich meine
es muss ja einen Grund geben wieso der sowas schreibt oder?

Vanye

von Jim M. (turboj)


Lesenswert?

Lucas schrieb:
> Alle Tutorials/Beispiele, die ich gefunden habe

Dann solltest Du aber Suchen üben.

UART Beispiele gibt es in den Nordic SDKs die man zum Programmieren des 
nRF52840 benötigt. Ebenso SPI.

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.