{"id":480,"date":"2018-11-19T10:18:51","date_gmt":"2018-11-19T08:18:51","guid":{"rendered":"http:\/\/benjaminmarty.ch\/blog\/?p=480"},"modified":"2018-11-19T10:25:36","modified_gmt":"2018-11-19T08:25:36","slug":"laird-bl651-nrf52810","status":"publish","type":"post","link":"https:\/\/benjaminmarty.ch\/blog\/2018\/11\/19\/laird-bl651-nrf52810\/","title":{"rendered":"Laird BL651 &#8211; nRF52810"},"content":{"rendered":"<p><a href=\"http:\/\/benjaminmarty.ch\/blog\/wp-content\/uploads\/2018\/11\/IMG_20181113_210802_cropped.jpg\"><img loading=\"lazy\" class=\"alignleft wp-image-483 size-medium\" src=\"http:\/\/benjaminmarty.ch\/blog\/wp-content\/uploads\/2018\/11\/IMG_20181113_210802_cropped-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/benjaminmarty.ch\/blog\/wp-content\/uploads\/2018\/11\/IMG_20181113_210802_cropped-300x225.jpg 300w, https:\/\/benjaminmarty.ch\/blog\/wp-content\/uploads\/2018\/11\/IMG_20181113_210802_cropped-768x576.jpg 768w, https:\/\/benjaminmarty.ch\/blog\/wp-content\/uploads\/2018\/11\/IMG_20181113_210802_cropped-1024x768.jpg 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>Dieser Beitrag widmet sich um die zumindest mir bereiteten Fallstricke beim Arbeiten mit dem BL651 Modul. Die Informationen sollten sich auch auf die meisten anderen nRF52810 basierenden Module anwenden lassen.<\/p>\n<p>Als erstes sollte man sich das SDK von nRF herunterladen. Dies gibt es in der Sparte `Sparte Software Development Kit` unter: <a href=\"https:\/\/www.nordicsemi.com\/eng\/Products\/nRF52810\">https:\/\/www.nordicsemi.com\/eng\/Products\/nRF52810<\/a><\/p>\n<p>Das SDK entpackt man sich gem\u00fctlich z.B. ins home Verzeichnis. Nun brauchen wir den ARM Compiler, diesen installiert man unter Arch Linux ganz einfach mit Pacman:<\/p>\n<pre><code class=\"bash\">sudo pacman -S arm-none-eabi-gcc arm-none-eabi-newlib<\/code><\/pre>\n<p>Damit man den nRF auch programmieren kann, ich verwende dazu einen J-Link, braucht man noch die nRF tools. Diese kann man sich unter Arch Linux mit yay installieren:<\/p>\n<pre><code class=\"bash\">yay -S nrf5x-command-line-tools\r\n<\/code><\/pre>\n<p>Nun fehlt nur noch die Compiler Konfiguration im nRF SDK in der Datei `components\/toolchain\/gcc\/Makefile.posix`:<\/p>\n<pre><code class=\"bash\">GNU_INSTALL_ROOT ?= \/usr\/bin\/\r\nGNU_VERSION ?= 8.2.0\r\nGNU_PREFIX ?= arm-none-eabi\r\n<\/code><\/pre>\n<p>Das SDK ist nun im Prinzip ready. Es fehlen jedoch noch die ein oder anderen Konfigurationen in den Examples. M\u00f6chte man z.B. das Beacon Example unter `examples\/ble_peripheral\/ble_app_beacon\/pca10040e\/s112` nutzen sind folgende Anpassungen notwendig:<\/p>\n<p>Im Makefile m\u00fcssen folgende Zeilen entfernt werden<\/p>\n<pre><code class=\"makefile\">CFLAGS += -DDEVELOP_IN_NRF52832<\/code><\/pre>\n<pre><code class=\"makefile\">ASMFLAGS += -DDEVELOP_IN_NRF52832\r\n<\/code><\/pre>\n<p>In der sdk_config.h m\u00fcssen folgende Parameter angepasst werden:<\/p>\n<pre><code class=\"cpp\">#define NRF_SDH_CLOCK_LF_SRC 0\r\n#define NRF_SDH_CLOCK_LF_RC_CTIV 16\r\n#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2\r\n#define NRF_SDH_CLOCK_LF_ACCURACY 1<\/code><\/pre>\n<p>Nun ist man nur noch von einem<\/p>\n<pre><code class=\"bash\">make flash_softdevice &amp;&amp; make flash<\/code><\/pre>\n<p>entfernt und das Example sollte auf dem nRF laufen \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieser Beitrag widmet sich um die zumindest mir bereiteten Fallstricke beim Arbeiten mit dem BL651 Modul. Die Informationen sollten sich auch auf die meisten anderen nRF52810 basierenden Module anwenden lassen. Als erstes sollte man sich das SDK von nRF herunterladen. Dies gibt es in der Sparte `Sparte Software Development Kit` unter: https:\/\/www.nordicsemi.com\/eng\/Products\/nRF52810 Das SDK entpackt &#8230; <a class=\"more-link\" href=\"https:\/\/benjaminmarty.ch\/blog\/2018\/11\/19\/laird-bl651-nrf52810\/\">[Read more&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[142],"tags":[],"_links":{"self":[{"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/posts\/480"}],"collection":[{"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/comments?post=480"}],"version-history":[{"count":22,"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/posts\/480\/revisions"}],"predecessor-version":[{"id":509,"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/posts\/480\/revisions\/509"}],"wp:attachment":[{"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/media?parent=480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/categories?post=480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benjaminmarty.ch\/blog\/wp-json\/wp\/v2\/tags?post=480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}