Thursday, September 1, 2016

nRF51822 mit GPIOTE und TTP229 Touchsensor

Was ist GPIOTE?

Mit GPIO Task und Events können mit den nRF51822 (nRF51422) Signalflaken bzw Signaländerung durch das Auslösen eines Interrupts ausgewertet werden. Hierbei wird dann eine Handler-Rutine angesprochen in der der Signalzustandswechsel ausgewertet werden kann.
nRF51822 und GPIOTE


TTP229 angeschlossen am nRF51822 Entwicklerboard mit UART über USB

Beim TTP229 Capacitive Touch Sensor kann man sich dies zunutze machen um die Tasten-(Flächen-)Berührungen seriell auswerten zu können (die parallele Auswertung wird hier nicht betrachtet). 

TTP229 Modul
Für ein Prototyp können Breadbord freundliche Module erworben werden.



TTP229 von TONTEK
 Zur Vorbereitung kann der 16-Key Modus (aktive LOW über TP2) eingeschaltet bzw. der Multi-Key Modus (TP3 und TP4) aktiviert werden. Siehe auch Datenblatt Seite 9 (http://www.tontek.com.tw/download.asp?sn=726).

16-Key und Multi-key Modus aktivieren.


Der TT229 sendet eine Signalflanke am DV (Datavalid) Pin immer dann, wenn ein oder mehrere (Multi Key Mode) Tasten zur Auswertung bereit stehen.

Über den Clock PIN können dann die einzelnen Informationsbits angefordert werden.

nRF51822 mit GPIOTE und UART über Putty via USB.
Sourcecode ist über GITHUB verfügbar.
https://github.com/pcbreflux/nordic/tree/master/nRF51822/gpiote
https://github.com/pcbreflux/nordic/tree/master/nRF51822/ttp229_gpiote

Weiter Informationen im Video:
https://www.youtube.com/watch?v=TPNjfeJAkrg

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

Wednesday, July 13, 2016

Glow in the dark Pulver vs. 650nm Laser

Ist es möglich verschieden farbige fluoreszierende, phosphoreszierende Pulver mit einem 650nm bzw. rotem Laser zum Leuchten zu bringen?

Gibt es bessere Möglichkeiten die Pulver schnell mit Energie aufzuladen?
Pulver vs 650nm Laser
 Leuchten alle Farben gleich gut?

Pulver vs Taschenlampe
Schaut euch auch mal das Video hierzu an https://www.youtube.com/watch?v=6dtLnqb-sZM.

Fluke 17B+ vs Keithley 177 Microvolt DMM

Dinosaurier gegen moderne Technik ?


Wer ein Mutimeter von Fluke für unter 100€ erstehen möchte und mit dem Fluke 15B+ noch nicht so ganz zufrieden ist sollte sich mal das Fluke 17B+ ansehen. Auch dies gibt es für unter 100€ nur in der PRC Version und ohne Echteffektiv Messung (no True RMS). Die gedruckte Anleitung ist auf Chinesisch. Eine Einglische Anleitung bietet Fluke aber unter http://assets.fluke.com/manuals/151718__umeng0000.pdf an. In der Verpackung sind außer dem Multimeter selbst und dem Handbuch noch die Messleitungen und ein K-Typ Temperaturfühler.

Kleiner Vergleich mit einem ungeeichten Keithley 177 Microvolt DMM und zusätzlich noch dem Fluke 15B+.

Und Antritt gegen eine Spannungsreferenz mit dem AD584LH von Analog Devices, Inc sowie die μA Stromreferenz REF200 von Texas Instruments Incorporated.

Sehr Empfelen möchte ich in diesem Zusammenhang auch den Youtube Kanal von Scullcom Hobby Electronics.

Scullcom Hobby Electronics #8 - Precision Voltage Reference Modules
https://www.youtube.com/watch?v=zm_ZBT4t4dA
Scullcom Hobby Electronics #40 - Design & Build a Low Current Reference
https://www.youtube.com/watch?v=VrnVMnwlQXk





Das Video ist unter https://www.youtube.com/watch?v=rV0WGvj2Jow abrufbar.

Wednesday, July 6, 2016

nRF51822 Debuggen mit gdb ? Yes we can!

Hallo,

bisher habe ich mich mit dem Thema Debuggen von Mikrocontrollern nur sehr am Rande auseinander gesetzt. Doch im Rahmen eines Projekts musste auch mal ein komplizierter Fehlerzustand analysiert werden. Da aus Budgetgründen nicht die von Nordic vertriebenen Entwicklungsboards und auch nicht KEIL oder nrfStudio verwendet wurde sondern alles mit GNU unter Linux entwickelt werden sollte, blieb beim Debuggen nur gdb in der Wahl. Auch zur Verbindung des nRF51822  mit dem Computer wurde  wurde nicht ein Segger Produkt verwendet, sondern ein ST-Link V2.

Letztendlich waren folgende Schritte nach neuer Installation der Linux Variante
Ubuntu 16.04 (Xenial Xerus) notwendig:

    sudo apt-get install git
    sudo apt-get install autoconf
    sudo apt-get install libusb-1.0-0-dev
- Bauen und Installtion der USB Treiber für den ST-Link V2
  (https://github.com/texane/stlink stlink.git)

    git clone https://github.com/texane/stlink stlink.git
    cd stlink.git/
    ./autogen.sh
    ./configure
    make
    sudo cp st-* /usr/bin
    sudo cp ./etc/udev/rules.d/49-stlinkv2.rules /etc/udev/rules.d

- Bauen und Installtion von openocd
   (git://git.code.sf.net/p/openocd/code openocd-code)

    git clone git://git.code.sf.net/p/openocd/code openocd-code
    cd openocd-code/
    ./bootstrap
    ./configure
    make
    sudo make install

- Download und Auspacken GCC
   https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q1-update/+download/gcc-arm-none-eabi-5_3-2016q1-20160330-linux.tar.bz2

   z.B. über tar xvjf  gcc-arm-none-eabi-5_3-2016q1-20160330-linux.tar.bz2










- Download und Auspacken nRF5 SDK
   https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v11.x.x/nRF5_SDK_11.0.0_89a8197.zip

   z.B. unzip  nRF5_SDK_11.0.0_89a8197.zip

- Kompilieren der C-Quellcodes mit gcc (arm-none-eabi-gcc mit Schalter -O0 -g)

  make

- flashen mit openocd und telnet

    Beispiel openocd.cfg 


    #nRF51822 Target
    source [find interface/stlink-v2.cfg] 

    transport select hla_swd
    set WORKAREASIZE 0x4000
    source [find target/nrf51.cfg] 

 
   openocd -d2 openocd.cfg

   telnet 127.0.0.1  4444

    halt    nrf51 mass_erase         (nur beim ersten mal notwendig)
    program <pfad>/blinky.hex verify
    reset



- Debuggen mit openocd und gdb (arm-none-eabi-gdb)
   arm-none-eabi-gdb -ex “target remote :3333“  blinky.out

   list main (Zeilennummern Anzeigen)
   break blinky.c:Zeilennummer (Breakpoint setzen)
   continue     (gdb stoppt bei Zeilennummer)
   step oder next bis zur Fehlerhaftenzeile
   print Variable auswerten
   clear blinky.c:Zeilennummer (Breakpoint löschen)
   continue (weiter ohne Breakpoints)


weitere Infos unter https://www.youtube.com/playlist?list=PLxJ8_KSR8bp6XCGlEVSwO6zdMXLkDi2lT

Viel Spaß beim Debuggen
pcbreflux

Monday, July 4, 2016

Ausgepackt nRF51822 Mikromodul

Ausgepackt nRF51822 Mikromodul

anlöten der Anschlüsse mit einer Lötstation. Flashen mit einer Beacon, Eddystone bzw. Bluetooth Firmware und anschießendem Test mit einem Android Handy und der Play Store App von Nordic nRF Master Control Panel. Scann nach neuen Bluetooth Geräten und Anzeige der Empfangsstärke je nach Modulabstand.

Als nRF51822 bestellt und mit nRF51422 geliefert.

Das Video ist unter https://youtu.be/xL3-TzphsHE abrufbar.

Ein Fluke 15B+ Multimeter für unter 100€ innerhalb Deutschlands bestellen?


ist es möglich innerhalb Deutschlands zollfrei ein neues original Fuke Multimeter mit einer annehmbaren Qualität für unter 100€ zu kaufen? In einem Youtube Video stelle ich euch die Funktionen des Fluke 15B+ mal vor. Einzigen Nachteil für Leute wie mich, die Chinesisch nicht lesen können: alle Unterlagen sind nur in diese Sprache.



Wie gut schlägt sich das neue Multimeter im Vergleich zu einem nicht Kalibrietern jahrzehnte alten Multimeter?

Weitere Infos unter https://youtu.be/s_ajW1dITFY

Friday, July 1, 2016

nRF51822 Einstieg in die Entwicklung

Hallo,

unter meinem Youtube Kanal habe ich euch eine neue Serie zum Einstieg in die Entwicklung mit dem nRF51822 von Nordic Semiconductor eingestellt.

Hier geht es zum Kanal https://www.youtube.com/channel/UCvsMfEoIu_ZdBIgQVcY_AZA.

Hoffe ihr könnt etwas lernen.

Viele Grüße
 pcbreflux