顯示具有 nrf52832 標籤的文章。 顯示所有文章
顯示具有 nrf52832 標籤的文章。 顯示所有文章

2017年11月9日 星期四

BLE 5 Overview

Bluetooth 5 it is highly likely they belong to one or more of these three major advancements:

  • 2Mbs for higher throughput and/or energy saving
  • 500/125kbs modes for considerably increased range (x4)
  • Advertising extensions for increased broadcast capacity (x8)

Advertising extensions :
       Allow add more payload on advertising data packet. by use the secondary
  advertisement channel(previous data channel).enables chaining of advertising packets to create
  greater advertising data payloads of up to 255 bytes.

      Periodic advertisements comprises packets sent at a fixed interval to synchronized devices via
  “connectionless” broadcasting.By using periodic advertisements,scanning devices can more
  consistently “follow” the advertiser and monitor its updates more frequently.

      Connectionless broadcasting is further boosted because Bluetooth 5 features an eight times
  higher broadcast capacity compared to previous versions of the technology.


Ref:
      1. ULP Wireless Quarter 20
      2. Taking a deeper dive into Bluetooth 5
   

     
 

BLE Mesh Overview(1)

    SIG announce the BLE mesh at 2017 July. Not only for BLE 5 but also compatible with BLE4.0 (or later). BLE mesh is implement by add new layers on the BLE physical layer so it need to make appropriate modification on the old BLE 4.0 firmware to get the mesh work.

    Bluetooth mesh follows Bluetooth technology’s architecture whereby GATT
“Profiles”.To avoid GATT Profiles being mistaken for the mesh equivalent, mesh profiles
are called “Models”

The Bluetooth mesh specification details four types
Relay Nodes :
       Relay Nodes re-transmit received packets and are the mechanism by which packets rapidly propagate across the entire network.The downside of relaying is increased current consumption because it relies on the nodes being continuously ‘awake’.

Low Power Nodes & Friend Nodes:
        Low Power Nodes work in tandem with “Friend Nodes”.Friend Nodes are typically
mains powered so can remain permanently awake; the devices cache any messages destined
for the LPN. The LPNs switch to receive’ mode according to a predetermined schedule, accept
cached messages, operate as instructed, and then rapidly return to a power-saving ‘sleep’ state.

Proxy Nodes:
       Proxy Nodes allow devices that run the Bluetooth low energy stack but don’t support Bluetooth
mesh (for example, the current generation of smartphones) to connect to a Bluetooth mesh network. Interaction is achieved via both the node and device’s Generic Attribute Profile (GATT) interface.






Ref:
      1. ULP Wireless Quarter 10-11
      2. nRF5 SDK for Mesh
      3. Bluetooth mesh networking SIG

2017年5月11日 星期四

nrf52 : Add CMSIS_DSP package in Keil 5

1.Open Manage Run-Time Environment and check the DSP














2.Include arm_math.h
  and  path in your project:Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\Include

3.Add symbol ARM_MATH_CM4 since nrf52832 use Cortex M4F






4.Simple matrix multiplication code

Ref:
    1. CMSIS DSP Software Library







2017年4月19日 星期三

nrf52: Change pin 0.09 and pin 0.10 as normal GPIO

1.Open project option -> C/C++ and add CONFIG_NFCT_PINS_AS_GPIOS to preprocessor symbols.


2,Now you can use pin 0.09 and pin 0.10 as normal GPIO



Ref:

2017年4月12日 星期三

nrf52:Use DC/DC regulator to save power consumption

nrf52832 has two power mode.LDO mode and Switching power mode.To use Switching power mode will need to add Inductor  between the DEC4 pin and DCC pin, and use software to change mode.




in softdevice :




It can save 5~6 uA around 17% of current on ble_template project








Ref:
       1. LDO vs Switching power
       2. nRF52 Online Power Profiler
       

nrf52: merge softdevice and application hex.

Add nrfTool mergehex to enviroment path .

Type mergehex -m softdevice.hex application.hex -o your.hex

Linux driver: How to enable dynamic debug at booting time for built-in driver.

 Dynamic debug is useful for debug driver, and can be enable by: 1. Mount debug fs #>mount -t debugfs none /sys/kernel/debug 2. Enable dy...