You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mynewt.apache.org by Abderrezak Mekkaoui <ab...@gmail.com> on 2018/03/06 02:35:47 UTC
nrf52840 max tx power and pin macros
Dear All,
A couple of observations I came across while developing a ble app on the
the nrf52840 preview pdk. Please correct me if I am wrong.
In the following "defines" (in
...\apache-mynewt-core\hw\mcu\nordic\nrf52xxx\include\mcu\mcu.h) should
not 16 be 32 as there are 32 pins assigned per port (even if they are
not implemented)?
#define MCU_GPIO_PORTA(pin) ((0 * 16) + (pin))
#define MCU_GPIO_PORTB(pin) ((1 * 16) + (pin))
in ...\apache-mynewt-core\hw\drivers\nimble\nrf52\src\ble_phy.c
#define NRF_TX_PWR_MAX_DBM (4)
NRF_TX_PWR_MAX_DBM should be 8 for the nrf52840.
To flag an out of bound array indexing I had to add -Warray-bounds to
the compiler flags:
compiler.flags.default: [compiler.flags.base, -O1 -ggdb -Warray-bounds]
Should this be the default?
Thanks
Abderrezak
Re: nrf52840 max tx power and pin macros
Posted by will sanfilippo <wi...@runtime.io>.
1) You are correct about the ports in mcu.h. Note that there are definitions for this in nrf52_hal.h and they do the correct things (at least I think so). Given that no code that I can see (although I might be looking at something a bit out of date) uses MCU_GPIO_PORTA or PORTB macros on nordic I say that the code should be removed from mcu.h and the definitions in nrf52_hal.h be used instead.
2) Indeed, 4 is too low. I was looking at the spec and there is a setting for 9dBm in the register. The specification does state that 8dBm is the maximum output power but you need to use the setting Pos9dBm. Go figure (there is probably a description of why that is somewhere). So, this definitely should change for the 52840.
3) I have no issue with adding -Warray-bounds
Thanks for pointing these out!
> On Mar 5, 2018, at 6:35 PM, Abderrezak Mekkaoui <ab...@gmail.com> wrote:
>
> Dear All,
> A couple of observations I came across while developing a ble app on the the nrf52840 preview pdk. Please correct me if I am wrong.
>
> In the following "defines" (in ...\apache-mynewt-core\hw\mcu\nordic\nrf52xxx\include\mcu\mcu.h) should not 16 be 32 as there are 32 pins assigned per port (even if they are not implemented)?
> #define MCU_GPIO_PORTA(pin) ((0 * 16) + (pin))
> #define MCU_GPIO_PORTB(pin) ((1 * 16) + (pin))
>
> in ...\apache-mynewt-core\hw\drivers\nimble\nrf52\src\ble_phy.c
> #define NRF_TX_PWR_MAX_DBM (4)
> NRF_TX_PWR_MAX_DBM should be 8 for the nrf52840.
>
> To flag an out of bound array indexing I had to add -Warray-bounds to the compiler flags:
> compiler.flags.default: [compiler.flags.base, -O1 -ggdb -Warray-bounds]
> Should this be the default?
> Thanks
>
> Abderrezak
>