nrf52840 and sky66112-11 configuration

Hi,

I am currently trying to use a sky66112-11 to get a range increase.

I had previously used a nrf21540DK to interface with the 21540 FEM using the built in MPSL support and was very successful.

Now I am using a custom board that uses the sky module as the FEM. (It is a Fanstel BT840X if that helps)

I have followed the docs here: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_radio_fem.html#id15 under "Adding support for Skyworks front-end module" and added the following node to my device tree:

	nrf_radio_fem: skyFem {
		compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins";
		ctx-gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
		crx-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
		cps-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
		chl-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
		rx-gain-db = < 11 >;
		tx-gain-db = < 22 >;
	};

As far as I can tell MPSL is creating the file to turn on FEM, it is going into the two pin fem code path, and no errors are reported. Furthermore, the pins are correct according to Fanstel docs https://static1.squarespace.com/static/561459a2e4b0b39f5cefa12e/t/626860fd86dffd7e48def192/1651007745948/BT840F_Product+Specifications.pdf

However, I have seen no increase in RSSI on either the receive or transmit side over not adding the FEM node to the device tree. Additionally, there is no increase in amp draw seen through the Nordic Power Profiler Kit 2. Per the sky docs, we should see a 3-6ma increase from the LNA and upwards of a 100ma increase from the PA.

As far as I can tell I have followed the docs and all the right code seems to be being run, so I'm a bit lost on where to go next.

Thank you

  • i'm also trying to use the Skywroks FEM in a Fanstel BT840X module.

    I'm using the samples/bluetooth/throughput example under NCS v2.2.0, where the BT840X is the central and a nRF52840DK is the peripheral.

    everything is working as expected before I enable the FEM but once I enable it only scanning works and connections are not established with reason 0x3e.

    I added the following to the dts:

    / {
        nrf_radio_fem: sky_fem {
           compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins";
           ctx-gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
           crx-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
           cps-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
           chl-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
        };
     };

    I enabled both CONFIG_MPSL and CONFIG_MPSL_FEM, and I set the CPS pin to 0 and CHL pin to 1 on app init.

    I even tried to set the GPIO pins to the LEDs to make sure it's toggling.. 

    what can be the problem?

    console output:

    *** Booting Zephyr OS build v3.2.99-ncs1 ***
    Starting Bluetooth Throughput example
    I: SoftDevice Controller build revision:
    I: 6d 90 41 2a 38 e8 ad 17 |m.A*8...
    I: 29 a5 03 38 39 27 d7 85 |)..89'..
    I: 1f 85 d8 e1             |....
    
    
    : HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF52x (0x0002)
    I: Firmware: Standard Bluetooth controller (0x00) Version 109.16784 Build 2917677098
    I: Identity: E3:88:C7:BC:5C:91 (random)
    I: HCI: version 5.3 (0x0c) revision 0x11fa, manufacturer 0x0059
    I: LMP: version 5.3 (0x0c) subver 0x11fa
    Bluetooth initialized
    
    
    Central. Starting scanning
    Button disable error: -2
    32muart:~$ Filter not match. Address: 62:DC:D0:B3:28:00 (random) connectable: 0
    Filter not match. Address: 62:DC:D0:B3:28:00 (random) connectable: 0
    Filter not match. Address: 00:50:E6:3D:4B:D7 (random) connectable: 0
    Filter not match. Address: 44:5C:E9:7C:C9:F5 (public) connectable: 0
    Filters matched. Address: C4:7C:FE:52:CF:3A (random) connectable: 1
    Connected as central
    Conn. interval is 320 units
    Service not found
    Disconnected (reason 0x3e)

  • Searching through the codebase for NCS 2.2.0 I can't seem to find any C code that uses these devicetree elements (cps-gpios for example).

    There is a sample in NCS in samples/bluetooth/direct_test_mode which implements some source-code to queue off of these nodes which might be transferable into your project.

Related