Thursday, August 18, 2016

Unterschiede zwischen nRF51822 und nRF51422?

Was ist eigentlich der Unterschied zwischen dem nRF51822 und dem nRF51422?

Laut Nordic Semiconductor ASA handelt es sich bei dem um die gleiche Hardwarearchitektur. Der nRF51822 kann jedoch, im Gegensatz zum nRF51422 kein ANT Protokoll, d.h. alle ANT Beispiele laufen nicht auf dem nRF51822.

 Der nRF51422 ist daher ein Tick teurer. Alle anderen, z.B. Bluetooth, Programme sollten, bei gleicher Hardwaregeneration, auf beiden Chips laufen. Es kann daher auch auf dem nRF51422 entwickelt werden und dann die Firemware in Produktion auf den nRF51822 geflasht werden. Jedoch sollte dies Sicherheitshalber vorher mal überprüft werden!

nRF51422 Modul
nRF51822 Module



Der nRF51822/nRF51422 als iBeacon eine Laufzeitabschätzung mit CR2032 Betrieb

Wer seinen iBeacon (mit nRF51822/nRF51422 Chip) mit einer CR2032 bzw. 3V Knopfzelle betreiben möchte sollte sich auch Gedanken über eine ungefähre Laufzeit machen bzw. darüber wie die Laufzeit ohne sündhaft teure Messgeräte ermittelt bzw. hochgerechnet werden kann.

Ein erster Versuch mit einem Multimeter (Fluke 15B+) zeit jedoch die Grenzen auf, da das Gerat auch im µA (Mikroampre) Bereich 0,0 µA anzeigt.

Mutlimeter 0,0 µA


Mit einem Oszilloskop können Spannungsverläufe in einem Zeitbereich dargestellt werden, daher kann der Strom als Spannungsabfall über einen bekannten Widerstand (z.B. 1Ω) gemessen werden.




Messung



In der Beaconfirmware sollte alle nicht relevanten Teile die einen Einfluss auf den Stromverbrauch haben könnten herausgenommen werden wie z.B. eine LED-Anzeige. Das übriggebliebene Bluetooth Advertising sollte dann auf ein gerade noch annehmbares Intervall begrenz werden (>=1s).

Bluetooth Advertising von 100ms -> hoher Stromverbrauch
Bluetooth Advertising 1s -> noch komfortable, geringerer Verbrauch
Bluetooth Advertising 10s -> nicht mehr komfortable, geringster Verbrauch


Danach kann die Messung und Abschätzung beginnen.

Messung mit Bluetooth Advertising 1s
Messung mit Bluetooth Advertising 2s
Messung eines Bluetooth Advertising - Time 1.000ms

Abschätzung der Laufzeit mit CR2032 Battery:

Laufzeitabschätzung













Tuesday, August 16, 2016

Der nRF51822 als iBeacon

Um den nRF51822/nRF51422 als iBeacon zu benutzen gibt es bereits ein fertiges Beispielprogramm in dem Nordic nRF5 SDK. Dies kann in dem Pfad ../examples/ble_peripheral/ble_app_beacon/ gefunden werden.
nRF51422

Ausschnitt Beispiel Makefile:

 ...
CFLAGS += -DSOFTDEVICE_PRESENT
CFLAGS += -DS130
CFLAGS += -DBLE_STACK_SUPPORT_REQD
ASMFLAGS += -DSOFTDEVICE_PRESENT
ASMFLAGS += -DS130
ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
ASMFLAGS += -DSWI_DISABLE0  


LDSCRIPT = $(TEMPLATEROOT)/s130_nrf51822_QFAA.ld
INC_PATHS += -I$(SDK_PATH)/components/softdevice/s130/headers

vpath %.c $(SDK_PATH)/components/softdevice/s130/headers

# object files

OBJS =  app_button.o app_error.o app_fifo.o app_timer.o app_util_platform.o nrf_assert.o nrf_log.o
OBJS += retarget.o app_uart_fifo.o 
OBJS += nrf_delay.o nrf_drv_common.o nrf_drv_gpiote.o nrf_drv_uart.o
OBJS += bsp.o main.o
OBJS += ble_advdata.o ble_conn_params.o ble_srv_common.o 
OBJS += system_nrf51.o softdevice_handler.o
...



Nachdem das Beispielprogramm kompiliert wurde muss dies mit dem beim Linken angegebenen Softdevice (z.B. das S130 Softdevice aus https://www.nordicsemi.com/eng/Products/S130-SoftDevice bzw.
https://www.nordicsemi.com/eng/nordic/download_resource/53724/10/41228315) gemeinsam geflasht werden. Evtl. sollte auch ein nrf51 mass_erase zuvor erfolgen um alle zuvor geflashten Programmelemente sicherheitshalber zu entfernen.


Flashbeispiel mit openocd:

reset halt
nrf51 mass_erase
program s130_nrf51_2.0.1_softdevice.hex verify
program ble_app_beacon.hex verify
reset








Ist dies geglückt, kann das iBeacon mit dem Mobiltelefon und der App NRF Connect (ehemals NRF Master Controll Panel) erkannt  und weiter untersucht werden.






Mehr infos unter:
https://www.youtube.com/watch?v=DgQHPn4f6SQ